realigned collection productions in prov-n
authorPaolo Missier <pmissier@acm.org>
Thu, 29 Mar 2012 09:14:40 +0100
changeset 2070 0a5d510a1066
parent 2069 11044297640e
child 2072 f4caf8efe2e4
realigned collection productions in prov-n
model/prov-n.html
--- a/model/prov-n.html	Thu Mar 29 08:07:42 2012 +0100
+++ b/model/prov-n.html	Thu Mar 29 09:14:40 2012 +0100
@@ -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>&nbsp;::=  
-<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>&nbsp;::=  
-<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>&nbsp;::=  
-<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>&nbsp;::=  
-<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>&nbsp;::=  
-<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>&nbsp;::=  
-<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> &nbsp;::= 
 <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>&nbsp;::=  
+<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>&nbsp;::=  
+<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>&nbsp;::=  
+<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>