introduction to ldp in apache marmotta

20
LDP in Apache Marmotta http://marmotta.apache.org/events/iswc2014

Upload: sergio-fernandez

Post on 02-Dec-2014

486 views

Category:

Engineering


0 download

DESCRIPTION

Introduction to LDP in Apache Marmotta, slides for the Apache Marmotta tutorial at ISWC2014

TRANSCRIPT

Page 1: Introduction to LDP in Apache Marmotta

LDPin

Apache Marmottahttp://marmotta.apache.org/events/iswc2014

Page 2: Introduction to LDP in Apache Marmotta

@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

Page 3: Introduction to LDP in Apache Marmotta

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

Page 4: Introduction to LDP in Apache Marmotta

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/

Page 5: Introduction to LDP in Apache Marmotta

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

Page 6: Introduction to LDP in Apache Marmotta

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

Page 7: Introduction to LDP in Apache Marmotta

LDP Hierarchy

Page 8: Introduction to LDP in Apache Marmotta

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.

Page 9: Introduction to LDP in Apache Marmotta

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.

Page 10: Introduction to LDP in Apache Marmotta

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

Page 11: Introduction to LDP in Apache Marmotta

LDP Containers (II)

Containers can contain other containers. This can be done by POSTing (a child) container representation to a (parent) container.

Page 12: Introduction to LDP in Apache Marmotta

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.

Page 13: Introduction to LDP in Apache Marmotta

LDP Containers applications

Direct Container membership triples can be about subjects other than the Container resource.

Page 14: Introduction to LDP in Apache Marmotta

LDP Containers applications (II)

Also different facets of a Resource be managed using multiple Containers.

Page 15: Introduction to LDP in Apache Marmotta

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

Page 16: Introduction to LDP in Apache Marmotta

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

Page 17: Introduction to LDP in Apache Marmotta

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

Page 19: Introduction to LDP in Apache Marmotta

http://marmotta.apache.org/events/iswc2014

acknowledgments to the MICO FP7 project (grant no. 610480)

grazie!

Page 20: Introduction to LDP in Apache Marmotta

CC BY-SA 3.0

http://www.flickr.com/photos/21572939@N03/2090542246/