5.2 completed
authorPaolo Missier <pmissier@acm.org>
Wed, 08 Feb 2012 17:18:37 +0000
changeset 1506 5584b2641236
parent 1499 240df509f7a0
child 1507 32a3aa4cb99d
5.2 completed
model/working-copy/towards-wd4.html
--- a/model/working-copy/towards-wd4.html	Wed Feb 08 12:03:13 2012 +0000
+++ b/model/working-copy/towards-wd4.html	Wed Feb 08 17:18:37 2012 +0000
@@ -1501,18 +1501,107 @@
 <h3>Activity Ordering</h3>
 
 
-The following two relations are used to express dependencies amongst activities.
+The following  relation is used to express dependencies amongst activities.
 
 <ul>
   <li> An <dfn id="InformationFlowOrdering">information flow ordering relation</dfn> states that activity  <span class="name">a2</span> is dependent on another <span class="name">a1</span>, by way of some entity <span class="name">e</span> that is generated by <span class="name">a1</span> and used by <span class="name">a2</span>.
     <li>A <dfn id="ControlOrdering">control ordering record</dfn> states that  activity <span class="name">a2</span> was initiated by another activity <span class="name">a1</span>.
 </ul>
 
+<p>
+An information flow ordering assertion, written as 
+<span class="name">wasInformedBy(id,a2,a1,attrs)</span> in PROV-ASN, contains: 
+<ul>
+<li><em>id</em>:  an OPTIONAL identifier  <span class="name">id</span> identifying the relation;</li> 
+<li><em>informed</em>: the identifier <span class="name">a2</span> of an activity representing the informed activity;
+<li><em>informant</em>: the identifier <span class="name">a1</span> of an activity representing the informant activity;
+<li><em>attributes</em>: an OPTIONAL set <span class="name">attrs</span> of attribute-value pairs to further describe properties of the relation.</li>
+</ul>
+
+<p>
+A control ordering assertion, written as 
+<span class="name">wasStartedBy(a2,a1, attrs)</span> in PROV-ASN, contains: </p>
+<ul>
+<li><em>id</em>:  an OPTIONAL identifier  <span class="name">id</span> of the relation;</li> 
+<li><em>started</em>: refers to an activity  identified by <span class="name">a2</span>, representing the started activity;
+<li><em>starter</em>: refers to an activity  identified by <span class="name">a1</span>, representing the activity that started <span class="name">a1</span>;</li>
+<li><em>attributes</em>: an OPTIONAL set <span class="name">attrs</span> of attribute-value pairs to further describe the properties of the relation.</li>
+</ul>
+
+
+<p>Further considerations:</p>
+
+<ul>
+  <li>Information flow assertions are equivalent to a combination of generation and use assertions with shared entity, that is:<br/>
+        <span class="name">wasInformedBy(a2,a1)</span> <span class='conditional'>if and only if</span> there is an entity  <span class=name>e</span> such that <span class="name">wasGeneratedBy(e,a1,attrs1)</span> and
+  <span class="name">used(a2,e,attrs2)</span>.
+
+  <li> Relation <span class="name">wasInformedBy()</span> is not transitive.
+</ul>
+
+<div class="note">I have omitted the rendering of the wasStartedBy constraint. It was controversial during the F2F and it really reads odd, as wasStartedBy(actiity, activity) is defined in terms of wasStartedBy(agent, entity). That requires a lot of explaining. This needs to be resolved, or the new wasStartedBy just removed [PM].</div>
+
+<div class="anexample">
+<p>
+Suppose activities <span class="name">a1</span> and <span class="name">a2</span> are computer processes that are executed on different hosts, and that <span class="name">a1</span> started <span class="name">a1</span>. This can be expressed as follows:</p>
+<pre class="codeexample">
+activity(a1,t1,t2,[ex:host="server1.example.org",prov:type="workflow"])
+activity(a2,t3,t4,[ex:host="server2.example.org",prov:type="subworkflow"])
+wasStartedBy(a2,a1)
+</pre>
+
+<p>Alternatively, we could have asserted the existence of an entity, representing a request to create a sub-workflow. This request, issued by <span class="name">a1</span>, triggered the
+start of <span class="name">a2</span>.
+</p>
+<pre class="codeexample">
+entity(e,[prov:type="creation-request"])
+wasGeneratedBy(e,a1)
+wasStartedBy(a2,e)
+</pre>
+</div
+
+</section>
+
+</section>
+
+<section id="record-Revision">
+<h3>Revision</h3>
+
+<p> A <dfn id="dfn-Revision">revision relation</dfn> states that an entity is a revised version of another. The agent who is responsible for making the revision may optionally be specified.</p>
+
+<p> A revision assertion, written <span class="name">wasRevisionOf(e2,e1,ag,attrs)</span> in PROV-ASN, contains:</p>
+<ul>
+<li><em>id</em>: an OPTIONAL identifier  <span class="name">id</span> for the relation;</li> 
+<li><em>newer</em>: the revised  entity <span class="name">e2</span>, identifying an entity that represents a newer version of an entity;
+<li><em>older</em>: an identifier <span class="name">e1</span> identifying an entity that represents an older version of an entity;
+<li><em>responsibility</em>: an OPTIONAL  identifier <span class="name">ag</span> for the agent who approved that <span class="name">e2</span> is a variant of <span class="name">e1</span>;
+<li><em>attributes</em>: an OPTIONAL set <span class="name">attrs</span> of attribute-value pairs to further describe this record.</li>
+</ul>
 
 
 
+<div class="anexample">
+<p>
+ Suppose document <span class="name">e1</span> is subject to revision by a quality controller, <span class="name">ag</span>.
+The following assertions state that <span class="name">ag</span> has been instrumental in creating a new version <span class="name">e2</span> of document <span class="name">e1</span>:
+<pre class="codeexample">
+agent(ag,[prov:type="QualityController"])
+entity(e1,[prov:type="document"])
+entity(e2,[prov:type="document"])
+wasRevisionOf(e2,e1,ag)
+</pre>
+</div>
 
-</section>
+<p>Further considerations:</p>
+
+<ul>
+  <li><span class="name">wasRevisionOf</span> is a particular case of <span class="name">wasDerivedFrom</span>. That is, <span class="name">wasRevisionOf(e2, e1, ag)</span> implies  <span class="name">wasDerivedFrom(e2, e1, ag)</span>.
+  </ul>
+
+
+</section>  <!-- end revision -->
+
+  </section>
 
     <section id="extensibility-section"> 
 <h2>PROV-DM Extensibility Points</h2>