- From: Stian Soiland-Reyes <soiland-reyes@cs.manchester.ac.uk>
- Date: Fri, 14 Oct 2011 00:30:21 +0100
- To: Paul Groth <p.t.groth@vu.nl>
- Cc: Provenance Working Group WG <public-prov-wg@w3.org>
> On Thu, Oct 13, 2011 at 17:49, Paul Groth <p.t.groth@vu.nl> wrote:
>
>> I was wondering if examples of time could be put in the PROV-O Crime
>> Example. Like they are in PROV-DM.
>>
>> It would be cool to see how we can put times against:
>>
>> used,
>> wasGeneratedBy
>> Provenance Execution.
I threw together one suggestion on how to do it using a few new properties:
http://dvcs.w3.org/hg/prov/file/tip/ontology/components/Time.ttl
declares:
prov:startedAt
prov:endedAt
prov:assumedRoleAt
prov:wasGeneratedAt
For example, from
http://dvcs.w3.org/hg/prov/file/285b39f7ea5f/ontology/components/Time/example-1.ttl
# start/end
:pe1 a prov:ProcessExecution ;
prov:startedAt :tA ;
prov:endedAt :tB .
:tA a prov:Time .
:tB a prov:Time .
# generation time
:e1 a prov:Entity ;
prov:wasGeneratedBy :pe1 ;
prov:wasGeneratedAt :tC .
:tC a prov:Time .
# used time
:pe2 a prov:ProcessExecution ;
prov:used [
a prov:EntityInRole;
prov:assumedBy :e1;
prov:assumedRoleAt :tD
] .
:tD a prov:Time .
# controlled time
:a1 a prov:Agent .
:tE a prov:Time .
:pe2 prov:wasControlledBy [
a prov:EntityInRole, prov:Agent;
prov:assumedBy :a1;
prov:assumedRoleAt :tE;
] .
You can from this of course also specify generation using EntityInRole
and assumedRoleAt - but as an entity can only be generated once
(right?) we might as well just say prov:wasGeneratedAt.
Note to self:
Allow intervals for role/use/control? - (prov:assumedRoleStart and
prov:assumedRoleEnd)?
Sounds like special cases of characterisation intervals..
prov:startedAt and prov:endedAt could also be used with prov:Entity ?
I looked at the crime file example, and did:
http://dvcs.w3.org/hg/prov/file/285b39f7ea5f/ontology/components/Time/example-2-crimefile.ttl
.. but it does not really say much about time at all:
#processExecution(pe1,add-crime-in-london,t+1,,[])
:pe1 a prov:ProcessExecution, cf:FileAppending ;
prov:startedAt :t1 .
#processExecution(pe2,email,t+2,,[])
:pe2 a prov:ProcessExecution, cf:Emailing ;
prov:startedAt :t2 .
So here's a practical example of how to do an extension, for instance
using OWL Time:
http://dvcs.w3.org/hg/prov/file/285b39f7ea5f/ontology/components/Time/example-3-extension.ttl
Including the simplest case without using the subclasses:
# Lazy straight forward version - no declared subclasses
:pe0 a :ProcessExecution ;
prov:startedAt [
# a prov:Time, time:Instant ;
time:inXSDDateTime "2011-12-24T14:24:05Z"
] ;
prov:endedAt [
time:inXSDDateTime "2011-12-25T01:41:54Z"
] .
--
Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester
Received on Thursday, 13 October 2011 23:31:09 UTC