more prov-n edits
authorPaolo Missier <pmissier@acm.org>
Wed, 18 Apr 2012 12:58:40 +0100
changeset 2370 17020c4d020c
parent 2369 8e953a831db0
child 2371 fa948d44b870
more prov-n edits
model/comments/issue-332-Tim.txt
model/prov-n.html
--- a/model/comments/issue-332-Tim.txt	Wed Apr 18 12:50:46 2012 +0100
+++ b/model/comments/issue-332-Tim.txt	Wed Apr 18 12:58:40 2012 +0100
@@ -15,6 +15,8 @@
 1)
 Perhaps "RDF's reliance on triples" should be "RDF's insistence on triples" :-)
 
+PM: text has been changed 
+
 2) 
 the intro to syntactic marker - shows assertions with a missing marker for the id (the first position)
 
@@ -31,6 +33,12 @@
 
 apparently the marker is optional. Why is it optional?
 
+PM because the grammar is smarter than it looks... it does allow the id to disappear completely. This is not intuitive and Luc and I had a discussion about this, which led to the conclusion that this is convenient but the parser only works because of some other peculiarity of the grammar. So it may be wise to revisit the grammar at a later stage.
+
+That the ID can disappear is now made clear in the text, sec. 2.4:
+"Additionally, the grammar rules are defined in such a way that the optional identifier can be omitted altogether with no ambiguity arising."
+
+
 
 3)
 I'm not sure what to take away from this:
@@ -39,7 +47,7 @@
 """
 * suggest adding an example of the two (start time is positional, foo=bar and prov:role are latter category)
 
-
+PM: text has changed now, entire sentence gone
 
 
 
@@ -47,6 +55,8 @@
 I was a bit surprised that DM and -constraints says that "it is assumed that containers exist", but then PROV-N does it.   
 I guess it makes sense.
 
+PM: the DM should perhaps point to the PROV-N entry where this is defined (sec. 4).
+
 
 
 5)
@@ -55,7 +65,7 @@
 but "identifier" is not defined anywhere within view.
 * recommend adding a link to the productions that are not defined within view.
 
-
+PM we are considering this. good suggestion, quite a bit of additional work involved :-)
 
 
 6)
@@ -71,7 +81,7 @@
 
 * recommend adding these as links to their production (and in general, anywhere one is mentioned it should be a link)
 
-
+PM: see earlier comment
 
 
 
@@ -86,19 +96,24 @@
 wasAttributedTo(e, ag)
 " don't have prefixes on other arguments.
 
+PM: because the syntax for identifiers allows this, unlike that for RDF/Turtle where you need either a prefix or just a :
+
+see 3.7.2:
+A qualified name's prefix is optional. If a prefix occurs in a qualified name, it refers to a namespace declared in a namespace declaration. In the absence of prefix, the qualified name refers to the default namespace
+
 
 
 
 8)
 Ensuring spaces follow commas in the examples would help readability.
 
-
+PM: this is now mostly the case everywhere -- we may have missed a few?
 
 9)
 Looks like we hit the RDF vs XML xsd namespace problem again:
 "xsd denotes the XML Schema namespace http://www.w3.org/2001/XMLSchema." 
 
-
+PM: not sure how to deal with this. More insight, please?
 
 
 
@@ -130,7 +145,7 @@
 
 end
 
-
+PM: NO colon is my understanding from 3.7.2. Luc please confirm?
 
 
 
@@ -141,7 +156,7 @@
 
 (per note "Wouldn't it be useful to introduce a literal for a qualified name? Currenlty, we have to write:")
 
-
+PM: agreed. no proposed solution yet but aware of the problem
 
 
 
@@ -150,7 +165,7 @@
 Why is  prov:AccountEntity not just prov:Account?
 Should we rename prov:Plan to prov:PlanEntity and prov:EmptyCollection to prov:EmptyCollectionEntity ? (please, no.)
 
-
+PM: edited into prov:Account. Luc please check as you may have used AccountEntity deliberately?
 
 
 13)
@@ -165,7 +180,7 @@
 What is the namespace for e2?
 (Yes, my RDF bias shows here, sorry.)
 
-
+PM: the default namespace?  I guess here the prefix is just not used.
 
 
 
@@ -174,7 +189,7 @@
 Why not use the container as the account, and let the container be named or unnamed?
 Is it because XML needs a root element :-)
 
-
+PM: I let Luc answer this one
 
 
 On Mar 29, 2012, at 9:38 AM, Provenance Working Group Issue Tracker wrote:
--- a/model/prov-n.html	Wed Apr 18 12:50:46 2012 +0100
+++ b/model/prov-n.html	Wed Apr 18 12:58:40 2012 +0100
@@ -224,17 +224,6 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
-
 <section id="introduction"> 
 <h2>Introduction</h2>
 
@@ -248,46 +237,48 @@
 <section id="purpose"> 
 <h2>Purpose of this Document and target audience</h2>
 
-A key goal of PROV-DM is the specification of a machine-processable data model for provenance. However, communicating provenance between humans is also important when teaching, illustrating, formalizing, and discussing provenance-related issues. 
+A key goal of PROV is the specification of a machine-processable data model for provenance. However, communicating provenance between humans is also important when teaching, illustrating, formalizing, and discussing provenance-related issues. 
 
 <!-- As such, representations of PROV-DM are available in RDF and XML. -->
 
-With these two requirements in mind, this document introduces PROV-N, a syntax notation designed to  write instances of the PROV-DM data model according to the following design principles:
+With these two requirements in mind, this document introduces PROV-N, a syntax notation designed to  write instances of the PROV data model according to the following design principles:
 <ul>
-<li>Technology independence. PROV-N provides a simple syntax that can be mapped to technology-specific formats such as XML, RDF, JSON, and possibly more;
+<li>Technology independence. PROV-N provides a simple syntax that can be mapped to technology-specific languages such as XML, RDf/XML, JSON, and possibly more;
 
 <li>Human readability. PROV-N follows a functional syntax style that is meant to be easily human-readable so it can be used in illustrative examples, such as those presented in the PROV documents suite;
 
-<li>Formality. PROV-N is defined through a formal grammar amenable to be used with standard parser generators.
+<li>Formality. PROV-N is defined through a formal grammar amenable to be used with parser generators.
 
  </ul>
   
 PROV-N has several known uses:
 <ul>
-<li> It is the notation used in the examples found in  [[PROV-DM]], as well as in the definition of PROV-DM constraints [[PROV-DM-CONSTRAINTS]]; </li>
-<li>  It is a source language for the encoding of PROV-DM instances into a variety of target languages, including amongst others  RDF [[PROV-RDF]] and XML [[PROV-XML]]; </li>
-<li> It provides the basis for a formal semantics of PROV-DM  [[PROV-SEM]], in which an interpretation is given to each element of the PROV-N language.
+<li> It is the notation used in the examples found in  [[PROV-DM]], as well as in the definition of PROV constraints [[PROV-DM-CONSTRAINTS]]; </li>
+<li>  It is a source language for the encoding of PROV data model instances into a variety of target languages, including amongst others  RDF [[PROV-RDF]] and XML [[PROV-XML]]; </li>
+<li> It provides the basis for a formal semantics of the PROV data model  [[PROV-SEM]], in which an interpretation is given to each element of the PROV-N language.
 </ul>
 
-This document introduces the PROV-N grammar along with examples of its usage.<br/>
-Its target audience includes multiple roles. <br/>
-Firstly, it includes developers of provenance management applications, as well as implementors of new PROV-DM encodings, and thus in particular of PROV-N parsers. These readers may be interested in the entire structure of the grammar, starting from the top level nonterminal <a href="#ExpressionContainer">container</a>.
-Secondly, it also includes those readers of the  [[PROV-DM]] and of  [[PROV-DM-CONSTRAINTS]] documents, who are interested in the details of the formal language underpinning the notation used in the examples and in the definition of the constraints. Those readers may find the  <a href="#grammar-notation">expression</a> nonterminal a useful entry point into the grammar.
+<p>This document introduces the PROV-N grammar along with examples of its usage.</p>
+<p>Its target audience is twofold:
+<ul>
+<li>Developers of provenance management applications, as well as implementors of new PROV data model encodings, and thus in particular of PROV-N parsers. These readers may be interested in the entire structure of the grammar, starting from the top level nonterminal <a href="#ExpressionContainer">container</a>.</li>
+<li>Readers of the  [[PROV-DM]] and of  [[PROV-DM-CONSTRAINTS]] documents, who are interested in the details of the formal language underpinning the notation used in the examples and in the definition of the constraints. Those readers may find the  <a href="#grammar-notation">expression</a> nonterminal a useful entry point into the grammar.</li>
+</ul>
 
 </section>
 
     <section id="structure-of-this-document"> 
 <h3>Structure of this Document</h3>
 
-This document defines a grammar using the Extended  Backus-Naur Form (EBNF) notation. Its productions correspond to constructs of PROV-DM.
-<br/>
+<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="#prov-n-rationale">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, presented one by one, and grouped according to PROV-DM components.</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="#ExpressionContainer">Section 5</a> defines the grammar of containers, a house-keeping construct of PROV-N capable of packaging up PROV-N expressions and namespace declarations.</p>
 
@@ -300,9 +291,9 @@
 
 
 <section id="prov-dm-namespace">
- <h3>PROV-DM Namespace</h3>
+ <h3>Notational Conventions</h3>
 
-
+<!--
 <p>The PROV namespace is <span class="name">http://www.w3.org/ns/prov#</span> with prefix <span class="name">prov:</span>.</p>
 
 <p> All the elements, predicates, reserved names and attributes introduced in this specification belong to the PROV namespace.</p>
@@ -311,13 +302,31 @@
 <section id="conventions"> 
 <h3>Conventions</h3>
 
-
+-->
 
 <p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
       NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and
       "OPTIONAL" in this document are to be interpreted as described in
       [[!RFC2119]].</p>
-    </section> 
+
+
+
+
+<p>
+The following namespaces prefixes are used throughout this document.
+
+<div style="text-align: left;">
+<table border="1" style="margin-left: auto; margin-right: auto;">
+<caption id="namespace-table">Table 1: Prefix and Namespaces used in this specification</caption>
+<tr><td><a><bf>prefix</bf></a></td><td><bf>namespace uri</bf></td> <td><bf>definition</bf></td></tr>
+<tr><td><a>prov</a></td><td>http://www.w3.org/ns/prov#</td><td>The PROV namespace (see Section <a href="#term-NamespaceDeclaration">4.7.1</a>)</td></tr>
+<tr><td><a>xsd</a></td><td>http://www.w3.org/2000/10/XMLSchema#</td><td>XML Schema Namespace [[!XMLSCHEMA-2]]</td></tr>
+<tr><td><a>rdf</a></td><td>http://www.w3.org/1999/02/22-rdf-syntax-ns#</td><td>The RDF namespace  [[!RDF-CONCEPTS]]</td></tr>
+<tr><td><a>(others)</a></td><td>(various)</td><td>All other namespace prefixes are used in examples only. <br/> In particular, URIs starting with "http://example.com" represent<br/> some application-dependent URI [[!URI]]</td></tr>
+</table>
+</div>
+
+</section> 
 
 </section> 
 
@@ -328,7 +337,7 @@
 <h3>Functional-style Syntax</h3>
 
 <p> PROV-N adopts a functional-style syntax consisting of a predicate name and an ordered list of terms.
-All PROV-DM predicates involve two primary elements, the <em>subject</em> and the <em>object</em>, in this order. Furthermore, some predicates also admit additional elements that further characterize it.
+All PROV data model relations involve two primary elements, the <em>subject</em> and the <em>object</em>, in this order. Furthermore, some expressions also admit additional elements that further characterize it.
 <div class="anexample">
 The following expression should be read as "<span class="name">e2</span> was derived from <span class="name">e1</span>". Here <span class="name">e2</span> is the subject, and  <span class="name">e1</span> is the object.
 <pre class="codeexample" >
@@ -337,7 +346,7 @@
   </div>
   
 <div class="anexample">
-In the following expressions, the optional activity <span class="name">a</span> along with the generation and usage IDs, 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, and timestamps have been added to further qualify the derivation:
 <pre class="codeexample" >
 wasDerivedFrom(e2, e1, a, g2, u1)
 activity(a2, 2011-11-16T16:00:00, 2011-11-16T16:00:01)
@@ -349,13 +358,13 @@
 <section id="grammar-notation">
 <h3>EBNF Grammar</h3>
 
-The grammar is specified using the Extended  Backus-Naur Form (EBNF) notation.<br/>
+<p>The grammar is specified using the Extended  Backus-Naur Form (EBNF) notation.</p>
 <div class="grammar">
   Each production rule (or <dfn>production</dfn>, for short) in the grammar defines one non-terminal symbol <span class="nonterminal">E</span>, in the following form:</p>
 
-<span class="nonterminal">E</span>&nbsp;::= <em>expression</em>
+<span class="nonterminal">E</span>&nbsp;::= <em>term</em>
 
-<p>Within the expression on the right-hand side of a rule, the following expressions are used to match strings of one or more characters:
+<p>Within the term on the right-hand side of a rule, the following terms are used to match strings of one or more characters:
 <ul>
 <li> 
 <span class="nonterminal">E</span>: matches term satisfying rule for symbol E.
@@ -367,15 +376,19 @@
 
 
 <li> 
-<span class="optional"><em>expression</em></span>: matches <em>expression</em> or nothing; optional <em>expression</em>.
+<span class="optional"><em>term</em></span>: optional <em>term</em>, matches <em>term</em> or nothing.
 </li>
 
 <li> 
-<span class="plus"><em>expression</em></span>: matches one or more occurrences of <em>expression</em>.
+<span class="plus"><em>term</em></span>: matches one or more occurrences of <em>term</em>.
 </li>
 
 <li> 
-<span class="star"><em>expression</em></span>: matches zero or more occurrences of <em>expression</em>.
+<span class="star"><em>term</em></span>: matches zero or more occurrences of <em>term</em>.
+</li>
+
+<li> 
+<span class="choice"><em>term</em> | <em>term</em></span>: matches one of the two <em>terms</em>.
 </li>
 
 </ul>
@@ -424,27 +437,23 @@
 </table>
 </div>
 
-Each expression type,  of the form <span class="nonterminal">XExpression</span>, i.e.,  <span class="nonterminal">entityExpression</span>, <span class="nonterminal">activityExpression</span> etc., corresponds to one element X (entity, activity, etc.) of PROV-DM.
-<p>A PROV-N document consists of a collection of <a title="expression">expressions</a>, wrapped in an <a>expression container</a> with some namespace declarations, such that the text for an element X matches the corresponding <span class="nonterminal">XExpression</span> production of the grammar.
+Each expression non-terminal <span class="nonterminal">expression</span>, i.e.,  <span class="nonterminal">entityExpression</span>, <span class="nonterminal">activityExpression</span> etc., corresponds to one element (entity, activity, etc.) of the PROV data model.
+<p>A PROV-N document consists of a collection of <a title="expression">expressions</a>, wrapped in an <a>expression container</a> with some namespace declarations, such that the text for an element matches the corresponding <span class="nonterminal">expression</span> production of the grammar.
 
 </section>
 
 
-<!--
-The following conventions are introduced concerning the specification of optional terms in an expression, of default terms, and of terms whose value is not specified, either because it is not available, or because it does not apply.
--->
-
 <section id="prov-n-optionals"> 
 <h3>Optional terms in expressions</h3>
 
-Some terms in a predicate may be optional. For example:
+Some terms in an expression may be optional. For example:
 
 <div class="anexample">
 <pre class="codeexample" >
 wasDerivedFrom(e2, e1, a, g2, u1)
 wasDerivedFrom(e2, e1)
 </pre>
-In a derivation expression, the activity, generation, and usage are optionals. They are specified in the first derivation, but not in the second.
+In a derivation expression, the activity, generation, and usage are optional terms. They are specified in the first derivation, but not in the second.
 </div>
 
 <div class="anexample">
@@ -455,8 +464,8 @@
 The start and end times for Activity <span class="name">a1</span> are optional. They are specified in the first expression, but not in the second.
 </div>
 
-The general rule for optionals is that, if <em>none</em> of the optionals are used in the expression, then they are simply omitted, resulting in a simpler expression as in the examples above.<br/>
-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, in this case 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.
+<p>The general rule for optionals is that, if <em>none</em> of the optionals are used in the expression, then they are simply omitted, resulting in a simpler expression as in the examples above.</p>
+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.
@@ -481,7 +490,7 @@
 <section id="prov-n-standard-terms"> 
 <h3>Identifiers and attributes</h3>
 
-Most expression types 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. Both are optional (unless specified otherwise). By convention, the identifier is the first term in any expression type, and the  set of attribute-value pairs is the last. <br/>
+<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. Both are optional (unless specified otherwise). By convention, the identifier is the first term in any expression, and the  set of attribute-value pairs is the last. </p>
 Consistent with the convention on optional terms, the  '<span class="name">-</span>' marker can be used when the identifier is not available. Additionally, the grammar rules are defined in such a way that the optional identifier can be omitted altogether with no ambiguity arising.
 
 <div class="anexample">
@@ -505,25 +514,12 @@
 
 </section>
 
-<section id="prov-n-attributes"> 
-<h3>Optional attributes</h3>
-
-<div class="note">This looks out of place --- why is this not in DM? </div>
-
-Name-value attribute pairs are intended for arbitrary, user-defined terms that are used to qualify the predicate. Amongst these, a few are defined as standard in PROV-DM. These are:
-  <span class="name">prov:label</span>,
-  <span class="name">prov:location</span>,
-  <span class="name">prov:role</span>, and
-  <span class="name">prov:type</span>.
-
-</section>
-
 </section>
 
 <section id="prov-n-expressions"> 
 <h2>PROV-N Productions per Component</h2>
 
-This section  introduces grammar productions for each expression type, 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/>
+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/>
 
 <section id="component1"> 
 <h3>Component 1: Entities and Activities</h3>
@@ -597,7 +593,7 @@
 <pre class="codeexample">
 activity(ex:a10, 2011-11-16T16:00:00, 2011-11-16T16:00:01, [prov:type="createFile"])
 </pre>
-Here <span class="name">ex:a10</span> is the optional activity identifier, <span class="name">2011-11-16T16:00:00</span> and <span class="name">2011-11-16T16:00:01</span> are the optional start and end times for the activity, and <span class="name">[prov:type="createFile"]</span> are optional attributes. <br/>
+<p>Here <span class="name">ex:a10</span> is the optional activity identifier, <span class="name">2011-11-16T16:00:00</span> and <span class="name">2011-11-16T16:00:01</span> are the optional start and end times for the activity, and <span class="name">[prov:type="createFile"]</span> are optional attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
 <pre class="codeexample">
 activity(ex:a10)
@@ -637,8 +633,8 @@
 <pre class="codeexample">
 wasGeneratedBy(ex:g1, tr:WD-prov-dm-20111215, ex:edit1, 2011-11-16T16:00:00,  [ex:fct="save"])
 </pre>
-  Here <span class="name">ex:g1</span> is the optional generation identifier, <span class="name">tr:WD-prov-dm-20111215</span> is the identifier of the entity being generated,
-  <span class="name">ex:edit1</span> is the optional identifier of the generating activity, <span class="name">2011-11-16T16:00:00</span> is the optional generation time, and <span class="name"> [ex:fct="save"]</span> are optional attributes. <br/>
+<p>  Here <span class="name">ex:g1</span> is the optional generation identifier, <span class="name">tr:WD-prov-dm-20111215</span> is the identifier of the entity being generated,
+  <span class="name">ex:edit1</span> is the optional identifier of the generating activity, <span class="name">2011-11-16T16:00:00</span> is the optional generation time, and <span class="name"> [ex:fct="save"]</span> are optional attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
   
 <pre class="codeexample">
@@ -679,9 +675,9 @@
 <pre class="codeexample">
 used(ex:u1, ex:act2, ar3:0111, 2011-11-16T16:00:00, [ex:fct="load"])
  </pre>
-  Here <span class="name">ex:u1</span> is the optional usage identifier,  <span class="name">ex:act2</span> is the identifier of the using activity,
+<p>  Here <span class="name">ex:u1</span> is the optional usage identifier,  <span class="name">ex:act2</span> is the identifier of the using activity,
   <span class="name">ar3:0111</span> is the identifier of the entity being used,
- <span class="name">2011-11-16T16:00:00</span> is the optional usage time, and <span class="name"> [ex:fct="load"]</span> are optional attributes. <br/>
+ <span class="name">2011-11-16T16:00:00</span> is the optional usage time, and <span class="name"> [ex:fct="load"]</span> are optional attributes.</p>
 The remaining examples show cases where some of the optionals are omitted.
 
   <pre class="codeexample">
@@ -716,10 +712,10 @@
   <pre class="codeexample">
 wasStartedBy(s, ex:act2, ar3:0111, 2011-11-16T16:00:00, [ex:param="a"])
   </pre>
-  Here <span class="name">s</span> is the optional start identifier,  <span class="name">ex:act2</span> is the identifier of the starting activity,
+  <p>Here <span class="name">s</span> is the optional start identifier,  <span class="name">ex:act2</span> is the identifier of the starting activity,
   <span class="name">ar3:0111</span> is the identifier of the entity that triggered the activity start,
- <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. <br/>
-The remaining examples show cases where some of the optionals are omitted.
+ <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>
+  The remaining examples show cases where some of the optionals are omitted.
   
   <pre class="codeexample">
 wasStartedBy(ex:act2, ar3:0111, -)
@@ -759,9 +755,9 @@
     <pre class="codeexample">
 wasEndedBy(s, ex:act2, ex:trigger, 2011-11-16T16:00:00, [ex:param="a"])
   </pre>
-  Here <span class="name">s</span> is the optional start identifier,  <span class="name">ex:act2</span> is the identifier of the ending activity,
+<p>  Here <span class="name">s</span> is the optional start identifier,  <span class="name">ex:act2</span> is the identifier of the ending activity,
   <span class="name">ex:trigger</span> is the identifier of the entity that triggered the activity end,
- <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. <br/>
+ <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>
 The remaining examples show cases where some of the optionals are omitted.
 
   
@@ -800,9 +796,9 @@
 <pre class="codeexample">
 wasInformedBy(ex:inf1, ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
 </pre>
-  Here <span class="name">ex:inf1</span> is the optional communication identifier,  <span class="name">ex:a1</span> is the identifier of the informed activity,
+<p>  Here <span class="name">ex:inf1</span> is the optional communication identifier,  <span class="name">ex:a1</span> is the identifier of the informed activity,
   <span class="name">ex:a2</span> is the identifier of the informant activity,
-and <span class="name">[ex:param1="a", ex:param2="b"]</span> are optional attributes. <br/>
+and <span class="name">[ex:param1="a", ex:param2="b"]</span> are optional attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
 
 <pre class="codeexample">
@@ -836,9 +832,9 @@
 <pre class="codeexample">
 wasStartedByActivity(s,ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
   </pre>
-  Here <span class="name">s</span> is the optional start-by-activity identifier,  <span class="name">ex:a1</span> is the identifier of the starting activity,
+<p>  Here <span class="name">s</span> is the optional start-by-activity identifier,  <span class="name">ex:a1</span> is the identifier of the starting activity,
   <span class="name">ex:a2</span> is the identifier of the activity that started  <span class="name">ex:a1</span>,
-and <span class="name"> [ex:param1="a", ex:param2="b"]</span> are optional attributes. <br/>
+and <span class="name"> [ex:param1="a", ex:param2="b"]</span> are optional attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
   
   <pre class="codeexample">
@@ -872,8 +868,8 @@
 <pre class="codeexample">
 agent(ag4, [ prov:type="prov:Person", ex:name="David" ])
 </pre>
-Here <span class="name">ag</span> is the agent identifier, and
-   <span class="name">[ prov:type="prov:Person", ex:name="David" ]</span> are optional attributes. <br/>
+<p>Here <span class="name">ag</span> is the agent identifier, and
+   <span class="name">[ prov:type="prov:Person", ex:name="David" ]</span> are optional attributes. </p>
 In the next example, the optional attributes are omitted.
 
 <pre class="codeexample">
@@ -903,9 +899,9 @@
 <pre class="codeexample">
 wasAttributedTo(id, e, ag, [ex:license="cc:attributionURL" %% "xsd:QName"])
   </pre>
-    Here <span class="name">id</span> is the optional attribution identifier,  <span class="name">e</span> is an entity identifier,
+<p>    Here <span class="name">id</span> is the optional attribution identifier,  <span class="name">e</span> is an entity identifier,
   <span class="name">ag</span> is the identifier of the agent to whom the entity is abscribed, 
-and <span class="name">[ex:license="cc:attributionURL" %% "xsd:QName"]</span> are optional attributes. <br/>
+and <span class="name">[ex:license="cc:attributionURL" %% "xsd:QName"]</span> are optional attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
 
 <pre class="codeexample">
@@ -942,11 +938,11 @@
 wasAssociatedWith(ex:agas, ex:a1, ex:ag1, ex:e1, [ex:param1="a", ex:param2="b"])
   </pre>
 
-  Here <span class="name">ex:agas</span> is the optional attribution identifier,
+<p>  Here <span class="name">ex:agas</span> is the optional attribution identifier,
   <span class="name">ex:a1</span> is an activity identifier,
   <span class="name">ex:ag1</span> is the optional identifier of the agent associated to the activity,
   <span class="name">ex:e1</span> is the optional identifier of the plan used by the agent in the context of the activity,
-  and <span class="name"> [ex:param1="a", ex:param2="b"]</span> are optional attributes. <br/>
+  and <span class="name"> [ex:param1="a", ex:param2="b"]</span> are optional attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
 
   
@@ -988,11 +984,11 @@
   <pre class="codeexample">
 actedOnBehalfOf(act1, ag1, ag2, a, [prov:type="contract"])
   </pre>
-  Here <span class="name">act1</span> is the optional attribution identifier,
+<p>  Here <span class="name">act1</span> is the optional attribution identifier,
   <span class="name">ag1</span> is the identifier for the subordinate agent,
   <span class="name">ag2</span> is the  identifier of the responsible agent,
   <span class="name">a</span> is the optional identifier of the activity for which the responsibility link holds,
-  and <span class="name"> [prov:type="contract"]</span> are optional attributes. <br/>
+  and <span class="name"> [prov:type="contract"]</span> are optional attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
 
 
@@ -1039,14 +1035,14 @@
     <pre class="codeexample">
 wasDerivedFrom(d, e2, e1, a, g2, u1, [prov:comment="a righteous derivation"])
   </pre>
-  Here
+<p>  Here
     <span class="name">d</span> is the optional derivation identifier,
   <span class="name">e2</span> is the identifier for the entity being derived,
   <span class="name">e1</span> is the  identifier of the entity from which <span class="name">e2</span> is derived,
   <span class="name">a</span> is the optional identifier of the activity which used/generated the entities,
   <span class="name">g2</span> is the optional identifier of the generation,
   <span class="name">u1</span> is the optional identifier of the usage,
-  and <span class="name">[prov:comment="a righteous derivation"]</span> are optional attributes. <br/>
+  and <span class="name">[prov:comment="a righteous derivation"]</span> are optional attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
 
   
@@ -1087,12 +1083,12 @@
     <pre class="codeexample">
 wasRevisionOf(rev1, tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, w3:Consortium, [prov:comment="??"] )
   </pre>
-  Here
+<p>  Here
     <span class="name">rev1</span> is the optional revision identifier,
   <span class="name">tr:WD-prov-dm-20111215</span> is the identifier of the revised entity,
   <span class="name">tr:WD-prov-dm-20111018</span> is the identifier of the original entity,
   <span class="name">w3:Consortium</span> is the optional identifier of the agent involved in the revision,
-  and <span class="name"> [prov:comment="??"] )</span> are optional attributes. <br/>
+  and <span class="name"> [prov:comment="??"] )</span> are optional attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
 
 
@@ -1134,13 +1130,13 @@
     <pre class="codeexample">
 wasQuotedFrom(quoteId1, ex:blockQuote,ex:blog,ex:Luc,ex:Paul,[])
   </pre>
-  Here
+<p>  Here
     <span class="name">quoteId1</span> is the optional revision identifier,
   <span class="name">ex:blockQuote</span> is the identifier of the entity that represents the quote (the partial copy)
   <span class="name">ex:blog</span> is the identifier of the original entity being quoted,
   <span class="name">ex:Luc</span> is the optional identifier of the agent who performs the quoting,
   <span class="name">ex:Paul</span> is the optional identifier of the agent to whom the original entity is attributed,
-  and <span class="name">[]</span> is the (empty) optional set of attributes. <br/>
+  and <span class="name">[]</span> is the (empty) optional set of attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
 
 
@@ -1179,11 +1175,11 @@
     <pre class="codeexample">
 hadOriginalSource(src1, ex:e1, ex:e2,[ex:param="a"])
   </pre>
-  Here
+<p>  Here
     <span class="name">src1</span> is the optional original source identifier,
   <span class="name">ex:e1</span> is the identifier of the derived entity,
   <span class="name">ex:e2</span> is the identifier of the original source entity,
-  and <span class="name">[ex:param="a"]</span> is the optional set of attributes. <br/>
+  and <span class="name">[ex:param="a"]</span> is the optional set of attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
 
 
@@ -1216,11 +1212,11 @@
     <pre class="codeexample">
 tracedTo(id,e2,e1,[ex:param="a"])
   </pre>
-  Here
+<p>  Here
     <span class="name">id</span> is the optional traceability identifier,
   <span class="name">e2</span> is an entity identifier,
   <span class="name">e1</span> is the identifier for an ancestor entity that   <span class="name">e2</span> depends on,
-  and <span class="name">[ex:param="a"]</span> is the optional set of attributes. <br/>
+  and <span class="name">[ex:param="a"]</span> is the optional set of attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
 
 
@@ -1338,13 +1334,13 @@
     <pre class="codeexample">
  derivedByInsertionFrom(id, c1, c, {("k1", v1), ("k2", v2)}, [])  
   </pre>
-  Here
+<p>  Here
     <span class="name">id</span> is the optional insertion identifier,
   <span class="name">c1</span> is the  identifier for the collection after the insertion,
   <span class="name">c</span> is the  identifier for the collection before the insertion,
   <span class="name"> {("k1", v1), ("k2", v2)}</span> is the set of key-value pairs that have been inserted in
   <span class="name">c</span>,
-    and <span class="name">[]</span> is the optional (empty) set of attributes. <br/>
+    and <span class="name">[]</span> is the optional (empty) set of attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
 
   <pre class="codeexample">
@@ -1382,13 +1378,13 @@
     <pre class="codeexample">
  derivedByRemovalFrom(id, c3, c, {"k1", "k3"}, [])  
   </pre>
-  Here
+<p>  Here
     <span class="name">id</span> is the optional removal identifier,
   <span class="name">c1</span> is the  identifier for the collection after the removal,
   <span class="name">c</span> is the  identifier for the collection before the removal,
   <span class="name"> {("k1", v1), ("k2", v2)}</span> is the set of key-value pairs that have been removed from
   <span class="name">c</span>,
-    and <span class="name">[]</span> is the optional (empty) set of attributes. <br/>
+    and <span class="name">[]</span> is the optional (empty) set of attributes. </p>
   The remaining examples show cases where some of the optionals are omitted.
 
   <pre class="codeexample">
@@ -1424,12 +1420,12 @@
     <pre class="codeexample">
    memberOf(mid, c, {("k4", v4), ("k5", v5)}, [])
   </pre>
-  Here
+<p>  Here
     <span class="name">mid</span> is the optional membership identifier,
   <span class="name">c</span> is the  identifier for the collection whose membership is stated,
   <span class="name"> {("k4", v4), ("k5", v5)}</span> is the set of key-value pairs that are members of 
   <span class="name">c</span>,
-    and <span class="name">[]</span> is the optional (empty) set of attributes. <br/>  
+    and <span class="name">[]</span> is the optional (empty) set of attributes. </p>  
 The remaining examples show cases where some of the optionals are omitted.
 
 
@@ -1569,7 +1565,7 @@
 
 <p>
 A <dfn id="dfn-qualifiedName">qualified name</dfn> is a name subject to <a>namespace</a> interpretation. It consists of a <a>namespace</a>, denoted by an optional prefix, and a local name.
-PROV-DM stipulates that a qualified name can be mapped into an IRI
+The PROV data model  stipulates that a qualified name can be mapped into an IRI
  by concatenating the IRI associated with the prefix and the local part.
 <p>A qualified name's prefix is OPTIONAL. If a prefix occurs in a
  qualified name, it refers to a <a>namespace</a> declared in a namespace declaration.  In the absence of prefix, the qualified name 
@@ -1656,6 +1652,7 @@
 <li>  <span class="name">prov:location</span>
 <li>  <span class="name">prov:role</span>
 <li>  <span class="name">prov:type</span>
+<li>  <span class="name">prov:value</span>
 </ol>
 
 
@@ -1728,7 +1725,7 @@
 <p>The  reserved type values in the PROV namespace are the following.</p>
 
 <ol>
-<li>  <span class="name">prov:AccountEntity</span>
+<li>  <span class="name">prov:Account</span>
 <li>  <span class="name">prov:SoftwareAgent</span>
 <li>  <span class="name">prov:Person</span>
 <li>  <span class="name">prov:Organization</span>
@@ -1846,7 +1843,7 @@
 <section  id="account">
 <h3>Account</h3>
 
-<p>PROV-DM has introduced a notion of account by which a set of provenance descriptions can be bundled up and named.  PROV-DM <em>assumes</em> the existence of mechanisms to implement accounts, but such mechanisms remain outside its scope.  It is suggested that specific serializations may offer solutions to name bundles of descriptions. </p>
+<p>The PROV data model has introduced a notion of account by which a set of provenance descriptions can be bundled up and named.  The PROV data model <em>assumes</em> the existence of mechanisms to implement accounts, but such mechanisms remain outside its scope.  It is suggested that specific serializations may offer solutions to name bundles of descriptions. </p>
 
 <p>Given that the primary motivation for PROV-N is to provide a notation aimed at human consumption, it is therefore appropriate to introduce a notation for accounts, which would include an account name and a bundle of expressions.</p>