- From: Henry Story <henry.story@bblfish.net>
- Date: Tue, 29 Jan 2013 17:28:59 +0100
- To: "Wilde, Erik" <Erik.Wilde@emc.com>
- Cc: "ashok.malhotra@oracle.com" <ashok.malhotra@oracle.com>, "public-ldp-wg@w3.org" <public-ldp-wg@w3.org>
- Message-Id: <81931F75-7CDC-4EEB-9391-780C018848C0@bblfish.net>
On 29 Jan 2013, at 16:09, "Wilde, Erik" <Erik.Wilde@emc.com> wrote: > hello henry. > > On 2013-01-29 15:48 , "Henry Story" <henry.story@bblfish.net> wrote: >> You are saying that you need two relation >> ldp:contains a rdf:Property; >> rdfs:domain ldp:Container; >> rdfs:comment """ >> deleting this relation requires deletion of the resource that is the >> object >> of this relation. >> """ >> ldp:link a rdf:Property; >> rdfs:comment """ >> a relation to another resource, that like a symbolic link on a unix >> file system >> does not entail the deletion of the object of the relation if removed. " >> >> Mind you that ldp:link is so general you may wonder why not just use the >> top level >> property of rdf. Is there anything special about this link property at >> all? > > do i really need two relations? When I do an HTTP GET on your Container I need to be able to distinguish which things are contained in the container and which things are linked from it. So assuming your http://my.example/wilde/ container returns G1 = { <> a ldp:Container; rdfs:member <friends>, </joe> . } Then how would an agent know which of <member> or </joe> was a contained element, and which one was linked? This is what the above relations propose to do. One can the have your server return the following which implies the above graph G2 = { <> a ldp:Container; ldp:contains <friends>; ldp:link </joe> . } Now a client can tell which of those resources if deleted from <http://my.example/wilde/> would in fact be removed. The answer is <friends> would be removed. Also you know that if you send a DELETE to <friends> it will be removed from the ldp:Container. Notice how G2 logically implies G1, ie: any triple that is incompatible with G1 is incompatible with G2 . We can write this ( see http://www.w3.org/2000/10/swap/doc/CwmBuiltins.html ) G2 log:implies G1 . > i think (but maybe i am thinking something > wrong here) i need just one relation ldp:Content, ( note in rdf by convention we have Classes start with uppercase letters, and relations start with lower case ones. ) So you mean ldp:content a rdf:Property . > and it simply associates content. there must be exactly one such triple in what i POST. > depending on the document i POST, i may choose to include the triples that are > associated with that content, or not. So perhaps you POST P1 = { <> ldp:content <http://bblfish.net/> . } to <http://my.example/wilde/> then a new GET on that resource will return G3 = { <> a ldp:Container; ldp:contains <friends>; ldp:link </joe>, <http://my.example/wilde/> . } ( assuming you have agreed with me that we need a to distinguish contained members and just symbolic links ) > if i include the triples, then i am > "embedding", if i don't, then i am "linking". the server doesn't look or > care (what it does do, of course, is to validate that there must be > exactly one ldp:Content in the RDF i am POSTing). Ok so for an embedding example now: Perhaps you post (forgetting namespaces for the moment ) P2 = { <> ldp:content [ a animal:Cat; foaf:name "kittykitty" foaf:depiction <img/kity.jpeg> ] . } So now because there is additional information on the blank node that represents an animal, Your idea is that a new GET on <http://my.example/wilde/> will return G3 = { <> a ldp:Container; ldp:contains <friends>, <kitty>; ldp:link </joe>, <http://my.example/wilde/> . } Where a GET on <http://my.example/wilde/kitty> will return perhaps K1 = { [] foaf:name "kittykitty"; foaf:depiction <img/kitty.jpeg> . } > when a client GETs the > RDF, content is either embedded in the resource, or it's not, and the > rules of the ldp:Content link then say that a client can try to GET the > actual content from the linked URI. I am not sure if I have got the jist of what you are aiming at. But even here you see it will be useful to distinguish linked elements that when deleted will no longer appear in the container <http://my.example/wilde/> from elements that are just linked. Anyway, is this what you are getting at or am I misunderstanding what you are thinking of? > > cheers, > > dret. > Social Web Architect http://bblfish.net/
Attachments
- application/pkcs7-signature attachment: smime.p7s
Received on Tuesday, 29 January 2013 16:29:33 UTC