--- a/model/ProvenanceModel.html Sun Sep 11 11:34:15 2011 +0100
+++ b/model/ProvenanceModel.html Mon Sep 12 20:48:55 2011 +0100
@@ -43,7 +43,7 @@
specStatus: "ED",
// the specification's short name, as in http://www.w3.org/TR/short-name/
- shortName: "PIDM-Model",
+ shortName: "PROV-DM-Model",
// if your specification has a subtitle that goes below the main
// formal title, define it here
@@ -112,9 +112,9 @@
<body>
<section id="abstract">
<p>
-This document defines PIDM (placeholder name), a data model for provenance, and the
-Provenance Abstract Syntax Notation, an abstract syntax, which allows
-serializations of PIDM instances in a technology independent manner,
+This document defines PROV-DM (placeholder name), a data model for provenance, and
+PROV-ASN, an abstract syntax, which allows
+serializations of PROV-DM instances in a technology independent manner,
facilitates its mapping to concrete syntax, and is used to provide a
formal semantics.
</p>
@@ -187,27 +187,26 @@
</section>
<section>
-<h2>The Provenance Abstract Syntax Notation</h2>
-
-<p>This specification defines PIDM, a data model for provenance, and relies on a language, the Provenance Abstract Syntax Notation, to express
+<h2>PROV-ASN: The Provenance Abstract Syntax Notation</h2>
+
+<p>This specification defines PROV-DM, a data model for provenance, and relies on a language, PROV-ASN, the Provenance Abstract Syntax Notation, to express
<em>instances</em> of that data model. </p>
-<p>The Provenance Abstract Syntax Notation is an abstract syntax, whose goals are:
+<p>PROV-ASN is an abstract syntax, whose goals are:
<ul>
-<li>to allow serializations of PIDM instances in a technology independent manner, which makes it more readable for human consumption;
-<li>to facilitate the mapping of PIDM to concrete syntax;
+<li>to allow serializations of PROV-DM instances in a technology independent manner, which makes it more readable for human consumption;
+<li>to facilitate the mapping of PROV-DM to concrete syntax;
<li>to provide the basis for a formal semantics.
</ul>
-<p>This specification provides a grammar for the Provenance Abstract
-Syntax Notation. Each expression of the PIDM data model is explained
+<p>This specification provides a grammar for PROV-ASN. Each expression of the PROV-DM data model is explained
in terms of the production of this grammar.</p>
<div class='note'>TODO: define the BNF notation. Currently, using the same syntax as OWL2, curly bracket denotes 0 or more, square bracket denotes 0 or 1 occurrences.</div>
-<p>The formal semantics of PIDM is defined at
+<p>The formal semantics of PROV-DM is defined at
[[PROV-SEMANTICS]] and its encoding in the OWL2 Web Ontology Language at [[PROV-OWL2]].
</p>
@@ -222,7 +221,7 @@
<h2>Representation, Assertion, and Inference</h2>
<p>
-PIDM is a provenance data model designed to express <em>representations</em> of the world.
+PROV-DM is a provenance data model designed to express <em>representations</em> of the world.
</p>
<div class="xmpl">
@@ -242,7 +241,7 @@
<p>The data model is designed to capture events that happened in the past, as opposed to event
that may or will happen.
However, this distinction is not formally enforced.
-Therefore, all PIDM assertions SHOULD be interpreted as a record of what has happened, as opposed to what may or will happen.</p>
+Therefore, all PROV-DM assertions SHOULD be interpreted as a record of what has happened, as opposed to what may or will happen.</p>
<div class='note'>Can this be enforced formally?</div>
@@ -254,7 +253,7 @@
<p>
Sometimes, inferences about the world can be made from representations
-conformant to the PIDM data model. When this is the case, this
+conformant to the PROV-DM data model. When this is the case, this
specification defines such inferences. Hence, representations of the
world can result either from direct assertions by asserters or from
application of inferences defined by this specification.
@@ -266,7 +265,7 @@
</section>
<section>
-<h2>A PIDM Overview </h2>
+<h2>A PROV-DM Overview </h2>
<div class='issue'>Conceptual model needs a high level overview <a href="http://www.w3.org/2011/prov/track/issues/86">ISSUE-86</a>.</div>
@@ -286,7 +285,7 @@
<section class="informative">
<h2>Example</h2>
-To illustrate PIDM, this section presents an example encoded according to the Provenance Abstract Syntax Notation. For more detailed explanations of how PIDM should be used, and for more examples, we refer the reader to the Provenance Primer [[PROV-PRIMER]].
+To illustrate PROV-DM, this section presents an example encoded according to PROV-ASN. For more detailed explanations of how PROV-DM should be used, and for more examples, we refer the reader to the Provenance Primer [[PROV-PRIMER]].
@@ -342,11 +341,11 @@
</section>
<section>
-<h3>Encoding using the Provenance Abstract Syntax Notation</h3>
-
-In this section, the example is encoded according to the provenance data model (specified in section <a href="#data-model-concepts">concepts</a>) and expressed in the Provenance Abstract Syntax Notation.
+<h3>Encoding using PROV-ASN</h3>
+
+In this section, the example is encoded according to the provenance data model (specified in section <a href="#data-model-concepts">concepts</a>) and expressed in PROV-ASN.
<p>
-Entities (construct described in <a href="#expression-Entity">Section Entity</a>). The file in its various forms and its copies are modelled as entities.
+Entity Expressions (described in <a href="#expression-Entity">Section Entity</a>). The file in its various forms and its copies are modelled as entities.
<pre>
entity(e0, [ type: "File", location: "/shared/crime.txt", creator: "Alice" ])
entity(e1, [ type: "File", location: "/shared/crime.txt", creator: "Alice", content: "" ])
@@ -375,7 +374,7 @@
</p>
<p>
-Derivations (construct described in <a href="#expression-Derivation">Section Derivation</a>): derivations express that an entity is derived from another. The first two are expressed in their compact version, whereas the following two are expressed in their full version.
+Derivation Expressions (described in <a href="#expression-Derivation">Section Derivation</a>): derivations express that an entity is derived from another. The first two are expressed in their compact version, whereas the following two are expressed in their full version.
<pre>
wasDerivedFrom(e2,e1)
wasDerivedFrom(e3,e2)
@@ -385,7 +384,7 @@
</p>
<p>
-Process Executions (construct described in <a href="#expression-ProcessExecution">Section Process Execution</a>): process execution represents an activity in the scenario.
+Process Execution Expressions (described in <a href="#expression-ProcessExecution">Section Process Execution</a>): process execution represents an activity in the scenario.
<pre>
processExecution(pe0,create-file,t)
processExecution(pe1,add-crime-in-london,t+1)
@@ -397,7 +396,7 @@
</p>
<p>
-Generations (construct described in <a href="#expression-Generation">Section Generation</a>): generation is the event at which a file is created in a specific form. To distinguish the function that the various entities generated by a given process execution have in the context of this process execution, a role (construct described in <a href="#expression-Role">Section Role</a>) is introduced. Illustrations of such roles are outFile, outContent, out, attachment.
+Generation Expressions (described in <a href="#expression-Generation">Section Generation</a>): generation is the event at which a file is created in a specific form. To distinguish the function that the various entities generated by a given process execution have in the context of this process execution, a role (construct described in <a href="#expression-Role">Section Role</a>) is introduced. Illustrations of such roles are outFile, outContent, out, attachment.
<pre>
wasGeneratedBy(e0,pe0,outFile)
wasGeneratedBy(e1,pe0,outContent)
@@ -411,7 +410,7 @@
<p>
-Used (construct described in <a href="#expression-Use">Section Use</a>): use is the event by which a file is read by a process execution. To distinguish the various entities used by a given process execution, a role (construct described in <a href="#expression-Role">Section Role</a>) is introduced. Illustrations of such roles are in and fileIn.
+Used Expressions (described in <a href="#expression-Use">Section Use</a>): use is the event by which a file is read by a process execution. To distinguish the various entities used by a given process execution, a role (construct described in <a href="#expression-Role">Section Role</a>) is introduced. Illustrations of such roles are in and fileIn.
<pre>
used(pe1,e1,in)
used(pe3,e2,in)
@@ -435,7 +434,7 @@
<p>
-Agents (construct described at <a href="#expression-Agent">Section Agent</a>): the various users are represented as agents, themselves being a type of entity.
+Agent Expressions (described at <a href="#expression-Agent">Section Agent</a>): the various users are represented as agents, themselves being a type of entity.
<pre>
entity(a1, [ type: "Person", name: "Alice" ])
agent(a1)
@@ -456,7 +455,7 @@
<p>
-Control (construct described in <a href="#expression-Control">Section Control</a>): the influence of an agent over a process execution is expressed as control, and the nature of this influence is described by a role (construct described in <a href="#expression-Role">Section Role</a>). Illustrations of such roles are creator, author and communicator.
+Control Expressions (described in <a href="#expression-Control">Section Control</a>): the influence of an agent over a process execution is expressed as control, and the nature of this influence is described by a role (construct described in <a href="#expression-Role">Section Role</a>). Illustrations of such roles are creator, author and communicator.
<pre>
wasControlledBy(pe0,a1, creator)
wasControlledBy(pe1,a2, author)
@@ -489,56 +488,62 @@
<p>The data model defines the following types of expressions.</p>
- <section id="PIDM-expression">
+ <section id="PROV-DM-expression">
-<h3>PIDM Expression</h3>
-
-<div class='note'>We need to confirm the choice of names for non-terminal. E.g. is it generation or generationExpression? also node? relation? </div>
+<h3>PROV-DM Expression</h3>
+
+<div class='note'>We need to confirm the choice of names for non-terminal. E.g. is it elementExpression? </div>
<div class='grammar'>
<span class="nonterminal">expression</span> :=
-<span class="nonterminal">node</span> <!-- better name than node?? -->
-| <span class="nonterminal">relation</span>
-| <span class="nonterminal">bundle</span>
+<span class="nonterminal">elementExpression</span> <!-- better name than node?? -->
+| <span class="nonterminal">relationExpression</span>
+| <span class="nonterminal">bundleExpression</span>
<br/>
<!-- -->
-<span class="nonterminal">node</span> :=
-<span class="nonterminal">entity</span>
-|<span class="nonterminal">processExecution</span>
-|<span class="nonterminal">agent</span> <br/>
+<span class="nonterminal">elementExpression</span> :=
+<span class="nonterminal">entityExpression</span>
+| <span class="nonterminal">processExecutionExecution</span>
+| <span class="nonterminal">agentExpression</span>
+| <span class="nonterminal">annotationExpression</span> <br/>
<!-- -->
-<span class="nonterminal">relation</span> :=
-<span class="nonterminal">generation</span>
-|<span class="nonterminal">use</span>
-|<span class="nonterminal">derivation</span>
-|<span class="nonterminal">control</span>
-|<span class="nonterminal">complement</span>
-|<span class="nonterminal">peOrdering</span>
-|<span class="nonterminal">revision</span>
-|<span class="nonterminal">participation</span> <br/>
+<span class="nonterminal">relationExpression</span> :=
+<span class="nonterminal">generationExpression</span>
+| <span class="nonterminal">useExpression</span>
+| <span class="nonterminal">derivationExpression</span>
+| <span class="nonterminal">controlExpression</span>
+| <span class="nonterminal">complementExpression</span>
+| <span class="nonterminal">peOrderingExpression</span>
+| <span class="nonterminal">revisionExpression</span>
+| <span class="nonterminal">participationExpression</span>
+| <span class="nonterminal">annotationAssociationExpression</span> <br/>
<!-- -->
-<span class="nonterminal">bundle</span> :=
-<span class="nonterminal">provenanceContainer</span>
-|<span class="nonterminal">account</span>
+<span class="nonterminal">bundleExpression</span> :=
+<span class="nonterminal">provenanceContainerExpression</span>
+|<span class="nonterminal">accountExpression</span>
</div>
</section>
- <section id="expression-node">
-<h3>Node</h3>
-<div class='note'>What name to choose for this category of expressions, 'node' is too graph-oriented.</div>
+ <section id="expression-element">
+<h3>Element</h3>
+
+<p>This section describes all the PROV-ASN expressions conformant to the <span class='nonterminal'>elementExpression</span> production of the grammar.</p>
+
+
+<div class='note'>What name to choose for this category of expressions, is 'element' appropriate?</div>
<section id="expression-Entity">
<h4>Entity</h4>
-<p>In PIDM, an <dfn id="dfn-entity" title="entity">entity expression</dfn> is a representation of an identifiable characterized thing.</p>
+<p>In PROV-DM, an <dfn id="dfn-entity" title="entity">entity expression</dfn> is a representation of an identifiable characterized thing.</p>
<p>
-In the Provenance Abstract Syntax Notation, an entity expression's text matches the <span class="nonterminal">entity</span> production of the grammar defined in this specification document.
+In PROV-ASN, an entity expression's text matches the <span class="nonterminal">entityExpression</span> production of the grammar defined in this specification document.
</p>
<div class='grammar'>
-<span class="nonterminal">entity</span> :=
+<span class="nonterminal">entityExpression</span> :=
<span class="name">entity</span>
<span class="name">(</span>
<span class="nonterminal">identifier</span>
@@ -554,22 +559,22 @@
<br/>
<span class="nonterminal">attribute-value</span> :=
<span class="nonterminal">attribute</span>
-<span class="name">:</span>
+<span class="name">=</span>
<span class="nonterminal">Literal</span>
<br/>
</div>
-<p>An instance of an entity expression, noted <span class="name">entity(id, [ attr1: val1, ...])</span> in the Provenance Abstract Syntax Notation:
+<p>An instance of an entity expression, noted <span class="name">entity(id, [ attr1= val1, ...])</span> in PROV-ASN:
<ul>
<li> contains an identifier <span class="name">id</span> denoting a characterized thing;</li>
-<li> contains a set of attribute-value pairs <span class="name">[ attr1: val1, ...]</span>, representing this characterized thing's situation in the world.</li>
+<li> contains a set of attribute-value pairs <span class="name">[ attr1= val1, ...]</span>, representing this characterized thing's situation in the world.</li>
</ul>
</p>
<p>
-The assertion of an instance of an entity expression, <span class="name">entity(id, [ attr1: val1, ...])</span>, states, from a given asserter's viewpoint, the existence of an identifiable characterized thing, whose situation in the world is represented by the attribute-value pairs, which remain unchanged during a characterization interval, i.e. a continuous interval between two events in the world.
+The assertion of an instance of an entity expression, <span class="name">entity(id, [ attr1= val1, ...])</span>, states, from a given asserter's viewpoint, the existence of an identifiable characterized thing, whose situation in the world is represented by the attribute-value pairs, which remain unchanged during a characterization interval, i.e. a continuous interval between two events in the world.
</p>
@@ -577,7 +582,7 @@
<p>
The following entity assertion,
<pre class="example">
-entity(e0, [ type: "File", location: "/shared/crime.txt", creator: "Alice" ])
+entity(e0, [ type = "File", location = "/shared/crime.txt", creator = "Alice" ])
</pre>
states the existence of a thing of type File and location /shared/crime.txt, and creator alice, denoted by identifier e0, during some characterization interval.
</p>
@@ -621,12 +626,35 @@
<section id="expression-ProcessExecution">
<h3>Process Execution</h3>
-<p>In PIDM, a <dfn id="dfn-ProcessExecution">process execution expression</dfn> is a representation an identifiable activity, which performs a piece of work.</p>
-
-<p>In the Provenance Abstract Syntax Notation, a process execution expression's text matches the <span class='nonterminal'>process execution</span> production of the grammar defined in this specification document.</p>
+<p>In PROV-DM, a <dfn id="dfn-ProcessExecution">process execution expression</dfn> is a representation an identifiable activity, which performs a piece of work.</p>
+
+<p>In PROV-ASN, a process execution expression's text matches the <span class='nonterminal'>processExecutionExpression</span> production of the grammar defined in this specification document.</p>
+
<div class='grammar'>
-<span class="nonterminal">processExecution</span> :=
+<span class="nonterminal">processExecutionExpression</span> :=
+<span class="name">processExecution</span>
+<span class="name">(</span>
+<span class="nonterminal">identifier</span>
+<span class="name">,</span>
+<span class="name">[</span>
+<span class="nonterminal">attribute-values</span>
+<span class="name">]</span>
+<span class="name">)</span><br/>
+<!-- -->
+<span class="nonterminal">attribute-values</span> :=
+<span class="nonterminal">attribute-value</span>
+|<span class="nonterminal">attribute-value</span> <span class="name">,</span> <span class="nonterminal">attribute-values</span>
+<br/>
+<span class="nonterminal">attribute-value</span> :=
+<span class="nonterminal">attribute</span>
+<span class="name">:</span>
+<span class="nonterminal">Literal</span>
+<br/>
+</div>
+
+<div class='grammar'>
+<span class="nonterminal">processExecutionExpression</span> :=
<span class="name">processExecution</span>
<span class="name">(</span>
<span class="nonterminal">identifier</span>
@@ -639,14 +667,15 @@
<span class="name">)</span><br/>
</div>
-
-<p>The activity that a process execution 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 need not mention time information, nor duration, because they may not be known.</p>
-
-<p> An instance of a process execution expression, noted <span class="name">processExecution(id,rl,st,et)</span> in the Provenance Abstract Syntax Notation:
+<div class='note'>Luc to explain attributes for PEs, incl start, end, type, reciple link</div>
+
+<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> An instance of a process execution expression, noted <span class="name">processExecution(id,rl,st,et)</span> in PROV-ASN:
<ul>
<li> contains an identifier <span class="name">id</span>;
<li> MAY contain a <a href="#expression-RecipeLink">recipe link</a> <span class="name">rl</span>;
-<li> MAY contain a start time <span class="name">st</span>;
+<li> MAY contain a start time <span class="name">st</sp1an>;
<li> MAY contain an end time <span class="name">et</span>.
</ul>
</p>
@@ -661,17 +690,17 @@
<p>The mere existence of a process execution assertion entails some event ordering in the world, since the start event preceds the end event. This expressed by constraint <a href="'#start-precedes-end'">start-precedes-end</a>.</p>
-<div class='constraint' id='start-precedes-end'><a name="PIL:0001"> From the assertion of a process execution, one can infer that the
+<div class='constraint' id='start-precedes-end'><a name="PIL:0001"> From a process execution expression, one can infer that the
start precedes the end of the represented activity.</a> [<a
href="../ontology/ProvenanceFormalModel.html#PIL:0001">PIL:0001</a>] </div>
-<p>A process execution is not an entity. Indeed, an entity represents
-a thing that exists in full at any point in its characterization
-interval, persists during this interval, and preserves the
-characteristics that makes it identifiable. Alternatively, an
-activity in something that happens, unfolds or develops through time,
-but is typically not identifiable by the characteristics it exhibits at
-any point during its duration.</p>
+<p>A process execution expression is not an entity expression.
+Indeed, an entity expression represents a thing that exists in full at
+any point in its characterization interval, persists during this
+interval, and preserves the characteristics that makes it
+identifiable. Alternatively, an activity in something that happens,
+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>
@@ -684,12 +713,12 @@
<p>An <dfn id="dfn-Agent">agent expression</dfn> is a representation a characterized thing capable of
activity.</p>
-<p>In the Provenance Abstract Syntax Notation, an agent expression's text matches the <span class="nonterminal">agent</span> production of the grammar defined in this specification document.
+<p>In PROV-ASN, an agent expression's text matches the <span class="nonterminal">agentExpression</span> production of the grammar defined in this specification document.
</p>
<div class='grammar'>
-<span class="nonterminal">agent</span> :=
+<span class="nonterminal">agentExpression</span> :=
<span class="name">agent</span>
<span class="name">(</span>
<span class="nonterminal">identifier</span>
@@ -698,12 +727,12 @@
-<p> An agent expression, written <span class="name">agent(e)</span> in the Provenance Abstract Syntax Notation:
- refers to an entity denoted by identifier <span class="name">e</span> and representing the entity capable of activity.
+<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.
</p>
<p>A characterized thing can be asserted to be an agent or can be inferred to be
-an agent by involvement in a process execution. </p>
+an agent by involvement in an activity represented by a process execution expression. </p>
@@ -715,8 +744,9 @@
entity(e2) and wasControlledBy(pe,e2)
</pre>
-entity denoted by <span class="name">e1</span> is asserted to be an agent, and this assertion holds irrespective of process executions it may be involved in, whereas entity denoted by <span class="name">e2</span> can be inferred to be an agent, as per the following inference.
+the entity denoted by <span class="name">e1</span> is asserted to be an agent, and this assertion holds irrespective of process executions it may be involved in, whereas entity denoted by <span class="name">e2</span> can be inferred to be an agent, as per the following inference.
</p>
+<div class='note'>Luc to Paolo, this text doesn't seem right.</div>
<div class='constraint' id='control-agent'>
<span class='conditional'>If</span>
@@ -727,28 +757,58 @@
<span class="name">agent(e)</span> also holds.
</div>
</section>
+
+ <section id="expression-annotation">
+
+<h4>Annotation</h4>
+
+<p>An <dfn id="dfn-annotation">annotation expression</dfn> is a set of name value pairs, whose meaning is application specific, why may or may not be a representation of something is 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>
+
+
+<div class='grammar'>
+<span class="nonterminal">annotationExpression</span> :=
+<span class="name">annotation</span>
+<span class="name">(</span>
+<span class="nonterminal">identifier</span>,
+<span class="name">,</span>
+<span class="nonterminal">name-values</span>,
+<span class="name">)</span>
+</div>
+
+
+<div class='note'>Luc to explain what it is, refer to annotationAssociation</div>
+
+ </section>
+
</section>
+
<section id="expression-relation">
<h3>Relation</h3>
+<p>This section describes all the PROV-ASN expressions conformant to the <span class='nonterminal'>relationExpression</span> production of the grammar.</p>
+
+
<section id="expression-Generation">
<h4>Generation</h4>
-<p>In PIDM, a <dfn id="dfn-Generation">generation expression</dfn> is a representation of a world event, the creation of a new characterized thing by an activity. This characterized thing did not exist before creation. </p>
-
-<p>In the Provenance Abstract Syntax Notation, a generation expression's text matches the <span class='nonterminal'>generation</span> production of the grammar defined in this specification document.</p>
+<p>In PROV-DM, a <dfn id="dfn-Generation">generation expression</dfn> is a representation of a world event, the creation of a new characterized thing by an activity. This characterized thing did not exist before creation. </p>
+
+<p>In PROV-ASN, a generation expression's text matches the <span class='nonterminal'>generationExpression</span> production of the grammar defined in this specification document.</p>
<div class='grammar'>
-<span class="nonterminal">generation</span> :=
+<span class="nonterminal">generationExpression</span> :=
<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">role</span>
+<span class="nonterminal">generationQualifier</span>
[<span class="name">,</span>
<span class="nonterminal">time</span>]
<span class="name">)</span><br/>
@@ -756,23 +816,30 @@
-<p>An instance of a generation expression, noted <span class="name">wasGeneratedBy(e,pe,r,t)</span> in the Provenance Abstract Syntax Notation:
+<p>An instance of a generation expression, noted <span class="name">wasGeneratedBy(e,pe,q,t)</span> in PROV-ASN:
<ul>
<li> refers to an entity <span class="name">e</span>, which represents the characterized thing that is created;
<li> refers to a process execution <span class="name">pe</span>;
-<li> contains a <a href="#expression-Role">role</a> <span class="name">r</span>;
+
+<li> contains a <a href="#expression-qualifier">generationQualifier</a> <span class="name">q</span>, which describes the function of this thing with respect to the activity;
+
<li> MAY contain a "generation time" <span class="name">t</span>, the time at which the characterized thing was created.</p>
</ul>
</p>
+<div class='note'>Luc to Paolo: is a qualifier describing the function of the entity with respect to the activity? or the nature of the generation of this entity by the pe? does it include time? can it include the type of use.</div>
+
<p>
The following generation assertion
<pre class="example">
-wasGeneratedBy(e2,pe1,out)
+ used(e1,pe1,qualifier(port="p1", order=1),t1)
+ used(e2,pe1,qualifier(port="p1", order=2),t2)
</pre>
-states the existence of an event in the world, at which a new characterized thing, represented by entity denoted by <span class="name">e2</span> is created by an activity, represented by a process execution, denoted <span class="name">pe1</span>.
+states the existence of two events in the world, at which new characterized things, represented by entity denoted by <span class="name">e1</span> and <span class="name">e2</span> are created by an activity, represented by a process execution, denoted <span class="name">pe1</span>.
+The first one is obtained as the first value on port p1, whereas the other second value on port p1. The semantics of port and order 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>.
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.
@@ -821,9 +888,9 @@
-<p>In PIDM, a <dfn id="dfn-Use">use expression</dfn> is a representation of a world event: the consumption of a characterized thing by an activity. The representation includes a description of the function of this thing with respect to the activity.</p>
-
-<p>In the Provenance Abstract Syntax Notation, a use expression's text matches the <span class='nonterminal'>use</span> production of the grammar defined in this specification document.</p>
+<p>In PROV-DM, a <dfn id="dfn-Use">use expression</dfn> is a representation of a world event: the consumption of a characterized thing by an activity. The representation includes a description of the function of this thing with respect to the activity.</p>
+
+<p>In PROV-ASN, a use expression's text matches the <span class='nonterminal'>use</span> production of the grammar defined in this specification document.</p>
<div class='grammar'>
<span class="nonterminal">use</span> :=
@@ -833,7 +900,7 @@
<span class="name">,</span>
<span class="nonterminal">identifier</span>
<span class="name">,</span>
-<span class="nonterminal">role</span>
+<span class="nonterminal">useQualifier</span>
[<span class="name">,</span>
<span class="nonterminal">time</span>]
<span class="name">)</span><br/>
@@ -841,26 +908,28 @@
</div>
-<p>An instance of a use expression, noted <span class="name">used(pe,e,r,t)</span> in the Provenance Abstract Syntax notation:
+<p>An instance of a use expression, noted <span class="name">used(pe,e,q,t)</span> in PROV-ASN:
<ul>
<li> refers to a process execution <span class="name">pe</span>, which represents the consuming activity;
<li> refers to an entity <span class="name">e</span>, representing the characterized thing that is consumed;
-<li> contains a <a href="#expression-Role">role</a> <span class="name">r</span>, which describes the function of this thing with respect to the activity;
+<li> contains a <a href="#expression-qualifier">useQualifier</a> <span class="name">q</span>, which describes the function of this thing with respect to the activity;
<li> MAY contain a "use time" <span class="name">t</span>, the time at which the characterized thing was used.</p>
</ul>
</p>
-<p>The following use assertion
+<div class='note'>Luc to Paolo: is a qualifier describes the function of the entity with respect to the activity? or the nature of the use of this entity by the pe? can it include the type of use.</div>
+
+<p>The following use assertions
<pre class="example">
-used(pe1,e1,in,t)
+ used(pe1,e1,qualifier(parameter="p1"),t1)
+ used(pe1,e2,qualifier(parameter="p2"),t2)
</pre>
-states that the activity, represented by the process execution identified by <span class="name">pe1</span> consumed a characterized thing, represented by entity identified by <span class="name">e1</span>, with role <span class="name">in</span>, at time <span class="name">t</span>.
+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>; 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 may appear in multiple use expressions that refer
-to a given process execution, but each of those use assertions MUST have a
-distinct role.
+<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.
</p>
<!-- Luc, should we write a constraint for this? It's not clear the
@@ -897,40 +966,34 @@
<h3>Derivation</h3>
-<div class='note'>This section remains very much work in progress. Many issues have been raised and discussed, and for several of them, consensus still remains difficult to reach. The presentation of derivation has been altered, and new names adopted, in the hope of clarifying this notion. Key outstanding issues include:
-<ul>
-<li> what is the exact relationship between entities attributes and derivation;
-<li> transitive nature of derivation.
-</ul></div>
-
-<p>In PIDM, a <dfn id="dfn-Derivation">derivation expression</dfn> is a representation that some characterized thing is transformed from, created from, or affected by another characterized thing in the world. </p>
-
-<p>PIDM offers two different kinds of expressions by which asserters can formulate derivations. The first one is tightly connected to the notion of process execution, whereas the second one is not. The first kind of assertion is particularly suitable for asserters who have an intimate knowledge of process executions, is more prescriptive, but offers a more precise description of derivation, whereas the second does not put such a requirement on the asserter, and allows a less precise description of derivation to be formulated. Both expressions need to be asserted by asserters, since PIDM does not provide the means to infer them; however, from these assertions, further derivations can be inferred by transitive closure. </p>
-
-<p>In the Provenance Abstract Syntax Notation, a derivation expression's text matches the <span class='nonterminal'>derivation</span> production of the grammar defined in this specification document.</p>
+<p>In PROV-DM, a <dfn id="dfn-Derivation">derivation expression</dfn> is a representation that some characterized thing is transformed from, created from, or affected by another characterized thing in the world. </p>
+
+<p>PROV-DM offers two different kinds of expressions by which asserters can formulate derivations. The first one is tightly connected to the notion of activity (represented by process execution), whereas the second one is not. The first kind of assertion is particularly suitable for asserters who have an intimate knowledge of activities, is more prescriptive, but offers a more precise description of derivation, whereas the second does not put such a requirement on the asserter, and allows a less precise description of derivation to be formulated. Both expressions need to be asserted by asserters, since PROV-DM does not provide the means to infer them; however, from these assertions, further derivations can be inferred by transitive closure. </p>
+
+<p>In PROV-ASN, a derivation expression's text matches the <span class='nonterminal'>derivationExpression</span> production of the grammar defined in this specification document.</p>
<div class='grammar'>
-<span class="nonterminal">derivation</span> :=
-<span class="nonterminal">pe-linked-derivation</span>
-| <span class="nonterminal">pe-independent-derivation</span>
-| <span class="nonterminal">transitiveDerivation</span><br/>
-
-<span class="nonterminal">pe-linked-derivation</span>:=
+<span class="nonterminal">derivationExpression</span> :=
+<span class="nonterminal">pe-linked-derivationExpression</span>
+| <span class="nonterminal">pe-independent-derivationExpression</span>
+| <span class="nonterminal">transitiveDerivationExpression</span><br/>
+
+<span class="nonterminal">pe-linked-derivationExpression</span>:=
<span class="name">wasDerivedFrom</span>
<span class="name">(</span>
<span class="nonterminal">identifier</span>
<span class="name">,</span>
<span class="nonterminal">identifier</span>
[<span class="name">,</span>
-<span class="nonterminal">processExecution</span>
-<span class="name">,</span>
-<span class="nonterminal">role</span>
+<span class="nonterminal">identifier</span>
<span class="name">,</span>
-<span class="nonterminal">role</span>]
+<span class="nonterminal">generationQualifier</span>
+<span class="name">,</span>
+<span class="nonterminal">useQualifier</span>]
<span class="name">)</span><br/>
-<span class="nonterminal">pe-independent-derivation</span>:=
+<span class="nonterminal">pe-independent-derivationExpression</span>:=
<span class="name">wasEventuallyDerivedFrom</span>
<span class="name">(</span>
<span class="nonterminal">identifier</span>
@@ -938,7 +1001,7 @@
<span class="nonterminal">identifier</span>
<span class="name">)</span><br/>
-<span class="nonterminal">transitiveDerivation</span>:=
+<span class="nonterminal">transitiveDerivationExpression</span>:=
<span class="name">dependedOn</span>
<span class="name">(</span>
<span class="nonterminal">identifier</span>
@@ -953,15 +1016,15 @@
<section>
<h4>Process Execution Linked Derivation Assertion</h4>
-<p>A process execution linked derivation expression, which, by definition of derivation, 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 that represents an activity that transforms, creates or affects this characterized thing.</pe>
-
-<p>In its full form, a process-execution linked derivation expression, noted <span class="name">wasDerivedFrom(e2,e1,pe,r2,r1)</span> in the Provenance Abstract Syntax Notation:
+<p>A process execution linked derivation expression, which, by definition of derivation, 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>
+
+<p>In its full form, a process-execution linked derivation expression, noted <span class="name">wasDerivedFrom(e2,e1,pe,q2,q1)</span> in PROV-ASN:
<ul>
-<li> refers to an entity identified by <span class="name">e2</span>, which is a representation of the generated characterized thing;
-<li> refers to an entity identified by <span class="name">e1</span>, which is a representation of the used characterized thing;
-<li> refers to a process execution identified by <span class="name">pe</span>, which is a representation of the activity using and generating the above characterized things;
-<li> contains a role <span class="name">r2</span>, which is the function of <span class="name">e2</span> during its generation by <span class="name">pe</span> .
-<li> contains a role <span class="name">r1</span>, which is the function of <span class="name">e1</span> during its use by <span class="name">pe</span>.
+<li> refers to an entity expression identified by <span class="name">e2</span>, which is a representation of the generated characterized thing;
+<li> refers to an entity expression identified by <span class="name">e1</span>, which is a representation of the used characterized thing;
+<li> refers to a process execution expression identified by <span class="name">pe</span>, which is a representation of the activity using and generating the above characterized things;
+<li> contains a qualifier <span class="name">q2</span>, which is the qualifier in the generation expression containing <span class="name">e2</span> and <span class="name">pe</span>;
+<li> contains a qualifier <span class="name">q1</span>, which is the qualifier in the use expression containing <span class="name">e1</span> and <span class="name">pe</span>.
</ul>
@@ -989,7 +1052,7 @@
</div>
-<p>For convenience, PIDM allows for a compact, process-execution linked derivation assertion, written <span class="name">wasDerivedFrom(e2,e1)</span> in the Provenance Abstract Syntax Notation, which:
+<p>For convenience, PROV-DM allows for a compact, process-execution linked derivation assertion, written <span class="name">wasDerivedFrom(e2,e1)</span> in PROV-ASN, which:
<ul>
<li> refers to an entity identified by <span class="name">e2</span>, which is a representation of the generated characterized thing;
<li> refers to an entity identified by <span class="name">e1</span>, which is a represenation of the used characterized thing.
@@ -1074,7 +1137,7 @@
<p>A process execution independent derivation expression is a representation of a derivation, which occurred by any means whether direct or not, and regardless of any activity in the world.</p>
-<p>A process-execution independent derivation expression, written <span class="name">wasEventuallyDerivedFrom (e2, e1)</span> in the Provenance Abstract Syntax Notation,
+<p>A process-execution independent derivation expression, written <span class="name">wasEventuallyDerivedFrom (e2, e1)</span> in PROV-ASN,
<ul>
<li> contains an identifier <span class="name">e2</span>, denoting an entity, which represents the generated characterized thing;
<li> contains an identifier <span class="name">e1</span>, denoting an entity, which represents the used characterized thing.
@@ -1132,7 +1195,7 @@
<p>However, there is sense that <span class="name">e3</span> still depends on <span class="name">e1</span>, since <span class="name">e3</span> could not be generated without <span class="name">e1</span> existing. Hence, we introduce a weaker notion of derivation, which is transitive.</p>
-An instance of a transitive derivation expression, written <span class="name">dependedOn(e2, e1)</span> in the Provenance Abstract Syntax Notation:
+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, which represents the characterized thing that is the result of the derivation;
<li> contains an identifier <span class="name">e1</span>, denoting an entity, which represents the characterized thing that the derivation depends on.
@@ -1176,7 +1239,7 @@
<p> A <dfn id="dfn-Control">control expression</dfn> is a representation of the involvement of characterized thing (represented as an agent or an entity) in an activity, which is represented by a process execution; a role qualifies this involvement.</p>
-<p>In the Provenance Abstract Syntax Notation, a control expression's text matches the <span class="nonterminal">control</span> production of the grammar defined in this specification document.
+<p>In PROV-ASN, a control expression's text matches the <span class="nonterminal">control</span> production of the grammar defined in this specification document.
</p>
@@ -1191,7 +1254,7 @@
</div>
-<p>An instance of a control expression, noted <span class="name">wasControlledBy(pe,ag,r)</span> in the Provenance Abstract Syntax Notation :
+<p>An instance of a control expression, noted <span class="name">wasControlledBy(pe,ag,r)</span> in PROV-ASN :
<ul>
<li> contains an identifier <span class="name">pe</span> denoting a process execution, representing the controlled activity;
<li> refers to an agent or an entity <span class="name">ag</span>, representing the controlling characterized thing;
@@ -1241,7 +1304,7 @@
-<p>In the Provenance Abstract Syntax Notation, a complementarity expression's text matches the <span class="nonterminal">complementarity</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">complementarity</span> production of the grammar defined in this specification document.</p>
<div class='grammar'>
<span class="nonterminal">complementarity</span> :=
@@ -1304,13 +1367,13 @@
</section>
-<p>PIDM allows two forms of temporal relationships between process executions to be expressed.
+<p>PROV-DM allows two forms of temporal relationships between process executions 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, before it was used by another activity, also represented by a process execution.
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.
</p>
-<p>In the Provenance Abstract Syntax Notation, a process execution ordering expression's text matches the <span class="nonterminal">peOrdering</span> production of the grammar defined in this specification document.
+<p>In PROV-ASN, a process execution ordering expression's text matches the <span class="nonterminal">peOrdering</span> production of the grammar defined in this specification document.
</p>
<div class='grammar'>
@@ -1341,7 +1404,7 @@
<p>
An instance of an information flow ordering expression, written as
-<span class="name">wasInformedBy(pe2,pe1)</span> in the Provenance Abstract Syntax Notation:
+<span class="name">wasInformedBy(pe2,pe1)</span> in PROV-ASN:
<ul>
<li> refers to a process execution <span class="name">pe2</span>;
<li> refers to a process execution <span class="name">pe1</span>
@@ -1360,7 +1423,7 @@
<p>
An instance of a control ordering expression, written as
-<span class="name">wasScheduledAfter(pe2,pe1)</span> in the Provenance Abstract Syntax Notation:
+<span class="name">wasScheduledAfter(pe2,pe1)</span> in PROV-ASN:
<ul>
<li> refers to a process execution <span class="name">pe2</span>;
<li> refers to a process execution <span class="name">pe1</span>,
@@ -1389,7 +1452,7 @@
<p> A <dfn id="dfn-Revision">revision expression</dfn> is a representation of the creation of a characterized thing considered to be a variant of another. Deciding whether something is made available as a revision of something else usually involves an agent who is responsible for declaring that the former is variant of the latter. </p>
-<p>In the Provenance Abstract Syntax Notation, a revision expression's text matches the <span class="nonterminal">revision</span> production of the grammar defined in this specification document.
+<p>In PROV-ASN, a revision expression's text matches the <span class="nonterminal">revision</span> production of the grammar defined in this specification document.
</p>
<div class='grammar'>
@@ -1406,7 +1469,7 @@
-<p>An instance of a revision expression, noted <span class="name">wasRevisionOf(e2,e1,ag)</span> in the Provenance Abstract Syntax Notation:
+<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;
@@ -1455,7 +1518,7 @@
<p>A <dfn id="dfn-Participation">participation expression</dfn> is a representation of the involvment of a characterized thing in an activity. A participation expression can be asserted or inferred.</p>
-<p>In the Provenance Abstract Syntax Notation, a participation expression's text matches the <span class="nonterminal">participation</span> production of the grammar defined in this specification document.</p>
+<p>In PROV-ASN, a participation expression's text matches the <span class="nonterminal">participation</span> production of the grammar defined in this specification document.</p>
<div class='grammar'>
@@ -1471,7 +1534,7 @@
<p>An instance of the participation expression,
-noted <span class="name">hadParticipant(pe,e)</span> in the Provenance Abstract Syntax Notation:
+noted <span class="name">hadParticipant(pe,e)</span> in PROV-ASN:
<ul>
<li> refers to a process execution denoted by identifier <span class="name">pe</span> and representing an activity;
<li> contains an identifier <span class="name">e</span> denoting an entity, which is
@@ -1500,6 +1563,12 @@
<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>
+
+<section id="expression-annotationAssociation">
+<h4>Annotation Association</h4>
+
+<div class='note'>Luc to write</div>
+</section>
</section>
<section id="expression-bundle">
@@ -1512,7 +1581,7 @@
-In the Provenance Abstract Syntax Notation, a bundle expression
+In PROV-ASN, a bundle expression
matches the <span class="nonterminal">bundle</span> production of the
grammar defined in this specification document; it can be
a <span class="nonterminal">provenanceContainer</span> or
@@ -1528,11 +1597,11 @@
<section id="expression-ProvenanceContainer">
<h4>Provenance Container</h4>
-<p>A <dfn id="dfn-ProvenanceContainer">provenance container expression</dfn> is an identifiable wrapper for a set of PIDM expressions, which allows for additional meta-information pertaining to these expressions to be expressed and associated with them. A provenance container expression MAY contain other provenance containers.</p>
+<p>A <dfn id="dfn-ProvenanceContainer">provenance container expression</dfn> is an identifiable wrapper for a set of PROV-DM expressions, which allows for additional meta-information pertaining to these expressions to be expressed and associated with them. A provenance container expression MAY contain other provenance containers.</p>
<p>Such meta-information may be asserter, date of creation, justification for assertions, and cryptographic signature. </p>
-<p>In the Provenance Abstract Syntax Notation, a provenance container expression's text matches the <span class="nonterminal">provenanceContainer</span> production of the grammar defined in this specification document.</p>
+<p>In PROV-ASN, a provenance container expression's text matches the <span class="nonterminal">provenanceContainer</span> production of the grammar defined in this specification document.</p>
<div class='grammar'>
@@ -1547,7 +1616,7 @@
<span class="name">)</span>
</div>
-<p>An instance of a provenance container expression, noted <span class="name">provenanceContainer(id, constructs)</span> in the Provenance Abstract Syntax Notation:
+<p>An instance of a provenance container expression, noted <span class="name">provenanceContainer(id, constructs)</span> in PROV-ASN:
<ul>
<li> contains an identifier <span class="name">id</span> intended to name this provenance container;</li>
<li> contains zero or more provenance constructs <span class="name">constructs</span>.</li>
@@ -1607,7 +1676,7 @@
</ul>
</p>
-<p>In the Provenance Abstract Syntax Notation, an account expression's text matches the <span class="nonterminal">account</span> production of the grammar defined in this specification document.</p>
+<p>In PROV-ASN, an account expression's text matches the <span class="nonterminal">account</span> production of the grammar defined in this specification document.</p>
<div class='grammar'>
<span class="nonterminal">account</span> :=
@@ -1623,7 +1692,7 @@
<span class="name">)</span>
</div>
-<p>An instance of an account expression, noted <span class="name">account(id, a, constructs)</span> in the Provenance Abstract Syntax Notation:
+<p>An instance of an account expression, noted <span class="name">account(id, a, constructs)</span> in PROV-ASN:
<ul>
<li> contains an identifier <span class="name">id</span> intended to name this account;</li>
<li> refers to an agent denoted by identifier <span class="name">a</span>;</li>
@@ -1694,13 +1763,43 @@
</section>
-<section id="expression-literal">
-<h3>Literal?</h3>
-
+<section id="expression-other">
+<h3>Other Expressions</h3>
+
+<section id="expression-literal">
+<h4>Literal</h4>
+</section>
+<section id="expression-qualifier">
+<h4>Qualifier</h4>
+
+
+<div class='grammar'>
+<span class="nonterminal">useQualifier</span> :=
+<span class="nonterminal">qualifier</span> <br/>
+<span class="nonterminal">generationQualifier</span> :=
+<span class="nonterminal">qualifier</span> <br/>
+<span class="nonterminal">generationQualifier</span> :=
+<span class="nonterminal">qualifier</span> <br/>
+<span class="nonterminal">qualifier</span> :=
+<span class="nonterminal">attribute-values</span> <br/>
+<!-- -->
+<span class="nonterminal">attribute-values</span> :=
+<span class="nonterminal">attribute-value</span>
+|<span class="nonterminal">attribute-value</span> <span class="name">,</span> <span class="nonterminal">attribute-values</span>
+<br/>
+<span class="nonterminal">attribute-value</span> :=
+<span class="nonterminal">attribute</span>
+<span class="name">:</span>
+<span class="nonterminal">Literal</span></div>
+</section>
+
+<section id="expression-attribute">
+<h4>Attribute</h4>
+</section>
<section id="expression-Time">
-<h3>Time</h3>
+<h4>Time</h4>
<p><dfn id="dfn-time">Time instants</dfn> are defined according to xsd:dateTime [[!XMLSCHEMA-2]].</p>
@@ -1712,7 +1811,7 @@
<section>
<h4>Temporal Events</h4>
-Four kinds of discrete events underpin the PIDM data model. They are:
+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>
@@ -1921,7 +2020,7 @@
<section id='PASN-convention'>
- <h3>Provenance Abstract Syntax Notation Conventions</h3>
+ <h3>PROV-ASN Conventions</h3>
<div class='note'>This appendix is now obsolete. It should be deleted, making sure all information has been transcribed where appropriate, and all cross-references delete.</div>