Differences between revisions 27 and 28
Revision 27 as of 2014-07-15 08:28:05
Size: 4321
Comment: creating new resources using HTTP PUT is now allowed (Sec.
Revision 28 as of 2014-09-16 16:23:40
Size: 4403
Comment: added new ldp impl report
Deletions are marked like this. Additions are marked like this.
Line 14: Line 14:
 * [[LDPImplementationReport/2014-09-16|LDP Implementation Report (2014-09-16)]]

Marmotta LDP Implementation Report

Relevant Documents


Implementation Report Revisions

Test Suite

Implementation Restrictions

We agree on some restrictions:

  • Identifiers

    • trailing slash is ignored (removed) for URI generation.
    • query part of an URL will never be used as part of a URI.
      • query parameters might be used for some LDP operations such as non-membership triples (tbd)
    • resources with fragments can't be addressed directly, but can be accessed via their container (URL without fragment)
  • Storage

    • internally every LDP-R will be stored in its own (Sesame) context (as could be interpreted from sec 6.4.5)

    • that would allow us to extend the Resource concept beyond the common understanding in triplestores (just one level of outgoing triples)
  • Paging and Sorting will be not supported

    • Anyway the WG has resolved (Feb 17, 2014) to move out paging and ordering into a separate spec: 2014-02-17#r5

  • ETags are weak and soley based on the dcterms:modified value

    • This is something to improve for the future
  • We will provide support to the full LDP hierarchy (discussion on the mailing-list).

    • Our interpretation of Sec. implements that POST of content types not managed by the platform (i.e., not suitable Rio parser registered) adds a LDP-RS as member of the container, linking (dct:hasFormat/dct:isFormatOf) to the actual LDP-NR (URI is build by appending the file extension according the content type)

  • Sec. 5.2.11 (rel='describedby'-Link) will be fulfilled by pointing to this page.

    • Link: <http://wiki.apache.org/marmotta/LDPImplementationReport>; rel="describedby"

  • For the time beeing, only LDP-BCs are supported

  • PATCH accepts application/rdf-patch only

    • Patches with the predicate ldp:contains will result in a HTTP 409 Conflict


For accessing this experimental feature you'd need to follow these instructions:

First install all artifacts:

mvn install

And launch the webapp (at launchers/marmotta-webapp/ ) with the experimental features enabled:

mvn clean tomcat7:run -Pexperimental,kiwi,cleanall


Although not strictly required, it would be good to have some background what's happening under the hood with these commands. For that, please refer to the relevant documents listed above.

Add a source resource to a container

curl -i -X POST -d @src/test/resources/test.ttl -H "Content-Type: text/turtle" -H "Slug: test" http://localhost:8080/ldp/container1
curl -i -H "Accept: text/turtle" http://localhost:8080/ldp/container1/test

Add a binary resource to a container

curl -i -X POST --data-binary @src/test/resources/test.png -H "Content-Type: image/png" -H "Slug: test2" http://localhost:8080/ldp/container2
curl -i http://localhost:8080/ldp/container2/test2
curl -i -H "Accept: text/turtle" http://localhost:8080/ldp/container2/test2.png
curl -i -H "Accept:  image/png" http://localhost:8080/ldp/container2/test2.png

LDPImplementationReport (last edited 2014-09-16 16:23:40 by SergioFernandez)