- From: Luc Moreau <l.moreau@ecs.soton.ac.uk>
- Date: Mon, 04 Jun 2012 22:31:10 +0100
- To: Timothy Lebo <lebot@rpi.edu>
- CC: W3C provenance WG <public-prov-wg@w3.org>
- Message-ID: <EMEW3|48a40bd70fe812587726da6ba360ba9ao53MVI08l.moreau|ecs.soton.ac.uk|4FCD291E>
Hi Tim,
Some comments/questions below.
On 04/06/2012 13:46, Timothy Lebo wrote:
> Luc,
>
> On Jun 4, 2012, at 5:16 AM, Luc Moreau wrote:
>
>> Hi all,
>>
>> During this diamond jubilee WE, I had the opportunity to think about
>> Tim and Simon's long emails.
>>
>> I agree with them that we have concepts of alternate and
>> specialisation, and we want to reuse them.
>>
>> I also came to the conclusion that behind the hasProvenanceIn
>> relation, what I really wanted was a form of alternate. But not what
>> Tim or Simon are suggesting.
>>
>> The PROV data model has a shortcoming: the inability to identify
>> something in some context. That's what I am trying to address here.
>>
>
>
>> …
>
>
>> The interpretation of
>> alternate(tool:Bob2, ex:Bob,ex:run2)
>> is that tool:Bob2 is the entity that share aspects of ex:bob as
>> described by ex:run2. *Conceptually*, this could be done by
>> substituting ex:Bob for tool:Bob2 in ex:run2.
>>
>> I appreciate that what I am describing here is not too distant from
>> http://www.w3.org/TR/2011/WD-prov-dm-20111215/#record-complement-of,
>> which had optional account, and was not received with enthusiasm, to
>> say the least.
>>
>> Coincidentally, Paul shared this paper
>> http://ceur-ws.org/Vol-614/owled2010_submission_29.pdf which
>> introduces rules of the kind
>> /X counts as Y in context C/
>> which bears some resemblance with what I am trying to argue for.
>>
>> So, my proposal is;
>> - drop hasProvenanceIn
>> - drop isTopicIn
>> - allow for the ternary form of alternate
>>
>> Tim and Simon approach by using two binary relations do not offer the
>> same level of expressivity.
>> The also have a technological bias, as well: they require
>> querying/reasoning facility. Therefore,
>> their suggestion is not suitable for a data model supposed to be
>> technology neutral.
>
>
> A stab at:
>
> bundle tool:analysis01
> alternate(tool:Bob2, ex:Bob,ex:run2)
> endBundle
>
> in PROV-O:
>
> tool:analysis01 {
> tool:Bob2
> prov:alternateOf [ ## The use here of bnode is, for once,
> actually appropriate :-)
> a prov:Entity; prov:ContextualizedEntity;
> prov:identifier ex:Bob; ## The identifier that is
> used "over there" Can't use dcterms:identifier b/c that is a
> rdfs:Literal.
> prov:inContext ex:run2; ## "over there" Could
> prov:atLocation be reused?
> ];
> }
>
Thanks for this, Tim.
First some questions:
- why a bnode here?
- Can you explain the dcterms:identifier comment?
Now, assuming that this rdf encoding expresses what was originally
suggested, some further questions:
- have we got indeed a ternary alternateOf relation in prov-dm as I
suggested?
- or have we got some form of ternary relation
isContextualizationOf(e2,e1,bundle)?
Thanks,
Luc
>
> -Tim
>
>
>
>
>
>
>
>>
>> Luc
>>
>> On 31/05/2012 22:54, Luc Moreau wrote:
>>> All,
>>>
>>> To try and converge towards a solution, I am
>>> circulating an example using a ternary hasProvenanceIn.
>>> I would like to understand if and how we can make it work with
>>> a simpler relation.
>>>
>>>
>>> Two bundles ex:run1 and ex:run2 describe bob's role as a controller
>>> of two activities. Same bob, two different bundles.
>>>
>>> bundle ex:run1
>>> activity(ex:a1, 2011-11-16T16:00:00,2011-11-16T17:0: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:0:00)
>>> //duration: 7hours
>>> wasAssociatedWith(ex:a2,ex:Bob,[prov:role="controller"])
>>> endBundle
>>>
>>>
>>> A performance analysis tool rates the performance of agents (this
>>> could be used
>>> to dispatch further work to performant agents, or congratulate them,
>>> etc).
>>>
>>>
>>> bundle tool:analysis01
>>>
>>> agent(tool:Bob1, [perf:rating="good"])
>>> hasProvenanceIn(tool:Bob1, ex:run1, ex:Bob) // Bob
>>> performance in ex:run1 is good
>>>
>>> agent(tool:Bob2, [perf:rating="bad"])
>>> hasProvenanceIn(tool:Bob2, ex:run2, ex:Bob) // Bob
>>> performance in ex:run2 is bad
>>>
>>> endBundle
>>>
>>> The performance analysis tool has to rate two involvements of ex:Bob
>>> in two separate activities.
>>> Two specialized version of ex:Bob are defined: tool:bob1 and
>>> tool:bob2, with rating good and
>>> bad respectively.
>>>
>>> tool:Bob1 is linked to ex:Bob in run1, and tool:Bob2 is linked to
>>> ex:Bob in run2, with the following
>>>
>>> hasProvenanceIn(tool:Bob1, ex:run1, ex:Bob)
>>> hasProvenanceIn(tool:Bob2, ex:run2, ex:Bob)
>>>
>>> Nothing is expressed about ex:Bob in bundle tool:analysis01 (except
>>> that this is an alias
>>> for tool:Bob1 and tool:Bob2).
>>>
>>> It is suggested that the ternary relation could be replaced by
>>> isTopicIn(tool:Bob1, ex:run1)
>>> and
>>> specialization(tool:Bob1, ex:Bob).
>>>
>>> I don't understand the point of
>>> isTopicIn(tool:Bob1, ex:run1)
>>> since tool:Bob1 is not a topic in ex:run1.
>>>
>>> Also, we now seem to have made ex:Bob a topic of tool:analysis01,
>>> because
>>> the following expression.
>>> specialization(tool:Bob1, ex:Bob).
>>>
>>> >From tool:analysis01, where do I find provenance about ex:Bob?
>>> It look like this has become a dead end in this graph.
>>>
>>> Do I need to introduce:
>>> isTopicIn(ex:Bob, ex:run1)
>>> isTopicIn(ex:Bob, ex:run2)?
>>>
>>>
>>> So now we would have:
>>> isTopicIn(tool:Bob1, ex:run1)
>>> specialization(tool:Bob1, ex:Bob)
>>> isTopicIn(tool:Bob2, ex:run2)
>>> specialization(tool:Bob2, ex:Bob)
>>> isTopicIn(ex:Bob, ex:run1)
>>> isTopicIn(ex:Bob, ex:run2)
>>>
>>> Which means that:
>>>
>>> specialization(tool:Bob1, ex:Bob)
>>> isTopicIn(ex:Bob, ex:run2)
>>>
>>> ... would lead us to believe that good rating is due to slow
>>> performance.
>>>
>>> Can the proposer of the separate binary relations explain how this
>>> example can work?
>>>
>>> Thanks,
>>> Luc
>
Received on Monday, 4 June 2012 21:31:49 UTC