Fixed case problems - Collections.png
authorroot
Thu, 29 Mar 2012 10:20:00 -0400
changeset 2072 f4caf8efe2e4
parent 2070 0a5d510a1066
child 2073 d33966f7aa10
Fixed case problems - Collections.png
model/images/Collections.png
model/images/PROV-modelSketch.zargo
model/images/collections.png
model/prov-dm.html
model/prov-n.html
primer/Primer.html
Binary file model/images/Collections.png has changed
Binary file model/images/PROV-modelSketch.zargo has changed
Binary file model/images/collections.png has changed
--- a/model/prov-dm.html	Thu Mar 29 09:14:40 2012 +0100
+++ b/model/prov-dm.html	Thu Mar 29 10:20:00 2012 -0400
@@ -1940,7 +1940,7 @@
 <div style="text-align: center;">
 <figure>
 <img src="images/Collections.png" alt="collections"/>
-<figcaption id="figure-component5">Collections Component Overview</figcaption>
+<figcaption id="figure-component5">Collections Component Overview (TODO)</figcaption>
 </figure>
 </div>
 
--- a/model/prov-n.html	Thu Mar 29 09:14:40 2012 +0100
+++ b/model/prov-n.html	Thu Mar 29 10:20:00 2012 -0400
@@ -1145,9 +1145,204 @@
 
 <div class="note">Grammar for collections MAY under go minor syntactic changes since it has not been implemented yet.</div>
 
-In the productions in this section, nonterminals <span class="nonterminal">keyValuePairs</span> and <span class="nonterminal">keySet</span> are defined as follows.
+<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>
+
+<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>
@@ -1174,105 +1369,6 @@
 </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>
 
 
--- a/primer/Primer.html	Thu Mar 29 09:14:40 2012 +0100
+++ b/primer/Primer.html	Thu Mar 29 10:20:00 2012 -0400
@@ -1,6 +1,6 @@
 <!DOCTYPE html>
 <html><head> 
-  <title>PROV Model Primer</title>
+  <title>Prov Model Primer</title>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <!--
     === NOTA BENE ===
@@ -212,7 +212,7 @@
     The next section gives an introductory overview of PROV-DM using simple examples.
     The following section shows how the formal ontology PROV-O can be used to represent the PROV-DM assertions
     as RDF triples.  The document also contains frequently asked questions, and an appendix giving example 
-    snippets of the Provenance Notation (PROV-N).
+    snippets of the PROV-DM Abstract Syntax Notation (ASN).
     For a detailed description of [[PROV-DM]] and [[PROV-O]], please refer to the respective documents.
    </p>
   </section>
@@ -443,8 +443,8 @@
     terms from the Prov ontology, while <b>ex</b> denotes terms specific to the example.
    </p>
 
-   <p>We also provide a representation of the examples in the Provenance
-    Notation, PROV-N, used in the data model document. The full PROV-N data 
+   <p>We also provide a representation of the examples in the Abstract
+    Syntax Model ASM used in the conceptual model document. The full ASM data 
     for the examples in this section is
     included in the appendix.</p>
 
@@ -453,7 +453,7 @@
 
     <p>
      An online newspaper publishes an article with a chart about crime statistics making using of data (GovData) provided through a government portal. 
-     The article includes a chart based on the data, with data values composed (aggregated) by
+     The article includes a chart based on the data, with data values aggregated by
      geographical regions.
     </p>
     <p>
@@ -462,20 +462,18 @@
     </p>
     <p>Betty would find the following assertions about entities in the provenance record:</p>
     <pre class="turtle example">
-     ex:article1     a prov:Entity ; dcterms:title "Crime rises in cities" .
-     ex:dataset1     a prov:Entity .
-     ex:regionList1  a prov:Entity .
-     ex:composition1 a prov:Entity .
-     ex:chart1       a prov:Entity .
-   </pre>
+     ex:newspaper1  a prov:Entity .
+     ex:article1    a prov:Entity .
+     ex:regionList1 a prov:Entity .
+     ex:aggregate1  a prov:Entity .
+     ex:chart1      a prov:Entity .
+    </pre>
     <p>
-     These statements, in order, assert that there was an article (<code>ex:article1</code>),
-     an original data set (<code>ex:dataSet1</code>),
-     a list of regions (<code>ex:regionList1</code>), 
-     data aggregated by region (<code>ex:composition1</code>), 
-     and a chart (<code>ex:chart1</code>), and that each is an entity.
-     Any entity may have attributes not specific to provenance, such as the title
-     of the article, expressed using <code>dcterms:title</code> above.
+     These statements, in order, assert that there is a newspaper (<code>ex:newspaper1</code>) and an article (<code>ex:article1</code>),
+     that the original data set is an entity (<code>ex:dataSet1</code>),
+     there is a list of regions
+     (<code>ex:regionList1</code>) that is an entity, that the data aggregated by region is an entity (<code>ex:aggregate1</code>), 
+     and that the chart (<code>ex:chart1</code>) is an entity.
     </p>
 
    </section>
@@ -493,11 +491,11 @@
     </pre>
     <p>
      The provenance record also includes reference to the more specific steps involved in this compilation,
-     which are first composing the data by region and then generating the chart graphic.
+     which are first aggregating the data by region and then generating the chart graphic.
     </p>
     <pre class="turtle example">
-     ex:compose    a prov:Activity .
-     ex:illustrate a prov:Activity .
+     ex:aggregated  a prov:Activity .
+     ex:illustrated a prov:Activity .
     </pre>
    </section>
 
@@ -510,22 +508,22 @@
      or the generation of an entity by an activity.
     </p>
     <p>
-     For example, the assertions below state that the composition activity
-     (<code>ex:compose</code>) used the original data set, that it used the list of
-     regions, and that the composed data was generated by this activity.
+     For example, the assertions below state that the aggregation activity
+     (<code>ex:aggregated</code>) used the original data set, that it used the list of
+     regions, and that the aggregated data was generated by this activity.
     </p>
     <pre class="turtle example">
-     ex:compose      prov:used           ex:dataSet1 ;
-                     prov:used           ex:regionList1 .
-     ex:composition1 prov:wasGeneratedBy ex:compose .
+     ex:aggregated prov:used           ex:dataSet1 ;
+                    prov:used           ex:regionList1 .
+     ex:aggregate1 prov:wasGeneratedBy ex:aggregated .
     </pre>
     <p>
      Similarly, the chart graphic creation activity (<code>ex:illustrated</code>)
-     used the composed data, and the chart was generated by this activity.
+     used the aggregated data, and the chart was generated by this activity.
     </p>
     <pre class="turtle example">
-     ex:illustrate prov:used           ex:composition1 .
-     ex:chart1     prov:wasGeneratedBy ex:illustrate .
+     ex:illustrated prov:used           ex:aggregate1 .
+     ex:chart1      prov:wasGeneratedBy ex:illustrated .
     </pre>
    </section>
 
@@ -534,12 +532,12 @@
 
     <p>
      Digging deeper, Betty wants to know who compiled the chart.
-     Betty sees that Derek was involved in both the composition and
+     Betty sees that Derek was involved in both the aggregation and
      chart creation activities:
     </p>
     <pre class="turtle example">
-     ex:compose    prov:wasAssociatedWith ex:derek .
-     ex:illustrate prov:wasAssociatedWith ex:derek .
+     ex:aggregated  prov:wasAssociatedWith ex:derek .
+     ex:illustrated prov:wasAssociatedWith ex:derek .
     </pre>
     <p>
      The record for Derek provides the
@@ -572,64 +570,64 @@
     <p>
      For Betty to understand where the error lies, she needs to have more detailed 
      information on how entities have been used in, participated in, and generated 
-     by activities.  Betty has determined that <code>ex:compose</code> used 
+     by activities.  Betty has determined that <code>ex:aggregated</code> used 
      entities <code>ex:regionList1</code> and <code>ex:dataSet1</code>, but she does not 
      know what function these entities played in the processing.  Betty 
      also knows that <code>ex:derek</code> controlled the activities, but she does 
      not know if Derek was the analyst responsible for determining how the data 
-     should be composed.
+     should be aggregated.
     </p>
     <p>
-     The above information is described as roles in the provenance records. The composition
-     activity involved entities in four roles: the data to be composed (<code>ex:dataToCompose</code>),
+     The above information is described as roles in the provenance records. The aggregation
+     activity involved entities in four roles: the data to be aggregated (<code>ex:dataToAggregate</code>),
      the regions to aggregate by (<code>ex:regionsToAggregateBy</code>), the
-     resulting composed data (<code>ex:composedData</code>), and the
-     analyst doing the composition (<code>ex:analyst</code>).
+     resulting aggregated data (<code>ex:aggregatedData</code>), and the
+     analyst doing the aggregation (<code>ex:analyst</code>).
     </p>
     <pre class="turtle example">
-     ex:dataToCompose        a prov:Role .
+     ex:dataToAggregate      a prov:Role .
      ex:regionsToAggregateBy a prov:Role .
-     ex:composedData         a prov:Role .
+     ex:aggregatedData       a prov:Role .
      ex:analyst              a prov:Role .
     </pre>
     <p>
-     In addition to the simple facts that the composition activity used, generated or
+     In addition to the simple facts that the aggregation activity used, generated or
      was controlled by entities/agents as described in the sections above, the
      provenance record contains more details of <i>how</i> these entities and agents
      were involved, i.e. the roles they played. For example, the assertions below state
-     that the composition activity (<code>ex:compose</code>) included the usage
+     that the aggregation activity (<code>ex:aggregated</code>) included the usage
      of the government data set (<code>ex:dataSet1</code>) in the role of the data
-     to be composed (<code>ex:dataToCompose</code>).
+     to be aggregated (<code>ex:dataToAggregate</code>).
     </p>
     <pre class="turtle example">
-     ex:compose prov:involved [ a prov:Usage ;
-                prov:entity   ex:dataSet1 ;
-                prov:hadRole  ex:dataToCompose ] .
+     ex:aggregated prov:involved [ a prov:Usage ;
+            prov:entity  ex:dataSet1 ;
+            prov:hadRole ex:dataToAggregate ] .
     </pre>
     <p>
      This can then be distinguished from the same activity's usage of the list of
      regions because the roles played are different.
     </p>
     <pre class="turtle example">
-     ex:compose prov:involved [ a prov:Usage ;
-                prov:entity   ex:regionList1 ;
-                prov:hadRole  ex:regionsToAggregateBy ] .
+     ex:aggregated prov:involved [ a prov:Usage ;
+            prov:entity  ex:regionList1 ;
+            prov:hadRole ex:regionsToAggregateBy ] .
     </pre>
     <p>
      Similarly, the provenance includes assertions that the same activity was
      controlled in a particular way (<code>ex:analyst</code>) by Derek, and that
-     the entity <code>ex:composition1</code> took the role of the composed
+     the entity <code>ex:aggregate1</code> took the role of the aggregated
      data in what the activity generated.
     </p>
     <pre class="turtle example">
-     ex:compose
+     ex:aggregated
         prov:involved [ a prov:Association ;
             prov:entity  ex:derek ;
             prov:hadRole ex:analyst
         ] ;
         prov:involved [ a prov:Generation ;
-            prov:entity  ex:composition1 ;
-            prov:hadRole ex:composedData
+            prov:entity  ex:aggregate1 ;
+            prov:hadRole ex:aggregatedData
         ] .
     </pre>
    </section>
@@ -665,8 +663,8 @@
   <section class="appendix">
    <h2>Abstract Syntax Notation for Examples</h2>
    <p>
-    Below we give translations of the working example snippets into the Provenance
-    Notation (PROV-N).
+    Below we give translations of the working example snippets into the PROV-DM
+    abstract syntax notation (ASN).
    </p>
    <section>
     <h3>Entities</h3>