role qualifier
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Fri, 16 Sep 2011 14:22:15 +0100
changeset 305 58c09e937391
parent 304 456ef9d9fca0
child 306 bfb038619604
role qualifier
model/ProvenanceModel.html
--- a/model/ProvenanceModel.html	Fri Sep 16 13:41:03 2011 +0100
+++ b/model/ProvenanceModel.html	Fri Sep 16 14:22:15 2011 +0100
@@ -899,22 +899,22 @@
 The rationale for this constraint is as follows.
 If two process executions sequentially set different values to some attribute by means of two different generate events, then they generate distinct entities. Alternatively,  for two process executions to generate an entity simultaneously, they would require some synchronization by which they agree the entity is released for use; the end of this synchronization would constitute the actual generation of the entity, but is performed by a single process execution. This unicity constraint is formalized as follows.
 
-<div class='constraint' id='generation-unicity'>Given an entity denoted by <span class="name">e</span>, two process executions denoted by <span class="name">pe1</span> and <span class="name">pe2</span>, and two roles <span class="name">r1</span> and <span class="name">r2</span>,
-<span class='conditional'>if</span> the expressions <span class="name">wasGeneratedBy(e,pe1,r1)</span> and <span class="name">wasGeneratedBy(e,pe2,r2)</span> exist in the scope of a given account,
-<span class='conditional'>then</span> <span class="name">pe1</span>=<span class="name">pe2</span>  and <span class="name">r1</span>=<span class="name">r2</span>.
+<div class='constraint' id='generation-unicity'>Given an entity expression denoted by <span class="name">e</span>, two process execution expressions denoted by <span class="name">pe1</span> and <span class="name">pe2</span>, and two qualifiers <span class="name">q1</span> and <span class="name">q2</span>,
+<span class='conditional'>if</span> the expressions <span class="name">wasGeneratedBy(e,pe1,q1)</span> and <span class="name">wasGeneratedBy(e,pe2,q2)</span> exist in the scope of a given account,
+<span class='conditional'>then</span> <span class="name">pe1</span>=<span class="name">pe2</span>  and <span class="name">q1</span>=<span class="name">q2</span>.
 </div> 
 
 
 A generation event SHOULD have some visibility on the attributes of the generated entity, as expressed by the following constraint.
 
 
-<div class='constraint' id='generation-affects-attributes'><a name="PIL:0002">Given a process execution <span class="name">pe</span>, entity <span class="name">e</span>, role <span class="name">r</span>, and optional time <span class="name">t</span>,
+<div class='constraint' id='generation-affects-attributes'><a name="PIL:0002">Given an identifier <span class="name">pe</span> for a process execution expression, an identifier <span class="name">e</span> for an entity expression, qualifier <span class="name">q</span>, and optional time <span class="name">t</span>,
 <span class='conditional'>if</span> the assertion <span class="name">wasGeneratedBy(e,pe,r)</span>
 or <span class="name">wasGeneratedBy(e,pe,r,t)</span> holds, <span class='conditional'>then</span> the values of <em>some</em> of <span class="name">e</span>'s
-attributes are determined by the activity denoted by <span class="name">pe</span> and the
-entities used by <span class="name">pe</span>.
+attributes are determined by the activity represented by process execution expression identified by <span class="name">pe</span> and the
+entity expressions used by <span class="name">pe</span>.
 Only some (possibly none) of the attributes values  may be determined
-since, in an open world, not all used entities may have been
+since, in an open world, not all used entitie expressions may have been
 asserted.</a>  [<a href="../ontology/ProvenanceFormalModel.html#PIL:0002">PIL:0002</a>]
 </div>
 
@@ -1491,7 +1491,7 @@
  the expression <span class="name">wasScheduledAfter(pe2,pe1)</span>
 holds, <span class='conditional'>if and only if</span>
  there are two entity expressions denoted by <span class="name">e1</span> and <span class="name">e2</span>,
-such that <span class="name">wasControlledBy(pe1,e1,[role="end"])</span> and <span class="name">wasControlledBy(pe2,e2,[role="start"])</span> and <span class="name">wasDerivedFrom(e2,e1)</span>.
+such that <span class="name">wasControlledBy(pe1,e1,qualifier(role="end"))</span> and <span class="name">wasControlledBy(pe2,e2,qualifier(role="start"))</span> and <span class="name">wasDerivedFrom(e2,e1)</span>.
 </div>
 This definition assumes that the activities represented by process execution expressions identified by <span class="name">pe1</span> and <span class="name">pe2</span> are controlled by some agents, represented by expressions identified by <span class="name">e1</span> and <span class="name">e2</span>, where the first agent terminates (control qualifier <span class="name">qualifier(role="end")</span>) the first activity, and the second initiates (control qualifier <span class="name">qualifier(role="start")</span>) the second.  The second agent being "derived" from the first enforces  temporal ordering. 
 
@@ -1737,7 +1737,7 @@
           ...
           wasGeneratedBy(e0,pe0,outFile)     
           ...
-          wasControlledBy(pe4,a5, [role=communicator])  )
+          wasControlledBy(pe4,a5, qualifier(role=communicator))  )
 </pre>
 contains the set of provenance expressions of section <a href="#example-prov-asn-encoding">example-prov-asn-encoding</a>, is asserted by agent <span class="name">http://x.com/asserter</span>, and is identified by identifier <span class="name">acc0</span>.
 </p>
@@ -1931,14 +1931,20 @@
 </ul>
 </p>
 
-
+<p>The PROV data model introduces a specific qualifier <span class="name">role</span> to denote the function of a characterized thing with respect to an activity, in the context of a use/generation/control relation. The value associated with a <span class="name">role</span> attribute MUST be conformant with  <span class="nonterminal">Literal</span>. </p>
+
+
+<p>
+The following control expression has qualifies the role of the agent in this control relation. 
+<pre class="example">
+          wasControlledBy(pe4,a5, qualifier(role="communicator"))
+</pre>
+</p>
 
 <div class='resolved'>Decide the level of requirements: MUST/SHOULD and justify. This is <a href="http://www.w3.org/2011/prov/track/issues/40">ISSUE-40</a> and <a href="http://www.w3.org/2011/prov/track/issues/41">ISSUE-41</a>. The circumstances in which the requirement is of type must MUST are now made explicit. </div>
 
 
 
-
-
 </section>
 
 <section id="expression-attribute">
@@ -2094,7 +2100,7 @@
 
 
 <p>
-Location is an OPTIONAL attribute of entity expressions and process execution expressions.  The value associated with a location attribute is expected to be a location.
+Location is an OPTIONAL attribute of entity expressions and process execution expressions.  The value associated with a  attribute <span class="name">location</span> MUST be a <span class="nonterminal">Literal</span>, expected to denote a location.
 </p>
 
 
@@ -2147,6 +2153,8 @@
 They consist of ordered sequence of name-value pairs. Such names
 are also qualified by a namespace.</li>
 
+<p>The PROV DM namespace (TBD) declares a reserved qualifier: <tt>role</tt>.</li>
+
 <li>Namespaces allow attributes and names to be qualified. </li>
 
 <li>Domain specific values can be expressed by means of typed literals. </li>