W3C home > Mailing lists > Public > public-ldp-wg@w3.org > November 2013

Re: How to find the members of an LDPC?

From: Eric Prud'hommeaux <eric@w3.org>
Date: Wed, 6 Nov 2013 15:20:23 -0500
To: Henry Story <henry.story@bblfish.net>
Cc: Steve K Speicher <sspeiche@gmail.com>, Alexandre Bertails <bertails@w3.org>, Linked Data Platform WG <public-ldp-wg@w3.org>
Message-ID: <20131106202020.GG25913@w3.org>
* Henry Story <henry.story@bblfish.net> [2013-11-06 18:26+0100]
> 
> On 6 Nov 2013, at 15:01, Steve Speicher <sspeiche@gmail.com> wrote:
> 
> > Hi,
> > 
> > 
> > On Tue, Nov 5, 2013 at 7:49 PM, Alexandre Bertails <bertails@w3.org> wrote:
> > Hi guys,
> > 
> > I understand ldp:containerResource, ldp:containsRelation and
> > ldp:insertedContentRelation as a _set of instructions_ for the LDPC to
> > manage some domain-based relations, but I don't see a way to find the
> > LDPRs created by the LDPC.
> > 
> > Please consider the following example:
> > 
> > $ GET http://example.com/shopping/cart/
> > 
> > [[
> > </shopping/cart/> a ldp:Container;
> >    ldp:containerResource <#>;
> >    ldp:containsRelation order:contains;
> >    ldp:insertedContentRelation foaf:primaryTopic.
> > ]]
> > 
> > $ POST http://example.com/shopping/cart/
> > 
> > [[
> > <> foaf:primaryTopic <urn:isbn:0470396792> .
> > ]]
> > 
> > $ GET http://example.com/shopping/cart/
> > 
> > [[
> > </shopping/cart/> a ldp:Container;
> >    ldp:containerResource <#>;
> >    ldp:containsRelation order:contains;
> >    ldp:insertedContentRelation foaf:primaryTopic.
> > 
> > <#> order:contains <urn:isbn:0470396792>
> > ]]
> > 
> > Question: from the last GET, what is the LDPR for <urn:isbn:0470396792>?
> > 
> > If the ldp:member relation does not exist, how would a client deduce
> > the members that were created 
> > ?
> > 
> > One would assume that the POST would return a 201-Created status message and Location header of the URL for the new resource created.  The server may produce another triple to link the created resource (LDPR), not sure what it might be:
> >     <> ex:describes <#>. 
> 
> yes, the post returns a Location header. But that only allows the client that POSTed the
> resource to know the address of the LDPR created. It would be useful if other clients could
> also find that resource by asking the LDPC.

If an LDP client POSTs an appropriate RDF message to an LDP server, the server creates a new resource and tells that client what the resource is. What other clients would want to know about the newly created resource? How would they even know it exists?


> > What really matters as client is to know what interactions are
> > possible. If an interaction model were to be defined, I would expect
> > to see something like that:
> > 
> > 1. HTTP HEAD on </foo/> tells client "I am an LDPC" as it returns a header
> >    Link: <http://www.w3.org/ns/ldp#Container>; rel="type"
> > 
> > 2. from a GET on </foo/>, a client finds/deduces the LDPRs managed by
> >    </foo/> eg. with triples like { </foo/> ldp:member </foo/bar> }
> > 
> > 3. HTTP HEAD on </foo/bar> tells client "I am an LDPR" as it returns a header
> >    Link: <http://www.w3.org/ns/ldp#Resource>; rel="type"
> > 
> > 4. HTTP DELETE on </foo/bar> MUST remove the LDPR and remove
> >    { </foo/> ldp:member </foo/bar> } from the LDPC
> > 
> > This is the interaction model defined by LDP ... with the exception of ldp:member this isn't defined but think you are saying ldp:containsRelation.  I can't tell if you are saying there is something missing or you are just describing roughly how it works.
> 
> I think alex meant ldp:created which we had defined in Spain, but which is still not in the ldp 
> ontology http://www.w3.org/ns/ldp
> 
> ldp:created a rdf:Property;
>        :comment "The subject LDPC created the object Resource.";
>        :domain ldp:Container;
>        :isDefinedBy ldp:;
>        :label "created";
>         :range ldp:Resource;
>          vs:term_status "unstable" .
> 
> ldp:member is probably a better name, as it better matches the intution that deleting
> the resource makes the relation false.   "created" tends to make one think that the relation
> remains true even when the object has been deleted. ( even though for pragmatic reasons one
> would want to remove the relation because it can no longer be dereferences ).
> Here is a definition of ldp:member I think Alexander is thinking of:
> 
> ldp:member a rdf:Property;
>        :comment "The subject LDPC created the object Resource, and that resource has not yet been deleted";
>        :domain ldp:Container;
>        :isDefinedBy ldp:;
>        :label "created";
>        :range ldp:Resource;
>        vs:term_status "unstable" .
> 
> 
> 
> 
> > 
> > - Steve
> >   
> > Alexandre.
> 
> Social Web Architect
> http://bblfish.net/
> 

-- 
-ericP

office: +1.617.599.3509
mobile: +33.6.80.80.35.59

(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.

There are subtle nuances encoded in font variation and clever layout
which can only be seen by printing this message on high-clay paper.
Received on Wednesday, 6 November 2013 20:20:58 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:17:46 UTC