prov-n minor edits
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Mon, 28 May 2012 14:58:49 +0100
changeset 3012 83166da373bf
parent 3011 81d179dc12b7
child 3013 efb27411cf75
prov-n minor edits
model/extra.css
model/prov-n.html
--- a/model/extra.css	Mon May 28 14:07:24 2012 +0100
+++ b/model/extra.css	Mon May 28 14:58:49 2012 +0100
@@ -263,6 +263,13 @@
     padding:    3px 1em;
 }
 
+.anexample[count]::before {
+    content: "Example " attr(count) ;
+    font-family: sans-serif;
+    font-size: 1.6ex;
+    font-weight: bold;
+}
+
 .anexample:before {
     content: "Example:";
     font-family: sans-serif;
--- a/model/prov-n.html	Mon May 28 14:07:24 2012 +0100
+++ b/model/prov-n.html	Mon May 28 14:58:49 2012 +0100
@@ -86,11 +86,43 @@
         });
       }
 
+      function updateExamples() {
+        var count=1;
+        $('.anexample').each(function(index) {
+
+          var myid=$(this).attr('id');
+          var mycount=count++;
+
+          $(this).attr('count', mycount);
+
+          //console.log( "example for " + myid + " " + mycount);
+
+        });
+      }
+
+      function updateExamplesRefs() {
+        $('.anexample-ref').each(function(index) {
+
+          myhref=$(this).attr('href');
+
+          console.log( "example ref for " + myhref);
+
+          mycount=$(myhref).attr('count');
+
+          console.log( "example ref for " + myhref + " " + mycount);
+
+          $(this).children('span').replaceWith(function(){return $('<span>').append("Example " + mycount)});
+
+        });
+      }
+
       $(document).ready(function(){
         // if grammar is in a string:
         $('#grammar_div').html(grammar_string);
         console.log( "updating grammar entries");
         updateGrammarRefs();
+        updateExamples();
+        updateExamplesRefs();
       });
 
     </script>
@@ -248,17 +280,19 @@
     <section id="abstract">
 
 <p>
-PROV-DM, the PROV data model, is a data model for provenance that describes
+PROV-DM, the PROV conceptual data model, is a data model for provenance that describes
 the entities, people and activities involved in
 producing a piece of data or thing. 
-PROV-DM is structured in six components, dealing with: 
+PROV-DM distinguishes core structures, forming the essence of provenance descriptions, from
+extended structures catering for more advanced uses of provenance. 
+PROV-DM is organized in six components, respectively dealing with: 
 (1) entities and activities, and the time at which they were created, used, or ended;
 (2) agents bearing responsibility for entities that were generated and activities that happened;
 (3) derivations of entities from entities;
 (4) properties to link entities that refer to the same thing;
-(5) collections forming a logical structure for its members;
-(6) a simple annotation mechanism.
-<p>
+(5) a notion of bundle, a mechanism to support provenance of provenance; and,
+(6) collections forming a logical structure for its members.
+</p>
 <p>To provide examples of the PROV data model, the PROV notation (PROV-N) is introduced: aimed at human consumption, PROV-N allows serializations of PROV
 instances to be created in a compact manner. PROV-N facilitates the
 mapping of the PROV data model to concrete syntax, and is used as the basis for a
@@ -267,6 +301,15 @@
     </section> 
 
 <section id="sotd">
+<h4>Intended to be Last Call (TBC)</h4>
+<p>This is the fifth public release of the PROV-DM document. 
+Publication as Last Call working draft means that 
+the Working Group believes that it has satisfied the relevant technical requirements outlined in its charter on this document. The design is not expected to change significantly, going forward, and now is the key time for external review, before the implementation phase.</p>
+<h4>Please Comment By (date TBD)</h4>
+<p>The PROV Working group seeks public feedback on this Working Draft.
+The end date of the Last Call review period is TBD, and we would appreciate comments by that date to public-prov-comments@w3.org
+</p>
+
 <h4>PROV Family of Specifications</h4>
 This document is part of the PROV family of specifications, a set of specifications defining various aspects that are necessary to achieve the vision of inter-operable
 interchange of provenance information in heterogeneous environments such as the Web.  The specifications are:
@@ -289,16 +332,6 @@
 <li>Readers seeking to implement other PROV serializations
 should focus on PROV-DM and PROV-CONSTRAINTS.  PROV-O, PROV-N, PROV-XML offer examples of mapping to RDF, text, and XML, respectively.</li>
 </ul>
-
-
-
-<!-- <h4>First Public Working Draft</h4> -->
-<!--  <p>This is the first public release of the PROV-N -->
-<!-- document. Following feedback, the Working Group has decided to -->
-<!-- reorganize the PROV-DM document substantially, separating the data model, -->
-<!-- from its constraints, and the notation used to illustrate it. The -->
-<!-- PROV-N release is synchronized with the release of the PROV-DM, PROV-O, -->
-<!-- PROV-PRIMER, and PROV-CONSTRAINTS documents. -->
 </section>
 
 
@@ -309,7 +342,7 @@
 <section id="introduction"> 
 <h2>Introduction</h2>
 
-<p> Provenance is defined as a record that describes the people,
+<p> Provenance is a record that describes the people,
 institutions, entities, and activities, involved in producing,
 influencing, or delivering a piece of data or a thing in the world.  Two
 companion specifications respectively define PROV-DM, a data model for
@@ -353,26 +386,22 @@
     <section id="structure-of-this-document"> 
 <h3>Structure of this Document</h3>
 
-<p>This document defines a grammar using the Extended  Backus-Naur Form (EBNF) notation. Its productions correspond to PROV data model types and relations.
-</p>
-It is structured as follows.
-
-<p><a href="#general-conventions">Section 2</a> provides the design rationale for the PROV Notation.</p>
-
-<p><a href="#grammar-notation">Section 3</a> defines the notation for the Extended  Backus-Naur Form (EBNF) grammar used in this specification.</p>
-
-<p><a href="#prov-n-expressions">Section 4</a> presents the grammar of all expressions of the language grouped according to the PROV data model components.</p>
-
-<p><a href="#toplevelBundle">Section 5</a> defines the grammar of toplevel bundles, a house-keeping construct of PROV-N capable of packaging up PROV-N expressions and namespace declarations.</p>
-
-
-<p><a href="#media-type">Section 6</a> defines media type for the PROV-N notation.</p>
+<p>This document structured as follows.
+
+<p><a href="#general-conventions">Section 2</a> provides general consideration about the PROV-N grammar.</p>
+
+<p><a href="#prov-n-expressions">Section 3</a> presents the grammar of all expressions of the language grouped according to the PROV data model components.</p>
+
+<p><a href="#toplevelBundle">Section 4</a> defines the grammar of toplevel bundles, a house-keeping construct of PROV-N capable of packaging up PROV-N expressions and namespace declarations.</p>
+
+
+<p><a href="#media-type">Section 5</a> defines media type for the PROV-N notation.</p>
 
 
     </section> 
 
 
-<section id="prov-dm-namespace">
+<section id="notational-conventions">
  <h3>Notational Conventions</h3>
 
 <!--
@@ -428,10 +457,9 @@
   </div>
   
 <div class="anexample">
-In the following expressions, the optional activity <span class="name">a</span> along with the generation and usage identifiers, and timestamps have been added to further qualify the derivation:
+In the following expressions, the optional activity <span class="name">a</span> along with the generation and usage identifiers <span class="name">g2</span> and <span class="name">u1</span>:
 <pre class="codeexample" >
 wasDerivedFrom(e2, e1, a, g2, u1)
-activity(a2, 2011-11-16T16:00:00, 2011-11-16T16:00:01)
 </pre>
 </div>
 
@@ -570,12 +598,12 @@
 However, it may be the case that only some of the optional terms are omitted. Because the position of the terms in the expression matters, an additional marker must be used to indicate that a particular term is not available. The symbol  <span class="name">'-'</span> is used for this purpose.
 
 <div class="anexample">
-<p>In the first expression below, all optionals are specified. However in the second, only the last one is specified, forcing the use of the marker for the missing terms. In the last, no marker is necessary because all <em>remaining</em> optionals after <span class="name">a</span> are missing.
+<p>In the first expression below, all optionals are specified. However in the second and third, only one optional is specified, forcing the use of the marker for the missing terms. 
 
 <pre class="codeexample" >
 wasDerivedFrom(e2, e1, a, g2, u1)
 wasDerivedFrom(e2, e1, -, -, u1)
-wasDerivedFrom(e2, e1, a)
+wasDerivedFrom(e2, e1, a, -, -)
 </pre>
 </div>
 Note that the more succinct form is just shorthand for a complete expression with all the markers specified:
@@ -592,7 +620,7 @@
 <section id="prov-n-standard-terms"> 
 <h3>Identifiers and attributes</h3>
 
-<p>Most expressions defined in the grammar include the use of two terms: an identifier for the predicate, and a set of attribute-value pairs, delimited by square brackets. Identifiers are optional except for Entities, Activites, and Agents. Identifiers are always the first term in any expression. By convention, </em>optional</em> identifiers are separated using a semi-colon ';'. This makes it possible to completely omit an optional identifier with no ambiguity arising. Also, if the set of attribute-value pairs is present, it is always the last term in any expression.</p>
+<p>Most expressions defined in the grammar include the use of two terms: an identifier and a set of attribute-value pairs, delimited by square brackets. Identifiers are optional except for Entities, Activites, and Agents. Identifiers are always the first term in any expression. By convention, </em>optional</em> identifiers are separated using a semi-colon ';'. This makes it possible to completely omit an optional identifier with no ambiguity arising. Also, if the set of attribute-value pairs is present, it is always the last term in any expression.</p>
 
 <div class="anexample">
 <p>Derivation has an optional identifier. In the first expression, the identifier is not available, while it is explicit in the second. The third example shows that one can optionally indicate the missing identifier using the <span class="name">-</span> marker.</p>
@@ -626,9 +654,9 @@
 
 Comments in PROV-N take two forms:
 <ul>
-<li> '//'  outside an <a class="grammarRef" href="#prod-IRI_REF">IRI_REF</a> or <a class="grammarRef" href="#prod-STRING_LITERAL">STRING_LITERAL</a>, and continue to the end of line (marked by characters U+000D or U+000A) or end of file if there is no end of line after the comment marker. 
-
-<li> '/*' ... '*/', outside an <a class="grammarRef" href="#prod-IRI_REF">IRI_REF</a> or <a class="grammarRef" href="#prod-STRING_LITERAL">STRING_LITERAL</a>.
+<li> '//'  outside an <code class="content"><a class="grammarRef" href="#prod-IRI_REF">IRI_REF</a></code> or <code class="content"><a class="grammarRef" href="#prod-STRING_LITERAL">STRING_LITERAL</a></code>; such cooments continue to the end of line (marked by characters U+000D or U+000A) or end of file if there is no end of line after the comment marker. 
+
+<li> '/*' ... '*/', outside an <code class="content"><a class="grammarRef" href="#prod-IRI_REF">IRI_REF</a></code> or <code class="content"><a class="grammarRef" href="#prod-STRING_LITERAL">STRING_LITERAL</a></code>.
 </ul>
 <p>Comments are treated as white space.</p>
 
@@ -639,7 +667,7 @@
 <section id="prov-n-expressions"> 
 <h2>PROV-N Productions per Component</h2>
 
-This section  introduces grammar productions for each expression, followed by small examples illustrating the use of expressions in PROV-N. Strings conforming to the grammar are valid expressions in the PROV-N language.<p/>
+<p>This section  introduces grammar productions for each expression, followed by small examples of expressions illustrating the grammar. Strings conforming to the grammar are valid expressions in the PROV-N language.</p>
 
 <section id="component1"> 
 <h3>Component 1: Entities and Activities</h3>
@@ -695,7 +723,7 @@
 <!-- entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version=2 ]) -->
 entity(tr:WD-prov-dm-20111215)
 </pre>
-Here the optional attributes are not used.
+Here, the optional attributes are absent.
 </div>
 
 
@@ -804,12 +832,12 @@
 wasGeneratedBy(e, ex:edit1, 2011-11-16T16:00:00)
 wasGeneratedBy(e2, a1, -, [ex:fct="save"])     
 wasGeneratedBy(e2, [ex:fct="save"])     
+wasGeneratedBy(ex:g1; e)
 wasGeneratedBy(ex:g1; e, a, tr:WD-prov-dm-20111215)
 </pre>
 </div>
 
-<p>Even though the production <a class="grammarRef" href="#prod-generationExpression">generationExpression</a> allows for expressions <span class="name">wasGeneratedBy(e2, -, -)</span>  and <span class="name">wasGeneratedBy(-, e2, -, -)</span>, these expressions are not valid in PROV-N, since 
-at least  one of <span class='attribute'>activity</span>, <span class='attribute'>time</span>, or  <span class='attribute'>attributes</span>  MUST be present.</p>
+<p>Even though the production <code class="content"><a class="grammarRef" href="#prod-generationExpression">generationExpression</a></code> allows for expressions <span class="name">wasGeneratedBy(e2, -, -)</span>  and <span class="name">wasGeneratedBy(-; e2, -, -)</span>, these expressions are not valid in PROV-N, since at least one  of <a href="http://www.w3.org/TR/prov-dm/#generation.id"><span class='attribute'>id</span></a>, <a href="http://www.w3.org/TR/prov-dm/#generation.activity"><span class='attribute'>activity</span></a>, <a href="http://www.w3.org/TR/prov-dm/#generation.time"><span class='attribute'>time</span></a>, and  <a href="http://www.w3.org/TR/prov-dm/#generation.attributes"><span class='attribute'>attributes</span></a> MUST be present.</p>
 
 
 
@@ -864,6 +892,10 @@
 </div>
 
 
+<p>Even though the production <code class="content"><a class="grammarRef" href="#prod-usageExpression">usageExpression</a></code> allows for expressions <span class="name">used(a2, -, -)</span>  and <span class="name">used(-; e2, -, -)</span>, these expressions are not valid in PROV-N, since at least one  of <a href="http://www.w3.org/TR/prov-dm/#usage.id"><span class='attribute'>id</span></a>, <a href="http://www.w3.org/TR/prov-dm/#usage.entity"><span class='attribute'>entity</span></a>, <a href="http://www.w3.org/TR/prov-dm/#usage.time"><span class='attribute'>time</span></a>, and  <a href="http://www.w3.org/TR/prov-dm/#usage.attributes"><span class='attribute'>attributes</span></a> MUST be present.</p>
+
+
+
 </section>
 <section id="expression-Start">
 <h4>Start</h4>
@@ -892,27 +924,25 @@
 <div class="anexample">
 
   <pre class="codeexample">
-wasStartedBy(s; ex:act2, e, ar3:0111, 2011-11-16T16:00:00, [ex:param="a"])
+wasStartedBy(s; ex:act2, ex:trigger, ex:act1, 2011-11-16T16:00:00, [ex:param="a"])
   </pre>
   <p>Here <span class="name">s</span> is the optional start identifier,  <span class="name">ex:act2</span> is the identifier of the started activity,
-  <span class="name">e</span> is the optional identifier for the entity that triggered the activity start,
-   <span class="name">ar3:0111</span> is the optional identifier for the activity that generated the (possibly unspecified) entity   <span class="name">e</span>,
- <span class="name">2011-11-16T16:00:00</span> is the optional usage time, and <span class="name"> [ex:param="a"]</span> are optional attributes.</p>
+  <span class="name">ex:trigger</span> is the optional identifier for the entity that triggered the activity start,
+   <span class="name">ex:act1</span> is the optional identifier for the activity that generated the (possibly unspecified) entity   <span class="name">ex:trigger</span>,
+ <span class="name">2011-11-16T16:00:00</span> is the optional start time, and <span class="name"> [ex:param="a"]</span> are optional attributes.</p>
   The remaining examples show cases where some of the optionals are omitted.
   
   <pre class="codeexample">
-wasStartedBy(ex:act2, -, ar3:0111, -)
-wasStartedBy(ex:act2, -, ar3:0111, 2011-11-16T16:00:00)
+wasStartedBy(ex:act2, -, ex:act1, -)
+wasStartedBy(ex:act2, -, ex:act1, 2011-11-16T16:00:00)
 wasStartedBy(ex:act2, -, -, 2011-11-16T16:00:00)
-wasStartedBy(ex:act2)
 wasStartedBy(ex:act2, [ex:param="a"])
-wasStartedBy(s; ex:act2, e, ar3:0111, 2011-11-16T16:00:00)
+wasStartedBy(s; ex:act2, e, ex:act1, 2011-11-16T16:00:00)
 </pre>
 </div>
 
-<p><strong>Note:</strong> Even though the production <a class="grammarRef" href="#prod-startExpression">startExpression</a> allows for expressions <span class="name">wasStartedBy(e2, -, -)</span>  and <span class="name">wasStartedBy(-, e2, -, -)</span>, these expressions are not valid in PROV-N,
-since 
-at least  one of <span class='attribute'>trigger</span>, <span class='attribute'>time</span>, or  <span class='attribute'>attributes</span>  MUST be present.</p>
+<p><strong>Note:</strong> Even though the production <code class="content"><a class="grammarRef" href="#prod-startExpression">startExpression</a></code> allows for expressions <span class="name">wasStartedBy(e2, -, -)</span>  and <span class="name">wasStartedBy(-; e2, -, -)</span>, these expressions are not valid in PROV-N,
+since at least one  of <a href="http://www.w3.org/TR/prov-dm/#start.id"><span class='attribute'>id</span></a>, <a href="http://www.w3.org/TR/prov-dm/#start.trigger"><span class='attribute'>trigger</span></a>, <a href="http://www.w3.org/TR/prov-dm/#start.starter"><span class='attribute'>starter</span></a>, <a href="http://www.w3.org/TR/prov-dm/#start.time"><span class='attribute'>time</span></a>, and  <a href="http://www.w3.org/TR/prov-dm/#start.attributes"><span class='attribute'>attributes</span></a> MUST be present.</p>
 
 </section>