Re: PROV-ISSUE-135 (collection-names): Collection relations have confusing names [Data Model], ISSUE-137,

This issue is still open.

The current syntax in DM [1] is much improved:

CollectionAfterInsertion(c2,c1, k, v)
CollectionAfterRemoval(c2,c1, k)

However the terms "insertion" and "removal" still implies mutability
of c1, which is confusing. Bits of the text sounds like if c2 is a
specializationOf c1 - where c1 covers the collection both before and
after adding (k,v):

Record: CollectionAfterInsertion(c2,c1, k, v) denotes that collection
c2 represents the new state of collection c1, following the insertion
of pair (k,v) into c1




In ProvRDF [2] I used "expanded"/"Expansion" and "reduced/Reduction" -
but I'm not very decided on this - it depends on if
CollectionAfterInsertion supports overwriting key k or not.



I suggest:

wasExpandedCollection(c2, c1, k, v)
wasReducedCollection(c3, c2, k, [v])

where wasExpandedCollection can't overwrite a previously inserted k
without first having a wasReducedCollection - and where the content of
c2 is exactly the content of c1 and the addition of (k,v). c3 has same
content as c2, except it does not have(k, v).


This is quite restrictive, but also solves ISSUE-137 (isolation) and
ISSUE-136 (functional). See separate emails.





[1] http://dvcs.w3.org/hg/prov/raw-file/default/model/ProvenanceModel.html#record-Collection
[2] http://www.w3.org/2011/prov/wiki/ProvRDF#Collections

On Tue, Nov 15, 2011 at 11:07, Paolo Missier <Paolo.Missier@ncl.ac.uk> wrote:
> Hi Stian
>
> sorry I am only picking this up now. Going through a massive backlog. I am
> still the first to respond, anyway.
>
> I agree that the use of passive in relation names may be confusing.
> Regarding your specific proposals copied below:
>
> here is a counter-proposal. if we wanted to stay consistent with the
> (slightly obsessive) use of passive, how about
>
> wasResultOfInsertion(c2,c1)
> wasResultOfRemoval(c2,c1)
>
> I am not sure I like the "by" and "at" suffixes. "key" and "value" should
> stay as they denote the dictionary data structures used. So how about:
>
> wasResultOfInsertion_key(c,k)
> wasResultOfInsertion_entity(c,v)
>
> wasResultOfRemoval_key(c,k)
>
> --Paolo
>
>
>
>> As I discussed this, we found that wasAddedTo_Coll(c2,c1) means c2 is like
>> a superset of c1 - but without requiring either to be a set. So we think
>> PROV-DM are describing something like a bag collection of (key,value) pairs,
>> but did not bother checking wikipedia what the equivalent of superset and
>> subset is for bags.
>>
>> Instead I just opted for "expansion" and "reduction", and use verbs that
>> relate the actual entities:
>>
>>
>> :col2 a prov:Collection ;
>>     prov:wasExpandedFrom :col1 ;
>>     prov:wasExpandedBy :e2 ;
>>     prov:wasExpandedAt :key2 .
>>
>> corresponding to:
>>
>>   wasAddedTo_Coll(c2,c1)
>>   wasAddedTo_Key(c2,k1)
>>   wasAddedTo_Entity(c2,e1)
>
>
>>
>>
>>
>> and equivalent for reduction:
>>
>>
>> :col3 a prov:Collection ;
>>     prov:wasReducedFrom :col2 ;
>>     prov:wasReducedAt :key1 .
>
>
>
>
>
>
> On 10/30/11 12:05 AM, Provenance Working Group Issue Tracker wrote:
>>
>> PROV-ISSUE-135 (collection-names): Collection relations have confusing
>> names [Data Model]
>>
>> http://www.w3.org/2011/prov/track/issues/135
>>
>> Raised by: Stian Soiland-Reyes
>> On product: Data Model
>>
>> http://www.w3.org/TR/prov-dm/#expression-Collection introduces relations
>> for expressing collections;
>>
>>
>>> Expression: wasAddedTo_Coll(c2,c1) (resp. wasRemovedFrom_Coll(c2,c1))
>>> denotes that collection c2 is an updated version of collection c1, following
>>> an insertion (resp. deletion) operation.
>>> Expression: wasAddedTo_Key(c,k) (resp. wasRemovedFrom_Key(c,k)) denotes
>>> that collection c had a new value with key k added to (resp. removed from)
>>> it.
>>> Expression: wasAddedTo_Entity(c,e) denotes that collection c had entity e
>>> added to it.
>>
>>
>> I discussed this with some colleagues who are new to PROV, and they found
>> the names very confusing. For instance wasAddedTo_Coll(c2, c1) sounds like
>> c2 was added to c1.
>>
>> I understand that this _Coll/Key/Entity dispatching is to keep these as
>> wasDerivedFrom subproperites, and avoid introducing an explicit process
>> execution with three different usage roles.
>>
>>
>>
>> When encoding this for PROV-O I decided to rename them, but keep them as
>> subproperties of prov:wasDerivedFrom:
>>
>>
>> http://dvcs.w3.org/hg/prov/raw-file/4b6e3db74001/ontology/Overview.html#collections
>>
>>
>> As I discussed this, we found that wasAddedTo_Coll(c2,c1) means c2 is like
>> a superset of c1 - but without requiring either to be a set. So we think
>> PROV-DM are describing something like a bag collection of (key,value) pairs,
>> but did not bother checking wikipedia what the equivalent of superset and
>> subset is for bags.
>>
>> Instead I just opted for "expansion" and "reduction", and use verbs that
>> relate the actual entities:
>>
>>
>> :col2 a prov:Collection ;
>>     prov:wasExpandedFrom :col1 ;
>>     prov:wasExpandedBy :e2 ;
>>     prov:wasExpandedAt :key2 .
>>
>> corresponding to:
>>
>>   wasAddedTo_Coll(c2,c1)
>>   wasAddedTo_Key(c2,k1)
>>   wasAddedTo_Entity(c2,e1)
>>
>>
>>
>> and equivalent for reduction:
>>
>>
>> :col3 a prov:Collection ;
>>     prov:wasReducedFrom :col2 ;
>>     prov:wasReducedAt :key1 .
>>
>>
>> I propose to rename the PROV-DM relations for collections to match the
>> PROV-O style above.
>>
>>
>>
>
>
> --
> -----------  ~oo~  --------------
> Paolo Missier - Paolo.Missier@newcastle.ac.uk, pmissier@acm.org
> School of Computing Science, Newcastle University,  UK
> http://www.cs.ncl.ac.uk/people/Paolo.Missier
>
>



-- 
Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester

Received on Wednesday, 22 February 2012 15:42:20 UTC