replace variable over qualifiers
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Thu, 06 Oct 2011 12:15:36 +0100
changeset 542 1534c61be4fd
parent 541 50dc293bfc9d
child 543 a2164bfc01a9
replace variable over qualifiers
model/ProvenanceModel.html
--- a/model/ProvenanceModel.html	Thu Oct 06 11:11:51 2011 +0100
+++ b/model/ProvenanceModel.html	Thu Oct 06 12:15:36 2011 +0100
@@ -974,8 +974,8 @@
 
 
 <div class='constraint' id='generation-affects-attributes'>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
+<span class='conditional'>if</span> the assertion <span class="name">wasGeneratedBy(e,pe,p)</span>
+or <span class="name">wasGeneratedBy(e,pe,q,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 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
@@ -986,7 +986,7 @@
 The assertion of a generation event implies ordering of events in the world.
 
 
-<div class='constraint' id='generation-pe-ordering'><span class='conditional'>If</span> an assertion <span class="name">wasGeneratedBy(x,pe,r)</span> or <span class="name">wasGeneratedBy(x,pe,r,t)</span>, <span class='conditional'>then</span> generation of the thing denoted by <span class="name">x</span> precedes the end
+<div class='constraint' id='generation-pe-ordering'><span class='conditional'>If</span> an assertion <span class="name">wasGeneratedBy(x,pe,q)</span> or <span class="name">wasGeneratedBy(x,pe,q,t)</span>, <span class='conditional'>then</span> generation of the thing denoted by <span class="name">x</span> precedes the end
 of <span class="name">pe</span> and follows the beginning of <span class="name">pe</span>. 
 </div> 
 
@@ -1152,7 +1152,7 @@
 
 <p>The following derivation assertions</p>
 <pre class="example">
-wasDerivedFrom(e5,e3,pe4,qualifier(channel=out),qualifier(channel=in))
+wasDerivedFrom(e5,e3,pe4,qualifier(channel="out"),qualifier(channel="in"))
 wasDerivedFrom(e3,e2)
 </pre>
 <p>
@@ -1170,8 +1170,8 @@
 </p>
 
 <div class="constraint" id='derivation-events'>
-<span class='conditional'>If</span> <span class="name">wasDerivedFrom(e2,e1,pe,r2,r1)</span> holds, <span class='conditional'>then</span>
-  <span class="name">wasGeneratedBy(e2,pe,r2)</span> and <span class="name">used(pe,e1,r1)</span> also
+<span class='conditional'>If</span> <span class="name">wasDerivedFrom(e2,e1,pe,q2,q1)</span> holds, <span class='conditional'>then</span>
+  <span class="name">wasGeneratedBy(e2,pe,q2)</span> and <span class="name">used(pe,e1,q1)</span> also
   hold.
 </div>
 
@@ -1210,10 +1210,10 @@
 
 <p>
 Note that inferring derivation from use and generation does not hold
-in general. Indeed, when a generation <span class="name">wasGeneratedBy(e2,pe,r2)</span>
-precedes <span class="name">used(pe,e1,r1)</span>, for
-some <span class="name">e1</span>, <span class="name">e2</span>, <span class="name">r1</span>, <span class="name">r2</span>, and <span class="name">pe</span>, one
-cannot infer derivation <span class="name">wasDerivedFrom(e2,e1,pe,r2,r1)</span>
+in general. Indeed, when a generation <span class="name">wasGeneratedBy(e2,pe,q2)</span>
+precedes <span class="name">used(pe,e1,q1)</span>, for
+some <span class="name">e1</span>, <span class="name">e2</span>, <span class="name">q1</span>, <span class="name">q2</span>, and <span class="name">pe</span>, one
+cannot infer derivation <span class="name">wasDerivedFrom(e2,e1,pe,q2,q1)</span>
 or <span class="name">wasDerivedFrom(e2,e1)</span> since the values of attributes
 of <span class="name">e2</span> cannot possibly be determined by the values of attributes
 of <span class="name">e1</span>, given the creation of <span class="name">e2</span> precedes the use
@@ -1225,7 +1225,7 @@
 <div class='constraint' id='derivation-use'>
 <p>Given a process execution expression identified by <span class="name">pe</span>, entity expressions identified by <span class="name">e1</span> and <span class="name">e2</span>, and qualifier <span class="name">q2</span>,
 <span class='conditional'>if</span> <span class="name">wasDerivedFrom(e2,e1)</span> and <span class="name">wasGeneratedBy(e2,pe,q2)</span> hold, <span class='conditional'>then</span> there exists a qualifier <span class="name">q1</span>,
-such that <span class="name">used(pe,e1,r1)</span> also holds.
+such that <span class="name">used(pe,e1,q1)</span> also holds.
 </div>
 <p>This inference is justified by the fact that the characterized thing represented by entity expression identified by <span class="name">e2</span> is generated by at most one activity in a given account (see <a href="#generation-unicity">generation-unicity</a>). Hence,  this process execution expression is also the one referred to in the use expression of <span class="name">e1</span>. 
 </p>
@@ -1234,7 +1234,7 @@
 
 <p>We note that the "symmetric" inference, does not hold.
 From <span class="name">wasDerivedFrom(e2,e1)</span> and <span class="name">used(pe,e1)</span>, one cannot
-derive <span class="name">wasGeneratedBy(e2,pe,r2)</span> because identifier <span class="name">e1</span> may occur in use expressions referring to 
+derive <span class="name">wasGeneratedBy(e2,pe,q2)</span> because identifier <span class="name">e1</span> may occur in use expressions referring to 
 many process execution expressions, but they may not be referred to in generation expressions containing identifier <span class="name">e2</span>.</p>
 
 
@@ -1278,9 +1278,9 @@
 contains or implies the existence of a process execution expression. Hence, from
 the former, we can infer the latter.</p>
 <div class='constraint' id='derivation-linked-independent'>
-Given two entity expressions denoted by <span class="name">e1</span> and <span class="name">e2</span>, <span class='conditional'>if</span> the assertion <span class="name">wasEventuallyDerivedFrom(e2,e1)</span>
+Given two entity expressions denoted by <span class="name">e1</span> and <span class="name">e2</span>, <span class='conditional'>if</span> the assertion <span class="name">wasDerivedFrom(e2,e1)</span> or <span class="name">wasDerivedFrom(e2,e1,pe,q12,q1)</span>
  holds, <span class='conditional'>then</span> the
- the assertion <span class="name">wasEventuallyDerivedFrom(e2,e1)</span> also holds.
+ the expression <span class="name">wasEventuallyDerivedFrom(e2,e1)</span> also holds.
   </div>
 
 <p>Hence, a process-execution independent derivation expression can be directly asserted or can be inferred (by means of <a href="#derivation-linked-independent">derivation-linked-independent</a>).</p>
@@ -1292,6 +1292,7 @@
 
 
 
+
 </section>
 
 <section>
@@ -1330,6 +1331,8 @@
 
 <div class='issue'>Should derivation have a time? Which time? This is   <a href="http://www.w3.org/2011/prov/track/issues/43">ISSUE-43</a>.</div>
 
+<div class='issue'>TODO: transitivity problem? This is   <a href="http://www.w3.org/2011/prov/track/issues/43">ISSUE-xxx</a>.</div>
+
 
 
 </section>
@@ -1369,7 +1372,7 @@
 <p>
 The following control assertion</p>
 <pre class="example">
-wasControlledBy(pe3,a4,[role=author])
+wasControlledBy(pe3,a4,qualifier[role="author"])
 </pre>
 <p>states that the activity, represented by the process execution expression denoted by <span class="name">pe3</span> saw the involvement of a characterized thing, represented by entity expression denoted by  <span class="name">a4</span> in the capacity of author. This specification defines the qualifier name <span class="name">role</span> (see Section <a href="#expression-qualifier">Qualifier</a>) to denote the function of a characterized thing with respect to an activity.
 </p>
@@ -1803,7 +1806,7 @@
           ...
           processExecution(pe0,create-file,t)
           ...
-          wasGeneratedBy(e0,pe0,outFile)     
+          wasGeneratedBy(e0,pe0,qualifier())     
           ...
           wasControlledBy(pe4,a5, qualifier(role="communicator"))  )
 </pre>
@@ -1856,7 +1859,7 @@
           ...
           processExecution(pe1,create-file,t1)
           ...
-          wasGeneratedBy(e0,pe1,outFile)     
+          wasGeneratedBy(e0,pe1,qualifier(fct="create"))     
           ... )
 </pre>
 <p>with identifier <span class="name">acc2</span>, containing assertions by asserter by <span class="name">http://example.org/asserter2</span> stating that thing represented by entity expression identified by <span class="name">e0</span> was generated by an activity represented by process execution expression identified by <span class="name">pe1</span> instead of <span class="name">pe0</span> in the previous account <span class="name">acc0</span>.  If accounts <span class="name">acc0</span> and <span class="name">acc2</span> are merged together, the resulting set of expressions violates <a href="#generation-unicity">generation-unicity</a>.</p>
@@ -1870,12 +1873,12 @@
         http://example.org/asserter1, 
           entity(e0, [ type="File", location="/shared/crime.txt", creator="Alice" ])
           processExecution(pe0,create-file,t)
-          wasGeneratedBy(e0,pe0,outFile)  
+          wasGeneratedBy(e0,pe0,qualifier())  
           account(acc4,
                  http://example.org/asserter2,
                  entity(e1, [ type="File", location="/shared/crime.txt", creator="Alice", content="" ])
                  processExecution(pe0,copy-file,t)
-                 wasGeneratedBy(e1,pe0,outFile)
+                 wasGeneratedBy(e1,pe0,qualifier(fct="create"))
                  isComplement(e1,e0)))
 </pre>
 <p>Alternatively, a process execution expression identified by <span class="name">pe0</span> occurs in each of the two accounts. Therefore,  each process execution expression is asserted in a separate scope, and therefore may represent different activities in the world.