- From: Roger Menday <roger.menday@uk.fujitsu.com>
- Date: Tue, 22 Jan 2013 14:25:36 +0000
- To: Henry Story <henry.story@bblfish.net>
- CC: "ashok.malhotra@oracle.com" <ashok.malhotra@oracle.com>, "public-ldp-wg@w3.org" <public-ldp-wg@w3.org>
- Message-ID: <17BCCB93-2E1C-45E5-A492-B17E218DF625@uk.fujitsu.com>
>> Hi Henry: >> Erik's solution will work. >> You either POST to a collection which will create the LDPR > > You POST a Graph or a binary to a collection, right? Those are pretty much complementary > classes of things. > > >> or you do a POST which will create a link to an already existing LDPR. > > You would POST what to the collection? maybe : <> ldp:link <http://www.someremoteserver.com/Tracker/1/Bug/1> . Roger > Whatever you POST can be interpreted as a graph or a binary, and so falls into the previous model of > creating a new LDPR. > >> When you delete the collection all the members are deleted. The members may be LDPRs - which gives the containment semantic - or they may be links to LDPRs which gives the aggregation semantic. > > Currently at the protocol level a ldp:Container and an ldp:Resource have > exclusive methods of interaction, which is why those types of objects do not > have any members in common. > > That does not mean that you cannot create different subProperties > of rdfs:member such that one requires deletion and the other not. > Call the one that requires deltion ldp:contains. The problem is that: > > 1. you can only add ldp:contains to an ldp:Container, and the > deletion property be true. > 2. You have no way of adding with a POST other an rdf:member property > to a ldp:Collection that is not an ldp:contains relation at present > ( Perhaps by PATCHing an ldp:Container? That has not been defined though) > > In any case distinguishing such a relation would not change that > ldp:Containers and ldp:Aggregations are very different things. > > > >> >> The advantage of this approach is that you can mix containment and aggregation semantics in the >> same collection. The disadvantage is that it's a bit more complex and requires the user to >> be smarter. We could try and fix that with examples in the spec. >> All the best, Ashok >> >> On 1/22/2013 4:05 AM, Henry Story wrote: >>> On 22 Jan 2013, at 12:58, Henry Story<henry.story@bblfish.net> wrote: >>> >>>> On 22 Jan 2013, at 11:59, "Wilde, Erik"<Erik.Wilde@emc.com> wrote: >>>> >>>>> On 2013-01-21 22:22 , "Andy Seaborne"<andy.seaborne@epimorphics.com> >>>>> wrote: >>>>>> 1/ The reference may be to an external resource. >>>>>> 2/ An LDP-R may be in several aggregations. >>>>>> 3/ An LDP-R may exist before it's put in an aggregation and be a free >>>>>> standing resource (one person in several address books) >>>>>> Server-driven deletion isn't appropriate. >>>>>> A container provides management, which is ties to the creation, sole >>>>>> managed reference and responsibility. An aggregation does not have >>>>>> those features. >>>>> i still don't understand why we would even have to differentiate >>>>> collections for containment and aggregation, this unnecessarily >>>>> complicates the model. a collection accepts members. these may be >>>>> self-contained or have a link to external content, but the collection >>>>> doesn't care. the collection just manages whatever you hand it. it does so >>>>> with the protocol-relevant data that members MUST/SHOULD/MAY specify. >>>>> content is not protocol-relevant data, it's payload. >>>>> >>>>> - if you always POST self-contained members, you effectively have a >>>>> "containment" collection. >>>>> >>>>> - if you always POST members with references, you effectively have an >>>>> "aggregation" collection. >>>>> >>>>> - you can happily POST a mix of both, and when GETting each member, >>>>> clients can tell which member is self-contained and which is linked, >>>>> because of what they GET. >>>>> >>>>> - when you DELETE the collection, you DELETE the things that you've POSTed >>>>> to it. nothing more, nothing less. >>>>> >>>>> what's keeping us from simplifying our model like this, and why would we >>>>> need to distinguish "collection types"? what's the benefit of a more >>>>> complicated model? >>>> The argument I put forward is written up in the Lemma: >>>> >>>> http://www.w3.org/2012/ldp/wiki/ISSUE-37#Lemmas >>>> >>>> LDPC and LDPAs/LDPRs are different because of the semantics of >>>> how you interact with them. >>> Here: I updated it >>> >>> [[ >>> >>> >>> { >>> ldp:Container owl:disjointWith ldp:Aggregation . >>> } defendedBy [ = g1; foaf:member Arnaud,<http://bblfish.net/people/henry/card#me> ]; >>> =<#lemma1>; >>> rdfs:note """ >>> Reasons: >>> POST semantics are different: >>> 1. when you POST content on an ldp:Container you >>> a) will create a new GETable resource whose name is added to the ldp:Container >>> via the rdfs:member relation >>> b) and relative uris in the posted document are interpreted relative to >>> the created resource >>> 2. when you POST a graph onto an LDPR ( or an LDPA ) then >>> a) the contents of the graph are appended to the LDPR (if >>> ISSUE-45 passes ( http://www.w3.org/2012/ldp/track/issues/45 ) >>> b) the relative URIs are resolved relative to the LDPR >>> c) no new resource MUST be created. >>> DELETE semantics are different: >>> 1.LDPC >>> a. Deleting an LDPC will delete all its members >>> b. Deleting a LDPC member directly, removes it from the LDPC >>> 2.LDPA >>> a. Removing a resource membership relation from an LDPA does not delete the resource itself. >>> b. Deleting a resource that is a member of an LDPA does not delete the rdf:member relation from the LDPA >>> """ . >>> ]] >>> >>> >>>> >>>>> cheers, >>>>> >>>>> dret. >>>>> >>>>> >>>> Social Web Architect >>>> http://bblfish.net/ >>>> >>> Social Web Architect >>> http://bblfish.net/ >>> >> > > Social Web Architect > http://bblfish.net/ >
Attachments
- application/pkcs7-signature attachment: smime.p7s
Received on Tuesday, 22 January 2013 14:26:24 UTC