Post on 02-Dec-2014
description
LDPin
Apache Marmottahttp://marmotta.apache.org/events/iswc2014
@wikier
http://linkedin.com/in/sergiofernandez
http://www.wikier.org
Who Am I
Committer at the Apache Software Foundation
also…
Member of the LDP working group at W3C
Senior Researcher at Salzburg Research
Partner Technology Manager at Redlink GmbH
Sergio Fernández
a set of best practices and simple approach for a read-write Linked Data architecture, based on HTTP access to web resources that describe their state using the RDF data model
What is LDP?
Linked Data Platform 1.0http://www.w3.org/TR/ldp/ W3C Last Call Working Draft 16 Sep 2014
A bit of history….2007 Linked Data Design Issues
http://www.w3.org/DesignIssues/LinkedData.html
2010 Linked Media Principleshttps://code.google.com/p/lmf/wiki/PrinciplesLinkedMedia
2011 Linked Data Basic Profile 1.0http://www.w3.org/Submission/ldbp/
2012 Linked Data Platform 1.0http://www.w3.org/2012/ldp/
Linked Data1. Use URIs as names for things2. Use HTTP URIs so that people can look up those names3. When someone looks up a URI, provide useful information,
using the standards (RDF*, SPARQL)4. Include links to other URIs, so that they can discover more
things
LDP provides clarifications and extensions of the rules of Linked Data principles, providing a specification that describes the use of HTTP for accessing, updating, creating and deleting resources from servers that expose their resources as Linked Data
Terminology● Linked Data Platform Resource (LDPR)
an HTTP resource● Linked Data Platform RDF Source (LDP-RS)
an LDPR whose state is fully represented in RDF, corresponding to an RDF graph
● Linked Data Platform Non-RDF Source (LDP-NR)an LDPR whose state is not represented in RDF
● Linked Data Platform Container (LDPC)a LDP-RS representing a collection of LDPR
● Linked Data Platform Basic Container (LDP-BC)an LDPC that defines a simple link to its contained resources
● Linked Data Platform Direct Container (LDP-DC)an LDPC that adds the concept of membership, allowing the flexibility of choosing what form takes
● Linked Data Platform Indirect Container (LDP-IC)an LDPC similar to a LDP-DC that is also capable of having members whose URIs are based on its contained documents rather than the URIs assigned to those documents
LDP Hierarchy
LDP server and resources
a LDP server manages two kinds of resources:
● those resources whose state is represented using RDF (LDP-RSs)
● and those using other formats (LDP-NRs)
Such servers do not impose any restriction on LDPRs and generally act as storage systems without any domain specific application logic and vocabularies.
LDP concepts in a glance
● LDP covers read and write interactions with resources
● Writable aspects include creation of new resources (using POST or PUT), updates (using PUT or PATCH), and deletion of resources.
● Resource creation is an essential feature providing structured creation of resources.
● During creation the created resource is added to its Container and a containment link between the Container and the new entry is made.
LDP Containers
a LDPC is a specialization of a LDP-RS representing a collection of links to other resources
responds to client requests for creation, modification, and/or enumeration of its members
The simplest container is the Basic Container (LDP-BC). It defines the basic containment described using a generic vocabulary. This can be used in a generic storage service to manage a containment hierarchy of arbitrary resources
LDP Containers (II)
Containers can contain other containers. This can be done by POSTing (a child) container representation to a (parent) container.
LDP Direct Containers
A Direct Container is a specialisation of a Basic Container.
Additional assertions called membership triples which use a domain-specific vocabulary are made by a Direct Container as part of the creation process.
The membership triples augment the containment triples maintained by all containers.
LDP-DCs are used for the management custom scenarios, where use of existing vocabulary is preferable.
LDP Containers applications
Direct Container membership triples can be about subjects other than the Container resource.
LDP Containers applications (II)
Also different facets of a Resource be managed using multiple Containers.
LDP protocol particularities
● LDP defines two interaction models:○ LDPC by default, which creates a container
accepting the creation of resources○ LDPR creates resources which does not
accept creation of new resources.
● LDP reuses some things from Atom (RFC 5023):○ The Slug header is used for requesting
naming resources on creation○ The Prefer header is used optionally by
clients to supply a hint to help the server form a response that is most appropriate
LDP in Apache Marmotta
● Since version 3.2.0 Marmotta is compatible with LDP 1.0 drafts
● Although not full support: ○ LDP-DC and LDP-IC are not (yet?) supported
● LDP support is provided under /ldp○ requests to /resource are still managed
following the old Linked Media Principles
References:● Linked Data Platform 1.0
http://www.w3.org/TR/ldp/
W3C Last Call Working Draft 16 September 2014
● Linked Data Platform 1.0 Primer
http://www.w3.org/TR/ldp-primer/
W3C First Public Working Draft 26 June 2014
● Linked Data Platform Best Practices and Guidelines
http://www.w3.org/TR/ldp-bp/
W3C Working Group Note 28 August 2014
● Linked Data Platform Implementation Conformance Report
https://dvcs.w3.org/hg/ldpwg/raw-file/default/tests/reports/ldp.html
Unofficial Draft 15 October 2014
● Linked Data Platform 1.0 Test Cases
https://dvcs.w3.org/hg/ldpwg/raw-file/tip/tests/ldp-testsuite.html
Unofficial Draft 15 October 2014
let's play!
but…Jakob ;-)
http://marmotta.apache.org/events/iswc2014
acknowledgments to the MICO FP7 project (grant no. 610480)
grazie!
CC BY-SA 3.0
http://www.flickr.com/photos/21572939@N03/2090542246/