changed plan, according to issue 203
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Tue, 20 Dec 2011 10:45:04 +0000
changeset 1291 676811be7851
parent 1290 217b918ef6f3
child 1292 50d5b855d19e
changed plan, according to issue 203
model/ProvenanceModel.html
--- a/model/ProvenanceModel.html	Mon Dec 19 09:30:38 2011 +0000
+++ b/model/ProvenanceModel.html	Tue Dec 20 10:45:04 2011 +0000
@@ -1011,6 +1011,11 @@
 <li>Activities are not represented by entity records, but instead by activity records, as explained below.</li>
 </ul>
 
+<p>Furthermore, section <a href="#record-ActivityAssociation">Activity Association Record</a>, introduces the idea of <em>plans</em> being associated with activities:</p>
+<ul>
+<li><span class="name">Plan</span>: entities of type <a >plan</a> that represent a set of
+actions or steps intended by one or more agents to achieve some goals.</li> 
+</ul>
 
 
 
@@ -1118,11 +1123,6 @@
 <li><span class="name">Organization</span>: agents of type Organization are social institutions such as companies, societies etc. (This type is equivalent to a "foaf:organization" [[FOAF]])</li> 
 <li><span class="name">SoftwareAgent</span>: a software agent is a piece of software. </li>
 </ul>
-<p>Furthermore, section <a href="#record-planLink">Plan Link Record</a>, introduces the idea of <em>plans</em> being associated with activities:</p>
-<ul>
-<li><span class="name">Plan</span>: agents of type <a >plan</a> are entities that represent a set of
-actions or steps intended to achieve some goal.</li> 
-</ul>
 <p>These types are mutually exclusive, though they do not cover all kinds of agent. </p>
 
 
@@ -1239,7 +1239,7 @@
 <caption>PROV-DM Core Relation Summary</caption>
 <tr><td></td><td>Entity</td><td>Activity</td><td>Agent</td><td>Note</td></tr> 
 <tr><td>Entity</td><td><a title="derivation record">wasDerivedFrom</a><br><a title="complementarity record">wasComplementOf</a></td><td><a title="generation record">wasGeneratedBy</a></td><td>-</td><td><a title="annotation record">hasAnnotation</a></td></tr>
-<tr><td>Activity</td><td><a title="usage record">used</a></td><td>-</td><td><a title="start record">wasStartedBy</a><br><a title="end record">wasEndedBy</a><br><a title="activity association record">wasAssociatedWith</a><br><a title="plan link record">hadPlan</a></td><td><a title="annotation record">hasAnnotation</a></td></tr>
+<tr><td>Activity</td><td><a title="usage record">used</a></td><td>-</td><td><a title="start record">wasStartedBy</a><br><a title="end record">wasEndedBy</a><br><a title="activity association record">wasAssociatedWith</a></td><td><a title="annotation record">hasAnnotation</a></td></tr>
 <tr><td>Agent</td><td>-</td><td>-</td><td><a title="responsibility record">actedOnBehalfOf</a></td><td><a title="annotation record">hasAnnotation</a></td></tr>
 <tr><td>Note</td><td>-</td><td>-</td><td>-</td><td><a title="annotation record">hasAnnotation</a></td></tr>
 </table>
@@ -1443,15 +1443,46 @@
 told the student to put up the web page.  So there is some notion of
 responsibility that needs to be captured. </p>
 
-<p>To this end, PROV-DM offers two kinds of records. The first, introduced in this section, represents an association between an agent and an activity; the second, introduced in <a href="#record-responsibility">Section Responsibility record</a>, represents the fact that an agent was acting on behalf of another, in the context of an activity. </p>
+<p>Provenance reflects activities that have occurred.  In some  
+cases, those activities reflect the execution of a plan that was  
+designed in advance to guide the execution.  PROV-DM allows attaching  
+a plan to an activity record, which represents what was intended to  
+happen.  The plan can be useful for various tasks, for example to  
+validate the execution as represented in the provenance record, to  
+manage expectation failures, or to provide explanations.</p>
 
 <p>Examples of activity association  include designing, participation, initiation and termination, timetabling or sponsoring. </p>
 
-<p>An <dfn id="dfn-activity-association">activity association record</dfn>, written <span class="name">wasAssociatedWith(id,a,ag2,attrs)</span> in PROV-ASN, has the following constituents:</p>
+
+
+<p>In the context of PROV-DM, a <dfn>plan</dfn> should be understood as the descriptioni of a set of
+actions or steps intended by one or more agents to achieve some goal. PROV-DM is not
+prescriptive about the nature of plans, their representation, the
+actions and steps they consist of, and their intended goals.  Hence,
+for the purpose of this specification, a plan can be a workflow for a
+scientific experiment, a recipe for a cooking activity, or a list of
+instructions for a micro-processor execution.  While PROV-DM does not
+specify the representations of plans, it allows for activities to be
+associated with plans.  Furthermore, since plans may evolve over time,
+it may become necessary to track their provenance, and hence, plans are
+entities.  An activity MAY be associated with multiple plans. This
+allows for descriptions of activities initially associated with a
+plan, which was changed, on the fly, as the activity progresses. Plans
+can be successfully executed or they can fail. We expect applications
+to exploit PROV-DM <a href="#extensibility-section">extensibility
+mechanisms</a> to capture the rich nature of plans and associations
+between activities and plans.</p>
+
+
+<p>Thus, PROV-DM offers two kinds of records. The first, introduced in this section, represents an association between an agent, a plan, and an activity; the second, introduced in <a href="#record-responsibility">Section Responsibility record</a>, represents the fact that an agent was acting on behalf of another, in the context of an activity. </p>
+
+
+<p>An <dfn id="dfn-activity-association">activity association record</dfn>, written <span class="name">wasAssociatedWith(id,a,ag2,pl,attrs)</span> in PROV-ASN, has the following constituents:</p>
 <ul>
 <li><em>id</em>:  an OPTIONAL identifier  <span class="name">id</span> identifying the activity association record;</li> 
 <li><em>activity</em>: an identifier <span class="name">a</span> for an activity record;</li>
 <li><em>agent</em>: an identifier <span class="name">ag2</span> for an agent record, which represents the agent associated with the activity;</li>
+<li><em>plan</em>: an OPTIONAL identifier <span class="name">pl</span> for an entity record, which represents a plan adopted by the agent in the context of this activity;
 <li><em>attributes</em>: an OPTIONAL set of attribute-value pairs <span class="name">attrs</span> that describe the modalities of association of this activity with this agent.</li>
 </ul>
 
@@ -1464,22 +1495,27 @@
 <span class="optional"><span class="nonterminal">identifier</span>,</span>
 <span class="nonterminal">aIdentifier</span>,
 <span class="nonterminal">agIdentifier</span>
+<span class="optional">,<span class="nonterminal">eIdentifier</span></span>
 <span class="nonterminal">optional-attribute-values</span>
 <span class="name">)</span>
 </div>
 
 <div class="anexample">
-In the following example, a programmer and a researcher agents are asserted to be associated with an activity.
+In the following example, a researcher and an operator agents are asserted to be associated with an activity. The designer's goals are achieved by a workflow <span class="name">ex:wf</span>.   
 <pre class="codeexample">
-activity(a,[prov:type="workflow"])
-agent(ag1,[prov:type="programmer"])
-agent(ag2,[prov:type="researcher"])
-wasAssociatedWith(a,ag1,[prov:role="loggedInUser", ex:how="webapp"])
-wasAssociatedWith(a,ag2,[prov:role="designer", ex:context="phd"])
+activity(ex:a,[prov:type="workflow execution"])
+agent(ex:ag1,[prov:type="operator"])
+agent(ex:ag2,[prov:type="designer"])
+wasAssociatedWith(ex:a,ex:ag1,[prov:role="loggedInUser", ex:how="webapp"])
+wasAssociatedWith(ex:a,ex:ag2,ex:wf,[prov:role="designer", ex:context="project1"])
+entity(ex:wf,[prov:type="prov:Plan"%% xsd:QName, ex:label="Workflow 1", 
+              ex:url="http://example.org/workflow1.bpel" %% xsd:anyURI])
 </pre>
+Since the workflow <span class="name">ex:wf</span> is itself an entity, its provenance can also be expressed in PROV-DM: it can be generated by some activity and derived from other entities, for instance.
 </div>
 
-
+<div class='issue'> The activity association record does not allow for a plan to be asserted without an agent.
+This seems over-restrictive. Raised in <a href="http://www.w3.org/2011/prov/track/issues/203">ISSUE-203</a>.</div>
 
 </section>
 
@@ -1546,6 +1582,7 @@
 
 </section>
 
+<!--
 
 <section id="record-planLink">
 <h4>Plan Link Record</h4>
@@ -1625,7 +1662,7 @@
 </pre>
 </div>
 </section>
-
+-->
 
 <!--