optional id for generation record
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Wed, 16 Nov 2011 15:51:24 +0000
changeset 922 485e923590e3
parent 912 a36953a17b08
child 923 91ba993e1fa9
optional id for generation record
model/ProvenanceModel.html
--- a/model/ProvenanceModel.html	Wed Nov 16 14:32:56 2011 +0000
+++ b/model/ProvenanceModel.html	Wed Nov 16 15:51:24 2011 +0000
@@ -979,12 +979,26 @@
 <p>In PROV-DM, a <dfn id="dfn-Generation">generation record</dfn> is a representation of a world event, the creation of a new entity by an activity. This entity did not exist before creation. 
 The representation of this event encompasses a description of the modalities of generation of this entity by this activity.</p>
 
+
+<p>A generation record, written <span class="name">wasGeneratedBy(e,a,attrs,t)</span> in PROV-ASN, has the following components:</p>
+<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>attributes</em>:  a set of attribute-value pairs <span class="name">attrs</span> that describes the modalities of generation of this entity by this activity;</li>
+
+<li><em>time</em> an OPTIONAL "generation time" <span class="name">t</span>, the time at which the entity was created.</li>
+</ul>
+
 <p>In PROV-ASN, a generation record's text matches the <span class='nonterminal'>generationRecord</span> production of the grammar defined in this specification document.</p>
 
 <div class='grammar'>
 <span class="nonterminal">generationRecord</span>&nbsp;:=  
 <span class="name">wasGeneratedBy</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>
@@ -997,18 +1011,7 @@
 
 
 
-<p>A generation record, written <span class="name">wasGeneratedBy(e,pe,attrs,t)</span> in PROV-ASN:</p>
-<ul>
-<li> contains an identifier <span class="name">e</span> identifying an entity record that represents the entity that is created; </li>
-<li> contain an identifier <span class="name">pe</span> identifying an activity record that represents the activity that creates the entity;</li>
-
-<li> contains a set of attribute-value pairs <span class="name">attrs</span> that describes the modalities of generation of this entity by this activity;</li>
-
-<li> MAY contain a "generation time" <span class="name">t</span>, the time at which the entity was created.</li>
-</ul>
-
-
-
+<div class='example'>
 <p>
 The following generation assertions</p>
 <pre class="example">
@@ -1018,6 +1021,23 @@
 <p>state the existence of two events in the world (with respective times <span class="name">t1</span> and <span class="name">t2</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">pe1</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.
 </p>
+</div>
+
+
+
+<p>
+A generation record's id is OPTIONAL. It MUST be used when annotating generation records (see Section <a href="#record-annotationAssociation">Annotation Association Record</a>) or when defining derivations (see <a href="#pe-linked-derivationRecord"><span class='nonterminal'>pe-linked-derivationRecord</span></a>).
+</p>
+
+
+
+<p>The assertion of a generation event implies ordering of events in the world.</p>
+
+
+<div class='interpretation' id='generation-pe-ordering'><span class='conditional'>If</span> an assertion <span class="name">wasGeneratedBy(x,pe,attrs)</span> or <span class="name">wasGeneratedBy(x,pe,attrs,t)</span>, <span class='conditional'>then</span> generation of the entity denoted by <span class="name">x</span> precedes the end
+of <span class="name">pe</span> and follows the beginning of <span class="name">pe</span>. 
+</div> 
+
 
 
 <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>.
@@ -1029,34 +1049,7 @@
 <span class='conditional'>then</span> <span class="name">pe1</span>=<span class="name">pe2</span>  and <span class="name">attrs1</span>=<span class="name">attrs2</span>.
 </div> 
 
-
-A generation event SHOULD have some visibility on the attributes of the generated entity, as expressed by the following constraint.
-
-
-<div class='deprecatedconstraint' id='generation-affects-attributes'>Given an identifier <span class="name">pe</span> for an activity record, an identifier <span class="name">e</span> for an entity record, a set of attribute-value pairs <span class="name">attrs</span>, and optional time <span class="name">t</span>,
-<span class='conditional'>if</span> the assertion <span class="name">wasGeneratedBy(e,pe,p)</span>
-or <span class="name">wasGeneratedBy(e,pe,attrs,t)</span> holds, <span class='conditional'>then</span> the values of <em>some</em> of <span class="name">e</span>'s
-attributes are determined by the activity represented by activity record identified by <span class="name">pe</span> and the
-entity records used by <span class="name">pe</span>.
-Only some (possibly none) of the attributes values  may be determined
-since, in an open world, not all used entity records may have been
-asserted.  
-</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>
-
-
-The assertion of a generation event implies ordering of events in the world.
-
-
-<div class='interpretation' id='generation-pe-ordering'><span class='conditional'>If</span> an assertion <span class="name">wasGeneratedBy(x,pe,attrs)</span> or <span class="name">wasGeneratedBy(x,pe,attrs,t)</span>, <span class='conditional'>then</span> generation of the entity denoted by <span class="name">x</span> precedes the end
-of <span class="name">pe</span> and follows the beginning of <span class="name">pe</span>. 
-</div> 
-
-
-
-
-
+<div class='note'>TODO: Introduce the well-formed-ness constraint in a entirely separate section.</div>
 
 
 </section>
@@ -1113,24 +1106,17 @@
 </p>
 
 
+
+
 <p>A reference to a given entity record MAY appear in multiple use records that share
  a given activity record identifier. If one wants to annotate a use record or if one wants to express a <a href="#pe-linked-derivationRecord"><span class='nonterminal'>pe-linked-derivationRecord</span></a> referring to this entity and activity records, the attributes occuring in this use assertion MUST be unique among the attributes of other use records for this  activity
 </p>
 
-<!-- Luc, should we write a constraint for this? It's not clear the
-constraint is formulated properly -->
-
-
-
-<div class='deprecatedconstraint' id='use-attributes'>
-Given an activity record identified by <span class="name">pe</span>, an entity record identified by <span class="name">e</span>, a set of attribute-value pairs <span class="name">attrs</span>, and optional time <span class="name">t</span>, <span class='conditional'>if</span>
- assertion <span class="name">used(pe,e,attrs)</span> or <span class="name">used(pe,e,attrs,t)</span> holds, 
-<span class='conditional'>then</span> the existence of an attribute-value pair in the entity record identified by <span class="name">e</span> is a
-pre-condition for the termination of the activity represented by the activity record identified by <span class="name">pe</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='note'>TODO: The two previous paragraphs can be merged. The unicity property on attributes is not required, since we have introduced an identity. Needs reformulating.</div>
+
+
+
 
 
 
@@ -2687,6 +2673,9 @@
 <section class="appendix"> 
       <h2>Changes Since Previous Version</h2> 
 <ul>
+<li>11/16/11: Removed constraint generation-affects-attributes.</li>
+<li>11/16/11: Removed constraint use-attributes.</li>
+<li>11/16/11: Introduced optional identity for use and generation record.</li>
 <li>11/11/11: Swapped sections 6 and 7.</li>
 <li>11/11/11: Use attribute-value pairs uniformly, instead of qualifiers and name-value pairs.</li>
 <li>11/08/11: Renamed 'provenance container' into 'record container'.</li>