- From: Roger Menday <roger.menday@uk.fujitsu.com>
- Date: Sun, 20 Jan 2013 12:42:54 +0000
- To: Nandana Mihindukulasooriya <nmihindu@fi.upm.es>
- CC: "public-ldp-wg@w3.org" <public-ldp-wg@w3.org>
- Message-ID: <D14AADC4-DD45-4EF0-BF5C-632EDF9B570D@uk.fujitsu.com>
On 20 Jan 2013, at 10:52, Nandana Mihindukulasooriya wrote: > Hi, > > On Sat, Jan 19, 2013 at 3:39 PM, Steve Speicher <sspeiche@gmail.com> wrote: > forgot to reply-all > > On Sat, Jan 19, 2013 at 8:57 AM, Steve Speicher <sspeiche@gmail.com> wrote: > > On Fri, Jan 18, 2013 at 6:11 PM, Henry Story <henry.story@bblfish.net> wrote: > >> > >> On 18 Jan 2013, at 22:23, Steve Speicher <sspeiche@gmail.com> wrote: > >> > >>> Henry's simple aggregation proposal [1] is close to the model I have > >>> in mind. I have a few comments: > >>> > >>> 1) ldp:Collection - this seems unnecessary in vocabulary. We now need > >>> to define semantics of it. For talking/terminology it is ok. it > >>> would be simpler to just have ldp:Container and ldp:Aggregation. I > >>> don't really see one as a subclass as the other. > >>> > >>> 2) Why do we need ldp:member and ldp:contains? What if my model > >>> already has terms defined like foaf:knows? Do I need to insert > >>> another triple for each entry of the container vs. just using > >>> ldp:containerMemberPredicate? If I did have my foaf:knows, would it > >>> be expected that I would link to ldp:member? If so simply use > >>> owl:SubPropertyOf ? > >> > >> I should perhaps have chosen a different namespace for these, and not > >> ldp. Perhaps ldpTst or something. > >> > >> The point of having these three classes, and these two relations, > >> is just to help with clarity. These don't have to be adopted > >> officially. Having a ldp:contains and an ldp:member, and having > >> these have different rdf:domains, does not mean we cannot then make > >> them owl:sameAs some well known vocabulary later, or adopt them for > >> ldp. > >> > > One primary difference with the owl:sameAs approach is the global > > nature of that statement. Perhaps there are cases with my specific > > application where the predicate is only a 'containment' predicate for > > the current associated container, not every and all instances. The > > ldp:memberPredicate minimizes the scope. > > I agree with Steve, it is quite useful for us to tell which is the 'containment' predicate or 'aggregation' for each instance of a container or an aggregation. I think current spec does a good job here with the ldp:memberPredicate and I think it would be nice to adapt the same for the aggregation too. However, I think this knowledge is only important to the server if it provide any additional functionality using this property like for example the current ldp:Container allows paging, getting only the non-member properties, etc. Are we planning to provide such functionalities with ldp:Aggregation ? > > I tried to think of any use-cases of a hybrid collection which has to contain both 'containment' properties and 'aggregation' properties but I couldn't think of any reasonably good example from real world. In the implementation-wise, I agree with Henry that there are very good reasons to keep them disjoint such that the behavior on POST ( ldp:Container creating new resources vs ldp:Aggregation just adding new triples to the aggregation) and how the relative URIs are resolved, etc i.e. ldp:Aggregation behaves like an LDPR not LDPC. If they are disjoint, the same ldp:memberPredicate (or a better renamed one) can be used for both. I don't know whether they should have diffrent default values depending on whether the subject is an ldp:Container or an ldp:Aggregation. > > When I was thinking about the use cases, One that came to my mind where it can have two 'containment' properties. For example, if I have a group where I have both admins and users and I want to make it an aggregation. e.g. > > <group> a :Group; > :admin <a>, <b> ; > :user <c>, <d> . > A User (a,b,c or d) is Composed inside a System resource. Inside a Group resource, there are regular links :admin and :user, referencing the User resources. Is that what you are saying above ? What about an example of mixed composition/aggregation from the Bug Tracker scenario? Usually the :has_bug relationship between a Tracker and a Bug is Composition (and one could argue that is the Tracker is deleted, all the Bugs inside are deleted too). However, it could be that a Tracker :has_bug on a separate system, i.e. Bugs are linked by composition and 'aggregation'. (???) Roger > Wonder whether it is a valid user case ? > > Best Regards, > Nandana
Attachments
- application/pkcs7-signature attachment: smime.p7s
Received on Sunday, 20 January 2013 12:43:42 UTC