general text editing -- expression
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Thu, 15 Sep 2011 08:58:55 +0100
changeset 288 49e6a92599a2
parent 287 902b3c02b726
child 289 9c3688c8cc7e
general text editing -- expression
model/ProvenanceModel.html
--- a/model/ProvenanceModel.html	Thu Sep 15 08:22:24 2011 +0100
+++ b/model/ProvenanceModel.html	Thu Sep 15 08:58:55 2011 +0100
@@ -356,13 +356,13 @@
 <p>
 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: "" ])
-entity(e2, [ type: "File", location: "/shared/crime.txt", creator: "Alice", content: "There was a lot of crime in London last month."])
-entity(e3, [ type: "File", location: "/shared/crime.txt", creator: "Alice", content: "There was a lot of crime in London and New York last month."])
+entity(e0, [ type= "File", location= "/shared/crime.txt", creator= "Alice" ])
+entity(e1, [ type= "File", location= "/shared/crime.txt", creator= "Alice", content= "" ])
+entity(e2, [ type= "File", location= "/shared/crime.txt", creator= "Alice", content= "There was a lot of crime in London last month."])
+entity(e3, [ type= "File", location= "/shared/crime.txt", creator= "Alice", content= "There was a lot of crime in London and New York last month."])
 entity(e4, [ ])
 entity(e5, [ ])
-entity(e6, [ type: "File", location: "/shared/crime.txt", creator: "Alice", content: "There was a lot of crime in London and New York last month.", spellchecked: "yes"])
+entity(e6, [ type= "File", location= "/shared/crime.txt", creator= "Alice", content= "There was a lot of crime in London and New York last month.", spellchecked= "yes"])
 </pre>
 </p>
 
@@ -395,12 +395,12 @@
 <p>
 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)
-processExecution(pe2,email,t+2)
-processExecution(pe3,edit-London-New-York,t+3)
-processExecution(pe4,email,t+4)
-processExecution(pe5,spellcheck)
+processExecution(pe0,create-file,t,,[])
+processExecution(pe1,add-crime-in-london,t+1,,[])
+processExecution(pe2,email,t+2,,[])
+processExecution(pe3,edit-London-New-York,t+3,,[])
+processExecution(pe4,email,t+4,,[])
+processExecution(pe5,spellcheck,,,[])
 </pre>
 </p>
 
@@ -445,19 +445,19 @@
 <p>
 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" ])
+entity(a1, [ type= "Person", name= "Alice" ])
 agent(a1)
 
-entity(a2, [ type: "Person", name: "Bob" ])
+entity(a2, [ type= "Person", name= "Bob" ])
 agent(a2)
 
-entity(a3, [ type: "Person", name: "Charles" ])
+entity(a3, [ type= "Person", name= "Charles" ])
 agent(a3)
 
-entity(a4, [ type: "Person", name: "David" ])
+entity(a4, [ type= "Person", name= "David" ])
 agent(a4)
 
-entity(a5, [ type: "Person", name: "Edith" ])
+entity(a5, [ type= "Person", name= "Edith" ])
 agent(a5)
 </pre>
 </p>
@@ -502,9 +502,9 @@
 <h3>Expression</h3>
 
 <p>PROV-DM consists of a set of constructs to formulate representations of the world and constraints that must be satisfied by them.  In PROV-ASN, such representations of the world MUST be conformant with the toplevel production <span class="nonterminal">expression</span> of the grammar. These <span class="nonterminal">expression</span>s are grouped in three categories:
-<span class="nonterminal">elementExpression</span> (see section <a href="expression-element">Element</a>),
-<span class="nonterminal">relationExpression</span>  (see section <a href="expression-relation">Relation</a>), and
-<span class="nonterminal">accountExpression</span> (see section <a href="expression-account">Account</a>).
+<span class="nonterminal">elementExpression</span> (see section <a href="#expression-element">Element</a>),
+<span class="nonterminal">relationExpression</span>  (see section <a href="#expression-relation">Relation</a>), and
+<span class="nonterminal">accountExpression</span> (see section <a href="#expression-Account">Account</a>).
 
 
 <div class='grammar'>
@@ -514,12 +514,14 @@
 | <span class="nonterminal">accountExpression</span> 
 <br/>
 <!-- -->
+<br/>
 <span class="nonterminal">elementExpression</span>&nbsp;:=  
 <span class="nonterminal">entityExpression</span> 
 | <span class="nonterminal">processExecutionExecution</span> 
 | <span class="nonterminal">agentExpression</span>
 | <span class="nonterminal">annotationExpression</span> <br/>
 <!-- -->
+<br/>
 <span class="nonterminal">relationExpression</span>&nbsp;:=  
 <span class="nonterminal">generationExpression</span> 
 | <span class="nonterminal">useExpression</span> 
@@ -529,14 +531,10 @@
 | <span class="nonterminal">peOrderingExpression</span> 
 | <span class="nonterminal">revisionExpression</span> 
 | <span class="nonterminal">participationExpression</span>
-| <span class="nonterminal">annotationAssociationExpression</span> <br/>
-<!-- -->
-<span class="nonterminal">bundleExpression</span>&nbsp;:=  
-
-| <span class="nonterminal">accountExpression</span> 
+| <span class="nonterminal">annotationAssociationExpression</span> 
 </div>
 
-Furthermore, the PROV data model includes a "house-keeping construct" acting as a wrapper for shipping PROV-DM expressions, which is compliant with the production <span class="nonterminal">provenanceContainer</span> (see section <a href="#ProvenanceContainer">Provenance Container</a>).
+Furthermore, the PROV data model includes a "house-keeping construct" acting as a wrapper for interchanging PROV-DM expressions, which is compliant with the production <span class="nonterminal">provenanceContainer</span> (see section <a href="#ProvenanceContainer">Provenance Container</a>).
 
 </section>
 
@@ -546,7 +544,6 @@
 <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"> 
       
@@ -655,18 +652,16 @@
 <span class="nonterminal">identifier</span>
 [ <span class="name">,</span>
 <span class="nonterminal">recipe</span> ]
-[ <span class="name">,</span>
-<span class="nonterminal">time</span> ]
-[ <span class="name">,</span>
-<span class="nonterminal">time</span> ]
+<span class="name">,</span>
+[ <span class="nonterminal">time</span> ]
+<span class="name">,</span>
+[ <span class="nonterminal">time</span> ]
 <span class="name">,</span>
 <span class="nonterminal">other-attribute-values</span>
 <span class="name">)</span><br/>
 <span class="nonterminal">other-attribute-values</span>&nbsp;:=  <span class="nonterminal">attribute-values</span>
 </div>
 
-<div class='note'>Ambiguity of the grammar is noted for optional start and end times. To be resolved once definition of pe is agreed.</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. Further characteristics of the activity in the world world can be represented by the attribute-value pairs, which 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:
@@ -730,8 +725,8 @@
  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 an activity represented by a process execution expression.  </p>
+<p>For a characterized thing, one can assert an agent expresson or alternatively, one can infer an agent expression
+by involvement in an activity represented by a process execution expression.  </p>
 
 
 
@@ -739,21 +734,20 @@
 With the following assertions,
 
 <pre class="example">
-entity(e1, [employee: "1234", name: "Alice"])  and agent(e1)
+entity(e1, [employee= "1234", name= "Alice"])  and agent(e1)
 
 entity(e2) and wasControlledBy(pe,e2)
 </pre>
-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.
+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.
 </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>
+<span class='conditional'>If</span> the expressions
   <span class="name">entity(e,av)</span>
 and
 <span class="name">wasControlledBy(pe,e)</span> hold for some identifiers 
 <span class="name">pe</span>, <span class="name">e</span>, and attribute-values <span class="name">av</span>, then
- <span class="name">agent(e)</span> also holds.
+the expression <span class="name">agent(e)</span> also holds.
 </div>
 </section>
 
@@ -782,11 +776,11 @@
 <br/>
 <span class="nonterminal">name-value</span>&nbsp;:=  
 <span class="nonterminal">name</span>
-<span class="name">:</span>
+<span class="name">=</span>
 <span class="nonterminal">Literal</span>
 </div>
 
-<p>A separate expression is used to associate an annotation with an expression (see <a href="#expression-annotationAssociation">Section on annotation association</a>). A give annotation may be associated with multiple expressions.
+<p>A separate PROV-DM expression is used to associate an annotation with an expression (see <a href="#expression-annotationAssociation">Section on annotation association</a>). A given annotation may be associated with multiple expressions.
 </p>
 
 
@@ -796,7 +790,7 @@
 annotation(ann1,[color="bue", screenX=20, screenY=30])
 </pre>
 consists of a list of application-specific name-value pairs, intended
-to help the rendering the expression it is associated with, by
+to help the rendering of the expression it is associated with, by
 specifying its color and its position on the screen.  In this example,
 these name-value pairs do not constitute a representation of something
 in the world; they are just used to help render provenance.
@@ -822,7 +816,8 @@
 <h4>Generation</h4>
 
 
-<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-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. 
+The representation of this invent encompasses a description of the modalities of generation of this thing by this activity.</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>
 
@@ -844,16 +839,15 @@
 
 <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-qualifier">generationQualifier</a> <span class="name">q</span>, which describes the function of this thing with respect to the activity;
+<li> contains an identifier <span class="name">e</span> identifying an entity expression that represents the characterized thing that is created; 
+<li> contain an identifier <span class="name">pe</span> identifying a process execution expression that represents the activity that creates the characterized thing;
+
+<li> contains a <a href="#expression-qualifier">generationQualifier</a> <span class="name">q</span> that describes the modalities of generation of this thing by this 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
@@ -861,8 +855,8 @@
   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 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.
+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.
 </p>
 
 
@@ -914,7 +908,7 @@
 
 
 
-<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-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 modalities of use of this thing by this activity.</p>
 
 <p>In PROV-ASN, a use expression's text matches the <span class='nonterminal'>useExpression</span> production of the grammar defined in this specification document.</p>
 
@@ -936,21 +930,19 @@
 
 <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-qualifier">useQualifier</a> <span class="name">q</span>, which describes the function of this thing with respect to the activity;
+<li> refers to a process execution expression identified by <span class="name">pe</span>, which represents the consuming activity;
+<li> refers to an entity expression identified by <span class="name">e</span>, which represents the characterized thing that is consumed;
+<li> contains a <a href="#expression-qualifier">useQualifier</a> <span class="name">q</span>, which describes the modalities of use of this thing by this activity;
 <li> MAY contain a "use time" <span class="name">t</span>, the time at which the characterized thing was used.</p>
 </ul>
 </p>
 
-<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,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>; 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.
+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>
 
 
@@ -1469,9 +1461,6 @@
 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">[role="end"]</span>) the first activity, and the second initiates (control qualifier <span class="name">[role="start"]</span>) the second.  The second agent being "derived" from the first enforces  temporal ordering. 
 
 
-<div class='note'>This definition assumes that there are some predefined role
-for "starting" and "ending" activities.</div>
-
 
 <div class='issue'>Suggested definition for process ordering. This is <a href="http://www.w3.org/2011/prov/track/issues/50">ISSUE-50</a>.</div>
 </p>
@@ -1480,7 +1469,7 @@
 <section id="expression-Revision">
 <h3>Revision</h3>
 
-<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> 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 represents someone in the world who takes responsibility for declaring that the former is variant of the latter. </p>
 
 <p>In PROV-ASN, a revision expression's text matches the <span class="nonterminal">revisionExpression</span> production of the grammar defined in this specification document.
 </p>
@@ -1690,7 +1679,7 @@
 <pre class="example">
 account(acc1,
         http://x.com/asserter, 
-          entity(e0, [ type: "File", location: "/shared/crime.txt", creator: "Alice" ])
+          entity(e0, [ type= "File", location= "/shared/crime.txt", creator= "Alice" ])
           ...
           wasDerivedFrom(e2,e1)
           ...
@@ -1721,7 +1710,7 @@
 <pre class="example">
 account(acc2,
         http://x.com/asserter2, 
-          entity(e0, [ type: "File", location: "/shared/crime.txt", creator: "Alice" ])
+          entity(e0, [ type= "File", location= "/shared/crime.txt", creator= "Alice" ])
           ...
           processExecution(pe1,create-file,t1)
           ...
@@ -1737,12 +1726,12 @@
 <pre class="example">
 account(acc3,
         http://x.com/asserter1, 
-          entity(e0, [ type: "File", location: "/shared/crime.txt", creator: "Alice" ])
+          entity(e0, [ type= "File", location= "/shared/crime.txt", creator= "Alice" ])
           processExecution(pe0,create-file,t)
           wasGeneratedBy(e0,pe0,outFile)  
           account(acc4,
                  http://x.com/asserter2,
-                 entity(e1, [ type: "File", location: "/shared/crime.txt", creator: "Alice", content="" ])
+                 entity(e1, [ type= "File", location= "/shared/crime.txt", creator= "Alice", content="" ])
                  processExecution(pe0,copy-file,t)
                  wasGeneratedBy(e1,pe0,outFile)
                  isComplement(e1,e0)))