--- a/model/prov-n.html Thu Mar 29 10:20:29 2012 -0400
+++ b/model/prov-n.html Thu Mar 29 15:30:19 2012 +0100
@@ -455,7 +455,7 @@
<p>Instances of the PROV-DM data model are expressed as PROV-N <dfn title="expression">expressions</dfn>, which have a text conformant with the toplevel <a>production</a> <span class="nonterminal">expression</span> of the grammar. </p>
<div class='grammar'>
-<table border="" style="background: white;">
+<table style="background: white; border=0; ">
<tr><td><span class="nonterminal">expression</span> <br/><br/><br/><br/><br/><br/><br/>
</td><td> ::=<br/><br/><br/><br/><br/><br/><br/></td><td>
<!-- Component 1-->
@@ -1145,204 +1145,9 @@
<div class="note">Grammar for collections MAY under go minor syntactic changes since it has not been implemented yet.</div>
-<section id="expression-collection-insertion">
-<h3>Insertion</h3>
-
-<p>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>
-
-<p>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>
-
-<p>A Containment relation's text matches the <span class="nonterminal">containedExpression</span> production.</p>
+In the productions in this section, nonterminals <span class="nonterminal">keyValuePairs</span> and <span class="nonterminal">keySet</span> are defined as follows.
<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="expression-bulk-insertion">
-<h3>Bulk Insertion</h3>
-
-<p>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>
-</section>
-
-<section id="expression-bulk-Removal">
-<h3>Bulk Removal</h3>
-
-
-
-<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>
-</section>
-
-<section id="expression-bulk-containment">
-<h3>Bulk Containment</h3>
-
-
-<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>
@@ -1369,6 +1174,105 @@
</div>
+<section id="expression-collection-insertion">
+<h3>Insertion</h3>
+
+<p>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="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">
+ derivedByInsertionFrom(c1, c, {("k1", v1), ("k2", v2)})
+ derivedByInsertionFrom(c1, c, {("k1", v1)})
+ derivedByInsertionFrom(c1, c, {("k1", v1), ("k2", v2)}, [])
+</pre>
+</div>
+
+
+</section>
+
+<section id="expression-collection-removal">
+<h3>Removal</h3>
+
+<p>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="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">
+ derivedByRemovalFrom(c3, c1, {"k1", "k3"})
+ derivedByRemovalFrom(c3, c1, {"k1"})
+ derivedByRemovalFrom(c3, c1, {"k1", "k3"}, [])
+</pre>
+ </div>
+
+</section>
+
+<section id="expression-collection-membership">
+<h3>Membership</h3>
+
+<p>A Membership relation's text matches the <span class="nonterminal">membershipExpression</span> production.</p>
+
+<div class="grammar">
+ <span class="nonterminal">membershipExpression</span> ::=
+<span class="name">isMemberOf</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">
+ memberOf(c3, {("k4", v4), ("k5", v5)})
+ memberOf(c3, {("k4", v4)})
+ memberOf(c3, {("k4", v4), ("k5", v5)},[])
+</pre>
+</div>
+
</section>