--- a/model/ProvenanceModel.html Mon Oct 03 09:17:07 2011 +0100
+++ b/model/ProvenanceModel.html Mon Oct 03 11:00:07 2011 +0100
@@ -125,8 +125,6 @@
formal semantics.
</p>
-<div class='resolved'>The name of the data model still has to be decided by the WG. Current placeholder name is PIDM. This is <a href="http://www.w3.org/2011/prov/track/issues/31">ISSUE-31</a></div>
-
</section>
<section>
@@ -229,8 +227,6 @@
-<div class='resolved'>Data model vs Language. Misc comments raised at <a href="http://www.w3.org/2011/prov/track/issues/62">ISSUE-62</a></div>
-
<div class='pending'>Formalism used is not explained, not applied to concepts <a href="http://www.w3.org/2011/prov/track/issues/87">ISSUE-87</a>.</div>
@@ -249,9 +245,12 @@
<p>
-These representations are relative to an asserter, and in that sense constitute assertions stating properties of the world, as represented by an asserter. Different asserters will normally contribute different representations, and no attempt is made to define a notion of consistency of such different sets of assertions. The data model provides the means to associate attribution to assertions.
+These representations are relative to an asserter, and in that sense constitute assertions stating properties of the world, as represented by an asserter. Different asserters will normally contribute different representations, and no attempt is made to define a notion of consistency of such different sets of assertions. The data model provides the means to associate attribution to assertions.
</p>
+<div class="note">Suggestion: add "should not attempt to define or ensure the
+consistency of the assertions made by the same asserter."</div>
+
<div class="xmpl">
An alternative representation of the above file is a set of blocks in a hard disk.
</div>
@@ -299,11 +298,10 @@
-->
<p>
-The following diagram provides a high level overview of the PROV-DM. Examples of a set of provenance assertions that conform to this schema are provided in the next section.</p>
+The following diagram provides a high level overview of the PROV-DM. Examples of a set of provenance assertions that conform to this schema are provided in the next section (note: cardinality constraints on the associations are 0..* unless otherwise stated)</p>
<img src="overview.png" align="center"/>
-
<p/>The model includes the following fundamental types:
<ul>
<li>An instance of an <strong>Entity</strong> is a representation of a <em>characterized thing</em>, as defined informally above.</li> The specific nature of an entity is specified by means of a set of <strong>characterizing attributes</strong>. The
@@ -323,8 +321,6 @@
Attributes, qualifiers, and annotation are the main <strong>extensibility points</strong> in the model: individual interest groups are expected to extend PROV-DM by introducing new sets of attributes, qualifiers, and annotations as needed to address applications-specific provenance modelling requirements.
-<div class='note'>Note: time is not explicit in the figure.</div>
-
<div class='pending'>Conceptual model needs a high level overview <a href="http://www.w3.org/2011/prov/track/issues/86">ISSUE-86</a>.</div>
</section>
@@ -337,9 +333,7 @@
-<div class='resolved'>Alter example to cater for multiple ivpOf. This is <a href="http://www.w3.org/2011/prov/track/issues/33">ISSUE-33</a>.</div>
-
-<div class='resolved'>Some comments on the example. This is <a href="http://www.w3.org/2011/prov/track/issues/63">ISSUE-63</a>.</div>
+
<div class='pending'>Comments on section 3.2. This is <a href="http://www.w3.org/2011/prov/track/issues/71">ISSUE-71</a></div>
@@ -450,7 +444,7 @@
<p>
-UsedExpressions (described in <a href="#expression-Use">Section Use</a>) represent the event by which a file is read by a process execution.
+Expressions of type <strong>UsedExpressions</strong> (described in <a href="#expression-Use">Section Use</a>) represent the event by which a file is read by a process execution.
Likewise, to describe the modalities according to which the various things are used by activities, a qualifier (construct described in <a href="#expression-qualifier">Section Qualifier</a>) is introduced. Illustrations of such qualifiers are:
<span class="name">e1</span> is used in the context of <span class="name">pe1</span>'s <span clasfs="name">load</span> functionality; <span class="name">e2</span> is used by <span class="name">pe2</span> in the context of its attach functionality; <span class="name">e3</span> is used on the standard input by <span class="name">pe5</span>.
@@ -664,13 +658,11 @@
-<div class='resolved'>Characterized entity may be variant. This is <a href="http://www.w3.org/2011/prov/track/issues/32">ISSUE-32</a></div>
+
<div class='pending'>How is domain specific data combined with the provenance model? This is <a href="http://www.w3.org/2011/prov/track/issues/65">ISSUE-65</a>.</div>
-<div class='resolved'> Comments on bob <a href="http://www.w3.org/2011/prov/track/issues/60">ISSUE-60</a>.</div>
-
-<div class='resolved'>The name <b>entity</b> is used as a replacement for placeholder BOB. This is <a href="http://www.w3.org/2011/prov/track/issues/30">ISSUE-30</a>.</div>
+
<div class='pending'>Definition of Entity is confusing, maybe over-complex <a href="http://www.w3.org/2011/prov/track/issues/85">ISSUE-85</a>.</div>
@@ -707,7 +699,7 @@
<p>The activity that a process execution expression is a representation of has a duration, delimited by its start and its end events; hence, it occurs over an interval delimited by two events. However, a process execution expression need not mention time information, nor duration, because they may not be known.</p>
-<p>Such start and end times constitute <em>attributes</em> of an activity, where the meaning of attribute in the context of a process execution expression is similar to the meaning of attribute for entity expression. A process execution expression's attribute remains constant for the duration of the activity it represents. Further characteristics of the activity in the world world can be represented by other attribute-value pairs, which also remain unchanged during the activity duration.</p>
+<p>Such start and end times constitute <em>attributes</em> of an activity, where the meaning of attribute in the context of a process execution expression is similar to the meaning of attribute for entity expression. A process execution expression's attribute remains constant for the duration of the activity it represents. Further characteristics of the activity in the world can be represented by other attribute-value pairs, which MUST also remain unchanged during the activity duration.</p>
<p> An instance of a process execution expression, noted <span class="name">processExecution(id, rl, st, et, [ attr1=val1, ...])</span> in PROV-ASN:
<ul>
@@ -731,7 +723,7 @@
<div class='constraint' id='start-precedes-end'><a name="PIL:0001"> From a process execution expression, one can infer that the
start event precedes the end event of the represented activity.</a> [<a
-href="../ontology/ProvenanceFormalModel.html#PIL:0001">PIL:0001</a>] </div>
+href="../ontology/ProvenanceFormalModel.html#PROV:0001">PROV:0001</a>] </div>
<p>A process execution expression is not an entity expression.
Indeed, an entity expression represents a thing that exists in full at
@@ -741,7 +733,7 @@
unfolds or develops through time, but is typically not identifiable by
the characteristics it exhibits at any point during its duration.</p>
-<div class='resolved'>Should process execution be defined as a subclass of BOB. This is <a href="http://www.w3.org/2011/prov/track/issues/66">ISSUE-66</a>.</div>
+
</section>
<section id="expression-Agent">
@@ -767,10 +759,10 @@
<p> An agent expression, written <span class="name">agent(e)</span> in PROV-ASN,
- refers to an entity denoted by identifier <span class="name">e</span> and representing the characterized thing capable of activity.
+ refers to an entity expression denoted by identifier <span class="name">e</span> and representing the characterized thing capable of activity.
</p>
-<p>For a characterized thing, one can assert an agent expresson or alternatively, one can infer an agent expression
+<p>For a characterized thing, one can assert an agent expression or alternatively, one can infer an agent expression
by involvement in an activity represented by a process execution expression. </p>
@@ -783,7 +775,7 @@
entity(e2) and wasControlledBy(pe,e2,qualifier(role="author"))
</pre>
-the entity expression identified by <span class="name">e1</span> is accompanied of an explicit assertion of an agent expression, and this assertion holds irrespective of process executions it may be involved in. On the contrary, from the entity expression identified by <span class="name">e2</span>, one can inferred an agent expression, as per the following inference.
+the entity expression identified by <span class="name">e1</span> is accompanied by an explicit assertion of an agent expression, and this assertion holds irrespective of process executions it may be involved in. On the contrary, from the entity expression identified by <span class="name">e2</span>, one can inferred an agent expression, as per the following inference.
</p>
<div class='constraint' id='control-agent'>
@@ -800,7 +792,7 @@
<h4>Annotation</h4>
-<p>An <dfn id="dfn-annotation">annotation expression</dfn> is a set of name value pairs, whose meaning is application specific. It may or may not be a representation of something in the world.</p>
+<p>An <dfn id="dfn-annotation">annotation expression</dfn> is a set of name-value pairs, whose meaning is application specific. It may or may not be a representation of something in the world.</p>
<p>In PROV-ASN, an annotation expression's text matches the <span class="nonterminal">annotationExpression</span> production of the grammar defined in this specification document.
</p>
@@ -842,7 +834,7 @@
</p>
<p>
-Name-value pairs occurring in annotations differ from attribute-value pairs (occurring in entity expressions and process execution expressions). Attribute-value pairs MUST be a representation of something in the world, which remain constant for the duration of the characterization interval (for entity expression) or the activity duration (for process execution expressions). It is OPTIONAL for name-value pairs to be representations of something in the world. If they are a representation of something in the world, then it MAY change value for the corresponding duration.
+Name-value pairs occurring in annotations differ from attribute-value pairs (occurring in entity expressions and process execution expressions). Attribute-value pairs MUST be a representation of something in the world, which remain constant for the duration of the characterization interval (for entity expression) or the activity duration (for process execution expressions). It is OPTIONAL for name-value pairs to be representations of something in the world. If they are a representation of something in the world, then it MAY change value for the corresponding duration. If name-value pairs are a representation of something in the world that does not change, they are not regarded as determining characteristics of a characterized thing or activity, for the purpose of provenance. Indeed, it is not expectede that provenance would contain an explanation for these attribute-values.
</p>
@@ -895,17 +887,17 @@
<p>
-The following generation assertion
+The following generation assertions
<pre class="example">
wasGeneratedBy(e1,pe1,qualifier(port="p1", order=1),t1)
wasGeneratedBy(e2,pe1,qualifier(port="p1", order=2),t2)
</pre>
-states the existence of two events in the world, at which new characterized things, represented by entity expressions identified by <span class="name">e1</span> and <span class="name">e2</span> are created by an activity, itself represented by a process execution expression 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 port and order in these expressions are application specific.
+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 characterized things, represented by entity expressions identified by <span class="name">e1</span> and <span class="name">e2</span>, are created by an activity, itself represented by a process execution expression 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 expressions are application specific.
</p>
-<p>A given entity can be generated at most by one process execution in the scope of a given <a href="#expression-Account">account</a>.
+<p>A given entity expression can be referred to in a single generation expression in the scope of a given <a href="#expression-Account">account</a>.
The rationale for this constraint is as follows.
If two process executions sequentially set different values to some attribute by means of two different generate events, then they generate distinct entities. Alternatively, for two process executions to generate an entity simultaneously, they would require some synchronization by which they agree the entity is released for use; the end of this synchronization would constitute the actual generation of the entity, but is performed by a single process execution. This unicity constraint is formalized as follows.
@@ -924,23 +916,19 @@
attributes are determined by the activity represented by process execution expression identified by <span class="name">pe</span> and the
entity expressions 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 entitie expressions may have been
-asserted.</a> [<a href="../ontology/ProvenanceFormalModel.html#PIL:0002">PIL:0002</a>]
+since, in an open world, not all used entity expressions may have been
+asserted.</a> [<a href="../ontology/ProvenanceFormalModel.html#PROV:0002">PROV:0002</a>]
</div>
The assertion of a generation event implies ordering of events in the world.
<div class='constraint' id='generation-pe-ordering'><a name="PIL:0003"><span class='conditional'>If</span> an assertion <span class="name">wasGeneratedBy(x,pe,r)</span> or <span class="name">wasGeneratedBy(x,pe,r,t)</span>, <span class='conditional'>then</span> generation of the thing 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>.</a> [<a href="../ontology/ProvenanceFormalModel.html#PIL:0003">PIL:0003</a>]
+of <span class="name">pe</span> and follows the beginning of <span class="name">pe</span>.</a> [<a href="../ontology/ProvenanceFormalModel.html#PROV:0003">PROV:0003</a>]
</div>
-<div class='resolved'>Need to say identifiable activity. This is <a href="http://www.w3.org/2011/prov/track/issues/39">ISSUE-39</a>. The qualifier 'identifiable' is said to be implicit in section 4. </div>
-
-<div class='resolved'>Comments on generation <a href="http://www.w3.org/2011/prov/track/issues/59">ISSUE-59</a>.</div>
-
-<div class='resolved'> Added justification for generation by a single process <a href="http://www.w3.org/2011/prov/track/issues/67">ISSUE-67</a>.</div>
+
@@ -987,12 +975,11 @@
used(pe1,e1,qualifier(parameter="p1"),t1)
used(pe1,e2,qualifier(parameter="p2"),t2)
</pre>
-state that the activity, represented by the process execution expression identified by <span class="name">pe1</span>, consumed two characterized things, represented by entity expressions identified by <span class="name">e1</span> and <span class="name">e2</span>, at times <span class="name">t1</span> and <span class="name">t2</span>, respectively; the first one being found as the value of parameter p1, whereas the second is being found as value of parameter p2. The semantics of parameter in these expressions is application specific.
-</p>
-
-
-<p>A reference to a given entity expression MAY appear in multiple use expressions that refer
-to a given process execution expression. If one wants to annotate a use edge expression or if one wants express a <span class='nonterminal'>pe-linked-derivationExpression</span> referring to this entity and process execution expressions, the qualifier occuring in this use assertion MUST be unique among the qualifiers qualifiying use expressions for this process execution.
+state that the activity, represented by the process execution expression identified by <span class="name">pe1</span>, consumed two characterized things, represented by entity expressions identified by <span class="name">e1</span> and <span class="name">e2</span>, at times <span class="name">t1</span> and <span class="name">t2</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 expressions is application specific.</p>
+
+
+<p>A reference to a given entity expression MAY appear in multiple use expressions that share
+ a given process execution expression identifier. If one wants to annotate a use edge expression or if one wants to express a <a href="#pe-linked-derivationExpression"><span class='nonterminal'>pe-linked-derivationExpression</span></a> referring to this entity and process execution expressions, the qualifier occuring in this use assertion MUST be unique among the qualifiers qualifiying use expressions for this process execution expression.
</p>
<!-- Luc, should we write a constraint for this? It's not clear the
@@ -1001,25 +988,24 @@
<div class='constraint' id='use-attributes'><a name="PIL:0005">
-Given a process execution expression identified by <span class="name">pe</span>, entity expression identified by <span class="name">e</span>, qualifier <span class="name">q</span>, and optional time <span class="name">t</span>, <span class='conditional'>if</span>
+Given a process execution expression identified by <span class="name">pe</span>, an entity expression identified by <span class="name">e</span>, a qualifier <span class="name">q</span>, and optional time <span class="name">t</span>, <span class='conditional'>if</span>
assertion <span class="name">used(pe,e,q)</span> or <span class="name">used(pe,e,q,t)</span> holds,
<span class='conditional'>then</span> the existence of an attribute-value pair in the entity expression identified by <span class="name">e</span> is a
-pre-condition for the activity represented by the process execution identified by <span class="name">pe</span> to terminate.</a>
-[<a href="../ontology/ProvenanceFormalModel.html#PIL:0005">PIL:0005</a>]</div>
-
-
-
-<div class='constraint' id='use-pe-ordering'><a name="PIL:0006">Given a process execution expression identified by <span class="name">pe</span>, entity expression identified by <span class="name">e</span>, qualifier <span class="name">q</span>, and optional time <span class="name">t</span>, <span class='conditional'>if</span>
+pre-condition for the termination of the activity represented by the process execution expression identified by <span class="name">pe</span></a>
+[<a href="../ontology/ProvenanceFormalModel.html#PROV:0005">PROV:0005</a>]</div>
+
+
+
+<div class='constraint' id='use-pe-ordering'><a name="PIL:0006">Given a process execution expression identified by <span class="name">pe</span>, an entity expression identified by <span class="name">e</span>, a qualifier <span class="name">q</span>, and optional time <span class="name">t</span>, <span class='conditional'>if</span>
assertion <span class="name">used(pe,e,q)</span> or <span class="name">used(pe,e,q,t)</span> holds, <span class='conditional'>then</span>
the use of the thing represented by entity expression identified by <span class="name">e</span> precedes the end
-of the process execution expression identified by <span class="name">pe</span> and follows its beginning. Furthermore, the generation of the thing denoted by entity expression identified by <span class="name">e</span> always precedes
+time contained in the process execution expression identified by <span class="name">pe</span> and follows its beginning. Furthermore, the generation of the thing denoted by entity expression identified by <span class="name">e</span> always precedes
its use.</a>
-[<a href="../ontology/ProvenanceFormalModel.html#PIL:0006">PIL:0006</a>] </div>
+[<a href="../ontology/ProvenanceFormalModel.html#PROV:0006">PROV:0006</a>] </div>
<div class='issue'>Should we define a taxonomy of use? This is <a href="http://www.w3.org/2011/prov/track/issues/23">ISSUE-23</a>.</div>
-<div class='resolved'>Various comments raised at <a href="http://www.w3.org/2011/prov/track/issues/64">ISSUE-64</a>.</div>
</section>
@@ -1075,7 +1061,7 @@
<p>The three kinds of derivation expressions are successively introduced.</p>
-<section>
+<section id="pe-linked-derivationExpression">
<h4>Process Execution Linked Derivation Assertion</h4>
<p>A process execution linked derivation expression, which, by definition of a derivation expression, is a representation that some characterized thing is transformed from, created from, or affected by another characterized thing, also entails the existence of a process execution expression that represents an activity that transforms, creates or affects this characterized thing.</pe>
@@ -1123,7 +1109,7 @@
<div class="constraint" id='derivation-events'>
<a name="PIL:0010"><span class='conditional'>If</span> <span class="name">wasDerivedFrom(e2,e1,pe,r2,r1)</span> holds, <span class='conditional'>then</span>
<span class="name">wasGeneratedBy(e2,pe,r2)</span> and <span class="name">used(pe,e1,r1)</span> also
- hold. </a> [<a href="../ontology/ProvenanceFormalModel.html#PIL:0010">PIL:0010</a>]
+ hold. </a> [<a href="../ontology/ProvenanceFormalModel.html#PROV:0010">PROV:0010</a>]
</div>
@@ -1136,7 +1122,7 @@
<a name="PIL:0009">
<span class='conditional'>If</span> <span class="name">wasDerivedFrom(e2,e1)</span> holds, <span class='conditional'>then</span> there exists a process execution expression identified by <span class="name">pe</span>, and qualifiers <span class="name">q1</span>,<span class="name">q2</span>,
such that:
- <span class="name">wasGeneratedBy(e2,pe,q2)</span> and <span class="name">used(pe,e1,q1)</span>. [<a href="../ontology/ProvenanceFormalModel.html#PIL:0009">PIL:0009</a>]
+ <span class="name">wasGeneratedBy(e2,pe,q2)</span> and <span class="name">used(pe,e1,q1)</span>. [<a href="../ontology/ProvenanceFormalModel.html#PROV:0009">PROV:0009</a>]
</div></p>
@@ -1149,17 +1135,14 @@
the values of some attributes of the entity expression identified by
<span class="name">e2</span> are partly or fully determined by the values of some
attributes of the entity expression identified by <span class="name">e1</span>.</a> [<a
- href="../ontology/ProvenanceFormalModel.html#PIL:0007">PIL:0007</a>] </div>
-
-<div class='note'>Should this dependency of attributes be made explicit as argument of the derivation expression? By making it explicit, we would allow someone to verify the validity of the derivation expression.</div>
-
+ href="../ontology/ProvenanceFormalModel.html#PROV:0007">PROV:0007</a>] </div>
<div class='constraint' id='derivation-use-generation-ordering'><a name="PIL:0008">Given a process execution expression identified by <span class="name">pe</span>, entity expressions identified by <span class="name">e1</span> and <span class="name">e2</span>, qualifiers <span class="name">q1</span> and <span class="name">q2</span>, <span class='conditional'>if</span> the assertion <span class="name">wasDerivedFrom(e2,e1,pe,q2,q1)</span>
or <span class="name">wasDerivedFrom(e2,e1)</span> holds, <span class='conditional'>then</span>
the use
of characterized thing denoted by <span class="name">e1</span> precedes the generation of
-the characterized thing denoted by <span class="name">e2</span>.</a> [<a href="../ontology/ProvenanceFormalModel.html#PIL:0008">PIL:0008</a>]
+the characterized thing denoted by <span class="name">e2</span>.</a> [<a href="../ontology/ProvenanceFormalModel.html#PROV:0008">PROV:0008</a>]
</div>
@@ -1182,7 +1165,7 @@
<a name="PIL:0011">Given a process execution expression identified by <span class="name">pe</span>, entity expressions identified by <span class="name">e1</span> and <span class="name">e2</span>, and qualifier <span class="name">q2</span>,
<span class='conditional'>if</span> <span class="name">wasDerivedFrom(e2,e1)</span> and <span class="name">wasGeneratedBy(e2,pe,q2)</span> hold, <span class='conditional'>then</span> there exists a qualifier <span class="name">q1</span>,
such that <span class="name">used(pe,e1,r1)</span> also holds.</a>
- [<a href="../ontology/ProvenanceFormalModel.html#PIL:0011">PIL:0011</a>]
+ [<a href="../ontology/ProvenanceFormalModel.html#PROV:0011">PROV:0011</a>]
</div>
This inference is justified by the fact that the characterized thing represented by entity expression 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 process execution expression is also the one referred to in the use expression of <span class="name">e1</span>.
</p>
@@ -1222,7 +1205,7 @@
holds, <span class='conditional'>then</span> the
generation event of the characterized thing represented by the entity expression denoted by <span class="name">e1</span> precedes the generation event of
the characterized thing represented by the entity expression denoted by <span class="name">e2</span>.</a>
- [<a href="../ontology/ProvenanceFormalModel.html#PIL:0012">PIL:0012</a>]
+ [<a href="../ontology/ProvenanceFormalModel.html#PROV:0012">PROV:0012</a>]
</div>
<p>Note that temporal ordering is between generations of <span class="name">e1</span>
@@ -1265,8 +1248,8 @@
An instance of a transitive derivation expression, written <span class="name">dependedOn(e2, e1)</span> in PROV-ASN:
<ul>
-<li> contains an identifier <span class="name">e2</span>, denoting an entity expresson, which represents the characterized thing that is the result of the derivation;
-<li> contains an identifier <span class="name">e1</span>, denoting an entity expresson, which represents the characterized thing that the derivation relies upon.
+<li> contains an identifier <span class="name">e2</span>, denoting an entity expression, which represents the characterized thing that is the result of the derivation;
+<li> contains an identifier <span class="name">e1</span>, denoting an entity expression, which represents the characterized thing that the derivation relies upon.
</ul>
<p>The expression <span class="name">dependedOn</span> can only be inferred; in other word, it cannot be asserted. It is
transitive by definition and relies on the previously defined derivation assertions for its
@@ -1285,15 +1268,9 @@
-<div class='resolved'>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>
-<div class='issue'>Should we specifically mention derivation of agents? This is <a href="http://www.w3.org/2011/prov/track/issues/42">ISSUE-42</a>.</div>
-
-<div class='resolved'> Transitivity does not seem to follow from above definition. This is <a href="http://www.w3.org/2011/prov/track/issues/56">ISSUE-56</a>.</div>
-
-<div class='resolved'> What's the difference between one step and multi-step derivation assertion. Justification of why one entity can be generated at most once. Multi-step derivation is also transitive. This is all in <a href="http://www.w3.org/2011/prov/track/issues/67">ISSUE-67</a>.</div>
</section>
@@ -1305,7 +1282,7 @@
<section id="expression-Control">
<h3>Control</h3>
-<p> A <dfn id="dfn-Control">control expression</dfn> is a representation of the involvement of characterized thing (represented as an agent expresson or an entity expression) in an activity, which is represented by a process execution expressoin; a control qualifier qualifies this involvement.</p>
+<p> A <dfn id="dfn-Control">control expression</dfn> is a representation of the involvement of characterized thing (represented as an agent expression or an entity expression) in an activity, which is represented by a process execution expression; a control qualifier qualifies this involvement.</p>
<p>In PROV-ASN, a control expression's text matches the <span class="nonterminal">controlExpression</span> production of the grammar defined in this specification document.
</p>
@@ -1325,7 +1302,7 @@
<p>An instance of a control expression, noted <span class="name">wasControlledBy(pe,ag,q)</span> in PROV-ASN :
<ul>
<li> contains an identifier <span class="name">pe</span> denoting a process execution expression, representing the controlled activity;
-<li> refers to an agent expression or an entity expression <span class="name">ag</span>, representing the controlling characterized thing;
+<li> refers to an agent expression or an entity expression identified by <span class="name">ag</span>, representing the controlling characterized thing;
<li> contains a qualifier <span class="name">q</span>, qualifying the involvement of the thing in the activity.
</ul>
</p>
@@ -1335,7 +1312,7 @@
<pre class="example">
wasControlledBy(pe3,a4,[role=author])
</pre>
-states that the activity, represented by the process execution expression denoted by <span class="name">pe3</span> saw the involvement of a characterized thing, represented by entity expression denoted by <span class="name">a4</span> in the capacity of author.
+states that the activity, represented by the process execution expression denoted by <span class="name">pe3</span> saw the involvement of a characterized thing, represented by entity expression denoted by <span class="name">a4</span> in the capacity of author. This specification defines the qualifier name <span class="name">role</span> (see Section <a href="#expression-qualifier">Qualifier</a>) to denote the function of a characterized thing with respect to an activity.
</p>
</section>
@@ -1355,16 +1332,16 @@
<p>This intuition is made more precise by considering the entities that form the representations of characterised things at a certain point in time.
An entity expression represents, by means of attribute-value pairs, a thing and its situation in the world, which remain constant over a characterization interval.
-As soon as the thing's situation changes, this marks the end of the characterization interval for the entity expression representing it. The thing's novel situation is represented by an attribute with a new value, or an entirely different set of attribute-value pairs, embodied in another entity expression, with a new characterization interval. Thus, if we overlap the timelines (or, more generally, the sequences of value-changing events) for the two characterised things, we can hope two establish correspondences amongst the entity expressions that represent them at various points along that events line. The figure below illustrates this intuition.</p>
+As soon as the thing's situation changes, this marks the end of the characterization interval for the entity expression representing it. The thing's novel situation is represented by an attribute with a new value, or an entirely different set of attribute-value pairs, embodied in another entity expression, with a new characterization interval. Thus, if we overlap the timelines (or, more generally, the sequences of value-changing events) for the two characterised things, we can hope to establish correspondences amongst the entity expressions that represent them at various points along that events line. The figure below illustrates this intuition.</p>
<img src="complement-of.png"/>
<p>
-Relation <em>complement-of</em> between two entity expressions is intended to capture these correspondences, as follows. Suppose entity expressions A and B share a set P of properties, and each of them has other properties in addition to P. If the values assigned to each property in P are <em>compatible</em> between A and B, then we say that <em>A is-complement-of B</em>, and <em>B is-complement-of A</em>, in a symmetrical fashion. In the particular case where the set P of properties of B is a struct superset of A's properties, then we say that <em>B is-complement-of A</em>, but in this case the opposite does not hold. In this case, the relation is not symmetric. (as a special case, A and B may not share any attributes at all, and yet the asserters may still stipulate that they are representing the same thing "Royal Society". The symmetric relation may hold trivially in this case).</p>
-
-<p>The term <em>compatible</em> used above means that a mapping can be established amongst the values of attributes in P and found in the two entities. This is generalizes to the case where attribute sets P1 and P2 of A, and B, respectively, are not identical but they can be mapped to one another. The simplest case is the identity mapping, in which A and B share attribute set P, and furthermore the values assigned to attributes in P match exactly.</p>
-
-<p>It is important to note that the relation holds only as long as the entities involved are valid. As soon as one attribute changes value in one of them, new correspondences need to be found amongst the new entities. Thus, the relation has a validity span that can be expressed in terms of the event lines of the thing.</p>
+Relation <em>complement-of</em> between two entity expressions is intended to capture these correspondences, as follows. Suppose entity expressions A and B share a set P of properties, and each of them has other properties in addition to P. If the values assigned to each property in P are <em>compatible</em> between A and B, then we say that <em>A is-complement-of B</em>, and <em>B is-complement-of A</em>, in a symmetrical fashion. In the particular case where the set P of properties of B is a strict superset of A's properties, then we say that <em>B is-complement-of A</em>, but in this case the opposite does not hold. In this case, the relation is not symmetric. (as a special case, A and B may not share any attributes at all, and yet the asserters may still stipulate that they are representing the same thing "Royal Society". The symmetric relation may hold trivially in this case).</p>
+
+<p>The term <em>compatible</em> used above means that a mapping can be established amongst the values of attributes in P and found in the two entity expession. This generalizes to the case where attribute sets P1 and P2 of A, and B, respectively, are not identical but they can be mapped to one another. The simplest case is the identity mapping, in which A and B share attribute set P, and furthermore the values assigned to attributes in P match exactly.</p>
+
+<p>It is important to note that the relation holds only for the characterization intervals of the entity expessions involved As soon as one attribute changes value in one of them, new correspondences need to be found amongst the new entities. Thus, the relation has a validity span that can be expressed in terms of the event lines of the thing.</p>
<!--
The "IVP of" relationship is designed to represent pairs of entities that correspond to each other. By their own nature, an entity remains valid only as long as all of its attributes do not change their value. It follows that the correspondence "B IVP of A" is only valid within the time interval during which such invariance property holds for both A and B. When any of the property values change in either A or B, those entities are replaced by new ones, and a new correspondence may be established. Thus, "IVP of" is defined relative to the intersection of the temporal intervals for which A and B are valid.
@@ -1372,7 +1349,7 @@
-<p>In PROV-ASN, a complementarity expression's text matches the <span class="nonterminal">complementarityExpressoin</span> production of the grammar defined in this specification document.</p>
+<p>In PROV-ASN, a complementarity expression's text matches the <span class="nonterminal">complementarityExpression</span> production of the grammar defined in this specification document.</p>
<div class='grammar'>
<span class="nonterminal">complementarityExpression</span> :=
@@ -1386,24 +1363,27 @@
-<p>An instance of a complementarity expression, written <span class="name">wasComplementOf(e2,e1)</span>, where <span class="name">e1</span> and <span class="name">e2</span> are two identifiers denoting entity expressions.</p>
+<p>An instance of a complementarity expression is written <span class="name">wasComplementOf(e2,e1)</span>, where <span class="name">e1</span> and <span class="name">e2</span> are two identifiers denoting entity expressions.</p>
<p>
<pre class="example">
-entity(rs,[created: "1870"])
-
-entity(rs_l1,[location: "loc2"])
-entity(rs_l2,[location: "The Mall"])
-
-entity(rs_m1,[membership: "250", year: "1900"])
-entity(rs_m2,[membership: "300", year: "1945"])
-entity(rs_m3,[membership: "270", year: "2010"])
+entity(rs,[created="1870"])
+
+entity(rs_l1,[location="loc2"])
+entity(rs_l2,[location="The Mall"])
+
+entity(rs_m1,[membership="250", year="1900"])
+entity(rs_m2,[membership="300", year="1945"])
+entity(rs_m3,[membership="270", year="2010"])
wasComplementOf(rs_m3, rs_l2)
wasComplementOf(rs_m2, rs_l1)
wasComplementOf(rs_m2, rs_l2)
wasComplementOf(rs_m1, rs_l1)
+wasComplementOf(rs_m3, rs)
+wasComplementOf(rs_m2, rs)
+wasComplementOf(rs_m1, rs)
wasComplementOf(rs_l1, rs)
wasComplementOf(rs_l2, rs)
</pre>
@@ -1412,19 +1392,27 @@
<div class='constraint' id='wasComplementOf-necessary-cond'>
<a name="PIL:0013">An assertion "wasComplementOf(B,A)" holds over the temporal intersection of A and B, <span class='conditional'>only if</span>:
<ol>
-<li> if a mapping can be established from an attribute X of entity expression denoted by B to an attribute Y of entity expression denoted by A, then the values of A and B must be consistent with that mapping</em> </li>
- <li>B has some attribute that A does not have.
+<li> if a mapping can be established from an attribute X of entity expression identified by B to an attribute Y of entity expression identified by A, then the values of A and B must be consistent with that mapping</em>;</li>
+ <li>entity expression identified by B has some attribute that entity expression identified by A does not have.
</li></ol></a>
- [<a href="../ontology/ProvenanceFormalModel.html#PIL:0013">PIL:0013</a>]
+ [<a href="../ontology/ProvenanceFormalModel.html#PROV:0013">PROV:0013</a>]
</div>
-<div class='issue'>Mutual ivpOf each other should be agreed. This is <a href="http://www.w3.org/2011/prov/track/issues/29">ISSUE-29</a></div>
-
-<div class='issue'>Do we need a sameAsEntity relation. This is <a href="http://www.w3.org/2011/prov/track/issues/35">ISSUE-35</a></div>
-
-<div class='issue'>Is ivpOf transitive? This is <a href="http://www.w3.org/2011/prov/track/issues/45">ISSUE-45</a></div>
-
-<div class='issue'> Comments on ivpof in <a href="http://www.w3.org/2011/prov/track/issues/57">ISSUE-57</a>.</div>
+<p>The complementariy relation is not transitive. Let us consider identifiers <span class="name">e1</span>, <span class="name">e2</span>, and <span class="name">e3</span> identifying three entity expressions such that
+ <span class="name">wasComplementOf(e3,e2)</span> and <span class="name">wasComplementOf(e2,e1)</span> hold. The expression <span class="name">wasComplementOf(e3,e1)</span> may not hold because the characterization intervals of the denoted entity expressions may not overlap.</p>
+
+
+<div class='note'>We will allow wasComplementOf to be asserted between entities identified by qualified identifiers. This will allow us to express wasComplementOf between entities asserted in separate accounts (potentially, with the same identifiers).
+</div>
+
+
+<div class='pending'>Mutual ivpOf each other should be agreed. This is <a href="http://www.w3.org/2011/prov/track/issues/29">ISSUE-29</a></div>
+
+<div class='pending'>Do we need a sameAsEntity relation. This is <a href="http://www.w3.org/2011/prov/track/issues/35">ISSUE-35</a></div>
+
+<div class='pending'>Is ivpOf transitive? This is <a href="http://www.w3.org/2011/prov/track/issues/45">ISSUE-45</a></div>
+
+<div class='pending'> Comments on ivpof in <a href="http://www.w3.org/2011/prov/track/issues/57">ISSUE-57</a>.</div>
</section>
@@ -1436,9 +1424,9 @@
<p>PROV-DM allows two forms of temporal relationships between activities to be expressed.
-An <dfn id="InformationFlowOrdering">information flow ordering expression</dfn> is a representation that a characterized thing was generated by an activity, represented by a process execution expresion, before it was used by another activity, also represented by a process execution expression.
+An <dfn id="InformationFlowOrdering">information flow ordering expression</dfn> is a representation that a characterized thing was generated by an activity, before it was used by another activity.
A <dfn id="ControlOrdering">control ordering expression</dfn> is a representation that the end of
-an activity, represented by a process execution, precedes the start of another activity, represented by process execution.
+an activity precedes the start of another activity.
</p>
<p>In PROV-ASN, a process execution ordering expression's text matches the <span class="nonterminal">peOrderingExpression</span> production of the grammar defined in this specification document.
@@ -1477,36 +1465,51 @@
<li> refers to a process execution expression identified by <span class="name">pe2</span>;
<li> refers to a process execution expression identified by <span class="name">pe1</span>
</ul>
-and states information flow ordering between the activities represented by these expression, specified as follows.
-
-<div class='constraint' id='wasInformedBy'>Given two process execution expressions denoted by <span class="name">pe1</span> and <span class="name">pe2</span>,
+and states information flow ordering between the activities represented by these expressions, specified as follows.
+
+<div class='constraint' id='wasInformedBy'>Given two process execution expressions identified by <span class="name">pe1</span> and <span class="name">pe2</span>,
the expression <span class="name">wasInformedBy(pe2,pe1)</span>
holds, <span class='conditional'>if and only if</span>
- there is an entity expression denoted by <span class="name">e</span> and qualifiers <span class="name">q1</span> and <span class="name">q2</span>,
+ there is an entity expression identified by <span class="name">e</span> and qualifiers <span class="name">q1</span> and <span class="name">q2</span>,
such that <span class="name">wasGeneratedBy(e,pe1,q1)</span> and <span class="name">used(pe2,e,q2)</span> hold.
</div>
+<p>The relationship <span class="name">wasInformedBy</span> is not transitive. Indeed, consider the expressions <span class="name">wasInformedBy(pe2,pe1)</span> and <span class="name">wasInformedBy(pe3,pe2)</span>, the expression
+<span class="name">wasInformedBy(pe3,pe1)</span>, may not necessarily hold, as illustrated by the following event line.
+<pre>
+ ------ pe1
+ |
+ e1
+ |
+ ------- pe2
+ |
+ e2
+ |
+ ----- pe3
+</pre>
+The end in process execution expression identified by <span class="name">pe3</span> precedes the start in process execution expression identified by <span class="name">pe1</span>, while interval for process execution expression <span class="name">pe2</span> overlaps with each interval for <span class="name">pe1</span> and <span class="name">pe3</span>, allowing information to flow (<span class="name">e1</span> and <span class="name">e2</span>, respectively).</p>
+
<p>
An instance of a control ordering expression, written as
<span class="name">wasScheduledAfter(pe2,pe1)</span> in PROV-ASN:
<ul>
-<li> refers to a process execution expression denoted by <span class="name">pe2</span>;
-<li> refers to a process execution expression denoted by <span class="name">pe1</span>,
+<li> refers to a process execution expression identified by <span class="name">pe2</span>;
+<li> refers to a process execution expression identified by <span class="name">pe1</span>,
</ul>
and states control ordering between <span class="name">pe2</span> and <span class="name">pe1</span>, specified as follows.
-<div class='constraint' id='wasScheduledAfter'>Given two process execution expressions denoted by <span class="name">pe1</span> and <span class="name">pe2</span>,
+<div class='constraint' id='wasScheduledAfter'>Given two process execution expressions identified by <span class="name">pe1</span> and <span class="name">pe2</span>,
the expression <span class="name">wasScheduledAfter(pe2,pe1)</span>
holds, <span class='conditional'>if and only if</span>
- there are two entity expressions denoted by <span class="name">e1</span> and <span class="name">e2</span>,
+ there are two entity expressions identified by <span class="name">e1</span> and <span class="name">e2</span>,
such that <span class="name">wasControlledBy(pe1,e1,qualifier(role="end"))</span> and <span class="name">wasControlledBy(pe2,e2,qualifier(role="start"))</span> and <span class="name">wasDerivedFrom(e2,e1)</span>.
</div>
-This definition assumes that the activities represented by process execution expressions identified by <span class="name">pe1</span> and <span class="name">pe2</span> are controlled by some agents, represented by expressions identified by <span class="name">e1</span> and <span class="name">e2</span>, where the first agent terminates (control qualifier <span class="name">qualifier(role="end")</span>) the first activity, and the second initiates (control qualifier <span class="name">qualifier(role="start")</span>) the second. The second agent being "derived" from the first enforces temporal ordering.
+This definition assumes that the activities represented by process execution expressions identified by <span class="name">pe1</span> and <span class="name">pe2</span> are controlled by some agents (with identifiers <span class="name">e1</span> and <span class="name">e2</span>), where the first agent terminates (control qualifier <span class="name">qualifier(role="end")</span>) the first activity, and the second agents initiates (control qualifier <span class="name">qualifier(role="start")</span>) the second activity. The second agent being "derived" from the first enforces temporal ordering.
<p>
-In the following assertions, we find two process execution expressions, identified by <span class="name">pe1</span> and <span class="name">pe2</span>, denoting two activities, which took place on two separate hosts.
+In the following assertions, we find two process execution expressions, identified by <span class="name">pe1</span> and <span class="name">pe2</span>, representing two activities, which took place on two separate hosts.
<pre class="example">
processExecution(pe1,long-workflow,t1,t2,[host="server1.example.com"])
processExecution(pe2,long-workflow,t3,t4,[host="server2.example.com"])
@@ -1553,23 +1556,23 @@
<p>An instance of a revision expression, noted <span class="name">wasRevisionOf(e2,e1,ag)</span> in PROV-ASN:
<ul>
-<li> contains an identifier <span class="name">e2</span> denoting an entity that represents a newer version of a thing;
-<li> contains an identifier <span class="name">e1</span> denoting an entity that represents an older version of a thing;
-<li> MAY refer to a responsible agent denoted by identifier <span class="name">ag</span>.
+<li> contains an identifier <span class="name">e2</span> identifying an entity that represents a newer version of a thing;
+<li> contains an identifier <span class="name">e1</span> identifying an entity that represents an older version of a thing;
+<li> MAY refer to a responsible agent with identifier <span class="name">ag</span>.
</ul>
</p>
-<p>A revision expression can only be asserted, since it needs to include a reference to an agent who represents someone in the real world who bears responsibility for declaring a variant of a thing. However, it needs to satisfy the following constraint, linking the two entity expressions by a derivation derivation, and seing them as a complement of a third entity expression.</p>
+<p>A revision expression can only be asserted, since it needs to include a reference to an agent who represents someone in the real world who bears responsibility for declaring a variant of a thing. However, it needs to satisfy the following constraint, linking the two entity expressions by a derivation, and stating them to be a complement of a third entity expression.</p>
<div class='constraint' id='wasRevision'>
-Given two identifers <span class="name">old</span> and <span class="name">new</span> denoting two entities, and an identifier <span class="name">ag</span> denoting an agent,
+Given two identifiers <span class="name">old</span> and <span class="name">new</span> identifying two entities, and an identifier <span class="name">ag</span> identifying an agent,
<span class='conditional'>if</span> an expression <span class="name">wasRevisionOf(new,old,ag)</span> is asserted, <span class='conditional'>then</span>
-there exists an entity <span class="name">e</span> and attribute-values <span class="name">av</span>, such that the following expressions hold:
+there exists an entity expression identifier <span class="name">e</span> and attribute-values <span class="name">av</span>, such that the following expressions hold:
<ul>
<li> <span class="name">wasEventuallyDerivedFrom(new,old)</span>;
<li> <span class="name">entity(e,av)</span>;
-<li> <span class="name">wasComplement(new,e)</span>;
-<li> <span class="name">wasComplement(old,e)</span>.
+<li> <span class="name">wasComplementOf(new,e)</span>;
+<li> <span class="name">wasComplementOf(old,e)</span>.
</ul>
</div>
@@ -1590,7 +1593,6 @@
<div class='pending'>Revision should be a class not a property. This is <a href="http://www.w3.org/2011/prov/track/issues/48">ISSUE-48</a>.</div>
-<div class='resolved'> What's the difference with derivation? Is it necessary? This is <a href="http://www.w3.org/2011/prov/track/issues/61">ISSUE-61</a>.</div>
</section>
@@ -1618,8 +1620,8 @@
<p>An instance of a participation expression,
noted <span class="name">hadParticipant(pe,e)</span> in PROV-ASN:
<ul>
-<li> refers to a process execution expression denoted by identifier <span class="name">pe</span> and representing an activity;
-<li> contains an identifier <span class="name">e</span> denoting an entity expression, which is
+<li> contains to identifier <span class="name">pe</span> identifying a process execution expression representing an activity;
+<li> contains an identifier <span class="name">e</span> identifying an entity expression, which is
a representation of a characterized thing involved in this activity.
</ul>
@@ -1627,7 +1629,7 @@
<div class='constraint' id='participation'>
<a name="PIL:0014">
-Given two identifiers <span class="name">pe</span> and <span class="name">e</span>, respectively denoting a process execution expression and an entity expression, the expression <span class="name">hadParticipant(pe,e)</span> holds <span class='conditional'>if and only if</span>:
+Given two identifiers <span class="name">pe</span> and <span class="name">e</span>, respectively identifying a process execution expression and an entity expression, the expression <span class="name">hadParticipant(pe,e)</span> holds <span class='conditional'>if and only if</span>:
<ul>
<li> <span class="name">used(pe,e)</span> holds, or</li>
<li> <span class="name">wasControlledBy(pe,e)</span> holds, or</li>
@@ -1635,13 +1637,10 @@
<span class="name">hadParticipant(pe,e1)</span> holds some process execution expression identified by <span class="name">pe</span>.</li>
</ul>
</a> [<a
-href="../ontology/ProvenanceFormalModel.html#PIL:0014">PIL:0014</a>]
+href="../ontology/ProvenanceFormalModel.html#PROV:0014">PROV:0014</a>]
</div>
-
-<div class='note'>Is there a need for a similar concept that includes generated entities?</div>
-
<div class='pending'>Suggested definition for participation. This is <a href="http://www.w3.org/2011/prov/track/issues/49">ISSUE-49</a>.</div>
</section>
@@ -1673,6 +1672,8 @@
<span class="nonterminal">identifier</span> <span class="nonterminal">identifier</span> <span class="nonterminal">qualifier</span>
</div>
+<p>The interpretation of annotations is application-specific. See Section <a href="#expression-annotation">Annotation</a> for a discussion of the difference between attributes and annotations</a>.
+
<p>
The following expressions
<pre class="example">
@@ -1685,6 +1686,8 @@
assert the existence of two documents in the world (attribute-value pair: <span class="name">type="document"</span>) represented by entity expressions identified by <span class="name">e1</span> and <span class="name">e2</span>, and annotate these expressions with an annotation indicating that the icon (an application specific way of rendering provenance) is <span class="name">doc.png</span>.
</p>
+
+
</section>
</section>
@@ -1723,16 +1726,16 @@
<span class="name">)</span>
</div>
-<p>An instance of an account expression, noted <span class="name">account(id, http://x.com/user1, exprs)</span> in PROV-ASN:
+<p>An instance of an account expression, noted <span class="name">account(id, uri, exprs)</span> in PROV-ASN:
<ul>
<li> contains an identifier <span class="name">id</span> to identify this account;</li>
-<li> contains an asserter identified by URI <span class="name">http://x.com/user1</span>;</li>
-<li> contains a <em>set</em> of provenance expressions <span class="name">exprs</span>.</li>
+<li> contains an asserter identified by URI denoted by <span class="name">uri</span>;</li>
+<li> contains a <em>set</em> of provenance expressions denoted by <span class="name">exprs</span>.</li>
</ul>
</p>
<div class='note'>
-Currently, the non-terminal <span class="nonterminal">asserter</span> is defined as URI. We may want the asserter to be an agent instead, and therefore use PROV-DM to express the provenance of PROV-DM. We seek inputs on how to resolve this issue. </div>
+Currently, the non-terminal <span class="nonterminal">asserter</span> is defined as URI. We may want the asserter to be an agent instead, and therefore use PROV-DM to express the provenance of PROV-DM assertions. The editors seek inputs on how to resolve this issue. </div>
<p>
The following account expression
@@ -1747,19 +1750,19 @@
...
wasGeneratedBy(e0,pe0,outFile)
...
- wasControlledBy(pe4,a5, qualifier(role=communicator)) )
+ wasControlledBy(pe4,a5, qualifier(role="communicator")) )
</pre>
contains the set of provenance expressions of section <a href="#example-prov-asn-encoding">example-prov-asn-encoding</a>, is asserted by agent <span class="name">http://x.com/asserter</span>, and is identified by identifier <span class="name">acc0</span>.
</p>
-<p>Account expressions constitue a scope for identifiers. An identifier within the scope of an account is intended to denote a single expression. However, nothing prevents an asserter from asserting an account containing, for example, multiple entity expressions with a same identifier but different attribute-values. In that case, they should be understood as a single entity expression with this identifier, with the union of all attributes values, as formalized in <a href="#identified-entity-in-account">identified-entity-in-account</a>.</p>
+<p>Account expressions constitue a scope for identifiers. An identifier within the scope of an account is intended to denote a single expression. However, nothing prevents an asserter from asserting an account containing, for example, multiple entity expressions with a same identifier but different attribute-values. In that case, they should be understood as a single entity expression with this identifier and the union of all attributes values, as formalized in <a href="#identified-entity-in-account">identified-entity-in-account</a>.</p>
<div class='constraint' id='identified-entity-in-account'>
-Given an identifier <span class="name">e</span>, two sets of attribute-values <span class="name">av1</span> and <span class="name">av2</span>,
- two entity expressions <span class="name">entity(e,av1)</span> and <span class="name">entity(e,av2)</span> occurring in an account are equivalent to the entity expression <span class="name">entity(e,av)</span> where <span class="name">av</span> is the set formed by the union of <span class="name">av1</span> and <span class="name">av2</span>.
+Given an identifier <span class="name">e</span>, two sets of attribute-values denoted by <span class="name">av1</span> and <span class="name">av2</span>,
+ two entity expressions <span class="name">entity(e,av1)</span> and <span class="name">entity(e,av2)</span> occurring in an account are equivalent to the entity expression <span class="name">entity(e,av)</span> where <span class="name">av</span> is the set of attribute-value pairs formed by the union of <span class="name">av1</span> and <span class="name">av2</span>.
</div>
-<p>Whilst constraint <a href="#identified-entity-in-account">identified-entity-in-account</a> specifies how to understand multiple entity expressions with a same identifier within a given account, it does not guarantee that the entity expression formed with the union of all attributes is consistent. Indeed, a given attribute may be assigned multiple values, resulting in an inconsistent entity expression, as illustrated by the following example.</p>
+<p>Whilst constraint <a href="#identified-entity-in-account">identified-entity-in-account</a> specifies how to understand multiple entity expressions with a same identifier within a given account, it does not guarantee that the entity expression formed with the union of all attribute-value pairs is consistent. Indeed, a given attribute may be assigned multiple values, resulting in an inconsistent entity expression, as illustrated by the following example.</p>
<p>
In the following account expression, we find two entity expressions with a same identifier <span class="name">e</span>.
@@ -1770,7 +1773,7 @@
entity(e,[type="person",age=30])
...)
</pre>
-Application of <a href="#identified-entity-in-account">identified-entity-in-account</a> results in an entity expression containing the attributes <span class="name">age=20</span> and <span class="name">age=30</span>. This results in an inconsistent characterization of a person. We note that deciding whether a set of attribute-values is consistent or not is application specific.
+Application of <a href="#identified-entity-in-account">identified-entity-in-account</a> results in an entity expression containing the attribute-value pairs <span class="name">age=20</span> and <span class="name">age=30</span>. This results in an inconsistent characterization of a person. We note that deciding whether a set of attribute-values is consistent or not is application specific.
</p>
<p>Account expressions can be nested since an account expression can occur among the expressions being wrapped by another account. </p>
@@ -1778,7 +1781,7 @@
<p>
An account is said to be well-formed if
-it satisfied the constraints <a href="#generation-unicity">generation-unicity</a> and <a href="#derivation-use">derivation-use</a>.</p>
+it satisfies the constraints <a href="#generation-unicity">generation-unicity</a> and <a href="#derivation-use">derivation-use</a>.</p>
<p> The union of two accounts is another account,
containing the unions of their respective expressions, where
@@ -1803,7 +1806,7 @@
</pre>
with identifier <span class="name">acc2</span>, containing assertions by asserter by <span class="name">http://x.com/asserter2</span> stating that thing represented by entity expression identified by <span class="name">e0</span> was generated by an activity represented by process execution expression identified by <span class="name">pe1</span> instead of <span class="name">pe0</span> in the previous account <span class="name">acc0</span>. If accounts <span class="name">acc0</span> and <span class="name">acc2</span> are merged together, the resulting set of expressions violates <a href="#generation-unicity">generation-unicity</a>.</p>
-<p>Account expressions constitue a scope for identifiers. Since accounts can be nested, their scope can also be nested; thus, the scope of identifiers should be understood in the context of such nested scopes. When an identifiable expression occurs directly within an account, then its identifier denotes this identifiable expression in the scope of this account, except in sub-accounts where expressions with the same identifier occur. </p>
+<p>Account expressions constitue a scope for identifiers. Since accounts can be nested, their scope can also be nested; thus, the scope of identifiers should be understood in the context of such nested scopes. When an expression with an identifier occurs directly within an account, then its identifier denotes this expression in the scope of this account, except in sub-accounts where expressions with the same identifier occur. </p>
<p>
The following account expression is inspired from section <a href="#example-prov-asn-encoding">example-prov-asn-encoding</a>. This account, identified by <span class="name">acc3</span>, declares entity expression identified by <span class="name">e0</span>, which is being referred to in the nested account <span class="name">acc4</span>. The scope of identifier <span class="name">e0</span> is account <span class="name">acc3</span>, including subaccount <span class="name">acc4</span>.
@@ -1825,6 +1828,9 @@
<p>The account expression is the hook by which further meta information can be expressed about provenance, such as asserter, time of creation, signatures. How general meta-information is expressed is beyond the scope of this specification, except for asserters.</p>
+<div class='note'>We are going to introduce a disambiguation mechanism by which we can qualify identifiers by the account in which they occur (or the sequence of nested accounts in which they occur). This mechanism allows two entity expressions, asserted separately in two different accounts but with the same identifier, to be uniquely referred to.
+</div>
+
</section>
@@ -1917,6 +1923,8 @@
<p>Use, generation, and control expressions MUST contain a qualifier. A qualifier's sequence of name-value pairs MAY be empty. </p>
+<div class="note">aren't these two sentences contradictory></div>
+
<p>The interpretation of a qualifier is specific to the process execution expression it occurs in, which means that a same qualifier may appear in two different process execution expressions with different interpretations.
From this specification's viewpoint, a qualifier's interpretation is out of
scope.</p>
@@ -1951,7 +1959,6 @@
</pre>
</p>
-<div class='resolved'>Decide the level of requirements: MUST/SHOULD and justify. This is <a href="http://www.w3.org/2011/prov/track/issues/40">ISSUE-40</a> and <a href="http://www.w3.org/2011/prov/track/issues/41">ISSUE-41</a>. The circumstances in which the requirement is of type must MUST are now made explicit. </div>
@@ -1992,7 +1999,7 @@
<h4>Identifier</h4>
-<p>A <dfn id="dfn-identifier">identifier</dfn> is a finite sequence of characters. </p>
+<p>An <dfn id="dfn-identifier">identifier</dfn> is a finite sequence of characters. </p>
<div class='note'>Do we require identifiers to be URIs? All the examples in this document so far use simple labels as identifiers? Would this be acceptable? Maybe understood as default namespace and local name?
</div>
@@ -2001,6 +2008,10 @@
<span class="nonterminal">identifier</span> :=
<em>?????</em></div>
+<div class='note'>We are going to introduce a notion of qualified identifier, which allows us to refer to an identifier in the scope of a given account. Given that accounts may be nested, a qualifier identifier will be prefixed by a sequence of account identifiers, and then followed by an identifier, local to the innermost account.
+</div>
+
+
</section>
<section id="expression-literal">
@@ -2024,18 +2035,17 @@
-<p>It is OPTIONAL to assert time in use, generation, and process execution.</p>
-
-<div class='resolved'> Is it appropriate to refer to ISO8601. Point in Time, Interval? This is <a href="http://www.w3.org/2011/prov/track/issues/58">ISSUE-58</a>.</div>
+<p>It is OPTIONAL to assert time in use, generation, and process execution expressions.</p>
+
<section>
<h4>Temporal Events</h4>
Four kinds of discrete events underpin the PROV-DM data model. They are:
<ol>
-<li>Generation of an entity by a process execution: identifies the final instant of an entity's creation timespan, after which the characterized thing represented by an entity becomes available for use.</li>
-<li>Use of an entity by a process execution: identifies the first instant of an entity's consumption timespan.</li>
-<li>Start of a process execution: identifies the instant an activity represented by a process execution starts</li>
-<li>End of a process execution: identifies the instant an activity represented by a process execution ends</li>
+<li>Generation of a characterized thing by an activity: identifies the final instant of a characterized thing's creation timespan, after which it becomes available for use.</li>
+<li>Use of a characterized thing by an activity: identifies the first instant of a characterized thing's consumption timespan.</li>
+<li>Start of an activity: identifies the instant an activity, represented by a process execution, starts;</li>
+<li>End of an activity: identifies the instant an activity, represented by a process execution, ends.</li>
</ol>
</section>
@@ -2080,7 +2090,7 @@
<h3>Recipe Link</h3>
-<p>A <dfn id="dfn-RecipeLink">recipe link</dfn> is an association between a process execution and a process specification that underpins the process execution.
+<p>A <dfn id="dfn-RecipeLink">recipe link</dfn> is an association between a process execution expression and a process specification that underpins the represented activity.
</p>
<div class='grammar'>
@@ -2102,7 +2112,6 @@
-
<section id="expression-Location">
<h3>Location</h3>
@@ -2117,102 +2126,9 @@
</section>
+
</section>
-<section id="expression-Collection">
-<h3>Collections</h3>
-
-The purpose of this section is to enable modelling of part-of relationships amongst entities. In particular, a form of <strong>collection</strong> entity type is introduced, with relations for asserting
-<ul>
- <li>that a new entity has been added to the collection
- <li>that a new entity has been removed from the collection
- <li>that an entity is a member of the collection
- </ul>
-
- A collection expression is defined as follows.
-<div class='grammar'>
-<span class="nonterminal">collectionExpression</span> :=
-<span class="nonterminal">membershipExpression</span>
-| <span class="nonterminal">entityRemovalExpression</span>
-| <span class="nonterminal">entityAdditionExpression</span> <br/>
-<span class="nonterminal">membershipExpression</span> :=
-<span class="name">wasMemberOf</span>
- <span class="name">(</span>
- <span class="nonterminal">entityExpression</span>
- <span class="name">,</span>
-<span class="nonterminal">entityExpression</span>
- <span class="name">,</span>
- <span class="nonterminal">entityExpression</span>
- <span class="name">,</span>
- <span class="nonterminal">position</span>
- <span class="name">)</span>
-<br/>
-
- <span class="nonterminal">entityRemovalExpression</span> :=
-<span class="name">wasRemovedFrom</span>
- <span class="name">(</span>
- <span class="nonterminal">entityExpression</span>
- <span class="name">,</span>
-<span class="nonterminal">entityExpression</span>
- <span class="name">,</span>
- <span class="nonterminal">entityExpression</span>
- <span class="name">)</span>
-<br/>
-
- <span class="nonterminal">entityAdditionExpression</span> :=
-<span class="name">wasAddedTo</span>
- <span class="name">(</span>
- <span class="nonterminal">entityExpression</span>
- <span class="name">,</span>
-<span class="nonterminal">entityExpression</span>
- <span class="name">,</span>
- <span class="nonterminal">position</span>
- <span class="name">)</span>
- </div>
-
- In the expression: <span class="name">wasMemberOf(e1,e2,p)</span>:
-
- <ul>
- <li> entity <span class="name">e1</span> is a member of a collection;
- <li> entity <span class="name">e1</span> denotes the collection;
- <li> <span class="name">p</span> denotes the position of <span class="name">e1</span> in <span class="name">e2</span>. This argument is optional. The nature of the position depends on the specific collection type, and is left unspecified (in the case of a simple list, this is the position in the list)
-</ul>
-<p/>
- Similarly, in expression <span class="name">wasRemovedFrom(e1,e2)</span>:
- <ul>
- <li> <span class="name">e1</span> is a former member of a collection, which is now no longer a member;
- <li> <span class="name">e1</span> denotes the collection;
-</ul>
-
- Simmetrically, in expression <span class="name">wasAddedTo(e1,e2,p)</span>:
- <ul>
- <li> <span class="name">e1</span> is a new member of a collection, which was previously not a member;
- <li> <span class="name">e1</span> denotes the collection;
- <li> <span class="name">p</span> denotes the position of <span class="name">e1</span> in <span class="name">e2</span> after insertion.
-</ul>
-<p/>
-
-The following collection expressions:
-<pre class="example">
-<span class="name">wasAddedTo(e1,c1,p1)</span>
-<span class="name">memberOf(e1,c1,p1)</span>
-<span class="name">memberOf(e2,c1,p2)</span>
-<span class="name">memberOf(c1,c2,p3)</span>
-<span class="name">wasRemovedFrom(e1,c1)</span>
-</pre>
-assert that:
-<ul>
- <li><span class="name">e1</span> was added to collection <span class="name">c1</span> at position <span class="name">p1</span>
- <li><span class="name">e1</span> is a member of collection <span class="name">c1</span> at position <span class="name">p1</span>
- <li><span class="name">e2</span> is a member of collection <span class="name">c1</span> at position <span class="name">p2</span>
- <li><span class="name">c1</span> (itself a collection) is a member of collection <span class="name">c1</span> at position <span class="name">p3</span>. This illustrates that collections can be nested within one another.
- <li><span class="name">e1</span> was removed from collection <span class="name">c1</span>
- </ul>
-</p>
-
- </section>
- </section>
-
<section id="extensibility-section">
<h2>PROV-DM Extensibility Points</h2>
@@ -2226,10 +2142,10 @@
<li>Annotation expressions allow arbitrary metadata to be associated with identifiable expressions of PROV-DM. Annotation expressions consist of name-value pairs. Like attributes, names are qualified by a namespace.</li>
-<li>Use, generation, and control qualifiers offer a mechanism to
-describe modal aspects of use, generation, and control expressions.
+<li> Qualifiers offer a mechanism to
+describe modalities of use, generation, and control
They consist of ordered sequence of name-value pairs. Such names
-are also qualified by a namespace.</li>
+are also qualified by namespaces.</li>
<p>The PROV DM namespace (TBD) declares a reserved qualifier: <tt>role</tt>.</li>
@@ -2246,10 +2162,123 @@
<section>
-<h2>Shortcuts and extensions</h2>
-
+<h2>Standard extensions</h2>
+
+
+<section id="expression-Collection">
+<h3>Collections</h3>
+
+The purpose of this section is to enable modelling of part-of relationships amongst entities. In particular, a form of <strong>collection</strong> entity type is introduced, consisting of a set of key-value pairs. Key-value pairs provide a generic indexing structure that can be used to model commonly used data structures, including associative lists (also known as "dictionaries" in some programming languages), relational tables, ordered lists, and more.<br/>
+
+The relations introduced here are all specializations of the <a href="#expression-Derivation"><strong>wasDerivedFrom</strong></a> pe-linked derivation. They are designed to model:
+
+<ul>
+ <li><strong>insertion</strong>: a collection entity c' is obtained from collection entity c, by adding entity e having key k to c;
+ <li><strong>removal</strong>: a collection entity c' is obtained from collection entity c, by removing entity e having key k from c;
+ <li><strong>selection</strong>: an entity e was selected from collection c using key k.
+ </ul>
+
+ A collection expression is defined as follows.
+<div class='grammar'>
+ <span class="nonterminal">collectionExpression</span> :=
+<span class="nonterminal">collectionDerivationExpression</span>
+| <span class="nonterminal">keyDerivationExpression</span>
+| <span class="nonterminal">entityMembershipExpression</span>
+<br/>
+
+ <span class="nonterminal">collectionDerivationExpression</span> :=
+<span class="name">wasAddedTo_Coll</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="name">wasRemovedFrom_Coll</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">keyDerivationExpression</span> :=
+<span class="name">wasAddedTo_Key</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="name">wasRemovedFrom_Key</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">entityMembershipExpression</span> :=
+<span class="name">wasAddedTo_Entity</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>
+
+ Expression: <span class="name">wasAddedTo_Coll(c2,c1)</span> (resp. <span class="name">wasRemovedFrom_Coll(c2,c1)</span>) denotes that collection <span class="name">c2</span> is an updated version of collection <span class="name">c1</span>, following an insertion (resp. deletion) operation.<p/>
+
+ Expression: <span class="name">wasAddedTo_Key(c,k)</span> (resp. <span class="name">wasRemovedFrom_Key(c,k)</span>) denotes that collection <span class="name">c</span> had
+ a new value with key <span class="name">k</span> added to (resp. removed from) it.<p/>
+
+ Expression: <span class="name">wasAddedTo_Entity(c,e)</span> denotes that collection <span class="name">c</span> had entity
+ <span class="name">e</span> added to it.
+ <p/>
+
+
+<pre class="example">
+Consider the following assertions:
+
+ <span class="name">wasAddedTo_Coll(c2,c1)</span>
+ <span class="name">wasAddedTo_Key(c2,k1)</span>
+ <span class="name">wasAddedTo_Entity(c2,e1)</span>
+
+ <span class="name">wasAddedTo_Coll(c3,c2)</span>
+ <span class="name">wasAddedTo_Key(c3,k2)</span>
+ <span class="name">wasAddedTo_Entity(c3,e2)</span>
+
+ <span class="name">wasRemovedFrom_Coll(c4,c3)</span>
+ <span class="name">wasRemovedFrom_Key(c4,k1)</span>
+
+</pre>
+The corresponding graphical representation is shown below.<p/>
+
+<img src="collections.png" align="center"/>
+
+
+<p/> With these assertions:
+ <ul>
+ <li><span class="name">c2</span> is known to contain the key-value pair <span class="name">(k1,e1)</span>
+ <li><span class="name">c3</span> is known to contain pairs <span class="name">(k1,e1)</span> and <span class="name">(k2,e2)</span>.
+ <li><span class="name">c4</span> is known <em>not</em> to contain pair <span class="name">(k1,e1)</span> and to contain pair <span class="name">(k2,e2)</span>.
+ </ul>
+</p>
+
+ </section>
+
+<section>
+
+<h3>Common relations</h3>
+
<div class='issue'>There are a number of commonly used provenance relations in particular for the web that are not in the model. For practical use and uptake, it would be good to have definitions of these in the provenance model. These concepts should be defined in terms of the already existing "core" concepts. This is <a href="http://www.w3.org/2011/prov/track/issues/44">ISSUE-44</a>.</div>
+<div class='note'>This section needs editing. It needs to be aligned the terminology of previous sections and it needs to adopt the same presentation style. </div>
+
+
+
+
<section>
<h3>Quotation</h3>
@@ -2322,7 +2351,7 @@
</section>
</section>
-
+</section>
<section class="appendix">
<h2>Illustration Conventions</h2>