derivation
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Fri, 05 Aug 2011 13:03:51 +0100
changeset 133 cff2132a9a12
parent 132 2b6cb01bb25f
child 134 187e254abd22
derivation
model/ProvenanceModel.html
--- a/model/ProvenanceModel.html	Fri Aug 05 12:59:35 2011 +0100
+++ b/model/ProvenanceModel.html	Fri Aug 05 13:03:51 2011 +0100
@@ -582,13 +582,95 @@
 <h3>Derivation</h3>
 
 
+<div class='note'>This section remains very much work in progress.  Many issues have been raised and discussed, and for several of them, consensus still remains difficult to reach.  The presentation of derivation has been altered, and new names adopted, in the hope of clarifying this notion. Key outstanding issues include:
+<ul>
+<li> what is the exact relationship between entities attributes and derivation;
+<li> transitive nature of derivation.
+</ul></div>
+
 <p><dfn id="dfn-Derivation">Derivation</dfn> expresses that some characterized thing is transformed from, created from, or affected by another characterized thing.  </p>
 
-<p>A Derivation assertion, <b>isDerivedFrom(b1,b2)</b>:
+<p>PIL offers two different kinds of assertions by which asserters can formulate derivations. The first one is tightly connected to the notion of process execution, whereas the second one is not. The first kind of assertion is particularly suitable for asserters who have an intimate knowledge of process executions, and offers a more precise description of derivation, whereas the second does not put such a requirement on the asserter, and allows a less precise description of derivation to be asserted. From these assertions, further derivations can be inferred by transitive closure. </p>
+
+<section>
+<h4>Process Execution Linked Derivation Assertion</h4>
+
+<p>A process execution linked derivation, which, by definition of derivation, expresses that some characterized thing is transformed from, created from, or affected by another characterized thing, entails a process execution that transforms, creates or affects this characterized thing.</pe>
+
+<p>In its full form, a process-execution linked derivation assertion, noted <b>isDerivedFrom(e2,e1,pe,r2,r1)</b>:
 <ul>
-<li> refers to an entity <b>b1</b>, denoting the generated characterized thing;
-<li> refers to an entity <b>b2</b>, denoting the used characterized thing.
+<li> refers to an entity <b>e2</b>, denoting the used characterized thing;
+<li> refers to an entity <b>e1</b>, denoting the generated characterized thing;
+<li> refers to process execution <b>pe</b>;
+<li> contains a role <b>r2</b>.
+<li> contains a role <b>r1</b>.
 </ul>
+This assertion expresses that the process execution <b>pe</b>, by
+using the thing denoted by <b>e1</b> with role <b>r1</b> derived the
+thing denoted by entity <b>e2</b> and generated it with
+role <b>r2</b>.
+</p>
+
+<p>
+The following inference rule allows generation and use assertions to be inferred.
+</p>
+
+<div class="inference">
+If <b>isDerivedFrom(e2,e1,pe,r2,r1)</b> holds, then <b>isGeneratedBy(e2,pe,r2)</b> and <b>uses(pe,e1,r1)</b> also hold.
+</div>
+
+
+<p>For convenience, PIL allows for a compact, process-execution linked derivation assertion, written <b>isDerivedFrom(e2,e1)</b>, which:
+<ul>
+<li> refers to an entity <b>e2</b>, denoting the generated characterized thing;
+<li> refers to an entity <b>e1</b>, denoting the used characterized thing.
+</ul>
+</p>
+
+
+<p>The compact version has the same meaning as the fully formed process-execution linked derivation, except that a process execution is known to exist, though it does not need to be asserted.
+This is formalized by the following inference rule, referred to as <em>process execution introduction</em>:<br/>
+<div class='inference'>
+If <b>isDerivedFrom(e2,e1)</b> holds, then there exists a process execution <b>pe</b>, and roles <b>r1</b>,<b>r2</b>,
+such that:
+  <b>isGeneratedBy(e2,pe,r2)</b> and <b>uses(pe,e1,r1)</b>.
+</div></p>
+
+
+
+
+<p>If <b>e2</b> is derived from <b>e1</b>, then 
+this means that the thing represented by <b>e1</b> has an influence on the thing represented by <b>e2</b>, which is captured by a dependency between their attribute values; it also implies temporal ordering. These are specified as follows:</p>
+
+<p>Given a process execution <b>pe</b>, entities <b>e1</b> and <b>e2</b>, roles <b>r1</b> and <b>r2</b>, if the assertion <b>isDerivedFrom(e2,e1,pe,r2,r1)</b>
+or <b>isDerivedFrom(e2,e1)</b> holds, if and only if:
+ the values of some attributes
+of <b>e2</b> are partly or fully determined by the values of some
+attributes of <b>e1</b>.</li>
+
+<div class='note'>Should this dependency of attributes be made explicit as argument of the derivation? By making it explicit, we would allow someone to verify the validity of the derivation.</div>
+</p>
+
+
+<p>Given a process execution <b>pe</b>, entities <b>e1</b> and <b>e2</b>, roles <b>r1</b> and <b>r2</b>, if the assertion <b>isDerivedFrom(e2,e1,pe,r2,r1)</b>
+or <b>isDerivedFrom(e2,e1)</b> holds, then
+the use
+of characterized thing denoted by <b>e1</b> precedes the generation of
+the characterized thing denoted by <b>e2</b>.
+</p>
+
+
+
+<p>
+Note that inferring derivation from use and generation does not hold
+in general. Indeed, when a generation <b>isGeneratedBy(e2,pe,r2)</b>
+precedes <b>uses(pe,e1,r1)</b>, for
+some <b>e1</b>, <b>e2</b>, <b>r1</b>, <b>r2</b>, and <b>pe</b>, one
+cannot infer derivation <b>isDerivedFrom(e2,e1,pe,r2,r1)</b>
+or <b>isDerivedFrom(e2,e1)</b> since the values of attributes
+of <b>e2</b> cannot possibly be determined by the values of attributes
+of <b>e1</b>, given the creation of <b>e2</b> precedes the use
+of <b>e1</b>.
 </p>
 
 <p>
@@ -597,51 +679,91 @@
 </pre>
 </p>
 
+<p>A further inference is permitted from the compact version of derivation: 
+<div class='inference'>
+Given a process execution <b>pe</b>, entities <b>e1</b> and <b>e2</b>, and role <b>r2</b>,
+if <b>isDerivedFrom(e2,e1)</b> and <b>isGeneratedBy(e2,pe,r2)</b> hold, then there exists a role <b>r1</b>,
+such that <b>uses(pe,e1,r1)</b> also holds.
+</div>
+This inference is justified by the fact that <b>e2</b> is generated by at most one process execution. Hence,  this process execution is also the one that uses <b>e1</b>.
+</p>
 
-<p>From an assertion <b>isDerivedFrom(B,A)</b>, the values of some
-attributes of B are at least partially determined by the values
-of some attributes of A.</p>
+<div class='note'>There is a suggestion by Simon that this notion of derivation is only meaningful in the context of an account. <a href="http://lists.w3.org/Archives/Public/public-prov-wg/2011Aug/0101.html">See email</a>.  It is not clear it is the case anymore. However, the inference above is only meaning full if unicity of generation hold.</div>
+
+
+<p>We note that the "symmetric" inference, does not hold.
+From <b>isDerivedFrom(e2,e1)</b> and <b>uses(pe,e1)</b>, one cannot
+derive <b>isGeneratedBy(e2,pe,r2)</b> because <b>e1</b> may be used by
+many process execution, not all of them generating <b>e2</b>.</p>
 
 
 
-<p>Given an assertion <b>isDerivedFrom(B,A)</b>, one can infer that the use
-of characterized thing denoted by <b>A</b> precedes the generation of
-the characterized thing denoted by <b>B</b>.
+</section>
 
 <section>
-<h4>Relationship between derivation and process execution</h4>
+<h4>Process Execution Independent Derivation Assertion</h4>
 
 
-<p>A derivation, which by definition expresses that some characterized thing is transformed from, created from, or affected by another characterized thing, entails a process execution that transforms, creates or affects this characterized thing.</p>
 
-<p>This is formalized by the following inference rule, referred to as <em>process execution introduction</em>:<br/>
-if <b>isDerivedFrom(e1,e0)</b> holds, then there exists a process execution <b>pe</b>, and roles <b>r0</b>,<b>r1</b>,
-such that:
-  <b>isGeneratedBy(e1,pe,r1)</b> and <b>uses(pe,e0,r0)</b>.</p>
 
-<p>
-The converse inference does not hold. Indeed, when a generation <b>isGeneratedBy(e1,pe,r1)</b> precedes <b>uses(pe,e0,r0)</b>,  for some <b>e0</b>, <b>e1</b>, <b>r0</b>, <b>r1</b>, and <b>pe</b>, one cannot infer derivation <b>isDerivedFrom(e1,e0)</b> since the values of attributes of <b>e1</b> cannot possibly be determined by the values of attributes of <b>e0</b>, given the creation of <b>e1</b> precedes the use of <b>e0</b>.
+<p>A process execution independent derivation states the existence of a derivation, by any means whether direct or not, and regardless of any process executions. </p>
+
+<p>A process execution independent derivation, written <b>isEventuallyDerivedFrom (e2, e1)</b>, 
+<ul>
+<li> refers to an entity <b>e2</b>, denoting the used characterized thing;
+<li> refers to an entity <b>e1</b>, denoting the generated characterized thing;
+</ul>
+
+
+<p>If <b>e2</b> is derived (isEventuallyDerivedFrom) from <b>e1</b>, then 
+this means that the thing represented by <b>e1</b> has an influence on the thing represented by <b>e2</b>,
+  which at the minimum implies temporal ordering, specified as follows:</p>
+
+<p>Given two entities <b>e1</b> and <b>e2</b>, if the assertion <b>isEventuallyDerivedFrom(e2,e1)</b>
+ holds, then:
+generation of the characterized thing denoted by <b>e1</b> precedes the generation of
+the characterized thing denoted by <b>e2</b>.
 </p>
 
+<p>Note that temporal ordering is between generations of <b>e1</b>
+and <b>e2</b>, as opposed to process execution linked derivation,
+which implied temporal ordering between the use of <b>e1</b> and
+generation of <b>e2</b>.  Indeed, in the case of
+isEventuallyDerivedFrom, nothing is known about the use of <b>e1</b>,
+since there is no associated process execution.</p>
+
+<div class='note'>Should we link isEventuallyDerivedFrom to attributes as we did for isDerivedFrom?  If so, this type of inference should be presented upfront, for both.</div>
+
+
+
+
 
 </section>
+
 <section>
-<h4>Transitivity</h4>
+<h4>Transitive Derivation</h4>
 
 
-<p>The relationship <b>isDerivedFrom</b> is transitive. Indeed, given <b>isDerivedFrom(e2,e1)</b> and <b>isDerivedFrom(e1,e0)</b>, <b>e2</b> is transformed from (resp. created from/affected by) 
-<b>e1</b>, which in turn is transformed from (resp. created from/affected by) <b>e0</b>. So,
-<b>e2</b> is indirectly transformed from (resp. created from/affected by) 
-<b>e0</b>.  
+<p>
+If <b>isDerivedFrom(e2,e1)</b> holds because attribute <b>a2.1</b> of <b>e2</b> is determined by attribute <b>a1.1</b> of <b>e1</b>,
+and if <b>isDerivedFrom(e3,e2)</b> holds because attribute <b>a3.1</b>of <b>e3</b> is determined by  attribute <b>a2.2</b> of <b>e1</b>, it is not necessary the case that an attribute of <b>e3</b> is determined by an attribute of <b>e1</b>, so, an asserter may not be able to assert <b>isDerivedFrom(e3,e1)</b>.  Hence, constraints on attributes invalidate transitivit in the general case.
 </p>
 
-<p>The relationship <dfn id="dfn-isDerivedFrom+">isDerivedFrom+</dfn> is the transitive closure of <b>isDerivedFrom</b>.</p>
+<p>However, there is sense that <b>e3</b> still depends on <b>e1</b>, since <b>e3</b> could not be generated without <b>e1</b> existing. Hence, we introduce a weaker notion of derivation, which is transitive.</p>
 
-<p>Whereas <b>isDerivedFrom(e1,e0)</b>is an assertion that corresponds to a single process execution, <b>isDerivedFrom+(e1,e0)</b> is obtained by transitive closure <b>isDerivedFrom</b>.
-In addition, this specification introduces a further assertion <b>isDerivedFromInMultipleSteps(e1,e0)</b>, which may correspond to one or more process executions. The inference rule above (how do you reference?) cannot be used on this assertion, as the number of Process Executions involved in the derivation is not known.</p>
+<p>The relationship <dfn id="dfn-dependsOn">dependsOn</dfn> is defined as follows:
+<ul> 
+<li>If <b>isDerivedFrom(e2,e1)</b> or <b>isDerivedFrom(e2,e1,pe,r2,r1)</b> holds, then <b>dependsOn(e2,e1)</b>.</li>
+<li>If <b>isEventuallyDerivedFrom(e2,e1)</b> holds, then <b>dependsOn(e2,e1)</b>.</li>
+<li>If <b>dependsOn(e3,e2)</b> and <b>dependsOn(e2,e1)</b> hold, then <b>dependsOn(e3,e1)</b>.</li>
+</ul>
+
+<p>We note that <b>dependsOn</b> cannot be asserted but can only be inferred.</p>
 </section>
 
 
+
+
 <div class='issue'>Is derivation transitive? If so, it should not be introduced as an assertion.  This is <a href="http://www.w3.org/2011/prov/track/issues/45">ISSUE-45</a>.</div>
 
 <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>