- From: Alexandre Bertails <bertails@w3.org>
- Date: Thu, 14 Nov 2013 00:38:23 -0500
- To: Nandana Mihindukulasooriya <nmihindu@fi.upm.es>, Linked Data Platform WG <public-ldp-wg@w3.org>
Hi Nandana, On 11/13/2013 03:47 AM, Nandana Mihindukulasooriya wrote: > Hi, > > I also agree with Alexandre that it is useful to always have a way to > traverse from an LDPC to it's members. > > We have two relationships now linking LDPC to its members. > > (1) ldp:created - the relation with LDPC HTTP resource (in the def. > "which is uniquely identified by a URI that responds to client requests > for creation, modification, and enumeration of its members") to member > HTTP resource. This is something ldp specific / domain independent and > described using LDP vocabulary. This is allows to traverse from LDPC to > a LDPR and to know which HTTP resource are managed by this LDPC. I think > even in the case of converting some existing data to LDP as the use case > SteveS mentioned several times, it should be possible to add this > relation to the HTTP resources that tracks / manages ( so the name > ldp:created may not be the best name -> ldp:tracks, ldp:manages). > > (2) ldp:membershipX - the relationships between the entities in the > domain and additional consequences of posting something to a LDPC. This > (most of the time) is domain specific and described by a domain > vocabulary. This allows to describe richer relationships in data and > automatically create those relationships upon creating a new resource. > > Right now (1) is optional and (2) is mandatory. I think it would be nice > for us to consider both of them mandatory or (1) is mandatory and (2) is > optional. Looks like the group is not opposed to make (1) mandatory. I would personally prefer (2) to be optional. And if (2) is mandatory, then I'd like to be able to align its interpretation to the semantics of ldp:created to nullify its effect, but I'm not sure if it's possible: [[ :_1234 ldp:containerResource <>; ldp:containsRelation ldp:created; ldp:insertedContentRelation ??????. ]] Alexandre. > If (1) is mandatory and (2) is optional, we can have very simple > containers like (if you don't want richer relationships represented in > your LDPC). In this case, as a client I know that ldp:created relation > will always be created and I can find the other relations that will be > created by getting ldpc-url?non-member-properties. If there are no > ldp:membershipX, that means there won't be any other relations created. > > </shopping/cart/> a ldp:Container; > ldp:created </shopping/cart/order1>; > ldp:created </shopping/cart/order2>. > > If both (1) and (2) are mandatory, the container won't be this simple > but you will always have a way to traverse from LDPC its members > (specially when ldp:membershipObject/ldp:insertedContentRelation is > not ldp:MemberSubject). > > The main downside of this is, as againSteveS mentioned several times, > this lead to redundant triples in one common scenario. > > </shopping/cart/> a ldp:Container; > ldp:membershipSubject <#>; > ldp:membershipPredicate o:oder; > ldp:membershipObject ldp:MemberSubject. > > ldp:created </shopping/cart/order1>; > ldp:order </shopping/cart/order1>; > ldp:created </shopping/cart/order2>; > ldp:order </shopping/cart/order2>. > > However, I think having (1) as mandatory will be quite helpful. > > Best Regards, > Nandana > > > > On Wed, Nov 13, 2013 at 12:32 AM, Arnaud Le Hors <lehors@us.ibm.com > <mailto:lehors@us.ibm.com>> wrote: > > Henry Story <henry.story@bblfish.net > <mailto:henry.story@bblfish.net>> wrote: > > > My definition contains > > an "or": > > - either an LDPR is created through a POST > > - or if an LDPR is DELETEd the LDPC needs to remove the > membership triples > > > > (see _http://www.w3.org/2012/ldp/wiki/Member_) > > I think there is a problem with this proposal in that it limits > members to being LDPRs. This doesn't match what we have in the spec > today and what we've been talking about all along. > > The spec clearly defines that an LDPR is an "HTTP resource whose > state is represented in RDF" and although this definition now needs > updating to match the more complex membership mechanism we've > developed I think the intent of what the members of a container > appear in the definition of an LDPC: "An LDPR representing a > collection of same-subject, same-predicate triples which is uniquely > identified by a URI that responds to client requests for creation, > modification, and enumeration of its members." See > http://www.w3.org/TR/2013/WD-ldp-20130730/#terminology > > So, as the spec stands, the members of a container are the resources > listed as members. These are the resources listed using the > membershipXXX stuff. Some of these may have been created by POSTing > to the container some may not. Some may be LDPRs, some may not > (binaries for example). > > In the case where one uses ldp:insertedContentRelation the member is > the resource found using the object of that property in the POSTed > resource. This actually was the whole point of adding this feature > to the spec. Roger wanted to make zaza the cat the member of his > container as opposed to the information resource that talks about zaza, > > Going back to Alexandre's orginal question, in his example below > this means <urn:isbn:0470396792> is the member: > > $ GET _http://example.com/shopping/__cart/_ > > <_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> > > ]] > > Similarly, we agreed that when POSTing a binary to a container, it > is the binary that is listed as a member, and metadata associated to > it is to be found from the binary. See section 5.9.2: > http://www.w3.org/TR/2013/WD-ldp-20130730/#ldpc-5_9_2(side note: I > wonder why this is under OPTIONS rather than POST, looks like a bug > to me). > > Given that, I don't see a problem with what figuring out what the > members of a container are. > Now, I understand Alexandre and others also want to be able to find > the resources that are created as a result of a POST, including in > the above example. I think that's a fair request but I don't think > that requires revisiting what being a member means. > -- > Arnaud Le Hors - Software Standards Architect - IBM Software Group > >
Received on Thursday, 14 November 2013 05:38:29 UTC