--- a/model/prov-n.html Wed Mar 21 22:24:08 2012 +0000
+++ b/model/prov-n.html Wed Mar 21 22:33:02 2012 +0000
@@ -117,7 +117,7 @@
// if your specification has a subtitle that goes below the main
// formal title, define it here
// subtitle : "About-to-be-frozen WD4 (for internal release)",
- subtitle : "Initial document for discussion, WD5",
+ subtitle : "Towards WD5",
// if you wish the publication date to be other than today, set this
// publishDate: "2011-10-18",
@@ -198,7 +198,7 @@
</section>
<section id="sotd">
-<b>This document is released internally by the Provenance Working Group.</b>
+<div class="note">TODO</div>
<section id="prov-family">
<!-- <h3>Prov Family of Specifications</h3>-->
This document is part of the PROV family of specifications, a set of specifications aiming to define the various aspects that are necessary to achieve the vision of inter-operable
@@ -226,6 +226,7 @@
+
<section id="introduction">
<h2>Introduction</h2>
@@ -283,7 +284,7 @@
<h3>PROV-DM Namespace</h3>
-<p>The PROV-DM namespace is <span class="name">http://www.w3.org/ns/prov-dm/</span> (TBC).</p>
+<p>The PROV-DM namespace is <span class="name">http://www.w3.org/ns/prov/</span>.</p>
<p> All the elements, relations, reserved names and attributes introduced in this specification belong to the PROV-DM namespace.</p>
@@ -307,10 +308,92 @@
</section>
+<section id="grammar-notation">
+<h3>Design Rationale for PROV-N</h3>
+
+<p>A key goal of PROV-DM is the specification of a machine-processable data model for provenance so that application having obtained the provenance of the resource they manipulate can reason about such provenance. As such, representations of PROV-DM are available in RDF and XML.
+</p>
+
+<p>However, communicating provenance between humans is also important when teaching, illustrating, formalizing, and discussing provenance-related issues. To this end, PROV-N is a notation that is designed to write instances of the PROV-DM data model in a compact textual form, without the syntactic bagage and constraints coming with a markup language such as XML or a description framework such as RDF. </p>
+
+<ul>
+<li>PROV-N adopts a <em>functional notation</em> consisting a name and a series of arguments in bracket.</li>
+<div class="anexample">
+<pre class="codeexample" >
+wasDerivedFrom(e2, e1, a, g2, u1)
+</pre>
+</div>
+
+<li>The interpretation of PROV-N arguments is defined according to their <em>position</em> in the list of arguments. This convention allows for a compact notation. </li>
+
+<li><p>
+PROV-N <em>optional arguments</em> need not be specified (when this does not lead to ambiguity).</p>
+<div class="anexample">
+<p>The activity, generation, and usage are specified in the first derivation, whereas they are not in the second.</p>
+<pre class="codeexample" >
+wasDerivedFrom(e2, e1, a, g2, u1)
+wasDerivedFrom(e2, e1)
+</pre>
+</div>
+
+<div class="anexample">
+<p>Activity <span class="name">a1</span> does not have start and end times specified, whereas <span class="name">a2</span> does</p>
+<pre class="codeexample" >
+activity(a1)
+activity(a2, 2011-11-16T16:00:00, 2011-11-16T16:00:01)
+</pre>
+</div>
+</li>
+
+<li><p>For cases where it is desirable to indicate which arguments have not been specified, PROV-N uses the <em>syntactic marker</em> <span class="name">-</span> for unspecified arguments.</p>
+<div class="anexample">
+<p>The activity, generation, and usage are specified in the first derivation, whereas they are not in the second, but have been explicitly marked as such.</p>
+<pre class="codeexample" >
+wasDerivedFrom(e2, e1, a, g2, u1)
+wasDerivedFrom(e2, e1, a, -, -)
+wasDerivedFrom(e2, e1, -, -, -)
+</pre>
+</div>
+
+<p>Activity <span class="name">a1</span> does not have start and end times specified, but they are been marked syntactically.</p>
+<div class="anexample">
+<pre class="codeexample" >
+activity(a1, -, -)
+activity(a2, 2011-11-16T16:00:00, 2011-11-16T16:00:01)
+</pre>
+</div>
+</li>
+
+<li><p>The identifier always occur in <em>first position</em>. For expressions with optional identifier, it may be expressed by the syntactic marker <span class="name">-</span>.</p>
+
+<p>Derivation has an optional identifier. In the first derivation, the identifier is not expressed. It is explicit in the second, and marked by a <span class="name">-</span> in the third.</p>
+<div class="anexample">
+<pre class="codeexample" >
+wasDerivedFrom(e2, e1)
+wasDerivedFrom(d, e2, e1)
+wasDerivedFrom(-, e2, e1)
+</pre>
+</div>
+
+<li><p>Most expressions have an optional set of attribute-value pairs, which occur in <em>last position</em>, and delimited by square brackets. </p>
+<div class="anexample">
+<pre class="codeexample" >
+activity(ex:a10)
+activity(ex:a10, [])
+activity(ex:a10, [prov:type="createFile"])
+activity(ex:a10, [ex:param="a", ex:param="b"])
+</pre>
+</div>
+<li> PROV-N exposes attributes that PROV-DM provides an interpretation for [[PROV-DM-CONSTRAINTS]] directly as positional arguments of expressions, whereas those for which PROV-DM provides no interpretation need to be expressed among the optional attribute-value pairs.
+</li>
+
+</ul>
- <section id="grammar-notation">
+</section>
+
+<section id="grammar-notation">
<h3>Grammar Notation</h3>
<p>This specification includes a grammar for PROV-N expressed using the Extended Backus-Naur Form (EBNF) notation.</p>
@@ -350,57 +433,66 @@
</section>
-
-<section id="data-model-concepts">
-
-<h2>PROV-DM Core</h2>
+<section id="components">
+<h2>PROV-N Productions per Component</h2>
-<p>Instances of the PROV-DM data model are expressed in PROV-N by a text conformant with the toplevel <a>production</a> <span class="nonterminal">expression</span> of the grammar. These <span
-class="nonterminal">expression</span>s are grouped in two categories:
-<span class="nonterminal">elementExpression</span> (see section <a href="#expression-element">Element</a>) and
-<span class="nonterminal">relationExpression</span> (see section <a href="#expression-relation">Relation</a>).</p>
+<p>A PROV-N document allows writing down instances of the PROV-DM data model in a compact textual form. It consists of a sequence of expressions.</p>
+<p>Instances of the PROV-DM data model are expressed in PROV-N by a text conformant with the toplevel <a>production</a> <span class="nonterminal">expression</span> of the grammar. </p>
+
<div class='grammar'>
-<span class="nonterminal">expression</span> ::=
-<span class="nonterminal">elementExpression</span>
-| <span class="nonterminal">relationExpression</span>
-<br/>
-<!-- -->
-<br/>
-<span class="nonterminal">elementExpression</span> ::=
-<span class="nonterminal">entityExpression</span>
+<table border="0" style="background: white;">
+<tr><td><span class="nonterminal">expression</span>
+ ::=<br/><br/><br/><br/><br/><br/></td><td>
+<!-- Component 1-->
+ <span class="nonterminal">entityExpression</span>
| <span class="nonterminal">activityExpression</span>
-| <span class="nonterminal">agentExpression</span>
-| <span class="nonterminal">noteExpression</span> <br/>
-<!-- -->
+| <span class="nonterminal">generationExpression</span>
+| <span class="nonterminal">usageExpression</span>
<br/>
-<span class="nonterminal">relationExpression</span> ::=
-<span class="nonterminal">generationExpression</span>
-| <span class="nonterminal">usageExpression</span>
-| <span class="nonterminal">derivationExpression</span>
-| <span class="nonterminal">activityAssociationExpression</span>
-| <span class="nonterminal">responsibilityExpression</span>
| <span class="nonterminal">startExpression</span>
| <span class="nonterminal">endExpression</span>
+| <span class="nonterminal">communicationExpression</span>
+| <span class="nonterminal">startByActivityExpression</span>
+<br/>
+<!-- Component 2-->
+| <span class="nonterminal">agentExpression</span>
+| <span class="nonterminal">attributionExpression</span>
+| <span class="nonterminal">associationExpression</span>
+| <span class="nonterminal">responsibilityExpression</span>
+<br/>
+<!-- Component 3-->
+| <span class="nonterminal">derivationExpression</span>
+| <span class="nonterminal">revisionExpression</span>
+| <span class="nonterminal">quotationExpression</span>
+| <span class="nonterminal">hadOriginalSourceExpression</span>
+| <span class="nonterminal">traceabilityExpression</span>
+<br/>
+<!-- Component 4-->
| <span class="nonterminal">alternateExpression</span>
| <span class="nonterminal">specializationExpression</span>
+<br/>
+<!-- Component 5-->
+<!-- Component 6-->
+
+| <span class="nonterminal">noteExpression</span>
| <span class="nonterminal">annotationExpression</span>
+<br/>
+</td></tr>
+</table>
</div>
-<section id="expression-element">
-<h3>Element</h3>
-<p>PROV-DM elements can be entities, activities, agents, or notes. This section defines a production for the textual representation of each of these element types. </p>
+<section id="component1">
+<h3>Component 1: Entities and Activities</h3>
- <section id="expression-Entity">
-
+<section id="expression-Entity">
<h4>Entity</h4>
-
<div class="withPn">
<p>
An entity's text matches the <span class="nonterminal">entityExpression</span> production.
@@ -441,11 +533,10 @@
</div>
- </section>
- <section id="expression-Activity">
-
-<h3>Activity</h3>
+</section>
+<section id="expression-Activity">
+<h4>Activity</h4>
<div class="withPn">
@@ -458,10 +549,10 @@
<span class="name">activity</span>
<span class="name">(</span>
<span class="nonterminal">identifier</span>
+<span class="optional"><span class="name">,</span>
+(<span class="nonterminal">time</span> | <span class="name">-</span> )
<span class="name">,</span>
-<span class="optional"><span class="nonterminal">time</span></span>
-<span class="name">,</span>
-<span class="optional"><span class="nonterminal">time</span></span>
+(<span class="nonterminal">time</span> | <span class="name">-</span> )</span>
<span class="nonterminal">optional-attribute-values</span>
<span class="name">)</span>
</div>
@@ -469,18 +560,223 @@
<div class="anexample">
<pre class="codeexample">
-activity(ex:edit1,,)
-activity(ex:edit1,,,[prov:type="edit"])
-activity(ex:a0, 2011-11-16T16:00:00,,[prov:type="createFile"])
-activity(ex:a0, 2011-11-16T16:00:00, 2011-11-16T16:00:01, [prov:type="createFile"])
+activity(ex:a10)
+activity(ex:a10, -, -)
+activity(ex:a10, -, -, [prov:type="edit"])
+activity(ex:a10, -, 2011-11-16T16:00:00)
+activity(ex:a10, 2011-11-16T16:00:00, -)
+activity(ex:a10, 2011-11-16T16:00:00, -, [prov:type="createFile"])
+activity(ex:a10, 2011-11-16T16:00:00, 2011-11-16T16:00:01, [prov:type="createFile"])
+activity(ex:a10, [prov:type="edit"])
</pre>
</div>
-</section>
+</section>
+<section id="expression-Generation">
+<h4>Generation</h4>
+
+<div class="withPn">
+<p>A generation's text matches the <span class='nonterminal'>generationExpression</span> production.</p>
+
+<div class='grammar'>
+<span class="nonterminal">generationExpression</span> ::=
+<span class="name">wasGeneratedBy</span>
+<span class="name">(</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span>
+( <span class="nonterminal">aIdentifier</span> | <span class="name">-</span> )
+<span class="name">,</span> ( <span class="nonterminal">time</span> | <span class="name">-</span> )
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span><br/>
+</div>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+wasGeneratedBy(tr:WD-prov-dm-20111215, ex:edit1, -)
+wasGeneratedBy(tr:WD-prov-dm-20111215, ex:edit1, 2011-11-16T16:00:00)
+wasGeneratedBy(e2, a1, -, [ex:fct="save"])
+wasGeneratedBy(e2, -, -, [ex:fct="save"])
+wasGeneratedBy(ex:g1, tr:WD-prov-dm-20111215, ex:edit1, -)
+wasGeneratedBy(ex:g1, tr:WD-prov-dm-20111215, ex:edit1, 2011-11-16T16:00:00)
+wasGeneratedBy(-, tr:WD-prov-dm-20111215, ex:edit1, -)
+</pre>
+</div>
+
+<p>Even though the production <span class="nonterminal">generationExpression</span> allows for expressions <span class="name">wasGeneratedBy(e2, -, -)</span> and <span class="name">wasGeneratedBy(-, e2, -, -)</span>, these expressions are not valid in PROV-N.</p>
+
+
+</section>
+
+<section id="expression-Usage">
+<h4>Usage</h4>
+
+
+<p>A usage's text matches the <span class='nonterminal'>usageExpression</span> production.</p>
+
+<div class='grammar'>
+<span class="nonterminal">usageExpression</span> ::=
+<span class="name">used</span>
+<span class="name">(</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
+<span class="nonterminal">aIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span> ( <span class="nonterminal">time</span> | <span class="name">-</span> )
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span><br/>
+</div>
+
+
+<div class="anexample">
+<pre class="codeexample">
+used(ex:act2, ar3:0111, -)
+used(ex:act2, ar3:0111, 2011-11-16T16:00:00)
+used(a1,e1, -, [ex:fct="load"])
+used(ex:u1, ex:act2, ar3:0111, -)
+used(-, ex:act2, ar3:0111, -)
+</pre>
+</div>
+
+<p>Even though the production <span class="nonterminal">usageExpression</span> allows for expressions <span class="name">used(e2, -, -)</span> and <span class="name">used(-, e2, -, -)</span>, these expressions are not valid in PROV-N.</p>
+
+</section>
+<section id="expression-Start">
+<h4>Start</h4>
+
+<p>An activity start's text matches the <span class="nonterminal">startExpression</span> production of the grammar
+</p>
+
+
+<div class='grammar'>
+<span class="nonterminal">startExpression</span> ::=
+<span class="name">wasStartedBy</span>
+<span class="name">(</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
+<span class="nonterminal">aIdentifier</span>
+<span class="name">,</span>
+( <span class="nonterminal">eIdentifier</span> | <span class="name">-</span> )
+<span class="name">,</span> ( <span class="nonterminal">time</span> | <span class="name">-</span> )
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+wasStartedBy(ex:act2, ar3:0111, -)
+wasStartedBy(ex:act2, ar3:0111, 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, ar3:0111, 2011-11-16T16:00:00)
+wasStartedBy(-, ex:act2, ar3:0111, 2011-11-16T16:00:00)
+</pre>
+</div>
+
+<p>Even though the production <span class="nonterminal">startExpression</span> allows for expressions <span class="name">wasStartedBy(e2, -, -)</span> and <span class="name">wasStartedBy(-, e2, -, -)</span>, these expressions are not valid in PROV-N.</p>
+
+</section>
+
+<section id="expression-End">
+<h4>End</h4>
+
+<p>An activity end's text matches the <span class="nonterminal">endExpression</span> production of the grammar.
+</p>
+
+
+<div class='grammar'>
+<span class="nonterminal">endExpression</span> ::=
+<span class="name">wasEndedBy</span>
+<span class="name">(</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
+<span class="nonterminal">aIdentifier</span>
+<span class="name">,</span>
+( <span class="nonterminal">eIdentifier</span> | <span class="name">-</span> )
+<span class="name">,</span> ( <span class="nonterminal">time</span> | <span class="name">-</span> )
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+wasEndedBy(ex:act2, ex:trigger, -)
+wasEndedBy(ex:act2, ex:trigger, 2011-11-16T16:00:00)
+wasEndedBy(ex:act2, -, 2011-11-16T16:00:00)
+wasEndedBy(ex:act2, -, 2011-11-16T16:00:00, [ex:param="a"])
+wasEndedBy(e,ex:act2, -, -)
+wasEndedBy(e, ex:act2, ex:trigger, 2011-11-16T16:00:00)
+wasEndedBy(-, ex:act2, ex:trigger, 2011-11-16T16:00:00)
+</pre>
+</div>
+
+<p>Even though the production <span class="nonterminal">endExpression</span> allows for expressions <span class="name">wasEndedBy(e2, -, -)</span> and <span class="name">wasEndedBy(-, e2, -, -)</span>, these expressions are not valid in PROV-N.</p>
+</section>
+
+<section id="expression-wasInformedBy">
+<h4>Communication</h4>
+
+
+<div class="grammar">
+<span class="nonterminal">communicationExpression</span> ::=
+<span class="name">wasInformedBy</span>
+<span class="name">(</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
+<span class="nonterminal">aIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">aIdentifier</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+wasInformedBy(ex:a1, ex:a2)
+wasInformedBy(ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
+wasInformedBy(i, ex:a1, ex:a2)
+wasInformedBy(i, ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
+wasInformedBy(-, ex:a1, ex:a2)
+wasInformedBy(-, ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
+</pre>
+</div>
+</section>
+
+<section id="expression-startByActivity">
+<h4>Start by Activity</h4>
+
+<div class="grammar">
+<span class="nonterminal">startByActivityExpression</span> ::=
+<span class="name">wasStartedByActivity</span>
+<span class="name">(</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
+<span class="nonterminal">aIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">aIdentifier</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+<br>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+wasStartedByActivity(ex:a1, ex:a2)
+wasStartedByActivity(ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
+wasStartedByActivity(s,ex:a1, ex:a2)
+wasStartedByActivity(s,ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
+wasStartedByActivity(-,ex:a1, ex:a2)
+wasStartedByActivity(-,ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
+</pre>
+</div>
+</section>
+</section>
+
+
+<section id="component2">
+<h3>Component 2: Agents and Responsibility</h3>
<section id="expression-Agent">
-<h3>Agent</h3>
+<h4>Agent</h4>
<div class="withPn">
@@ -501,147 +797,55 @@
<div class="anexample">
<pre class="codeexample">
agent(ag4)
-agent(ag4, [ prov:type="prov:Human" %% xsd:QName, ex:name="David" ])
+agent(ag4, [ prov:type="prov:Person" %% xsd:QName, ex:name="David" ])
</pre>
</div>
</section>
-
- <section id="expression-note">
-
-<h4>Note</h4>
-
-<div class="withPn">
-<p>A note's text matches the <span class="nonterminal">noteExpression</span> production.
-</p>
-
-
-<div class='grammar'>
-<span class="nonterminal">noteExpression</span> ::=
-<span class="name">note</span>
-<span class="name">(</span>
-<span class="nonterminal">identifier</span>
-<span class="name">,</span>
-<span class="nonterminal">attribute-values</span>
-<span class="name">)</span><br/>
-<!-- -->
-</div>
-</div>
-
-<div class="anexample">
-<pre class="codeexample">
-note(ann1,[ex:color="blue", ex:screenX=20, ex:screenY=30])
-</pre>
-</div>
-
- </section>
+<section id="expression-attribution">
+<h4>Attribution</h4>
-</section>
-
-
-<section id="expression-relation">
-<h3>Relation</h3>
-
-<p>
-PROV-DM relations can be generation, usage, derivation, activity association, responsibility chain, activity start, activity end, alternate, specialization, or annotations. This section defines a production for the textual representation of each of these relation types. </p>
-
-
-
-<section id="expression-Generation">
-<h4>Generation</h4>
-
-
-<div class="withPn">
-<p>A generation's text matches the <span class='nonterminal'>generationExpression</span> production.</p>
-
-<div class='grammar'>
-<span class="nonterminal">generationExpression</span> ::=
-<span class="name">wasGeneratedBy</span>
-<span class="name">(</span>
-<span class="optional"> <span class="nonterminal">identifier</span>
-<span class="name">,</span> </span>
+<div class="grammar">
+<span class="nonterminal">attributionExpression</span> ::=
+<span class="name">wasAttributedTo</span>
+<span class="name">(</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
<span class="nonterminal">eIdentifier</span>
-<span class="name">,</span>
-<span class="optional"><span class="nonterminal">aIdentifier</span></span>
-<span class="optional"><span class="name">,</span>
-<span class="nonterminal">time</span></span>
+<span class="name">,</span>
+<span class="nonterminal">agIdentifier</span>
<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span><br/>
-</div>
+<span class="name">)</span>
</div>
<div class="anexample">
<pre class="codeexample">
-wasGeneratedBy(tr:WD-prov-dm-20111215, ex:edit1)
-wasGeneratedBy(tr:WD-prov-dm-20111215, ex:edit1, 2011-11-16T16:00:00)
-wasGeneratedBy(ex:g1, tr:WD-prov-dm-20111215, ex:edit1)
-wasGeneratedBy(e2, a1, [ex:fct="save"])
+wasAttributedTo(e,ag)
+wasAttributedTo(e,ag,[ex:license="cc:attributionURL" %% "xsd:QName"])
+wasAttributedTo(id,e,ag,[ex:license="cc:attributionURL" %% "xsd:QName"])
+wasAttributedTo(-,e,ag,[ex:license="cc:attributionURL" %% "xsd:QName"])
</pre>
</div>
-
-</section>
-
-
-<section id="expression-Usage">
-<h3>Usage</h3>
-
+</section> <!-- end attribution -->
-<p>A usage's text matches the <span class='nonterminal'>usageExpression</span> production.</p>
-
-<div class='grammar'>
-<span class="nonterminal">usageExpression</span> ::=
-<span class="name">used</span>
-<span class="name">(</span>
-<span class="optional">
-<span class="nonterminal">identifier</span>
-<span class="name">,</span>
-</span>
-<span class="nonterminal">aIdentifier</span>
-<span class="name">,</span>
-<span class="nonterminal">eIdentifier</span>
-<span class="optional">
-<span class="name">,</span>
- <span class="nonterminal">time</span>
-</span>
-<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span><br/>
-</div>
+<section id="expression-Association">
+<h4>Association</h4>
-
-<div class="anexample">
-<pre class="codeexample">
-used(ex:pub2, ar3:0111)
-used(ex:pub2, ar3:0111, 2011-11-16T16:00:00)
-used(ex:u1, ex:pub2, ar3:0111)
-used(a1,e1,[ex:fct="load"])
-</pre>
-</div>
-
-</section>
-
-
-
-
-
-
-<section id="expression-ActivityAssociation">
-<h4>Activity Association</h4>
-
-
-<p>An activity association's text matches the <span class="nonterminal">activityAssociationExpression</span> productions of the grammar defined in this specification
+<p>An association's text matches the <span class="nonterminal">activityAssociationExpression</span> productions of the grammar defined in this specification
document.</p>
<div class='grammar'>
-<span class="nonterminal">activityAssociationExpression</span> ::=
+<span class="nonterminal">associationExpression</span> ::=
<span class="name">wasAssociatedWith</span>
<span class="name">(</span>
-<span class="optional"><span class="nonterminal">identifier</span>,</span>
-<span class="nonterminal">aIdentifier</span>,
-<span class="nonterminal">agIdentifier</span>
-<span class="optional">,<span class="nonterminal">eIdentifier</span></span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
+<span class="nonterminal">aIdentifier</span>
+<span class="name">,</span>
+( <span class="nonterminal">agIdentifier</span> | <span class="name">-</span> )
+<span class="name">,</span>
+( <span class="nonterminal">eIdentifier</span> | <span class="name">-</span> )
<span class="nonterminal">optional-attribute-values</span>
<span class="name">)</span>
</div>
@@ -650,103 +854,72 @@
<div class="anexample">
<pre class="codeexample">
-wasAssociatedWith(ex:pub2, w3:Consortium)
-wasAssociatedWith(ex:pub2, w3:Consortium @ pr:rec-advance)
-wasAssociatedWith(ex:pub2, w3:Consortium @ pr:rec-advance, [prov:role="funder"])
+wasAssociatedWith(ex:a1, -, ex:e1)
+wasAssociatedWith(ex:a1, ex:ag1, -)
+wasAssociatedWith(ex:a1, ex:ag1, ex:e1)
+wasAssociatedWith(ex:a1, ex:ag1, ex:e1, [ex:param1="a", ex:param2="b"])
+wasAssociatedWith(a, ex:a1, -, ex:e1)
+wasAssociatedWith(-, ex:a1, -, ex:e1)
+wasAssociatedWith(-, ex:a1, ex:ag1, -)
</pre>
</div>
+<p>Even though the production <span class="nonterminal">associationExpression</span> allows for expressions <span class="name">wasAssociatedWith(a, -, -)</span> and <span class="name">wasAssociatiedWith(-, a, -, -)</span>, these expressions are not valid in PROV-N.</p>
</section>
-
-<section id="expression-Start-End">
-<h4>Activity Start and End</h4>
-
-
-<p>Activity start and end texts match the <span class="nonterminal">startExpression</span> and <span class="nonterminal">endExpression</span> productions of the grammar defined in this
-specification document.
-</p>
-
-
-<div class='grammar'>
-<span class="nonterminal">startExpression</span> ::=
-<span class="name">wasStartedBy</span>
-<span class="name">(</span>
-<span class="optional"> <span class="nonterminal">identifier</span>,</span>
-<span class="nonterminal">aIdentifier</span>,
-<span class="nonterminal">agIdentifier</span>
-<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span><br/>
-<span class="nonterminal">endExpression</span> ::=
-<span class="name">wasEndedBy</span>
-<span class="name">(</span>
-<span class="optional"> <span class="nonterminal">identifier</span>,</span>
-<span class="nonterminal">aIdentifier</span>,
-<span class="nonterminal">agIdentifier</span>
-<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span>
-</div>
-
-
-</section>
-
-
-
-
-
-
-
<section id="expression-responsibility">
-
-<h4>Responsibility Chain</h4>
-
-
+<h4>Responsibility</h4>
<div class='grammar'>
<span class="nonterminal">responsibilityExpression</span> ::=
<span class="name">actedOnBehalfOf</span>
<span class="name">(</span>
-<span class="optional"> <span class="nonterminal">identifier</span>,</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
<span class="nonterminal">agIdentifier</span>
<span class="name">,</span>
<span class="nonterminal">agIdentifier</span>
<span class="name">,</span>
-<span class="optional"><span class="nonterminal">aIdentifier</span></span>
+( <span class="nonterminal">aIdentifier</span> | <span class="name">-</span> )
<span class="nonterminal">optional-attribute-values</span>
<span class="name">)</span>
</div>
<div class="anexample">
<pre class="codeexample">
-actedOnBehalfOf(ag1,ag2)
-actedOnBehalfOf(ag1,ag2,a)
-actedOnBehalfOf(ag1,ag2,[prov:type="delegation"])
-actedOnBehalfOf(ag2,ag3,a,[prov:type="contract"])
+actedOnBehalfOf(ag1, ag2, -)
+actedOnBehalfOf(ag1, ag2, a)
+actedOnBehalfOf(ag1, ag2, -, [prov:type="delegation"])
+actedOnBehalfOf(ag2, ag3, a, [prov:type="contract"])
+actedOnBehalfOf(r, ag2, ag3, a, [prov:type="contract"])
+actedOnBehalfOf(-, ag1, ag2, -)
</pre>
</div>
+
</section>
-
+</section>
+<section id="component3">
+<h3>Component 3: Derivations</h3>
<section id="Derivation-Relation">
<h4>Derivation</h4>
-
-
-<p>A derivation record's text matches the <span class='nonterminal'>derivationExpression</span> production.</p>
+<p>A derivation expression's text matches the <span class='nonterminal'>derivationExpression</span> production.</p>
<div class='grammar'>
<span class="nonterminal">derivationExpression</span> ::=
<span class="name">wasDerivedFrom</span>
<span class="name">(</span>
-<span class="optional"> <span class="nonterminal">identifier</span>,</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
<span class="nonterminal">eIdentifier</span>
<span class="name">,</span>
<span class="nonterminal">eIdentifier</span>
-<span class="name">,</span>
-<span class="nonterminal">aIdentifier</span>
+<span class="optional">
<span class="name">,</span>
-<span class="nonterminal">gIdentifier</span>
+( <span class="nonterminal">aIdentifier</span> | <span class="name">-</span> )
<span class="name">,</span>
-<span class="nonterminal">uIdentifier</span>
+( <span class="nonterminal">gIdentifier</span> | <span class="name">-</span> )
+<span class="name">,</span>
+( <span class="nonterminal">uIdentifier</span> | <span class="name">-</span> )
+</span>
<span class="nonterminal">optional-attribute-values</span>
<span class="name">)</span>
</div>
@@ -754,36 +927,154 @@
<div class="anexample">
<pre class="codeexample">
-wasDerivedFrom(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018)
+wasDerivedFrom(e2, e1)
wasDerivedFrom(e2, e1, a, g2, u1)
+wasDerivedFrom(e2, e1, -, g2, u1)
+wasDerivedFrom(e2, e1, a, -, u1)
+wasDerivedFrom(e2, e1, a, g2, -)
+wasDerivedFrom(e2, e1, a, -, -)
+wasDerivedFrom(e2, e1, -, -, u1)
+wasDerivedFrom(e2, e1, -, -, -)
+wasDerivedFrom(d, e2, e1, a, g2, u1)
+wasDerivedFrom(-, e2, e1, a, g2, u1)
+</pre>
+</div>
+
+</section>
+<section id="expression-Revision">
+<h4>Revision</h4>
+
+<div class="grammar">
+<span class="nonterminal">revisionExpression</span> ::=
+<span class="name">wasRevisionOf</span>
+<span class="name">(</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span>
+( <span class="nonterminal">agIdentifier</span> | <span class="name">-</span> )
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+
+
+<div class="anexample">
+<pre class="codeexample">
+wasRevisionOf(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, -)
+wasRevisionOf(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, w3:Consortium)
+wasRevisionOf(id,tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, w3:Consortium)
+wasRevisionOf(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, -)
+wasRevisionOf(id,tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, -)
+wasRevisionOf(-,tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, -)
</pre>
</div>
+</section> <!-- end revision -->
+<section id="expression-quotation">
+<h4>Quotation</h4>
-<!--
-<p>In PROV-DM, the effective placeholder for an entity generation time is the <a>generation record</a>. The presence of
-time information in imprecise derivation records is merely a convenience notation for a timeless derivation record and a generation record with this generation time information. </p>
+<p>A quotation expression's text matches the <span class="nonterminal">quotationExpression</span> production of the grammar.</p>
-<div class='syntax' id="derivation-time-elimination">
-<span class='conditional'>If</span> <span class="name">wasDerivedFrom(e2,e1,t,attrs)</span> holds, <span class='conditional'>then</span> the following records also hold:
-<span class="name">wasDerivedFrom(e2,e1,attrs)</span> and <span class="name">wasGeneratedBy(e2,t)</span>.
+<div class="grammar">
+<span class="nonterminal">quotationExpression</span> ::=
+<span class="name">wasQuotedFrom</span>
+<span class="name">(</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="optional">
+<span class="name">,</span>
+( <span class="nonterminal">agIdentifier</span> | <span class="name">-</span> )
+<span class="name">,</span>
+( <span class="nonterminal">agIdentifier</span> | <span class="name">-</span> )
+</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
</div>
+<div class="anexample">
+<pre class="codeexample">
+wasQuotedFrom(ex:blockQuote,ex:blog)
+wasQuotedFrom(ex:blockQuote,ex:blog,ex:Luc,ex:Paul)
+wasQuotedFrom(ex:blockQuote,ex:blog,-,ex:Paul)
+wasQuotedFrom(ex:blockQuote,ex:blog,ex:Luc,ex:Paul,[])
+wasQuotedFrom(ex:blockQuote,ex:blog, -, -)
+wasQuotedFrom(id,ex:blockQuote,ex:blog,ex:Luc,ex:Paul)
+wasQuotedFrom(-,ex:blockQuote,ex:blog,ex:Luc,-)
-<div class='pending'>Should derivation have a time? Which time? This is <a href="http://www.w3.org/2011/prov/track/issues/43">ISSUE-43</a>.<em>This is now addressed in this text. Optional time in derivation is generation time. See also <a href="http://www.w3.org/2011/prov/track/issues/205">ISSUE-205</a>.</em></div>
+</pre>
+</div>
--->
+</section> <!-- end quotation -->
+
+
+<section id="expression-original-source">
+<h4>Original Source</h4>
+
+<p>An original source record's text matches the <span class="nonterminal">originalSourceExpression</span> production of the grammar.</p>
+
+<div class="grammar">
+<span class="nonterminal">originalSourceExpression</span> ::=
+<span class="name">hadOriginalSource</span>
+<span class="name">(</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+
+
+<div class="anexample">
+<pre class="codeexample">
+hadOriginalSource(ex:e1, ex:e2)
+hadOriginalSource(ex:e1, ex:e2,[ex:param="a"])
+hadOriginalSource(-,ex:e1, ex:e2,[ex:param="a"])
+hadOriginalSource(-,ex:e1, ex:e2)
+</pre>
+</div>
+
+</section> <!-- end original source -->
+<section id="expression-traceability">
+<h4>Traceability</h4>
+
+<p>A traceability expression's text matches the <span class="nonterminal">traceabilityExpression</span> production of the grammar.</p>
+
+
+<div class="grammar">
+<span class="nonterminal">traceabilityExpression</span> ::=
+<span class="name">tracedTo</span>
+<span class="name">(</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+
+
+<div class="anexample">
+<pre class="codeexample">
+tracedTo(e2,e1)
+tracedTo(e2,e1,[ex:param="a"])
+tracedTo(id,e2,e1,[ex:param="a"])
+tracedTo(-,e2,e1)
+</pre>
+</div>
</section>
-
-
-<section id="expression-alternate-specialization">
-
-<h4>Alternate and Specialization</h4>
-
-
+</section>
+<section id="component4">
+<h3>Component 4: Alternate Entities</h3>
+<section id="expression-alternate">
+<h4>Alternate</h4>
<p>An alternate relation's text matches the <span class="nonterminal">alternateExpression</span> production.</p>
@@ -804,7 +1095,11 @@
</div>
-<p>A specialization relation's text matches the <span class="nonterminal">specializationExpression</span>production.</p>
+</section>
+<section id="expression-specialization">
+<h4>Specialization</h4>
+
+<p>A specialization relation's text matches the <span class="nonterminal">specializationExpression</span> production.</p>
<div class='grammar'>
<span class="nonterminal">specializationExpression</span> ::=
@@ -822,15 +1117,260 @@
</pre>
</div>
+</section>
+</section>
+<section id="component5">
+<h3>Component 5: Collections</h3>
+
+<div class="note">To be checked: Grammar has not been implemented yet.</div>
+
+<section id="expression-collection-insertion">
+<h3>Insertion</h3>
+
+A Derivation-by-Insertion relation's text matches the <span class="nonterminal">derivationByInsertionFromExpression</span> production.</p>
+
+<div class="grammar">
+ <span class="nonterminal">derivationByInsertionFromExpression</span> ::=
+<span class="name">derivedByInsertionFrom</span>
+ <span class="name">(</span>
+ <span class="optional"><span class="nonterminal">identifier</span>
+ <span class="name">,</span></span>
+<span class="nonterminal">afterIdentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">beforeIdentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">keyidentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">validentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">optional-attribute-values</span>
+ <span class="name">)</span>
+ <br>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+derivedByInsertionFrom(id, c1, c, "k1", v1)
+derivedByInsertionFrom(id, c1, c, "k1", v1, [])
+</pre>
+</div>
+
+
+</section>
+
+<section id="expression-collection-removal">
+<h3>Removal</h3>
+
+A Derivation-by-Removal relation's text matches the <span class="nonterminal">derivationByRemovalFromExpression</span> production.</p>
+
+<div class="grammar">
+ <span class="nonterminal">derivationByRemovalFromExpression</span> ::=
+<span class="name">derivedByRemovalFrom</span>
+ <span class="name">(</span>
+ <span class="optional"><span class="nonterminal">identifier</span>
+ <span class="name">,</span></span>
+<span class="nonterminal">afterIdentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">beforeIdentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">keyidentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">optional-attribute-values</span>
+ <span class="name">)</span>
+ <br>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+derivedByRemovalFrom(id, c1, c, "k1")
+derivedByRemovalFrom(id, c1, c, "k1", [])
+ </pre>
+</div>
+
+</section>
+
+
+<section id="expression-collection-containment">
+<h3>Containment</h3>
+
+A Containment relation's text matches the <span class="nonterminal">containedExpression</span> production.</p>
+
+<div class="grammar">
+ <span class="nonterminal">containedExpression</span> ::=
+<span class="name">contained</span>
+ <span class="name">(</span>
+ <span class="optional"><span class="nonterminal">identifier</span>
+ <span class="name">,</span></span>
+<span class="nonterminal">afterIdentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">keyidentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">validentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">optional-attribute-values</span>
+ <span class="name">)</span>
+ <br>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+contained(id, c, "k", v)
+contained(id, c, "k", v,[])
+</pre>
+</div>
+
+</section>
+
+<section id="collection-convenience-relations">
+<h3>Convenience relations</h3>
+
+A Derivation-by-Bulk-Insertion relation's text matches the <span class="nonterminal">derivationByBulkInsertionFromExpression</span> production.</p>
+
+<div class="grammar">
+ <span class="nonterminal">derivationByBulkInsertionFromExpression</span> ::=
+<span class="name">derivedByBulkInsertionFrom</span>
+ <span class="name">(</span>
+ <span class="optional"><span class="nonterminal">identifier</span>
+ <span class="name">,</span></span>
+<span class="nonterminal">afterIdentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">beforeIdentifier</span>
+ <span class="name">,</span>
+ <span class="name">{</span>
+ <span class="nonterminal">keyValuePairs</span>
+ <span class="name">}</span>
+<span class="name">,</span>
+<span class="nonterminal">optional-attribute-values</span>
+ <span class="name">)</span>
+</div>
+
+<div class="anexample">
+ <pre class="codeexample">
+ derivedByBulkInsertionFrom(c1, c, {("k1", v1), ("k2", v2)})
+ derivedByBulkInsertionFrom(c1, c, {("k1", v1), ("k2", v2)}), []
+</pre>
+</div>
+
+<p> A Derivation-by-Bulk-Removal relation's text matches the <span class="nonterminal">derivationByBulkRemovalFromExpression</span> production.</p>
+
+
+<div class="grammar">
+ <span class="nonterminal">derivationByBulkRemovalFromExpression</span> ::=
+<span class="name">derivedByRemovalFrom</span>
+ <span class="name">(</span>
+ <span class="optional"><span class="nonterminal">identifier</span>
+ <span class="name">,</span></span>
+<span class="nonterminal">afterIdentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">beforeIdentifier</span>
+ <span class="name">,</span>
+ <span class="name">{</span>
+ <span class="nonterminal">keySet</span>
+ <span class="name">}</span>
+ <span class="name">,</span>
+<span class="nonterminal">optional-attribute-values</span>
+ <span class="name">)</span>
+ <br>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+ derivedByBulkRemovalFrom(c3, c1, {"k1", "k3"})
+ derivedByBulkRemovalFrom(c3, c1, {"k1", "k3"}, [])
+
+</pre>
+ </div>
+
+
+<p> A Bulk-Containment relation's text matches the <span class="nonterminal">containedBulkExpression</span> production.</p>
+
+<div class="grammar">
+ <span class="nonterminal">containedBulkExpression</span> ::=
+<span class="name">contained</span>
+ <span class="name">(</span>
+ <span class="optional"><span class="nonterminal">identifier</span>
+ <span class="name">,</span></span>
+<span class="nonterminal">afterIdentifier</span>
+ <span class="name">,</span>
+ <span class="name">{</span>
+ <span class="nonterminal">keyValuePairs</span>
+ <span class="name">}</span>
+<span class="nonterminal">validentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">optional-attribute-values</span>
+ <span class="name">)</span>
+ <br>
+</div>
+
+<div class="anexample">
+ <pre class="codeexample">
+ containedBulk(c3, {("k4", v4), ("k5", v5)})
+ containedBulk(c3, {("k4", v4), ("k5", v5)},[])
+</pre>
+</div>
+
+ In the productions above, nonterminals <span class="nonterminal">keyValuePairs</span> and <span class="nonterminal">keySet</span> are defined as follows.
+
+
+ <div class="grammar">
+<span class="nonterminal">keyValuePairs</span> ::=
+<span class="name">(</span>
+ <span class="nonterminal">keyidentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">validentifier</span>
+ <span class="name">)</span>
+|
+<span class="name">(</span>
+ <span class="nonterminal">keyidentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">validentifier</span>
+<span class="name">)</span>
+ <span class="name">,</span>
+<span class="nonterminal">keyValuePairs</span>
+</div>
+
+ <div class="grammar">
+<span class="nonterminal">keySet</span> ::=
+ <span class="nonterminal">keyidentifier</span>
+|
+ <span class="nonterminal">keyidentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">keySet</span>
+</div>
</section>
+</section> <!-- end collections-->
+<section id="component6">
+<h3>Component 6: Annotations</h3>
+ <section id="expression-note">
+<h4>Note</h4>
+
+<div class="withPn">
+<p>A note's text matches the <span class="nonterminal">noteExpression</span> production.
+</p>
+<div class='grammar'>
+<span class="nonterminal">noteExpression</span> ::=
+<span class="name">note</span>
+<span class="name">(</span>
+<span class="nonterminal">identifier</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+</div>
+<div class="anexample">
+<pre class="codeexample">
+note(ann1,[ex:color="blue", ex:screenX=20, ex:screenY=30])
+</pre>
+</div>
+
+ </section>
<section id="expression-annotation">
<h4>Annotation</h4>
@@ -846,7 +1386,6 @@
<span class="nonterminal">identifier</span>
<span class="name">,</span>
<span class="nonterminal">nIdentifier</span>
-<span class="nonterminal">optional-attribute-values</span>
<span class="name">)</span>
</div>
@@ -858,9 +1397,30 @@
</div>
-
+</section>
+<section id="second-class-elements">
+<section id="expression-NamespaceDeclaration">
+</section>
+<section id="expression-identifier">
+</section>
+<section id="expression-attribute">
+<section id="expression-attribute-role">
+</section>
+<section id="expression-attribute-type">
+</section>
+<section id="expression-attribute-label">
+</section>
+<section id="expression-attribute-location">
</section>
</section>
+<section id="expression-value">
+</section>
+</section>
+</section>
+
+
+
+
<section id="subexpressions">
@@ -1011,14 +1571,6 @@
</section>
</section>
-<section id="common-relations">
-<h2>Common Relations</h2>
-
-<div class="note">
-TO ADD
-</div>
-</section>
-
@@ -1168,16 +1720,12 @@
</section>
-<!-- no longer necessary to say that.
-<p>All the records in <span class="name">recs</span> are implictly wrapped in a default account, scoping all the record identifiers they declare directly, and constituting a toplevel
-account, in the hierarchy of accounts. Consequently, every provenance record is always expressed in the context of an account, either explicitly in an asserted account, or implicitly in a
-container's default account.</p>
-
+<div id="glossary_div" class="remove">
+<!-- glossary loaded from glossary.js will be hooked up here,
+ class remove, will remove this element from the final output.
-->
-
-
-
+</div>