Re: Prov-o call on Monday 12:00noon US ET

Hi Stian,
thanks a lot for the examples. Maybe we could add the first one in the HTML
as a "how not to use
the ontology"? (I refer to the EntityInRole instance generated and used by 2
different PEs).

Daniel


2011/10/25 Stian Soiland-Reyes <soiland-reyes@cs.manchester.ac.uk>

> On Tue, Oct 25, 2011 at 10:21, Luc Moreau <l.moreau@ecs.soton.ac.uk>
> wrote:
>
> > Have you actually tried to write it in OWL (ie. ContextualisedEntity
> which
> > would be used for both
> > use and generation)? My experience with OPMO is that when
> > defining transitive closures (like wasDependentOn),  some unexpected
> > inference
> > were possible.  But maybe, it will work here.
>
> :e1 a prov:Entity .
>
> :e1X a prov:EntityInRole ;
>  prov:assumedBy :e1 ;
>  prov:assumedRole :X ;
>  prov:assumedAt :t1 ;
>  prov:wasGeneratedBy :pe1 .
>
> :pe2 a prov:ProcessExecution ;
>  prov:used :e1X .
>
> but now you can't tell if prov:assumedAt defines the generation time,
> the use time, or both.
>
>
> So I think we should do as Khalid says and add the constraints so it
> is not valid to reuse an EntityInRole in several
> use/generation/control relationships.
>
>
> :e1 a prov:Entity .
>
> :e1XGeneration a prov:EntityInRole ;
>  prov:assumedBy :e1 ;
>  prov:assumedRole :X ;
>  prov:assumedAt :t1 ;
>  prov:wasGeneratedBy :pe1 .
>
>
>
> :e1XUse a prov:EntityInRole ;
>  prov:assumedBy :e1 ;
>  prov:assumedRole :X ;
>  prov:assumedAt :t2 .
>
> :pe2 a prov:ProcessExecution ;
>  prov:used :e1X2 .
>
>
> The last one can be simplified with a blank node:
>
> :pe2 a prov:ProcessExecution ;
>  prov:used [
>      prov:assumedBy :e1 ;
>      prov:assumedRole :X ;
>      prov:assumedAt :t2 .
>  ] .
>
>
>
> Perhaps an additional constraint is that if
>  :e2 prov:assumedBy :e1
> then
>  :e2 prov:wasGeneratedBy :pe <=> :e1 prov:wasGeneratedBy :pe
>
> (and implicitly any such EntityInRole are the same, merging roles and
> qualifiers)
>
>
>
> Example of the same entity playing two usage roles in same PE:
>
> :originalFile a prov:Entity .
>
> :moving a prov:ProcessExecution, :FileMoving ;
>  prov:used [
>    a prov:EntityInRole ;
>    prov:assumedBy :originalFile ;
>    prov:assumedRole :ReadFile ;
>    prov:assumedAt :t1 ;
>    # custom qualifiers
>    :readBytes 1234 ;
>    time:hasDurationDescription [
>        time:seconds 46
>    ]
>  ],
>  [
>    a prov:EntityInRole ;
>    prov:assumedBy :originalFile ;
>    prov:assumedRole :DeletedFile ;
>    prov:assumedAt :t2  ;
>    # qualifiers
>    :freedSpace 2048
>  ]
>
>
>
> Or in two different PEs (in a different account)
>
> :originalFile a prov:Entity .
>
> :copying a prov:ProcessExecution, :FileCopying ;
>  prov:used [
>    a prov:EntityInRole ;
>    prov:assumedBy :originalFile ;
>    prov:assumedRole :ReadFile ;
>    prov:assumedAt :t1 ;
>    # custom qualifiers
>    :readBytes 1234 ;
>    time:hasDurationDescription [
>        time:seconds 46
>    ]
>  ] .
>
>
> :deletion a prov:ProcessExecution, :FileDeleting ;
>  prov:used [
>    a prov:EntityInRole ;
>    prov:assumedBy :originalFile ;
>    prov:assumedRole :DeletedFile ;
>    prov:assumedAt :t2  ;
>    # qualifiers
>    :freedSpace 2048
>  ]
>
>
>
> Same entity both used and controlled by same PE in different roles:
>
>
> :me a prov:Entity, prov:Agent ;
>  prov:wasComplementOf <http://www.soiland-reyes.com/stian/#me> .
>
> :makingSelfPortrait a prov:ProcessExecution, :Photography ;
>    prov:used [
>        a prov:EntityInRole ;
>        prov:assumedBy :me ;
>        prov:assumedRole :Subject ;
>        prov:assumedAt :t2
>    ] ;
>    prov:wasControlledBy [
>        a prov:EntityInRole ;
>        prov:assumedBy :me ;
>        prov:assumedRole :Photographer
>        prov:assumedAt :t1
>    ]
>
> :selfPortrait a prov:Entity ;
>  prov:wasDerivedFrom :me ;
>  prov:wasGeneratedBy :makingSelfPortrait .
>
> :t1 time:before :t2 .
>
>
> Note the times - I assume the role of photographer agent (e.g. picking
> up camera) before being the subject (focused in the view finder).
>
>
> I'll put these examples into components/EntityInRole/ in Mercurial.
>
> It was suggested in the telcon yesterday to add to the HTML an example
> with two roles assumed by same entity to clarify that it can assume
> many roles in different contexts.
>
>
>
>
> --
> Stian Soiland-Reyes, myGrid team
> School of Computer Science
> The University of Manchester
>
>

Received on Tuesday, 25 October 2011 10:35:40 UTC