Re: prov:value versus KeyValuePair

Hi Stephan,

Response below.

On 05/15/2012 04:24 PM, Stephan Zednik wrote:
> On May 15, 2012, at 9:16 AM, Timothy Lebo wrote:
>
>    
>> Stephan, Luc, and wg,
>>
>> On May 15, 2012, at 11:07 AM, Stephan Zednik wrote:
>>
>>      
>>> On May 15, 2012, at 7:13 AM, Luc Moreau wrote:
>>>
>>>        
>>>> Hi Tim,
>>>>
>>>> On 05/15/2012 01:55 PM, Timothy Lebo wrote:
>>>>          
>>>>> prov-wg,
>>>>>
>>>>> When modeling Dictionaries, PROV-O had a straightforward way to model KeyValuePairs:
>>>>>
>>>>> [
>>>>>   a prov:KeyValuePair;
>>>>>   prov:key     "goalie";
>>>>>   prov:value  :joe_the_tank;
>>>>> ]
>>>>>
>>>>>            
>>>> FYI, prov-dm talks about key-entity-set (key-entity pairs), since the term value means
>>>> something else in prov-dm.
>>>> I appreciated that prov:entity is already used in prov-o.
>>>>
>>>>          
>>>>> Then, DM introduced the reserved property "value" to do things like:
>>>>>
>>>>> entity(ex:in, [prov:value="abcd"])
>>>>> entity(ex:out, [prov:value=4])
>>>>> activity(ex:len, [prov:type="string-length"])
>>>>> used(ex:len,ex:in)
>>>>> wasGeneratedBy(ex:out,ex:len)
>>>>> wasDerivedFrom(ex:out,ex:in)
>>>>>
>>>>> DM's "value" property is exactly how rdf:value has been used in the past decade:
>>>>>
>>>>> :parameter_1
>>>>>     a prov:Entity;
>>>>>     rdf:value 1024;
>>>>> .
>>>>>
>>>>> but we wanted to reestablish prov:value because rdf:value's definition was "a bit" cloudy.
>>>>> So, we end up with:
>>>>>
>>>>>
>>>>> :parameter_1
>>>>>     a prov:Entity;
>>>>>     prov:value 1024;
>>>>> .
>>>>>
>>>>>
>>>>> Unfortunately, the KeyValuePair's value collides with the DM's new value (rdf:value).
>>>>>
>>>>> So, we could:
>>>>>
>>>>> 1) relax prov:value's domain from KeyValuePair to Entity
>>>>>
>>>>> This would allow us to use prov:value in both KeyValuePairs as well as arbitrary "number entities".
>>>>>            
>>> -1
>>>
>>> This also does not provide the functionality the DM wants with prov:value (associating a literal value with the entity) and conflates prov:value to have two very different purposes.
>>>
>>>        
>>>>>
>>>>> 2) Rename DM's "value" to "chars", inspired by cnt:chars from
>>>>> http://www.w3.org/TR/Content-in-RDF10/#ContentAsTextClass
>>>>>            
>>> -1
>>>
>>> I prefer "content" to "chars", but would prefer even more to use prov:value to be consistent with the DM.
>>>        
>> I was proposing to have DM to change "value" to "content" at
>> http://www.w3.org/TR/2012/WD-prov-dm-20120503/#term-attribute-value
>>
>>      
>>>        
>>>>>
>>>>>
>>>>>
>>>>>            
>>>> The names don't need to be exactly the same in prov-o/prov-dm.
>>>> Why can't you prov:pairValue or prov:pairEntity, instead of prov:value in pairs?
>>>>          
>>> +1 for prov:pairEntity
>>>
>>> --Stephan
>>>        
>> Leaning towards Luc and Stephan, what about
>>
>> [
>>   a prov:KeyValuePair;
>>   prov:pairKey      "goalie";
>>   prov:pairValue  :joe_the_tank;
>> ]
>>
>> I think the property should be named by the role, not its range - otherwise we'd have pairString which is odd.
>>      
> I think this goes back to my preference for prov:KeyEntityPair over prov:KeyValuePair.
>
> Why can only entities be the value in a KeyValuePair?
>
> --Stephan
>
>    

Because a dictionary/collection in prov is defined as:

A collection is an entity that provides a structure to some 
constituents, which are themselves entities. These constituents are said 
to be member of the collections.

If values are not entities, then, definitely, there is very little 
interest for us to model such a construct in prov.

Luc
>> -Tim
>>
>>
>>
>>      
>    

-- 
Professor Luc Moreau
Electronics and Computer Science   tel:   +44 23 8059 4487
University of Southampton          fax:   +44 23 8059 2865
Southampton SO17 1BJ               email: l.moreau@ecs.soton.ac.uk
United Kingdom                     http://www.ecs.soton.ac.uk/~lavm

Received on Tuesday, 15 May 2012 15:30:28 UTC