collections incl. BNF
authorPaolo Missier <pmissier@acm.org>
Wed, 14 Mar 2012 14:16:20 +0000
changeset 1905 5e6cc45426fc
parent 1904 e39072d33cee
child 1906 109e22e276ea
collections incl. BNF
model/working-copy/wd5-prov-dm-collections.html
model/working-copy/wd5-prov-n.html
--- a/model/working-copy/wd5-prov-dm-collections.html	Wed Mar 14 12:22:31 2012 +0000
+++ b/model/working-copy/wd5-prov-dm-collections.html	Wed Mar 14 14:16:20 2012 +0000
@@ -411,11 +411,11 @@
   
    entity(v1)
    entity(v2)
-   derivedByInsertionFrom(c1, c, {("k1", v1), ("k2", v2)})  
+   derivedByBulkInsertionFrom(c1, c, {("k1", v1), ("k2", v2)})  
    derivedByInsertionFrom(c2, c1, "k3", v3)                 
-   derivedByRemovalFrom(c3, c1, {"k1", "k3"})               
+   derivedByBulkRemovalFrom(c3, c1, {"k1", "k3"})               
 
-   contained(c3, {("k4", v4), ("k5", v5)})  
+   containedBulk(c3, {("k4", v4), ("k5", v5)})  
 </pre>
   From this set of assertions, we conclude:
   <pre class="codeexample">
--- a/model/working-copy/wd5-prov-n.html	Wed Mar 14 12:22:31 2012 +0000
+++ b/model/working-copy/wd5-prov-n.html	Wed Mar 14 14:16:20 2012 +0000
@@ -888,6 +888,7 @@
 <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>
@@ -950,8 +951,228 @@
 
 </section>
 </section>
+
 <section id="component5"> 
 <h3>Component 5: Collections</h3>
+
+<section id="term-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>&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="term-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>&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="term-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>&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="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>&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>
+
+<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>
+
+
+<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>
+ <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> &nbsp;::= 
+    <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>