- From: Timothy Lebo <lebot@rpi.edu>
- Date: Sun, 1 Jul 2012 10:01:15 -0400
- To: Provenance Working Group <public-prov-wg@w3.org>
This was worked out with the latest prov-o Dictionary rework (to suit the Qualified pattern), which is now ending up as a Note.
I am closing this issue.
Tim
On Jun 1, 2012, at 1:40 PM, Stephan Zednik wrote:
>
> On May 25, 2012, at 2:30 AM, Stian Soiland-Reyes wrote:
>
>> This is to match the DM signature:
>>
>>> A membership relation, written memberOf(id, c, {(key_1, e_1), ..., (key_n, e_n)}, cplt, attrs), has:
>>>
>>> id: an optional identifier identifying the relation;
>>> after: an identifier (c) for the dictionary whose members are asserted;
>>> key-entity-set: a set of key-entity pairs (key_1, e_1), ..., (key_n, e_n) that are members of the dictionary;
>>> complete: an optional boolean Value (cplt); if true, it indicates that no other member belongs to the dictionary; if false, it indicates that other members belong to the dictionary; if unspecified, other members may belong to the dictionary.
>>> attributes: an optional set (attrs) of attribute-value pairs representing additional information about this relation.
>>
>> The prov:Membership intermediate class is thus the anchor point for
>> the id, attributes, and indication of complete membership (by use of
>> subclass of prov:CompleteMembership - however that is not currently in
>> PROV-O as it was uncertain at the time if it would make it into DM).
>
>
> ++
>
> It's a usage of the qualified relation linked data pattern (http://patterns.dataincubator.org/book/qualified-relation.html) to support optional attributes on memberOf relation as defined in the DM.
>
> In the DM memberOf currently has a 1 to many relationship of dictionary to key-entity pairs. This is a little cumbersome. We can support it with a qualified relationship (linked data definition), but do we want to?
>
> Actually, the more I look at this the more I agree that it's current modeling in the DM off.
>
> On the after qualified:
>
> Dictionaries are Entities. An update to a Dictionary is the result of an Activity which used the previous version of the Dictionary. A derivedFrom relationship can then be determined between the updated and previous dictionary entities.
>
> I think we can model updates to and creation of dictionaries using existing core prov relations. Membership seems redundant when we can just use an activity to create and update dictionaries.
>
> On the complete attribute:
>
> What is the justification for being able to say that a Dictionary membership is incomplete?
>
> Why say that a dictionary membership is complete? A Dictionary's membership should be simply what is stated. With RDF, the only way I can think of to make membership a closed set would be to use a rdf:List or similar pattern. Setting an attribute or creating a class type will not enforce complete and final membership.
>
> On the optional set of attribute-value pairs:
>
> What optional attributes would apply to Membership that could not be applied to the Dictionary entity?
>
> --Stephan
>
>>
>> Although this is not a qualified relationship (there is appropriate
>> binary relationship version) it follows the same style as other
>> relationships with regards to matching DM identifier and attributes.
>>
>> It can be argued if DM really needs the id and attributes here - but I
>> guess for consistency reason it's better to keep them here as well.
>>
>>
>> On Tue, May 15, 2012 at 2:03 PM, Provenance Working Group Issue
>> Tracker <sysbot+tracker@w3.org> wrote:
>>>
>>> PROV-ISSUE-374 (member-membership-indirection): indirection for Dictionary members [Ontology]
>>>
>>> http://www.w3.org/2011/prov/track/issues/374
>>>
>>> Raised by: Timothy Lebo
>>> On product: Ontology
>>>
>>> What is the purpose of prov:membership [ a prov:Membership ] in the Dictionary Modeling?
>>> Would it not be more straightforward to use prov:member to describe the Dictionary directly?
>>>
>>> Currently, the 2WD PROV-O uses:
>>>
>>> :c1 a prov:Dictionary;
>>> prov:membership [
>>> a prov:Membership;
>>> prov:member [
>>> a prov:KeyValuePair;
>>> prov:key "k1"^^xsd:string;
>>> prov:value :e1
>>> ], [
>>> a prov:KeyValuePair;
>>> prov:key "k2"^^xsd:string;
>>> prov:value :e2
>>> ];
>>> ];
>>> .
>>>
>>> Why could it not be simply:
>>>
>>>
>>> :c1 a prov:Dictionary;
>>> prov:member [
>>> a prov:KeyValuePair;
>>> prov:key "k1"^^xsd:string;
>>> prov:value :e1
>>> ], [
>>> a prov:KeyValuePair;
>>> prov:key "k2"^^xsd:string;
>>> prov:value :e2
>>> ];
>>> .
>>>
>>>
>>> Thanks,
>>> Tim
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>> --
>> Stian Soiland-Reyes, myGrid team
>> School of Computer Science
>> The University of Manchester
>>
>>
>
>
>
Received on Sunday, 1 July 2012 14:01:44 UTC