--- a/model/ProvenanceModel.html Thu Nov 17 18:10:00 2011 +0000
+++ b/model/ProvenanceModel.html Thu Nov 17 23:54:24 2011 +0000
@@ -11,6 +11,7 @@
<!-- PM -->
<style type="text/css">
.note { font-size:small; margin-left:50px }
+ table { text-align: center; vertical-align: middle }
</style>
<script src="http://dev.w3.org/2009/dap/ReSpec.js/js/respec.js" class="remove"></script>
@@ -140,6 +141,7 @@
</script>
</head>
<body>
+
<section id="abstract">
<p>
PROV-DM is a core data model for provenance for building
@@ -992,17 +994,13 @@
<p>This section describes all the PROV-DM records creating associations between the elements introduced in <a href="#record-element">Section element</a>. While these relations are not binary, they all involve two primary elements. They can be summarized as follows. </p>
-<style type="text/css">
-table { text-align: center; margin: 5em 0 0 0; vertical-align: middle }
-</style>
<div class="table">
<table border="1" align="center">
<tr><td></td><td>Entity</td><td>Activity</td><td>Agent</td><td>Note</td></tr>
-<tr><td>Entity</td><td>wasComplementOf</td><td>wasGeneratedBy</td><td>-</td><td>hasAnnotation</td></tr>
+<tr><td>Entity</td><td>wasDerivedFrom<br>wasBasedOn<br>wasComplementOf</td><td>wasGeneratedBy</td><td>-</td><td>hasAnnotation</td></tr>
<tr><td>Activity</td><td>used</td><td>-</td><td>wasStartedBy<br>wasEndedBy<br>wasAssociatedWith</td><td>hasAnnotation</td></tr>
-<tr><td rowspan="2">Agent</td><td rowspan="2">-</td><td colspan="2" border="0">actedOnBehalfOf</td><td rowspan="2">hasAnnotation</td></tr>
-<tr><td>-</td><td>wasComplementOf</td></tr>
+<tr><td>Agent</td><td>-</td><td>-</td><td>actedOnBehalfOf<br>wasComplementOf</td><td>hasAnnotation</td></tr>
<tr><td>Note</td><td>-</td><td>-</td><td>-</td><td>hasAnnotation</td></tr>
<caption>PROV-DM Relation Summary</caption>
</table>
@@ -1061,8 +1059,8 @@
<p>
The following generation assertions</p>
<pre class="codeexample">
- wasGeneratedBy(e1,a1,[ex:port="p1", ex:order="1" %% xsd:integer), 2001-10-26T21:32:52)
- wasGeneratedBy(e2,a1,[ex:port="p1", ex:order="2" %% xsd:integer), 2001-10-26T10:00:00)
+ wasGeneratedBy(e1,a1,[ex:port="p1", ex:order="1" %% xsd:integer], 2001-10-26T21:32:52)
+ wasGeneratedBy(e2,a1,[ex:port="p1", ex:order="2" %% xsd:integer], 2001-10-26T10:00:00)
</pre>
<p>state the existence of two events in the world (with respective times <span class="name">2001-10-26T21:32:52</span> and <span class="name">2001-10-26T10:00:00</span>), at which new entities, represented by entity records identified by <span class="name">e1</span> and <span class="name">e2</span>, are created by an activity, itself represented by an activity record identified by <span class="name">a1</span>.
The first one is available as the first value on port p1, whereas the other is the second value on port p1. The semantics of <span class="name">port</span> and <span class="name">order</span> in these records are application specific.
@@ -1132,15 +1130,15 @@
<p>
-A usage record's id is OPTIONAL, but comes handy when annotating usage records (see Section <a href="#record-annotation">Annotation Record</a>) or when defining derivations (see <a href="#pe-linked-derivationRecord"><span class='nonterminal'>pe-linked-derivationRecord</span></a>).
+A usage record's id is OPTIONAL, but comes handy when annotating usage records (see Section <a href="#record-annotation">Annotation Record</a>) or when defining derivations.
</p>
<div class='anexample'>
<p>The following usage records</p>
<pre class="codeexample">
- used(a1,e1,[ex:parameter="p1"),2011-11-16T16:00:00)
- used(a1,e2,[ex:parameter="p2"),2011-11-16T16:00:01)
+ used(a1,e1,[ex:parameter="p1"],2011-11-16T16:00:00)
+ used(a1,e2,[ex:parameter="p2"],2011-11-16T16:00:01)
</pre>
<p>state that the activity, represented by the activity record identified by <span class="name">a1</span>, consumed two entities, represented by entity records identified by <span class="name">e1</span> and <span class="name">e2</span>, at times <span class="name">2011-11-16T16:00:00</span> and <span class="name">2011-11-16T16:00:01</span>, respectively; the first one was found as the value of parameter <span class="name">p1</span>, whereas the second was found as value of parameter <span class="name">p2</span>. The semantics of <span class="name">parameter</span> in these records is application specific.</p>
</div>
@@ -1407,9 +1405,9 @@
In the following example, a programmer, a researcher and a funder agents are asserted. The porgrammer and researcher are associated with a workflow activity. The programmer acts on behalf of the researcher (delegation) encoding the commands specified by the researcher; the researcher acts on behalf of the funder, who has an contractual agreement with the researcher.
<pre class="codeexample">
activity(a,[prov:type="workflow"])
-agent(ag1,[prov:type="programmer"]
-agent(ag2,[prov:type="researcher"]
-agent(ag3,[prov:type="funder"]
+agent(ag1,[prov:type="programmer"])
+agent(ag2,[prov:type="researcher"])
+agent(ag3,[prov:type="funder"])
wasAssociatedWith(a,ag1,[prov:role="loggedInUser"])
wasAssociatedWith(a,ag2)
actedOnBehalfOf(ag1,ag2,a,[prov:type="delegation"])
@@ -1420,6 +1418,228 @@
</section>
+<section id="Derivation-Relation">
+<h4>Derivation Record</h4>
+
+<p>In PROV-DM, a <dfn id="dfn-Derivation">derivation record</dfn> is a representation that some entity is transformed from, created from, or affected by another entity in the world. </p>
+
+<p>In PROV-DM, for an entity to be transformed from, created from, or affected by another in some way, there must be some underpinning activities performing the necessary actions resulting in such a derivation.
+However, asserters may not have knowledge of these activities: they may not know their number, they may not know their identity, they may not know in what way the relevant entities are used or generated. To accommodate the varying circumstances of the various asserters, PROV-DM allows more or less precise records of derivations to be asserted. </p>
+
+<p>Furthermore, assuming that an asserter has full knowledge of an activity underpinning a derivation, the same activity can generally be modelled in terms of sub-activities, composed in a such a way as to deliver the same behavior. Hence, since activities can be modelled at arbitrary levels of granularity, there is a distinguished case in which a derivation between two entities <span class="name">e2</span> and <span class="name">e1</span> corresponds <em>exactly</em> to <em>one</em> activity that used <span class="name">e1</span> and generated <span class="name">e2</span>. This particular case of derivation is referred as <em>first degree, exact derivation</em>. </p>
+
+<p>To sum up, PROV-DM offers three forms of derivation, precise or imprecise, corresponding to n=1 activity or to n≥1 activties. The following table summarises names for the three kinds of derivation. We note that the fourth case of a precise derivation, when the number of activities is unknown, is a contradiction.</p>
+<div class="table">
+<table border="1" align="center">
+<tr><td>activity number</td><td>precise</td><td>imprecise</td></tr>
+<tr><td>n=1</td><td>degree-1, exact<br> exact-1</td><td>degree-1, lax<br>lax-1</td></tr>
+<tr><td>n≥1</td><td>---</td><td>degree n, lax<br> lax-n</td></tr>
+<caption>PROV-DM Derivation Type Summary</caption>
+</table>
+</div>
+
+
+<p>The three kinds of derivation records are successively introduced.</p>
+
+<p>A first-degree, exact derivation record, written <span class="name">wasDerivedFrom(id, e2, e1, a, g2, u1)</span> in PROV-ASN, contains:</p>
+<ul>
+<li><em>id</em>: an OPTIONAL identifier <span class="name">id</span> identifying the derivation record;</li>
+<li><em>generatedEntity</em>: the identifier <span class="name">e2</span> of an entity record, which is a representation of the generated entity;</li>
+<li><em>usedEntity</em>: the identifier <span class="name">e1</span> of an entity record, which is a representation of the used entity;</li>
+<li><em>activity</em>: an identifier <span class="name">a</span> of an activity record, which is a representation of the activity using and generating the above entities;</li>
+<li><em>generation</em>: an identifier <span class="name">g2</span> of the generation record pertaining to <span class="name">e2</span> and <span class="name">a</span>;</li>
+<li><em>usage</em>: an identifier <span class="name">u1</span> of the usage record pertaining to <span class="name">e1</span> and <span class="name">a</span>.</li>
+</ul>
+
+
+<p>A first-degree, lax derivation record, written <span class="name">wasDerivedFrom(id, e2,e1)</span> in PROV-ASN, contains:</p>
+<ul>
+<li><em>id</em>: an OPTIONAL identifier <span class="name">id</span> identifying the derivation record;</li>
+<li><em>generatedEntity</em>: the identifier <span class="name">e2</span> of an entity record, which is a representation of the generated entity;</li>
+<li><em>usedEntity</em>: the identifier <span class="name">e1</span> of an entity record, which is a representation of the used entity.</li>
+</ul>
+
+
+<p>A degree-n, lax derivation record, written <span class="name">wasBasedOn(id, e2,e1)</span> in PROV-ASN, contains:</p>
+<ul>
+<li><em>id</em>: an OPTIONAL identifier <span class="name">id</span> identifying the derivation record;</li>
+<li><em>generatedEntity</em>: the identifier <span class="name">e2</span> of an entity record, which is a representation of the generated entity;</li>
+<li><em>usedEntity</em>: the identifier <span class="name">e1</span> of an entity record, which is a representation of the used entity.</li>
+</ul>
+
+<p>None of the three kinds of derivation is defined to be transitive. Domain-specific specializations of these derivatiosn may be defined in such a way that the transitivity property holds.</p>
+
+<div class="note">
+Give counter-example of transitivity? maybe?
+</div>
+
+<p>In PROV-ASN, a derivation record's text matches the <span class='nonterminal'>derivationRecord</span> production of the grammar defined in this specification document.</p>
+
+<div class='grammar'>
+<span class="nonterminal">derivationRecord</span> :=
+<span class="nonterminal">exact-1-derivationRecord</span>
+| <span class="nonterminal">lax-1-derivationRecord</span>
+| <span class="nonterminal">lax-n-derivationRecord</span><br/>
+<br/>
+<span class="nonterminal">exact-1-derivationRecord</span>:=
+<span class="name">wasDerivedFrom</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>
+<span class="name">,</span>
+<span class="nonterminal">generationIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">usageIdentifier</span>
+<span class="name">)</span><br/>
+<span class="nonterminal">lax-1-derivationRecord</span>:=
+<span class="name">wasDerivedFrom</span>
+<span class="name">(</span>
+<span class="nonterminal">identifier</span>
+<span class="name">,</span>
+<span class="nonterminal">identifier</span>
+<span class="name">)</span>
+<br/>
+<span class="nonterminal">lax-n-derivationRecord</span>:=
+<span class="name">wasBasedOn</span>
+<span class="name">(</span>
+<span class="nonterminal">identifier</span>
+<span class="name">,</span>
+<span class="nonterminal">identifier</span>
+<span class="name">)</span>
+<br/>
+<br/>
+<span class="nonterminal">generationIdentifier</span>:= <span class="nonterminal">identifier</span><br/>
+<span class="nonterminal">usageIdentifier</span>:= <span class="nonterminal">identifier</span>
+</div>
+
+<div class="anexample">
+<p>The following derivation assertions</p>
+<pre class="codeexample">
+wasDerivedFrom(e5,e3,a4,g2,u2)
+wasDerivedFrom(e3,e2)
+wasBasedOn(e2,e1)
+</pre>
+<p>
+state the existence of derivations;
+the first expresses that the activity represented by the activity <span class="name">a4</span>, by
+using the entity denoted by <span class="name">e3</span> obtained during use documented by usage record <span class="name">u2</span>
+ derived the
+entity denoted by <span class="name">e5</span> and generated it according to generation record
+ <span class="name">g2</span>. The second is similar for <span class="name">e3</span> and <span class="name">e2</span>, but it leaves the activity record and associated attributes implicit. In the third one, a derivation is asserted between <span class="name">e2</span> and <span class="name">e1</span>, but no information is provided as to the number and indentity of activities underpinning the derivation.
+</p>
+</div>
+
+<div class="note">The WG needs to confirm the exact names for these relations.</div>
+<div class="note">These derivations should probably be given attributes like all the other relations.</div>
+
+
+<p>A degree-1, exact derivation record is a richer than a degree-1, lax derivation record, itself, being more informative that a degree-n lax derivation record. Hence, the following implications hold.</p>
+<div class='constraint' id='derivation-implications'>
+Given two entity records 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, a, g2, u1)</span>
+ holds for some generation record identified by <span class="name">g2</span>, and usage record identified by <span class="name">u1</span>, then <span class="name">wasDerivedFrom(e2,e1)</span> also holds.<br>
+
+Given two entity records 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>
+ holds, then <span class="name">wasBasedOn(e2,e1)</span> also holds.<br>
+ </div>
+
+
+
+<p>
+<p>If a derivation record holds for <span class="name">e2</span> and <span class="name">e1</span>, then
+this means that the entity represented by entity record identified by <span class="name">e1</span> has an influence on the entity represented entity record identified by <span class="name">e2</span>,
+ which at the minimum implies temporal ordering, specified as follows.</p>
+First, we consider degree-1 derivations.</p>
+
+<div class='interpretation' id='derivation-use-generation-ordering'>Given an activity record identified by <span class="name">a</span>, entity records identified by <span class="name">e1</span> and <span class="name">e2</span>, generation record identified by <span class="name">g2</span>, and usage record identified by <span class="name">u1</span>, <span class='conditional'>if</span> the record <span class="name">wasDerivedFrom(e2,e1,a,g2,u1)</span>
+or <span class="name">wasDerivedFrom(e2,e1)</span> holds, <span class='conditional'>then</span>
+the use
+of entity denoted by <span class="name">e1</span> precedes the generation of
+the entity denoted by <span class="name">e2</span>.
+</div>
+
+<p>Then, degree-n derivations.</p>
+
+<div class='interpretation' id='derivation-generation-generation-ordering'>
+Given two entity records denoted by <span class="name">e1</span> and <span class="name">e2</span>, <span class='conditional'>if</span> the record <span class="name">wasBasedOn(e2,e1)</span>
+ holds, <span class='conditional'>then</span> the
+generation event of the entity represented by the entity record denoted by <span class="name">e1</span> precedes the generation event of
+the entity represented by the entity record denoted by <span class="name">e2</span>.
+ </div>
+
+<p>Note that temporal ordering is between generations of <span class="name">e1</span>
+and <span class="name">e2</span>, as opposed to degree-1 derivation,
+which implies temporal ordering between the usage of <span class="name">e1</span> and
+generation of <span class="name">e2</span>. Indeed, in the case of
+wasBasedOn, nothing is known about the usage of <span class="name">e1</span>,
+since there is no associated activity.</p>
+
+
+
+
+<p>The degree-1, lax derivation has the same meaning as the degree-1, exact
+ derivation, except that an activity
+ is known to exist, though it does not need to be
+asserted. This is formalized by the following inference rule,
+referred to as <em>activity introduction</em>:</p>
+<div class='constraint' id="activity-introduction">
+<span class='conditional'>If</span> <span class="name">wasDerivedFrom(e2,e1)</span> holds, <span class='conditional'>then</span> there exist an activity record identified by <span class="name">a</span>, a usage record identified by <span class="name">u</span>, and a generation record identified by <span class="name">g</span>
+such that:
+<pre class="codeexample">
+activity(a,attrs)
+wasGeneratedBy(g,e2,a,gAttrs)
+used(u,a,e1,uAttrs)
+</pre>
+for sets of attribute-value pairs <span class="name">gAttrs</span>, <span class="name">uAttrs</span>, and <span class="name">attrs</span>.
+</div>
+
+
+
+
+
+<p>
+Note that inferring derivation from usage and generation does not hold
+in general. Indeed, when a generation <span class="name">wasGeneratedBy(g, e2, a, attrs2)</span>
+precedes <span class="name">used(u, a, e1, attrs1)</span>, for
+some <span class="name">e1</span>, <span class="name">e2</span>, <span class="name">attrs1</span>, <span class="name">attrs2</span>, and <span class="name">a</span>, one
+cannot infer derivation <span class="name">wasDerivedFrom(e2, e1, a, g, u)</span>
+or <span class="name">wasDerivedFrom(e2,e1)</span> since
+of <span class="name">e2</span> cannot possibly be determined by
+of <span class="name">e1</span>, given the creation of <span class="name">e2</span> precedes the use
+of <span class="name">e1</span>.
+</p>
+
+<div class="note">The following property holds for account where
+generation-unicity applies. Maybe move it to separate section with all
+related material. </div>
+
+<p>A further inference is permitted from the compact version of derivation record: </p>
+<div class='constraint' id='derivation-use'>
+<p>Given an activity record identified by <span class="name">pe</span>, entity records identified by <span class="name">e1</span> and <span class="name">e2</span>, and set of attribute-value pairs <span class="name">attrs2</span>,
+<span class='conditional'>if</span> <span class="name">wasDerivedFrom(e2,e1)</span> and <span class="name">wasGeneratedBy(e2,pe,attrs2)</span> hold, <span class='conditional'>then</span> there exists a set of attribute-value pairs <span class="name">attrs1</span>,
+such that <span class="name">used(pe,e1,attrs1)</span> also holds.
+</div>
+<p>This inference is justified by the fact that the entity represented by entity record 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 activity record is also the one referred to in the usage record of <span class="name">e1</span>.
+</p>
+
+
+
+<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,attrs2)</span> because identifier <span class="name">e1</span> may occur in usage records referring to
+many activity records, but they may not be referred to in generation records containing identifier <span class="name">e2</span>.</p>
+
+
+
+
+
+
+
+</section>
+
+
<section id="record-complement-of">
<h4>Complementarity Record</h4>
@@ -1522,241 +1742,8 @@
</section>
</section>
-<section id="Derivation-Relation">
-<h3>Derivation Relation</h3>
-
-<div class="note">TO DO: to be moved as a subsection of entity-entiy relation section.</div>
-
-<p>In PROV-DM, a <dfn id="dfn-Derivation">derivation record</dfn> is a representation that some entity is transformed from, created from, or affected by another entity in the world. </p>
-
-<p>PROV-DM offers two different forms of derivation records. The first one is tightly connected to the notion of activity (represented by an activity record), whereas the second one is not. The first kind of assertion is particularly suitable for asserters who have an intimate knowledge of activities, is more prescriptive, but 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 formulated. Both records need to be asserted by asserters, since PROV-DM does not provide the means to infer them; however, from these assertions, further derivations can be inferred by transitive closure. </p>
-
-<p>In PROV-ASN, a derivation record's text matches the <span class='nonterminal'>derivationRecord</span> production of the grammar defined in this specification document.</p>
-
-
-<div class='grammar'>
-<span class="nonterminal">derivationRecord</span> :=
-<span class="nonterminal">pe-linked-derivationRecord</span>
-| <span class="nonterminal">pe-independent-derivationRecord</span>
-| <span class="nonterminal">transitiveDerivationRecord</span><br/>
-
-<span class="nonterminal">pe-linked-derivationRecord</span>:=
-<span class="name">wasDerivedFrom</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>
-<span class="name">,</span>
-<span class="nonterminal">generationIdentifier</span>
-<span class="name">,</span>
-<span class="nonterminal">usageIdentifier</span>]
-<span class="name">)</span><br/>
-<span class="nonterminal">generationIdentifier</span>:= <span class="nonterminal">identifier</span><br/>
-<span class="nonterminal">usageIdentifier</span>:= <span class="nonterminal">usage</span><br/>
-
-<span class="nonterminal">pe-independent-derivationRecord</span>:=
-<span class="name">wasEventuallyDerivedFrom</span>
-<span class="name">(</span>
-<span class="nonterminal">identifier</span>
-<span class="name">,</span>
-<span class="nonterminal">identifier</span>
-<span class="name">)</span><br/>
-
-<span class="nonterminal">transitiveDerivationRecord</span>:=
-<span class="name">dependedOn</span>
-<span class="name">(</span>
-<span class="nonterminal">identifier</span>
-<span class="name">,</span>
-<span class="nonterminal">identifier</span>
-<span class="name">)</span><br/>
-</div>
-
-<p>The three kinds of derivation records are successively introduced.</p>
-
-
-<section id="pe-linked-derivationRecord">
-<h4>Activity Linked Derivation Record</h4>
-
-<p>An activity linked derivation record, which, by definition of a derivation record, is a representation that some entity is transformed from, created from, or affected by another entity, also entails the existence of an activity record that represents an activity that transforms, creates or affects this entity.</p>
-
-<p>In its full form, an activity linked derivation record, written <span class="name">wasDerivedFrom(id, e2,e1,a,g2,u1)</span> in PROV-ASN, contains:</p>
-<ul>
-<li><em>id</em>: an OPTIONAL identifier <span class="name">id</span> identifying the derivation record;</li>
-<li><em>generatedEntity</em>: the identifier <span class="name">e2</span> of an entity record, which is a representation of the generated entity;</li>
-<li><em>usedEntity</em>: the identifier <span class="name">e1</span> of an entity record, which is a representation of the used entity;</li>
-<li><em>activity</em>: an identifier <span class="name">a</span> of an activity record, which is a representation of the activity using and generating the above entities;</li>
-<li><em>generation</em>: an identifier <span class="name">g2</span> of the generation record pertaining to <span class="name">e2</span> and <span class="name">a</span>;</li>
-<li><em>usage</em>: an identifier <span class="name">u1</span> of the usage record pertaining to <span class="name">e1</span> and <span class="name">a</span>;</li>
-</ul>
-
-
-
-
-
-<p>For convenience, PROV-DM allows for a compact, activity linked derivation assertion, written <span class="name">wasDerivedFrom(e2,e1)</span> in PROV-ASN, which:</p>
-<ul>
-<li> refers to an entity record identified by <span class="name">e2</span>, which is a representation of the generated entity;
-<li> refers to an entity record identified by <span class="name">e1</span>, which is a represenation of the used entity.
-</ul>
-
-
-<div class="anexample">
-<p>The following derivation assertions</p>
-<pre class="codeexample">
-wasDerivedFrom(e5,e3,a4,g2,u2)
-wasDerivedFrom(e3,e2)
-</pre>
-<p>
-state the existence of activity-linked derivations;
-the first expresses that the activity represented by the activity <span class="name">a4</span>, by
-using the entity denoted by <span class="name">e3</span> obtained during use documented by usage record <span class="name">u2</span>
- derived the
-entity denoted by <span class="name">e5</span> and generated it according to generation record
- <span class="name">g2</span>. The second is similar for <span class="name">e3</span> and <span class="name">e2</span>, but it leaves the activity record and associated attributes implicit.
-</p>
-</div>
-
-<!--
-<p>If a derivation record holds for <span class="name">e2</span> and <span class="name">e1</span>, then it means that the entity represented by the entity record identified by <span class="name">e1</span> has an influence on the entity represented by the entity record identified by <span class="name">e2</span>, which is captured by a dependency between their attribute values; it also implies temporal ordering. These are specified as follows:</p>
-
-<div class='deprecatedconstraint' id='derivation-attributes'>Given an activity record denoted by <span class="name">pe</span>, entity records denoted by <span class="name">e1</span> and <span class="name">e2</span>, set of attribute-value pairs <span class="name">attrs1</span> and <span class="name">attrs2</span>, the assertion <span class="name">wasDerivedFrom(e2,e1,pe,attrs2,attrs1)</span>
-or <span class="name">wasDerivedFrom(e2,e1)</span> holds <span class='conditional'>if and only if</span>
- the values of some attributes of the entity record identified by
- <span class="name">e2</span> are partly or fully determined by the values of some
-attributes of the entity record identified by <span class="name">e1</span>. </div>
-
-<div class='note'>The WG has approved that this constraint should be dropped. It and others had some influence on derivation transitivity. They will be removed from the documents once the proposal on derivation has been approved. </div>
--->
-
-
-<div class='interpretation' id='derivation-use-generation-ordering'>Given an activity record identified by <span class="name">pe</span>, entity records identified by <span class="name">e1</span> and <span class="name">e2</span>, sets of attribute-value pairs <span class="name">attrs1</span> and <span class="name">attrs2</span>, <span class='conditional'>if</span> the assertion <span class="name">wasDerivedFrom(e2,e1,pe,attrs2,attrs1)</span>
-or <span class="name">wasDerivedFrom(e2,e1)</span> holds, <span class='conditional'>then</span>
-the use
-of entity denoted by <span class="name">e1</span> precedes the generation of
-the entity denoted by <span class="name">e2</span>.
-</div>
-
-<!-- If there is a generation/usage record, then this is now trivial!
-<p>
-The following inference rule states that a generation and usage event can be inferred from an activity linked derivation record.
-</p>
-
-<div class="constraint" id='derivation-events'>
-<span class='conditional'>If</span> <span class="name">wasDerivedFrom(e2,e1,pe,attrs2,attrs1)</span> holds, <span class='conditional'>then</span>
- <span class="name">wasGeneratedBy(e2,pe,attrs2)</span> and <span class="name">used(pe,e1,attrs1)</span> also
- hold.
-</div>
--->
-
-
-<p>The compact version has the same meaning as the fully formed
-activity linked derivation record, except that an activity
-record is known to exist, though it does not need to be
-asserted. This is formalized by the following inference rule,
-referred to as <em>activity introduction</em>:</p>
-<div class='constraint' id="activity-introduction">
-<span class='conditional'>If</span> <span class="name">wasDerivedFrom(e2,e1)</span> holds, <span class='conditional'>then</span> there exist an activity record identified by <span class="name">a</span>, a usage record identified by <span class="name">u</span>, and a generation record identified by <span class="name">g</span>
-such that:
-<pre class="codeexample">
-activity(a,attrs)
-wasGeneratedBy(g,e2,a,gAttrs)
-used(u,a,e1,uAttrs)
-</pre>
-for sets of attribute-value pairs <span class="name">gAttrs</span>, <span class="name">uAttrs</span>, and <span class="name">attrs</span>.
-</div>
-
-
-
-
-
-<p>
-Note that inferring derivation from usage and generation does not hold
-in general. Indeed, when a generation <span class="name">wasGeneratedBy(g, e2, a, attrs2)</span>
-precedes <span class="name">used(u, a, e1, attrs1)</span>, for
-some <span class="name">e1</span>, <span class="name">e2</span>, <span class="name">attrs1</span>, <span class="name">attrs2</span>, and <span class="name">a</span>, one
-cannot infer derivation <span class="name">wasDerivedFrom(e2, e1, a, g, u)</span>
-or <span class="name">wasDerivedFrom(e2,e1)</span> since
-of <span class="name">e2</span> cannot possibly be determined by
-of <span class="name">e1</span>, given the creation of <span class="name">e2</span> precedes the use
-of <span class="name">e1</span>.
-</p>
-
-
-<p>A further inference is permitted from the compact version of derivation record: </p>
-<div class='constraint' id='derivation-use'>
-<p>Given an activity record identified by <span class="name">pe</span>, entity records identified by <span class="name">e1</span> and <span class="name">e2</span>, and set of attribute-value pairs <span class="name">attrs2</span>,
-<span class='conditional'>if</span> <span class="name">wasDerivedFrom(e2,e1)</span> and <span class="name">wasGeneratedBy(e2,pe,attrs2)</span> hold, <span class='conditional'>then</span> there exists a set of attribute-value pairs <span class="name">attrs1</span>,
-such that <span class="name">used(pe,e1,attrs1)</span> also holds.
-</div>
-<p>This inference is justified by the fact that the entity represented by entity record 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 activity record is also the one referred to in the usage record of <span class="name">e1</span>.
-</p>
-
-
-
-<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,attrs2)</span> because identifier <span class="name">e1</span> may occur in usage records referring to
-many activity records, but they may not be referred to in generation records containing identifier <span class="name">e2</span>.</p>
-
-<div class="note">This property holds for account where
-generation-unicity applies. Maybe move it to separate section with all
-related material. </div>
-
-</section>
-
-<section>
-<h4>Activity Independent Derivation Record</h4>
-
-
-
-
-<p>an activity independent derivation record is a representation of a derivation, which occurred by any means whether direct or not, and regardless of any activity in the world.</p>
-
-<p>A activity independent derivation record, written <span class="name">wasEventuallyDerivedFrom (e2, e1)</span> in PROV-ASN,
-<ul>
-<li> contains an identifier <span class="name">e2</span>, denoting an entity record, which represents the generated entity;
-<li> contains an identifier <span class="name">e1</span>, denoting an entity record, which represents the used entity.
-</ul>
-
-
-<p>If a derivation record (wasEventuallyDerivedFrom) holds for <span class="name">e2</span> and <span class="name">e1</span>, then
-this means that the entity represented by entity record identified by <span class="name">e1</span> has an influence on the entity represented entity record identified by <span class="name">e2</span>,
- which at the minimum implies temporal ordering, specified as follows:</p>
-
-<div class='constraint' id='derivation-generation-generation-ordering'>
-Given two entity records denoted by <span class="name">e1</span> and <span class="name">e2</span>, <span class='conditional'>if</span> the record <span class="name">wasEventuallyDerivedFrom(e2,e1)</span>
- holds, <span class='conditional'>then</span> the
-generation event of the entity represented by the entity record denoted by <span class="name">e1</span> precedes the generation event of
-the entity represented by the entity record denoted by <span class="name">e2</span>.
- </div>
-
-<p>Note that temporal ordering is between generations of <span class="name">e1</span>
-and <span class="name">e2</span>, as opposed to activity linked derivation,
-which implies temporal ordering between the usage of <span class="name">e1</span> and
-generation of <span class="name">e2</span> (see <a href="#derivation-use-generation-ordering">derivation-use-generation-ordering</a>). Indeed, in the case of
-wasEventuallyDerivedFrom, nothing is known about the usage of <span class="name">e1</span>,
-since there is no associated activity.</p>
-
-<p>An activity linked derivation record is a richer than an activity independent derivation record, since it
-contains or implies the existence of an activity record. Hence, from
-the former, we can infer the latter.</p>
-<div class='constraint' id='derivation-linked-independent'>
-Given two entity records 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,attrs2,attrs1)</span>
- holds, <span class='conditional'>then</span> the record <span class="name">wasEventuallyDerivedFrom(e2,e1)</span> also holds.
- </div>
-
-<p>Hence, an activity independent derivation record can be directly asserted or can be inferred (by means of <a href="#derivation-linked-independent">derivation-linked-independent</a>).</p>
-
-
-
-
-
-
-
-</section>
-
+
+<!--
<section>
<h4>Transitive Derivation Record</h4>
@@ -1786,27 +1773,13 @@
</div>
</section>
-
+-->
<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'>Derivations must take into account characterization intervals, otherwise, transitivity
-leads to incorrect conclusion. This is <a href="http://www.w3.org/2011/prov/track/issues/108">ISSUE-108</a>.
-<pre>
-
- ------------- e1
- --------------------------------------- e2
- ------------- e3
-</pre>
- dependedOn(e2,e1) does not make sense, since e1 began to exist after e2.
-
-</div>
-
-
-
</section>
@@ -2877,6 +2850,7 @@
<section class="appendix">
<h2>Changes Since Previous Version</h2>
<ul>
+<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>
<li>11/17/11: Simplified hasAnnotation mechanism, now requiring to-be-annotated record to had id.</li>
<li>11/17/11: Renamed annotation into note.</li>