1. LDP
in
Apache Marmotta
http://marmotta.apache.org/events/iswc2014
2. Sergio Fernández
@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
3. What is LDP?
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
Linked Data Platform 1.0
http://www.w3.org/TR/ldp/
W3C Last Call Working Draft 16 Sep 2014
4. A bit of history….
2007 Linked Data Design Issues
http://www.w3.org/DesignIssues/LinkedData.html
2010 Linked Media Principles
https://code.google.com/p/lmf/wiki/PrinciplesLinkedMedia
2011 Linked Data Basic Profile 1.0
http://www.w3.org/Submission/ldbp/
2012 Linked Data Platform 1.0
http://www.w3.org/2012/ldp/
5. Linked Data
1. Use URIs as names for things
2. Use HTTP URIs so that people can look up those names
3. 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
6. 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
8. 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.
9. 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.
10. 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
11. LDP Containers (II)
Containers can contain other containers. This can be done by
POSTing (a child) container representation to a (parent) container.
12. 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.
13. LDP Containers applications
Direct Container membership
triples can be about subjects
other than the Container
resource.
15. 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
16. 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
17. 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