made generation time optional in imprecise derivation and activity optional in generation record (ISSUE-43 and ISSUE-205)
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Wed, 18 Jan 2012 09:41:24 +0000
changeset 1396 fa687552fc00
parent 1393 1c7cc7f85e6d
child 1397 912069d8f106
made generation time optional in imprecise derivation and activity optional in generation record (ISSUE-43 and ISSUE-205)
model/ProvenanceModel.html
--- a/model/ProvenanceModel.html	Wed Jan 18 09:05:16 2012 +0000
+++ b/model/ProvenanceModel.html	Wed Jan 18 09:41:24 2012 +0000
@@ -1330,7 +1330,7 @@
 <ul>
 <li><em>id</em>:  an OPTIONAL identifier  <span class="name">id</span> identifying the generation record;</li> 
 <li><em>entity</em>:  an identifier <span class="name">e</span> identifying an entity record that represents the entity that is created; </li>
-<li><em>activity</em>:  an identifier <span class="name">a</span> identifying an activity record that represents the activity that creates the entity;</li>
+<li><em>activity</em>:  an OPTIONAL identifier <span class="name">a</span> identifying an activity record that represents the activity that creates the entity;</li>
 
 <li><em>time</em>: an OPTIONAL "generation time" <span class="name">t</span>, the time at which the entity was created;</li>
 
@@ -1348,7 +1348,7 @@
 <span class="name">,</span> </span>
 <span class="nonterminal">eIdentifier</span>
 <span class="name">,</span>
-<span class="nonterminal">aIdentifier</span>
+<span class="optional"><span class="nonterminal">aIdentifier</span></span>
 <span class="optional"><span class="name">,</span>
 <span class="nonterminal">time</span></span>
 <span class="nonterminal">optional-attribute-values</span>
@@ -1374,9 +1374,19 @@
 </div>
 
 
+<div class='anexample'>
+<p>
+In some cases, we may want to record the time at which an entity was generated without having to specify the activity that generated it. To support this requirement, the activity component in generation records is optional. Hence,  the following record indicates the time at which an entity is generated, without giving the activity that did it.</p>
+<pre class="codeexample">
+  wasGeneratedBy(e,,2001-10-26T21:32:52)
+</pre>
+</div>
+
+<p>
 <div class="interpretation-forward">
 For the interpretation of a generation record, see <a href="#generation-within-activity">generation-within-activity</a>.
 </div>
+</p>
 
 
 <!--
@@ -1388,9 +1398,11 @@
 </div> 
 -->
 
+<p>
 <div class="structural-forward">
 See <a href="#generation-uniqueness">generation-uniqueness</a> for a structural constraint on generation records.
 </div>
+</p>
 
 <!--
 <p>A given entity record can be referred to in a single generation record in the scope of a given <a href="#record-Account">account</a>.
@@ -1817,21 +1829,23 @@
 <p>It is OPTIONAL to include  the attribute <span class="name">prov:steps</span> in a precise-1 derivation since the record already refers to the one and only one activity underpinning the derivation.</p>
 
 
-<p>An <dfn>imprecise-1 derivation record</dfn>, written <span class="name">wasDerivedFrom(id, e2,e1, attrs)</span> in PROV-ASN, contains:</p>
+<p>An <dfn>imprecise-1 derivation record</dfn>, written <span class="name">wasDerivedFrom(id, e2,e1, t, attrs)</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>usedEntity</em>: the identifier <span class="name">e1</span> of  an entity record, which is a representation of the used entity;</li>
+<li><em>time</em>: an OPTIONAL "generation time" <span class="name">t</span>, the time at which the entity denoted by <span class="name">e2</span> was created;</li>
 <li><em>attributes</em>: a set of attribute-value pairs <span class="name">attrs</span> that describe the modalities of this derivation; it MUST include the attribute-value pair <span class="name">prov:steps="single"</span>.</li>
 </ul>
 <p>An imprecise-1 derivation MUST include the attribute <span class="name">prov:steps</span>,  since it is the only means to distinguish this record from an imprecise-n derivation record.</p>
 
 
-<p>An <dfn>imprecise-n derivation record</dfn>, written <span class="name">wasDerivedFrom(id, e2, e1, attrs)</span> in PROV-ASN, contains:</p>
+<p>An <dfn>imprecise-n derivation record</dfn>, written <span class="name">wasDerivedFrom(id, e2, e1, t, attrs)</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>usedEntity</em>: the identifier <span class="name">e1</span> of  an entity record, which is a representation of the used entity;</li>
+<li><em>time</em>: an OPTIONAL "generation time" <span class="name">t</span>, the time at which the entity denoted by <span class="name">e2</span> was created;</li>
 <li><em>attributes</em>: an OPTIONAL set of attribute-value pairs <span class="name">attrs</span> that describe the modalities of this derivation; it optionally includes the attribute-value pair <span class="name">prov:steps="any"</span>.</li>
 </ul>
 <p>It is OPTIONAL to include  the attribute <span class="name">prov:steps</span> in an imprecise-n derivation record. It defaults to <span class="name">prov:steps="any"</span>.</p> 
@@ -1850,19 +1864,28 @@
 <span class="nonterminal">eIdentifier</span>
 <span class="name">,</span>
 <span class="nonterminal">eIdentifier</span>
-<span class="optional">
 <span class="name">,</span>
 <span class="nonterminal">aIdentifier</span>
 <span class="name">,</span>
 <span class="nonterminal">gIdentifier</span>
 <span class="name">,</span>
 <span class="nonterminal">uIdentifier</span>
-</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span><br/>
+|
+<span class="name">wasDerivedFrom</span>
+<span class="name">(</span>
+<span class="optional"> <span class="nonterminal">identifier</span>,</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="optional"><span class="name">,</span>
+<span class="nonterminal">time</span></span>
 <span class="nonterminal">optional-attribute-values</span>
 <span class="name">)</span>
 </div>
 <p>
-When the activity, generation and usage record identifiers are present, a derivation record is precise-1.  The distinction between imprecise-1 and imprecise-n is given by the 
+The first clause of the alternative, where the activity, generation and usage record identifiers are present formalizes a derivation record is precise-1. The second clause of the alternative, with optional time formalizes imprecise records. The distinction between imprecise-1 and imprecise-n is made by the 
 attribute <span class="name">prov:steps</span>.  
 </p>
 
@@ -1876,6 +1899,8 @@
 
 wasDerivedFrom(e2,e1,[])
 wasDerivedFrom(e2,e1,[prov:steps="any"])
+
+wasDerivedFrom(e2,e1,2012-01-18T16:00:00, [prov:steps="any"])
 </pre>
 <p>
 The first two are precise-1 derivation records expressing that the activity represented by the activity <span class="name">a4</span>, by
@@ -1884,7 +1909,7 @@
 entity denoted by <span class="name">e5</span> and generated it according to generation record
  <span class="name">g2</span>. 
 
-The third record is an imprecise-1 derivation, which is similar for <span class="name">e3</span> and <span class="name">e2</span>, but it leaves the activity record and associated attributes implicit. The fourth and fifth records are imprecise-n derivation records between  <span class="name">e2</span> and  <span class="name">e1</span>, but no information is provided as to the number and identity of activities underpinning the derivation.
+The third record is an imprecise-1 derivation, which is similar for <span class="name">e3</span> and <span class="name">e2</span>, but it leaves the activity record and associated attributes implicit. The fourth and fifth records are imprecise-n derivation records between  <span class="name">e2</span> and  <span class="name">e1</span>, but no information is provided as to the number and identity of activities underpinning the derivation. The six derivation records extends the fifth with the derivation time of <span class="name">e2</span>.
 </p>
 </div>
 
@@ -1968,10 +1993,20 @@
 of <span class="name">e1</span>.
 </p>
 
+
+<p>In PROV-DM, the effective placeholder for an entity generation time is the <a>generation record</a>. The presence of 
+time information in imprecise derivation records is merely a convenience notation for a timeless derivation record and a generation record with this generation time information. </p>
+
+<div class='inference' id="derivation-time-elimination">
+<span class='conditional'>If</span> <span class="name">wasDerivedFrom(e2,e1,t,attrs)</span> holds, <span class='conditional'>then</span> the following records also hold:
+<span class="name">wasDerivedFrom(e2,e1,attrs)</span> and <span class="name">wasGeneratedBy(e2,t)</span>.
+</div>
+
+<p>
 <div class="structural-forward">
 See <a href="#derivation-use">derivation-use</a> for a structural constraint on derivation records.
 </div>
-
+</p>