- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Sat, 19 Jan 2013 14:15:12 -0500
- To: public-ldp-wg@w3.org
- Message-ID: <50FAF0C0.3020100@openlinksw.com>
On 1/19/13 6:26 AM, Henry Story wrote: > > On 18 Jan 2013, at 22:56, Arnaud Le Hors <lehors@us.ibm.defendedByom > <mailto:lehors@us.ibm.defendedByom>> wrote: > >> I agree with Steve. In particular, I don't see why we need to >> introduce new predicates to indicate membership. > > I did this essentially so that we can discuss the ontological > implications of the spec in > a formal manner. > > Earlier in the thread people were clamouring for clear distinctions, > which led to > your proposed vocabulary. If we can express those distinctions in > natural language then certainly we can also define them in RDF. The > advantage is that we then have a namespace, > and a reference for the words we use, and we can be clear as to what > different people > are proposing and how they are disagreeing. Note that the clarity does > not mean > rigid determination of everything. RDF is built on the open world > assumption. Every > statement you make in RDF is a restriction on the set of > interpretations ( the set > of possible worlds in which that statement is true ), which can be > then later clarified > with further restrictions. But you don't close the world by doing it. > > It is also possible to specify vocabulary items as unstable and later > remove them. Perhaps the following is better. > > @prefix ldpx: <http://www.w3.org/ns/ldpx#>. > @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . > @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . > @prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#> . > > > ldpx:Container a rdf:Class; > rdfs:note "deleting a Container deletes all its members"; > vs:term_status "unstable"; > rdfs:subClassOf ldpx:Collection . > > ldpx:Aggregation a rdf:Class; > rdfs:note "This covers what was known as weak aggregation. Deleting an Aggregation does not imply the deletion of its members" ; > vs:term_status "unstable"; > rdfs:subClassOf ldpx:Collection. > > ldpx:Collection a rdf:Class; > vs:term_status "unstable"; > rdfs:note "Thing that can have members, that has some notion of containership, to be clarified further" . > > ldpx:member a rdf:Property; > rdfs:domain :Aggregation ; > vs:term_status "unstable"; > rdfs:note "the relation between an aggregation and its members. Deleting an aggregation does not necessarily delete the members" . > > ldpx:contains a rdf:Property; > rdfs:domain :Container ; > vs:term_status "unstable"; > rdfs:note "the relation between a container and its contents. Deleting a Container deletes all the resources related to the container by this relation" . > see: > http://www.w3.org/2012/ldp/wiki/Issue-34_-_Aggregation:_simple_proposal > >> >> The spec currently defines ldp:membershipPredicate which you can use >> to specify which predicate you use with a default to rdfs:member. > > ok, so what we have then is > > { > ldpx:contains rdfs:subPropertyOf rdfs:member . > ldpx:member rdfs:subPropertyOf rdfs:member . > } defendedBy [ = g1; foaf:member Arnaud ]; > owl:sameAs :c1 . > > It would be a further topic of simplification then to claim > > @prefix owl: <http://www.w3.org/2002/07/owl#> . > { > ldpx:member owl:sameAs rdfs:member . > } defendedBy g2 ; > owl:sameAs :c2 . > > I think I agree with those, but since that is one further step of > reasoning, I did not > want to assume that extra step immediately. I suppose that c1 and > c2 is currently the default position of the LDP group. So I can add > those to my > ontology. > > Unless I name these terms clearly, it is difficult to work out what > people are aiming at. > In fact expressing the above questions becomes difficult. > >> >> Unless we want to support a mix bag type of collection in which some >> members are contained and others are aggregated (i.e., some are >> deleted and others aren't when the collection is deleted) we don't >> need to add anything else than what we have. I'd say let's simply >> reuse ldp:membershipPredicate for Aggregations. > > Ok, so > > { > ldpx:Container owl:disjointWith ldpx:Aggregation . > } defendedBy [ = g3; foaf:member Arnaud ]; > owl:sameAs :c3 . > > And I think there are excellent reasons to accept that too, most > important of which: > > 1. when you POST content on an ldpx:Container you > a) will create a new GETable resource whose name is added to the > ldpx:Container via the (implied) ldpx:contains 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 ( which is an LDPA ) then > a) the contents of the graph are appended to the LDPR, > b) the relative URIs are resolved relative to the LDPR > c) ie: no new resource MUST be created. > > The nice thing is that we now have a proof for why those are disjoint. > So you can add > me to the members of g3 > > ie > > g3 foaf:member <http://bblfish.net/people/henry/card#me> . > >> >> In general, I think we should try and minimize the number of things >> we invent. > > indeed, but using the RDF reasoning tools at our disposal makes things > a lot > easier. So we should also make sure we use the tools available to us when > thinking about things ( I am not saying we need to have an LDP Server > implement > reasoning! ) > > Here is one more thing that came up. In the examples I named the LDPA with > a hash in order to be able to distinguish it from the LDPR it was > defined it. Ie: > I named the LDPR <http://localhost:9000/2013/aggReg> and the LDPA > <http://localhost:9000/2013/aggReg#ion> > > I think that there are two further interesting claims people could make > > Some would like to say that LDPRs can be LDPAs > > { > [] owl:intersectionOf ( ldpx:Resource ldpx:Aggregation ) > owl:differentFrom owl:Nothing . > } defendedBy g5; > owl:sameAs :c5 . > > That is compatible with my example. It is just that in the example I tried > not to take the special case. Essentally it would allow > > <http://localhost:9000/2013/aggregation> to contain > > { <> a ldpx:Aggregation . } > > Others may want to claim that > > { > ldpx:Aggregation rdfs:subClassOf ldpx:Resource . > } defendedBy g6; > owl:sameAs :c6 . > > And there may be good reason for that, but I am not aware of it yet. For the record, good stuff Henry! This is the way to achieve clarity re. these matters. Kingsley > > >> -- >> Arnaud Le Hors - Software Standards Architect - IBM Software Group >> >> >> Steve Speicher <sspeiche@gmail.com <mailto:sspeiche@gmail.com>> wrote >> on 01/18/2013 01:23:01 PM: >> >> > From: Steve Speicher <sspeiche@gmail.com <mailto:sspeiche@gmail.com>> >> > To: "public-ldp-wg@w3.org <mailto:public-ldp-wg@w3.org>" >> <public-ldp-wg@w3.org <mailto:public-ldp-wg@w3.org>>, >> > Date: 01/18/2013 01:23 PM >> > Subject: Feedback on Henry's proposal for ISSUE-34 >> > >> > 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 ? >> > >> > 3) What are the semantics of these collections? >> > >> > <1> a :Collection; >> > :contains <a>; >> > :member <b>. >> > >> > <2> a :Container; >> > :member <c>, <d>. >> > >> > <3> a :Aggregation; >> > :contains <e>, <f>. >> > >> > <4> a :Container, :Aggregation; >> > :contains <g>, <h>. >> > >> > I'd recommend that if there is a conflict, then aggregation is the >> > default. Though I don't feel strongly about it. >> > >> > 4) Can I convert a Container to an Aggregation (or vice versa)? It >> > would seem that it might make sense to go from Container->Aggregation >> > but not the other way, otherwise we'd have to define a bunch of rules. >> > >> > 5) Interaction model for resource creation: I would assume the way to >> > create a resource and add it to a collection would not change for >> > Aggregation, POST representation to collection, resource created and >> > added to collection. Right? >> > >> > [1] - >> http://www.w3.org/2012/ldp/wiki/Issue-34_-_Aggregation:_simple_proposal >> > >> > -- >> > - Steve Speicher >> > > > Social Web Architect > http://bblfish.net/ > -- Regards, Kingsley Idehen Founder & CEO OpenLink Software Company Web: http://www.openlinksw.com Personal Weblog: http://www.openlinksw.com/blog/~kidehen Twitter/Identi.ca handle: @kidehen Google+ Profile: https://plus.google.com/112399767740508618350/about LinkedIn Profile: http://www.linkedin.com/in/kidehen
Attachments
- application/pkcs7-signature attachment: S/MIME Cryptographic Signature
Received on Saturday, 19 January 2013 19:15:37 UTC