W3C home > Mailing lists > Public > public-prov-wg@w3.org > June 2012

Re: ISSUE-385: hasProvenanceIn: finding a solution

From: Luc Moreau <L.Moreau@ecs.soton.ac.uk>
Date: Thu, 07 Jun 2012 10:12:27 +0100
Message-ID: <EMEW3|9c955381f3459fb76df33560f5be7262o56ACU08L.Moreau|ecs.soton.ac.uk|4FD0707B.60804@ecs.soton.ac.uk>
To: public-prov-wg@w3.org
Hi Paolo,

On 06/07/2012 09:51 AM, Paolo Missier wrote:
> Hi,
>
> Having finally caught up with this Jubilee-inspired thread (long live 
> the Queen etc.):
> I was happy when I first found the contextualization idea: 
> http://lists.w3.org/Archives/Public/public-prov-wg/2012Jun/0064.html
>
> I am still happy but I have questions re: the example below as well as 
> the first one here: 
> http://dvcs.w3.org/hg/prov/raw-file/default/model/working-copy/wd6-contextualization.html
> My problem is that I "still" think in terms of languages with name 
> declarations which occur within a scope. I suspect a new reader who is 
> a programmer will try to interpret these examples similarly and will 
> look for declaration/use pairs. So apologies if this is completely off 
> the mark.
>  In the first example here: 
> http://lists.w3.org/Archives/Public/public-prov-wg/2012Jun/0064.html
> bundle ex:run1
>      activity(ex:a1, 2011-11-16T16:00:00,2011-11-16T17:00:00)  //duration: 1hour
>      wasAssociatedWith(ex:a1,ex:Bob,[prov:role="controller"])
> endBundle
>
> bundle ex:run2
>      activity(ex:a2, 2011-11-17T10:00:00,2011-11-17T17:00:00)  //duration: 7hours
>      wasAssociatedWith(ex:a2,ex:Bob,[prov:role="controller"])
> endBundle
>    
> the statement
> agent(ex:Bob)
> is missing. Where does it live?  (i.e, where is it "declared"?)  is it 
> just in the default bundle /and/ implicit?

It's a good question. It's not specific to contextualizationOf, it's 
more about bundles.

I am not sure we are dealing with "declarations".  But I can see this 
could be interpreted as such, with a language background.

The rdf view of the world is ex:Bob denotes a resource, and rdf 
inference allows us to infer agent(ex:Bob).
Where does it live? Do we need to specify it? My view is that we should 
leave this choice to implementations.

> or is it in /both/ ex:run1 and ex:run2 and just left implicit

Yes, it's definitely an option, which would allow you to process bundles 
independently.
With a db/language hat, this would give you a kind of referential 
integrity within each bundle.


> . This is what appears from the rest of the example:
> bundle tool:analysis01
>      agent(tool:Bob1)
>      contextualizationOf(tool:Bob1, ex:Bob, ex:run1)
>      agent(tool:ratedBob1, [perf:rating="good"])
>      specialization(tool:ratedBob1, tool:Bob1)
>
>      agent(tool:Bob2)
>      contextualizationOf(tool:Bob2, ex:Bob, ex:run2)
>      agent(tool:ratedBob2, [perf:rating="bad"])
>      specialization(tool:ratedBob2, tool:Bob2)
> endBundle
>    


> so I am a bit confused.
>
> Also in the example below:
>     specializationOf(specific1,general1)
> how do I know where to look for a "declaration" of general1?
>    
>
> I also have a more general comment regarding mutual consistency across 
> bundles. What prevents two bundles from having references to each 
> others' elements?  i.e.
>
> bundle b1
>    entity(foo)
>    activity(a1)
>    used(a1,foo)
>    specializationOf(foo, bar)
> endBundle
>
> bundle b2
>    entity(bar)
>    activity(a2)
>    used(a2, bar
>    specializationOf(bar, foo)
> endBundle

What is the answer when these assertions occur in the same bundle?
I think we conclude that specialization is anti symmetric:
http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-constraints.html#specialization-antisymmetric


In the specification we do not say whether we should merge bundles or 
not, and how
to do it, and whether that gives something that is meaningful.

It is up to applications to handle these according to their context.

Luc

>
> Thanks... -Paolo

Luc
>
>
> On 6/6/12 10:22 PM, Luc Moreau wrote:
>> Hi Tim,
>>
>> I didn't exactly understand it that way:
>>
>> bundle b1
>>    entity(general1)
>>    activity(a1)
>>    used(a1,general1)
>> endBundle
>>
>> bundle b2
>>    entity(specific1)
>>    activity(a2)
>>    used(a2,specific1)
>>    specializationOf(specific1,general1)
>> endBundle
>>
>> bundle b3
>>    entity(e)
>>    contextualizationOf(e, general1, bundle1) // e presents the facet 
>> of general1 in bundle1
>>    contextualizationOf(e, specific1, bundle2) // e also presents the 
>> facet of specific1 in bundle2
>> endBundle
>>
>> In your rdf encoding,
>> "tool:Bob1 in tool:analysis01 is a specialization of the thing with 
>> identifier ex:Bob over in bundle ex:run1".
>> becomes
>> "e in b3 is a specialization of the thing with identifier specific1 
>> in bundle2" (1)
>> and
>> "e in b3 is a specialization of the thing with identifier general1 in 
>> bundle1" (2)
>>
>> I don't think that (1) holds since "e presents the facet of general1 
>> in bundle1"
>>
>> Thoughts?
>>
>> Luc
>>
>>
>>
>>
>> On 06/06/12 20:34, Timothy Lebo wrote:
>>> (since identifiers are getting confusing, I'm rewriting my email and 
>>> reorganizing the order of examples from top to bottom).
>>>
>>>
>>> On Jun 6, 2012, at 3:14 PM, Timothy Lebo wrote:
>>>
>>>> On Jun 6, 2012, at 2:23 PM, Luc Moreau wrote:
>>>
>>>
>>> Luc/DM's prov-n:
>>>
>>>
>>>>>> bundle tool:analysis01     # found at 
>>>>>> http://dvcs.w3.org/hg/prov/raw-file/default/model/working-copy/wd6-contextualization.html
>>>>>>
>>>>>> contextualizationOf(tool:Bob1, ex:Bob,
>>>>>> ex:run1)
>>>>>> endBundle
>>>
>>> would get encoded in prov-o as:
>>>
>>>
>>>>>> tool:analysis01 {
>>>>>>     tool:Bob1
>>>>>>         prov:specializationOf [
>>>>>>               a prov:Entity;  prov:ContextualizedEntity;
>>>>>>               prov:identifier  ex:Bob;
>>>>>>               prov:inContext ex:run1;
>>>>>>         ];
>>>>>>     .
>>>>>> }
>>>
>>> read "tool:Bob1 in tool:analysis01 is a specialization of the thing 
>>> with identifier ex:Bob over in bundle ex:run1".
>>>
>>> would get re-encoded to prov-n as:
>>>
>>>>> contextualizationOf(anonymous, ex:Bob, ex:run1)
>>>>> alternateOf(tool:Bob1,  anonymous )
>>>
>>>
>>> Tim's response:
>>>
>>>
>>>> Given your mapping back, I think I'm still okay.
>>>>
>>>> In my mapping, I'd just _name_ my ContextualizedEntity and use 
>>>> alternateOf instead of specializationOf.
>>>>
>>>> But why wouldn't it be specializationOf? Then, we get to "inherit" 
>>>> the characterization, which seemed to be your intent from the 
>>>> beginning.
>>>>
>>>> Any way it falls from here, I think this is close enough for me to 
>>>> be content.
>>>
>>>
>>>
>>> -Tim
>>>
>>>
>>>
>
>
> -- 
> -----------  ~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
>    

-- 
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 Thursday, 7 June 2012 09:13:00 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:58:16 UTC