- From: Daniel Garijo <dgarijo@delicias.dia.fi.upm.es>
- Date: Tue, 25 Oct 2011 12:35:08 +0200
- To: Stian Soiland-Reyes <soiland-reyes@cs.manchester.ac.uk>
- Cc: Luc Moreau <l.moreau@ecs.soton.ac.uk>, public-prov-wg@w3.org
- Message-ID: <CAExK0DcxcBu-vA=GAuLrr10-PhUy-wpUdhk7EO6N-rgTTkJXOQ@mail.gmail.com>
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