- From: Nandana Mihindukulasooriya <nmihindu@fi.upm.es>
- Date: Sun, 20 Jan 2013 11:52:14 +0100
- To: "public-ldp-wg@w3.org" <public-ldp-wg@w3.org>
- Message-ID: <CAAOEr1mRiZM2D=FTuGwbLOZJpcUpu1sfHLJ2FmPuXNKU+tCLWw@mail.gmail.com>
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> . Wonder whether it is a valid user case ? Best Regards, Nandana
Received on Sunday, 20 January 2013 10:53:01 UTC