- From: Khalid Belhajjame <Khalid.Belhajjame@cs.man.ac.uk>
- Date: Thu, 23 Feb 2012 10:44:00 +0000
- To: Stian Soiland-Reyes <soiland-reyes@cs.manchester.ac.uk>
- CC: public-prov-wg@w3.org
- Message-ID: <4F461870.9040204@cs.man.ac.uk>
On 23/02/2012 08:25, Stian Soiland-Reyes wrote: > > No, this is very good reasoning, I like it. > Great :-) > One issue is that PROV does not specify a way to assert the existing > members. > > I preferred the Involvement solution, but as the other alternative is > just 3 functional properties they also work directly on the collection > entity. > > Practical example (Let's see how easy it is to write Turtle on the phone): > > Khalid shortened: > > :c2 prov:wasObtainedAfterInsertion :c1 ; > prov:qualified [ > a prov:InsertionInCollection; > prov:entity :c1; > prov:key :k1; > prov:value :v1 > ] . > > (I assume wasObtained.. is subproperty of wasDerivedFrom, but perhaps > the involvement is not subclass of prov:Derivation?) > Yes, that's what I had in mind. c2 will be derived from c1, whereas the key and value pair they will be qualified attributes of that derivation. Thanks, khalid > > current provrdf shortened without involvement: > > :c2 prov:wasExpandedFrom :c1; > prov:wasExpandedWithKey :k1; > prov:wasExpandedWithValue :v1. > > (all subprops of wasDerivedFrom) > > On Feb 22, 2012 4:36 PM, "Khalid Belhajjame" > <Khalid.Belhajjame@cs.man.ac.uk > <mailto:Khalid.Belhajjame@cs.man.ac.uk>> wrote: > > Hi Stian, > > Thanks for giving this a try. > > CollectionAfterInsertion(c2,c1,k1,v1) > CollectionAfterRemoval(c2,c1,k) > > Basically, in the design you suggested you introduced > relationships between c2 and c1, but also between c2 and k1, > between c2 and v1, (and between c1 and k in the case of removal). > > Here, I am wondering if an alternative design that capitalizes on > the notion of involvement that we introduced in the OWL ontology > would be better. > > The idea is to have two binary object properties: > wasObtainedAfterInsertion and wasObtainedAfterRemoval (there may > be other better names) between the collections c1 and c2, and to > specify information about the key k1 and value v1 (or the key k in > the case of removal), using involvement. > > For example, we can have two classes RemovalInCollection, and > InsertionInCollection, which can be defined as subclasses of > CollectionInvolvement, which in turn is a subclass of Involvement. > And this involvement classes will have object properties that > point to the key and values. > > So now the question is why I think this design is better. If I am > not wrong, a binary property between two collections c1 and c2, > can capture all the information we need about insertion or > removal. To illustrate this, consider that we have: > > wasObtainedAfterRemoval(c2,c1). > > Given c1 and c2, we can deduce the entries of c1 that were removed > to obtain c2. > > Similarly, if we have: > > wasObtainedAfterInsertion(c2,c1) > > Then we can deduce information about the pair of <key,value> that > were inserted in c1 to obtain c2. > > In other words, binary properties would be enough to express all > what we want for insertion/removal in collections. And if we want > to specify explicitly the information that, we can infer > otherwise, then we can use involvement. > > Please take the above proposal with a pinch of salt, as I may have > got it completely wrong :-) > > khalid > > > > On 22/02/2012 15:04, Stian Soiland-Reyes wrote: > > Hi, > > I've tried to do a first take on collections: > > http://www.w3.org/2011/prov/wiki/ProvRDF#Collections > > I'm not very decided on this, and open for directions and > ideas. I've > not added it to the OWL, but the ProvRDF page should hint at what > subproperties/subclasses are intended. > > > Note that the DM section on Collections still need a fair bit > of work > which I should raise as new issues. (I'll close the old ones > that are > now fixed, such as EmptyCollection). > > >
Received on Thursday, 23 February 2012 10:44:24 UTC