added wasStartedBy between activities@
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Mon, 21 Nov 2011 22:35:22 +0000
changeset 1001 a1b622c5945b
parent 1000 10f45eb61df6
child 1002 308104055b00
added wasStartedBy between activities@
model/ProvenanceModel.html
--- a/model/ProvenanceModel.html	Mon Nov 21 22:03:36 2011 +0000
+++ b/model/ProvenanceModel.html	Mon Nov 21 22:35:22 2011 +0000
@@ -2425,7 +2425,7 @@
 <li> <span class="name">wasBasedOn(e2,e1)</span> holds, or</li>
 <li> <span class="name">wasGeneratedBy(e2,a,gAttr) and wasAssociatedWith(a,e1)</span> hold, for some  <span class="name">a</span> and  <span class="name">gAttr</span>, or</li>
 <li> <span class="name">wasGeneratedBy(e2,a,gAttr)</span>, <span class="name">wasAssociatedWith(a,e)</span> and <span class="name">actedOnBehalfOf(e,e1)</span> hold, for some  <span class="name">a</span> and  <span class="name">gAttr</span>, or</li>
-<li> <span class="name">wasGeneratedBy(e2,a,gAttr) and wasStartedBy(a,e1)</span> hold, for some  <span class="name">a</span>, <span class="name">e</span> and  <span class="name">gAttr</span>, or</li>
+<li> <span class="name">wasGeneratedBy(e2,a,gAttr) and wasStartedBy(a,e1,sAttr)</span> hold, for some  <span class="name">a</span>, <span class="name">e</span>, and  <span class="name">gAttr</span>, and  <span class="name">sAttr</span>, or</li>
 <li> <span class="name">tracedTo(e2,e)</span> and  <span class="name">tracedTo(e,e1)</span> hold for some  <span class="name">e</span>.</li>
 </ul>
 </div>
@@ -2437,13 +2437,10 @@
 <h3>Activity Ordering Record</h3>
 
 
-<div class="note">Proposal to change the name to "Dependencies amongst Activities"  to avoid ambiguities</div>
-
-<p>PROV-DM allows temporal relationships between activities to be expressed.
-
+
+<p>PROV-DM allows dependencies amongst activities between activities to be expressed.
 An <dfn id="InformationFlowOrdering">information flow ordering record</dfn> is a representation that an entity was generated by an activity, before it was used by another activity.
-A <dfn id="ControlOrdering">control ordering record</dfn> is a representation that the end of
-an activity <a>precedes</a> the start of another activity.
+A <dfn id="ControlOrdering">control ordering record</dfn> is a representation that an activity was initiated by another activity.
 </p>
 
 <p>In PROV-ASN, an activity ordering record's text matches the <span class="nonterminal">activityOrderingRecord</span> production of the grammar defined in this specification document.
@@ -2465,8 +2462,10 @@
 <br/>
 
 <span class="nonterminal">controlOrderingRecord</span> &nbsp;:= 
-<span class="name">wasScheduledAfter</span>
+<span class="name">wasStartedBy</span>
 <span class="name">(</span>
+[<span class="nonterminal">identifier</span>
+<span class="name">,</span>]
 <span class="nonterminal">identifier</span>
 <span class="name">,</span>
 <span class="nonterminal">identifier</span>
@@ -2476,13 +2475,14 @@
 
 
 <p>
-A information flow ordering record, written as 
+An information flow ordering record, written as 
 <span class="name">wasInformedBy(a2,a1)</span> in PROV-ASN: 
 <ul>
 <li> refers to an activity record identified by <span class="name">a2</span>;
 <li> refers to an activity record identified by <span class="name">a1</span>
 </ul>
-and states information flow ordering between the activities represented by these records, specified as follows.
+
+<p> An information flow ordering record is formally defined as follows.</p>
 
 <div class='constraint' id='wasInformedBy Definition'>Given two activity records identified by <span class="name">a1</span> and <span class="name">a2</span>, 
  the record <span class="name">wasInformedBy(a2,a1)</span>
@@ -2517,43 +2517,55 @@
 
 
 <div class="note">
-The relation wasScheduledAfter is to be simplified using wasStartedBy/wasEndedBy.
+The relation wasScheduledAfter was dropped, and replaced by a simplier relation wasStartedBy(a2,a1). It is intentional that the name wasStartedBy is overloaded.
 </div>
 
 <p>
 A control ordering record, written as 
-<span class="name">wasScheduledAfter(a2,a1)</span> in PROV-ASN: </p>
+<span class="name">wasStartedBy(a2,a1)</span> in PROV-ASN: </p>
 <ul>
-<li> refers to an activity record identified by <span class="name">a2</span>;
-<li> refers to an activity record identified by <span class="name">a1</span>,
+<li><em>id</em>:  an OPTIONAL identifier  <span class="name">id</span>;</li> 
+<li><em>started</em>: refers to an activity record identified by <span class="name">a2</span>, representing the started activity;
+<li><em>starter</em>: refers to an activity record identified by <span class="name">a1</span>, representing the activity that started <span class="name">a1</span></li>
 </ul>
-<p>and states control ordering between <span class="name">a2</span> and <span class="name">a1</span>, specified as follows.</p>
-
-<div class='constraint' id='wasScheduledAfter'>Given two activity records identified by <span class="name">a1</span> and <span class="name">a2</span>, 
- the record <span class="name">wasScheduledAfter(a2,a1)</span>
-holds, <span class='conditional'>if and only if</span>
- there are two entity records identified by <span class="name">e1</span> and <span class="name">e2</span>,
-such that <span class="name">wasControlledBy(a1,e1,[prov:role="end"])</span> and <span class="name">wasControlledBy(a2,e2,[prov:role="start"])</span> and <span class="name">wasDerivedFrom(e2,e1)</span>.
+<p>Such a record states control ordering between <span class="name">a2</span> and <span class="name">a1</span>, specified as follows.</p>
+
+<div class='constraint' id='wasStartedBy'>Given two activity records identified by <span class="name">a1</span> and <span class="name">a2</span>, 
+ the record <span class="name">wasStartedBy(a2,a1)</span>
+holds <span class='conditional'>if and only if</span>
+ there exist an entity record identified by <span class="name">e</span> 
+and some attributes  <span class="name">gAttr</span> and  <span class="name">sAttr</span>,
+such that
+ <span class="name">wasGeneratedBy(e,a1,gAttr)</span> 
+ and <span class="name">wasStartedBy(a2,e,sAttr)</span> hold.
 </div>
-<p>This definition assumes that the activities represented by activity records identified by <span class="name">a1</span> and <span class="name">a2</span> are controlled by some agents (with identifiers <span class="name">e1</span> and <span class="name">e2</span>), where the first agent terminates (control attribute <span class="name">[prov:role="end")</span>) the first activity, and the second agent initiates (control attribute <span class="name">[prov:role="start")</span>) the second activity.  The second agent being "derived" from the first enforces  temporal ordering. </p>
-
+
+
+<div class="anexample">
 <p>
 In the following assertions, we find two activity records, identified by <span class="name">a1</span> and <span class="name">a2</span>, representing two activities, which took place on two separate hosts.</p>
 <pre class="example">
-activity(a1,long-workflow,t1,t2,[host="server1.example.org"])
-activity(a2,long-workflow,t3,t4,[host="server2.example.org"])
-entity(e1,[prov:type="scheduler",state=1])
-entity(e2,[prov:type="scheduler",state=2])
-wasControlledBy(a1,e1,[prov:role="end"])
-wasControlledBy(a2,e2,[prov:role="start"])
-wasDerivedFrom(e2,e1)
-wasScheduledAfter(a2,a1)
+activity(a1,workflow,t1,t2,[host="server1.example.org"])
+activity(a2,sub-workflow,t3,t4,[host="server2.example.org"])
+entity(e,[prov:type="spawn-request"])
+wasGeneratedBy(e,a2)
+wasStartedBy(a2,e)
+wasStartedBy(a2,a1)
 </pre>
-<p>The one identified by <span class="name">a2</span> is said to be
-scheduled after the one identified by <span class="name">a1</span>
+<p>The one identified by <span class="name">a2</span> was started 
+by the one identified by <span class="name">a1</span>
 because the scheduler terminated the activity (represented by activity identified by <span class="name">a1</span>) to relocate it
 to the new host.
 </p>
+</div>
+
+<div class='interpretation' id='wasStartedBy-ordering'>
+Given two activity records denoted by <span class="name">a1</span> and <span class="name">a2</span>, <span class='conditional'>if</span> the record <span class="name">wasStartedBy(a2,a1)</span>
+ holds, <span class='conditional'>then</span> the
+start event of the activity record denoted by <span class="name">a1</span> <a>precedes</a> the start event of
+the activity record denoted by <span class="name">a2</span>.
+</div>
+
 
 
 <div class='pending'>Suggested definition for process ordering. This is <a href="http://www.w3.org/2011/prov/track/issues/50">ISSUE-50</a>.</div>
@@ -2905,7 +2917,8 @@
 <section class="appendix"> 
       <h2>Changes Since Previous Version</h2> 
 <ul>
-<li>11/21/11: Added wasInformedBy-ordering.</li>
+<li>11/21/11: Added wasStartedBy between activities</li>
+<li>11/21/11: Added wasInformedBy-ordering constraint.</li>
 <li>11/17/11: Added Traceability  Record.</li>
 <li>11/17/11: Rewrote the whole section on Derivation Record.</li>
 <li>11/17/11: Updated wasDerivedFrom to refer to generation/usage record ids.</li>