W3C home > Mailing lists > Public > public-prov-wg@w3.org > October 2011

Re: PROV-ISSUE-104 (time-class): How to relate start/end time to PE, use, generation, etc [Formal Model]

From: Stian Soiland-Reyes <soiland-reyes@cs.manchester.ac.uk>
Date: Fri, 14 Oct 2011 00:30:21 +0100
Message-ID: <CAPRnXtk0Q2b7fm-WhfOS5nFVx_VSg7kr7UMTdsKnEotcF8vAkg@mail.gmail.com>
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:




For example, from

# 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
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:


.. but it does not really say much about time at all:

:pe1 a prov:ProcessExecution, cf:FileAppending ;
    prov:startedAt :t1 .

: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:


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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 26 April 2012 13:06:44 GMT