- From: Henry Story <henry.story@bblfish.net>
- Date: Fri, 1 Feb 2013 20:18:23 +0100
- To: public-ldp-wg@w3.org
- Cc: Steve Battle <steve.battle@sysemia.co.uk>, Alexandre Bertails <bertails@w3.org>, Joe Presbrey <presbrey@gmail.com>
- Message-Id: <C29C4559-1C81-49F9-B0DC-04018802D77E@bblfish.net>
This contribution aims at advancing our understanding of issues ISSUE-15: sharing binary resources and metadata ISSUE-37: What is the LDP data model and the LDP interaction model? In the ISSUE-37 wiki page I put forward an inital interpretation of Atom in Turtle [1] which seemed very reasonable, and which got Erik Wilde's approval. Steve Battle pointed out [2] that the binary content posted, functions differently from a normal graph post. When POSTing a graph serialisation to a LDPC the rdfs:member that results in the collection refers to a resource that (usually) contains the information one POSTed ( <entry1> ). On the other hand when POSTing a binary the rdfs:member created in the collection refers to an entry ( <entry2> ) not the posted binary <mouse.gif> as shown in this subset of the graph shown in the wiki here: <> a ldp:Container; rdfs:member <entry1>, <entry3> . <entry1> :summary "some text" . <entry3> :content <mouse.gif> . If we look at Section 9.6.1. of AtomPub RFC5023 [3], Where it describes the POSTing of some binary content POST /edit/ HTTP/1.1 Host: media.example.org Content-Type: image/png Slug: The Beach Authorization: Basic ZGFmZnk6c2VjZXJldA== Content-Length: nnn ...binary data... The result is the following XML <?xml version="1.0"?> <entry xmlns="http://www.w3.org/2005/Atom"> <title>The Beach</title> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2005-10-07T17:17:08Z</updated> <author><name>Daffy</name></author> <summary type="text" /> <content type="image/png" src="http://media.example.org/the_beach.png"/> <link rel="edit-media" href="http://media.example.org/edit/the_beach.png" /> <link rel="edit" href="http://example.org/media/edit/the_beach.atom" /> </entry> Which we could interpret as ( applying some natural interpretations on what a link relation means, which may be a bit information lossy ) _:e1 :title "The Beach"; :id "urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a"; :update "2005-10-07T17:17:08Z"^^xsd:dateTime; :author [ :name "Daffy" ]; :content <the_beach.png>; :edit <the_beach.atom> . If this is to enter into an ldp:Container the ldp:Container needs to know what it is to point to . In the example on the wiki I first chose to point to the metadata. <> a ldp:Container; rdfs:member <the_beach.atom> . But Steve Battle's suggestion is that the following is more sensible: <> a ldp:Container; rdfs:member <the_beach.png> . That is the question is what should be the name we give to the blank node _:e1. This is unspecified in atom, so we could go either way. If we chose the latter then the ldp:Container can show in detail upon a GET the following graph [3] : <> a ldp:Container; rdfs:member <the_beach.png>. <the_beach.png> :title "The Beach"; :id "urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a"; :update "2005-10-07T17:17:08Z"^^xsd:dateTime; :author [ :name "Daffy" ]; :content <the_beach.png>; :edit <the_beach.atom> . So now we would both know where to get the metadata, and where to get the content. What may not fit so well was the part that I left out, and that is that on POSTing the picture the headers returned by the AtomPub server are according to the spec: HTTP/1.1 201 Created Date: Fri, 7 Oct 2005 17:17:11 GMT Content-Length: nnn Content-Type: application/atom+xml;type=entry;charset="utf-8" Location: http://example.org/media/edit/the_beach.atom That is they contain the location of the metadata, not the image, ie the location points <the_beach.atom> . On refelction this is not that far from what some people ( such as Alexandre Bertails, and Joe Presbrey who wrote data.fm ) have suggested, namely that the result return a link to a metadata resource, using the convetions put forward in RFC5988 [5], which being much more recent than Atom should arguably get precendence. The previous result could then be: HTTP/1.1 201 Created Date: Fri, 7 Oct 2005 17:17:11 GMT Content-Length: nnn Content-Type: text/turtle Link: <the_beach;meta>, rel="meta" In this way one could allow the Atom intuitions to work nicely with the LDP ones I think, whilst having a very clean model that makes no special case about binary, graph or other data. Graphs and binaries can have their metadata or acl resources. ACLs would then just be a specific metadata of type rel="acl". Having resolved these momentous issues I wish you all a good weekend. Henry [1] http://www.w3.org/2012/ldp/wiki/ISSUE-37#POSTING_Binary_Content [2] http://lists.w3.org/Archives/Public/public-ldp-wg/2013Feb/0006.html [3] https://tools.ietf.org/html/rfc5023#section-9.6.1 [4] ( It looks better with owl:sameAs notation as shown in the wiki but wrapping in e-mail does not work so well, and these lines get long ) [5] http://tools.ietf.org/html/rfc5988 Social Web Architect http://bblfish.net/
Attachments
- application/pkcs7-signature attachment: smime.p7s
Received on Friday, 1 February 2013 19:18:54 UTC