merge
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Thu, 29 Mar 2012 15:33:49 +0100
changeset 2081 5dbf2a034c57
parent 2080 7cf72cb3b9d5 (current diff)
parent 2079 ab6e685ea3a5 (diff)
child 2082 762648c7b991
merge
--- a/primer/Primer.html	Thu Mar 29 15:33:33 2012 +0100
+++ b/primer/Primer.html	Thu Mar 29 15:33:49 2012 +0100
@@ -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 PROV-DM Abstract Syntax Notation (ASN).
+    snippets of the Provenance Notation (PROV-N).
     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 Abstract
-    Syntax Model ASM used in the conceptual model document. The full ASM data 
+   <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 
     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 aggregated by
+     The article includes a chart based on the data, with data values composed (aggregated) by
      geographical regions.
     </p>
     <p>
@@ -462,18 +462,20 @@
     </p>
     <p>Betty would find the following assertions about entities in the provenance record:</p>
     <pre class="turtle example">
-     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>
+     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>
     <p>
-     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.
+     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.
     </p>
 
    </section>
@@ -491,11 +493,11 @@
     </pre>
     <p>
      The provenance record also includes reference to the more specific steps involved in this compilation,
-     which are first aggregating the data by region and then generating the chart graphic.
+     which are first composing the data by region and then generating the chart graphic.
     </p>
     <pre class="turtle example">
-     ex:aggregated  a prov:Activity .
-     ex:illustrated a prov:Activity .
+     ex:compose    a prov:Activity .
+     ex:illustrate a prov:Activity .
     </pre>
    </section>
 
@@ -508,22 +510,22 @@
      or the generation of an entity by an activity.
     </p>
     <p>
-     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.
+     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.
     </p>
     <pre class="turtle example">
-     ex:aggregated prov:used           ex:dataSet1 ;
-                    prov:used           ex:regionList1 .
-     ex:aggregate1 prov:wasGeneratedBy ex:aggregated .
+     ex:compose      prov:used           ex:dataSet1 ;
+                     prov:used           ex:regionList1 .
+     ex:composition1 prov:wasGeneratedBy ex:compose .
     </pre>
     <p>
      Similarly, the chart graphic creation activity (<code>ex:illustrated</code>)
-     used the aggregated data, and the chart was generated by this activity.
+     used the composed data, and the chart was generated by this activity.
     </p>
     <pre class="turtle example">
-     ex:illustrated prov:used           ex:aggregate1 .
-     ex:chart1      prov:wasGeneratedBy ex:illustrated .
+     ex:illustrate prov:used           ex:composition1 .
+     ex:chart1     prov:wasGeneratedBy ex:illustrate .
     </pre>
    </section>
 
@@ -532,12 +534,12 @@
 
     <p>
      Digging deeper, Betty wants to know who compiled the chart.
-     Betty sees that Derek was involved in both the aggregation and
+     Betty sees that Derek was involved in both the composition and
      chart creation activities:
     </p>
     <pre class="turtle example">
-     ex:aggregated  prov:wasAssociatedWith ex:derek .
-     ex:illustrated prov:wasAssociatedWith ex:derek .
+     ex:compose    prov:wasAssociatedWith ex:derek .
+     ex:illustrate prov:wasAssociatedWith ex:derek .
     </pre>
     <p>
      The record for Derek provides the
@@ -547,7 +549,7 @@
     </p>
     <pre class="turtle example">
      ex:derek a prov:Agent ;
-              a foaf:Person ;
+              a prov:Person ;
               foaf:givenName "Derek"^^xsd:string ;
               foaf:mbox      &lt;mailto:dererk@example.org&gt; .
     </pre>
@@ -560,7 +562,7 @@
      ex:derek prov:actedOnBehalfOf ex:chartgen .
      ex:chartgen a prov:Agent ;
                  a prov:Organization ;
-                 foaf:name "Chart Generators" .
+                 foaf:name "Chart Generators Inc" .
     </pre>
    </section>
 
@@ -570,64 +572,77 @@
     <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:aggregated</code> used 
+     by activities.  Betty has determined that <code>ex:compose</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 aggregated.
+     should be composed.
     </p>
     <p>
-     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 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 regions to aggregate by (<code>ex:regionsToAggregateBy</code>), the
-     resulting aggregated data (<code>ex:aggregatedData</code>), and the
-     analyst doing the aggregation (<code>ex:analyst</code>).
+     resulting composed data (<code>ex:composedData</code>), and the
+     analyst doing the composition (<code>ex:analyst</code>).
     </p>
     <pre class="turtle example">
-     ex:dataToAggregate      a prov:Role .
+     ex:dataToCompose        a prov:Role .
      ex:regionsToAggregateBy a prov:Role .
-     ex:aggregatedData       a prov:Role .
+     ex:composedData         a prov:Role .
      ex:analyst              a prov:Role .
     </pre>
     <p>
-     In addition to the simple facts that the aggregation activity used, generated or
+     In addition to the simple facts that the composition 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 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 aggregated (<code>ex:dataToAggregate</code>).
+     Examples in the sections above show assertions of the simple facts that the
+     composition activity used, generated and was controlled by entities/agents.
+     For example, the usage of the data set by the compose activity is expressed
+     as follows.
     </p>
     <pre class="turtle example">
-     ex:aggregated prov:involved [ a prov:Usage ;
-            prov:entity  ex:dataSet1 ;
-            prov:hadRole ex:dataToAggregate ] .
+     ex:compose prov:used ex:dataSet1 .
+    </pre>
+    <p>     
+     The
+     provenance record can contain more details of <i>how</i> these entities and agents
+     were involved in the activity. One example is the roles the entities played.
+     For example, the assertions below state
+     that the composition activity (<code>ex:compose</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>).
+    </p>
+    <pre class="turtle example">
+     ex:compose prov:qualifiedUsage [ a prov:Usage ;
+                   prov:entity  ex:dataSet1 ;
+                   prov:hadRole ex:dataToCompose ] .
     </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:aggregated prov:involved [ a prov:Usage ;
-            prov:entity  ex:regionList1 ;
-            prov:hadRole ex:regionsToAggregateBy ] .
+     ex:compose prov:qualifiedUsage [ 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:aggregate1</code> took the role of the aggregated
+     the entity <code>ex:composition1</code> took the role of the composed
      data in what the activity generated.
     </p>
     <pre class="turtle example">
-     ex:aggregated
-        prov:involved [ a prov:Association ;
+     ex:compose
+        prov:qualifiedAssociation [ a prov:Association ;
             prov:entity  ex:derek ;
             prov:hadRole ex:analyst
         ] ;
-        prov:involved [ a prov:Generation ;
-            prov:entity  ex:aggregate1 ;
-            prov:hadRole ex:aggregatedData
+        prov:qualifiedGeneration [ a prov:Generation ;
+            prov:entity  ex:composition1 ;
+            prov:hadRole ex:composedData
         ] .
     </pre>
    </section>
@@ -661,10 +676,10 @@
   </section>
 
   <section class="appendix">
-   <h2>Abstract Syntax Notation for Examples</h2>
+   <h2>PROV-N Examples</h2>
    <p>
-    Below we give translations of the working example snippets into the PROV-DM
-    abstract syntax notation (ASN).
+    Below we give translations of the working example snippets into the Provenance
+    Notation (PROV-N).
    </p>
    <section>
     <h3>Entities</h3>
@@ -712,7 +727,7 @@
    <section>
     <h3>Agents</h3>
     <pre class="example asn">
-     entity(ex:derek, [ type="foaf:Person", foaf:givenName = "Derek", 
+     entity(ex:derek, [ type="prov:Person", foaf:givenName = "Derek", 
             foaf:mbox= "&lt;mailto:derek@example.org&gt;"]).
      agent(ex:derek).
 
@@ -774,6 +789,8 @@
     <li>Added intuition section on time.</li>
     <li>Added intuition section on alternates and specialization.</li>
     <li>Included description of attribution in intuition section on agents and responsibility.</li>
+    <li>Changed from ASN to PROV-N</li>
+    <li>Updated examples to latest PROV-O terms</li>
    </ul>
   </section>