merge
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Mon, 26 Nov 2012 12:11:39 +0000
changeset 5063 ea37090878bc
parent 5062 064602ded9e0 (current diff)
parent 5061 96fd9cc08b5e (diff)
child 5064 3ddcc1d75182
merge
testcases/prov-dm/example_10_association.txt
testcases/prov-dm/example_11_delegation.txt
testcases/prov-dm/example_12_association.txt
testcases/prov-dm/example_13_identification.txt
testcases/prov-dm/example_14_bundle.txt
testcases/prov-dm/example_15_collection.txt
testcases/prov-dm/example_16_provenance_notation.txt
testcases/prov-dm/example_17_entity.txt
testcases/prov-dm/example_18_acivity.txt
testcases/prov-dm/example_19_generation.txt
testcases/prov-dm/example_1_entity.txt
testcases/prov-dm/example_20_generation.txt
testcases/prov-dm/example_21_usage.txt
testcases/prov-dm/example_22_communication.txt
testcases/prov-dm/example_23_start.txt
testcases/prov-dm/example_24_start.txt
testcases/prov-dm/example_25_start.txt
testcases/prov-dm/example_26_end.txt
testcases/prov-dm/example_27_invalidation.txt
testcases/prov-dm/example_28_invalidation.txt
testcases/prov-dm/example_29_invalidation.txt
testcases/prov-dm/example_2_activity.txt
testcases/prov-dm/example_30_derivation.txt
testcases/prov-dm/example_31_revision.txt
testcases/prov-dm/example_32_quotation.txt
testcases/prov-dm/example_33_primary_source.txt
testcases/prov-dm/example_34_agent.txt
testcases/prov-dm/example_35_attribution.txt
testcases/prov-dm/example_36_association.txt
testcases/prov-dm/example_37_association.txt
testcases/prov-dm/example_38_delegation.txt
testcases/prov-dm/example_39_influence.txt
testcases/prov-dm/example_3_usage.txt
testcases/prov-dm/example_40_bundle.txt
testcases/prov-dm/example_41_bundle.txt
testcases/prov-dm/example_42_alternate.txt
testcases/prov-dm/example_43_specialization.txt
testcases/prov-dm/example_44_alternate.txt
testcases/prov-dm/example_45_alternate.txt
testcases/prov-dm/example_46_collection.txt
testcases/prov-dm/example_47_membership.txt
testcases/prov-dm/example_48_label_attribute.txt
testcases/prov-dm/example_49_location_attribute.txt
testcases/prov-dm/example_4_usage.txt
testcases/prov-dm/example_50_role_attribute.txt
testcases/prov-dm/example_51_type_attribute.txt
testcases/prov-dm/example_52_value_attribute.txt
testcases/prov-dm/example_53_value_attribute.txt
testcases/prov-dm/example_54_value.txt
testcases/prov-dm/example_55_value_time_instant.txt
testcases/prov-dm/example_56_extensibility_points.txt
testcases/prov-dm/example_57_extensibility_points.txt
testcases/prov-dm/example_58_extensibility_points.txt
testcases/prov-dm/example_5_usage.txt
testcases/prov-dm/example_6_communication.txt
testcases/prov-dm/example_7_derivation.txt
testcases/prov-dm/example_8_agent.txt
testcases/prov-dm/example_9_attribution.txt
testcases/prov-dm/example_author_view.txt
testcases/prov-dm/example_process_view.txt
testcases/prov-dm/example_provenance_attribution.txt
--- a/dc-note/Overview.html	Mon Nov 26 12:11:19 2012 +0000
+++ b/dc-note/Overview.html	Mon Nov 26 12:11:39 2012 +0000
@@ -517,15 +517,16 @@
  <img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C" /></a></p>
  <h1 class="title" id="title">Dublin Core to PROV Mapping</h1><h2 id="w3c-working-draft-19-august-2012">
  <acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft 28 October 2012</h2>
- <dl><dt>This version:</dt><dd><a href="http://dvcs.w3.org/hg/prov/raw-file/38ace4244610/dc-note/Overview.html">http://dvcs.w3.org/hg/prov/raw-file/38ace4244610/dc-note/Overview.html</a></dd>
- <dt>Latest published version:</dt><dd><a href="http://dvcs.w3.org/hg/prov/raw-file/38ace4244610/dc-note/Overview.html">http://dvcs.w3.org/hg/prov/raw-file/38ace4244610/dc-note/Overview.html</a></dd>
+ <dl><dt>This version:</dt><dd><a href="http://dvcs.w3.org/hg/prov/raw-file/default/dc-note/Overview.html">http://dvcs.w3.org/hg/prov/raw-file/default/dc-note/Overview.html</a></dd>
+ <dt>Latest published version:</dt><dd><a href="http://dvcs.w3.org/hg/prov/raw-file/default/dc-note/Overview.html">http://dvcs.w3.org/hg/prov/raw-file/default/dc-note/Overview.html</a></dd>
  <dt>Latest editor's draft:</dt><dd><a href="http://dvcs.w3.org/hg/prov/raw-file/default/dc-note/Overview.html">http://dvcs.w3.org/hg/prov/raw-file/default/dc-note/Overview.html</a></dd>
  <dt>Editors:</dt> 
-<dd><a href="http://www.kaiec.org/">Kai Eckert</a>, Manheim University Library, Germany</dd>
-<dd><a href="http://www.oeg-upm.net/index.php/en/phdstudents/28-dgarijo">Daniel Garijo</a></span>, Universidad Politécnica de Madrid, Spain</dd>
+<dd><span><a href="http://www.kaiec.org/">Kai Eckert</a>, Manheim University Library, Germany</dd>
+<dd><span><a href="http://www.oeg-upm.net/index.php/en/phdstudents/28-dgarijo">Daniel Garijo</a></span>, Universidad Politécnica de Madrid, Spain</dd>
 <dt>Contributors:</dt>
-<dd><a href="http://www.inf.kcl.ac.uk/staff/simonm">Simon Miles</a>, King's College London, UK</dd>
-<dd><span>Michael Panzer </span>OCLC Online Computer Library center, USA</dd>
+<dd><span><a href="http://www.inf.kcl.ac.uk/staff/simonm">Simon Miles</a></span>, King's College London, UK</dd>
+<dd><span>Craig M. Trim</span>, IBM, USA</dd>
+<dd><span>Michael Panzer</span>, OCLC Online Computer Library center, USA</dd>
 </dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2012 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.eu/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. <acronym title="World Wide Web Consortium">W3C</acronym> <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p><hr /></div>
   <div id="abstract" class="introductory section"><h2>Abstract</h2>
    <p>
@@ -628,16 +629,24 @@
 <h2><span class="secno">1. </span>Introduction</h2>
    <p>
     The Dublin Core Metadata Initiative (DCMI) [<a href="#bib-DCMI">DCMI</a>] provides a core metadata vocabulary,
-	commonly referred to as Dublin Core. The original element set consisted of 15 elements that are still available nowadays.
-	These elements are defined very broadly, in particular they have no
-	range specification, i.e., they can be used with arbitrary values as objects. The elements have been further
-	refined and new types have been introduced. This more specific vocabulary is called the terms and currently consists
-	of 55 properties [<a href="#bib-DCTERMS">DCTERMS</a>].
+	commonly referred to as Dublin Core. The original element set, from 1995, contains 15 broadly-defined elements still in use.
+	The core elements have no range specification, and arbitrary values can be used as objects. The core elements have been 
+	expanded beyond the original fifteen. Existing elements have been refined and new elements have been added. This expanded vocabulary is 
+	referred to as "DCMI Terms" and currently consists of 55 properties [<a href="#bib-DCTERMS">DCTERMS</a>].
 	</p>
-The Dublin Core elements are considered legacy and the use of the DCMI terms is preferred. They have different namespaces;
- if abbreviated, the elements are usually used with the <code>dc</code> prefix, while <code>dct</code> or <code>dcterms</code> 
- prefix is used for the terms.
-
+The use of DCMI terms is preferred and the Dublin Core element set has been depecreated. 
+Both element sets have different namespaces. The original element set is typically referred with the 
+<code>dc</code> prefix, while <code>dct</code> (or <code>dcterms</code>) is used as prefix for the newer DCMI element set. 
+</p>
+<p>
+DCMI terms hold a lot of provenance information and tell us about a resource, <i>when</i> it was affected in the past, 
+<i>who</i> affected it and <i>how</i> it was affected. The rest of the DCMI terms (description metadata), tell us <i>what</i> was affected. 
+There is no direct information in Dublin Core describing <i>where</i> a resource was affected. Such information is usually 
+only available for the publication of a resource (i.e., an action located at the address of the publisher). <!--Note that 
+spatial is not related to this question, as it is a descriptive property that links a resource to the location 
+referred to in its content, but not to the location where it was created, modified, issued or published. -->
+</p>
+<!--
 Consider the following example for a metadata record:
 </p><p>
 <a href="#example1">Example 1</a>: a simple metadata record:
@@ -651,6 +660,7 @@
     dct:replaces ex:doc2 ;
     dct:format "HTML" .
 </pre>
+
 <p>
 Clearly not all metadata statements deal with provenance. 
  <code>dct:title</code>, <code>dct:subject</code> and <code>dct:format</code> are descriptions of the resource <code>ex:doc1</code>. 
@@ -680,30 +690,35 @@
 <b>Provenance metadata</b>: available, contributor, created, creator, date, dateAccepted, dateCopyrighted,
  dateSubmitted, hasFormat, hasVersion, isFormatOf, isReferencedBy, isReplacedBy, issued, isVersionOf, license, modified,
  provenance, publisher, references, replaces, rightsHolder, rights, source, valid.
-</p><p>
-This is a conservative classification of provenance metadata. It can be argued that other elements contain 
-provenance information as well, depending on their usage in a concrete implementation or application.
+</p>
+-->
+<p>
+A classification of the <code>dct</code> terms is provided in <a href="#categories">Table 1</a>. This classification is by necessity
+somewhat conservative, as it can be argued that elements placed in the description metadata terms contain 
+provenance information as well, depending on their usage. Based on this, 25 (out of 55) terms can be considered as 
+provenance related. These terms can be further categorized according to the question they answer regarding the 
+provenance of a resource:
 </p><p>
-According to the proposed classification, there are 25 terms out of 55 that can be considered as provenance related.
- The terms can further be categorized according to the question they answer regarding the provenance of a resource:
-</p><p>
-<b>Who?</b> (contributor, creator, publisher, rightsHolder): Category that includes all properties that have <code>dct:Agent</code> as range,
- i.e., a resource that acts or has the power to act. The contributor, creator, and publisher clearly influence
- the resource and therefore are important for its origin. This is not immediately clear for the <code>dct:rightsHolder</code>,
- but as ownership is considered the important provenance information for many resources, like artworks, it is included in this category.
-</p><p>
-<b>When?</b> (available, created, date, dateAccepted, dateCopyrighted, dateSubmitted, issued, modified, valid):
+
+<b>Dates and Time terms (When?):</b>This category contains date and time related terms.
  Dates typically belong to the provenance record of a resource. It can be questioned whether a resource changes by
  being published or not. Depending on the application, however, the publication can be seen as an action that changes 
  the state of the resource. Two dates can be considered special regarding their relevance for
- provenance: available and valid. They are different from the other dates as by definition they can represent a
+ provenance: <code>dct:available</code> and <code>dct:valid</code>. They are different from the other dates as by definition they can represent a
  date range. Often, the range of availability or validity of a resource is inherent to the resource and known
  beforehand – consider the validity of a passport or the availability of a limited special offer published on the web.
  In these cases, there is no action involved that makes the resource invalid or unavailable, it is simply determined
  by the validity range. On the other hand, if an action is involved, e.g., a resource is declared invalid because
  a mistake has been found, then it is relevant for its provenance.
+ </p><p>
+ 
+<b>Agency Terms (Who?):</b> This category contains agent related terms. All properties that have <code>dct:Agent</code> as range,
+ i.e., a resource that acts or has the power to act. The <code>dct:contributor</code>, <code>dct:creator</code>, 
+ and <code>dct:publisher</code> clearly influence
+ the resource and therefore are important for its origin. This is not immediately clear for the <code>dct:rightsHolder</code>,
+ but as ownership is considered the important provenance information for many resources, like artworks, it is included in this category.
 </p><p>
-<b>How?</b> (isVersionOf, hasVersion, isFormatOf, hasFormat, references, isReferencedBy, replaces, isReplacedBy, source, rights, license):
+<b>Derivation Terms (How?):</b> This category contains derivation related terms.  
  Resources are often derived from other resources. In this case, the original resource becomes part of the provenance
  record of the derived resource. Derivations can be further classified as <code>dct:isVersionOf, dct:isFormatOf, dct:replaces, dct:source</code>.
   <code>dct:references</code> is a weaker relation, but it can be assumed that a referenced resource influenced the described resource
@@ -714,9 +729,9 @@
  between the resources involved. Finally, licensing and rights are considered part of the provenance of the resource as well, 
  since they restrict how the resource has been used by its owners.
 </p>
-<p>
+<!--<p>
 <a href="#categories">Table 1</a> summarizes the terms in their respective categories:
-</p>
+</p>-->
 <div id="categories" ALIGN="center">
  <table>
 	<caption> <a href="#categories"> Table 1:</a> Categorization of the Dublin Core Terms </caption>
@@ -769,7 +784,7 @@
  this definition may overlap partially with almost half of the DCMI terms, which
 specify concrete aspects of provenance of a resource.
 </p><p>
-In summary, the DCMI terms – and therefore any Dublin Core metadata record – hold a lot of provenance information and
+<!--In summary, the DCMI terms – and therefore any Dublin Core metadata record – hold a lot of provenance information and
  tell us about a resource, <i>when</i> it was affected in the past, <i>who</i> affected it and <i>how</i> it was affected.
  The other DCMI terms (description metadata), tell us <i>what</i> was affected. There is 
  no direct information in Dublin Core describing <i>where</i> a resource was affected. Such information is usually only available for the
@@ -777,6 +792,28 @@
  to this question, as it is a descriptive property that links a resource to the location referred to in its content, but not to the
  location where it was created, modified, issued or published. <!--– or even that it has ever been or is otherwise related to Berlin. <!--And finally, the question,
  why a resource was affected, lacks – apart from subtle hints from terms like replaces – as usual a satisfying answer. -->
+ An example of a simple metadata record annotated with <code>dct</code> terms can be seen below:
+</p><p>
+<a href="#example1">Example 1</a>: a simple metadata record:
+<pre class="example" id="example1">
+ ex:doc1 dct:title "A mapping from Dublin Core..." ;
+    dct:creator ex:kai, ex:daniel, ex:simon, ex:michael ;
+    dct:created "2012-02-28" ;
+    dct:publisher ex:w3c ;
+    dct:issued "2012-02-29" ;
+    dct:subject ex:dublincore ;
+    dct:replaces ex:doc2 ;
+    dct:format "HTML" .
+</pre>
+In <a href="#example1">Example 1</a>, <code>dct:title</code>, <code>dct:subject</code> and <code>dct:format</code> 
+are descriptions of the resource <code>ex:doc1</code>. 
+They do not provide any information on how the resource was created or modified in the past.
+ On the other hand, some statements imply provenance-related information. For example <code>dct:creator</code> 
+ implies that the document has been created and refers to an author. Similarly, the existence 
+ of the <code>dct:issued</code> date implies that the document has been published. This information is redundantly 
+ implied by the <code>dct:publisher</code> statement as well. Finally, <code>dct:replaces</code> relates 
+ the document to another document <code>ex:doc2</code> which had probably
+ some kind of influence on <code>ex:doc1</code>.
 </p>
 <h3 id ="namespaces">1.1 Namespaces</h3> 
 <p>The namespaces used through the document can be seen in <a href="#ns"> Table 2</a> below:
@@ -797,10 +834,10 @@
 <h2>2. Mapping from Dublin Core to PROV</h2>
 <p>A mapping between Dublin Core Terms and PROV-O has many advantages. First, it can provide valuable insights
  into the different characteristics of both data models (in particular it explains PROV from a Dublin Core point of view).
- Second, such a mapping can be used to extract PROV data from the huge amount of Dublin Core data that is available on 
- the Web today. Third, it can translate PROV data to Dublin Core and make it accessible for applications that
- understand Dublin Core. Last, but not least, it can lower the barrier to adopt PROV, as simple Dublin Core statements can be
- used as starting point to generate PROV data. </p>
+ Second, such a mapping can be used to extract PROV data from the large amount of Dublin Core data available on 
+ the Web today. Third, the mapping can translate PROV data to Dublin Core and make it accessible for applications that
+ understand Dublin Core. Finally, the mapping can lower the barrier to entry for PROV adoption. Simple Dublin Core 
+ statements can be used as starting point for PROV data generation. </p>
 <div id="basic" class="section">
 <h3>2.1 Basic considerations </h3>
 <p>
--- a/paq/prov-aq.html	Mon Nov 26 12:11:19 2012 +0000
+++ b/paq/prov-aq.html	Mon Nov 26 12:11:39 2012 +0000
@@ -88,7 +88,12 @@
             "Keith Alexander, Richard Cyganiak, Michael Hausenblas, Jun Zhao.  "+
             "<a href=\"http://www.w3.org/TR/void/\"><cite>Describing Linked Datasets with the VoID Vocabulary</cite></a>, "+
             "W3C Interest Group Note 03 March 2011, "+
-            "<a href=\"http://www.w3.org/TR/void/\">http://www.w3.org/TR/void/</a>"
+            "<a href=\"http://www.w3.org/TR/void/\">http://www.w3.org/TR/void/</a>",
+
+        "RDF-CONCEPTS11":
+          "Richard Cyganiak; David Wood; eds. " +
+          "<a href=\"http://www.w3.org/TR/rdf11-concepts/\"><cite>RDF 1.1 Concepts and Abstract Syntax</cite></a>. Working Draft. "+
+          "URL: <a href=\"http://www.w3.org/TR/rdf11-concepts/\">http://www.w3.org/TR/rdf11-concepts/</a>",
 
       };
       var respecConfig = {
@@ -373,6 +378,9 @@
       <p>
         When publishing provenance information, a corresponding <a class="internalDFN">provenance-URI</a> or <a class="internalDFN">service-URI</a> should be discoverable using one or more of the mechanisms described in <a href="#locating-provenance-information" class="sectionRef"></a>.
       </p>
+      <p>
+        Provenance may be presented as a <a href="/TR/prov-dm/#component4" class="externalRef">bundle</a>, which <cite>is a named set of provenance descriptions, and is itself an entity, so allowing provenance of provenance to be expressed</cite> [[PROV-DM]].  There is no requirement that a bundle identifier can be dereferenced to access the corresponding provenance, but where practical it is RECOMMENDED that matters be arranged so this is possible.  One possible realization of a bundle is that it is published as part of an RDF Dataset [[RDF-CONCEPTS11]] or similar composite structure. To access such a bundle would require accessing the RDF Dataset and then extracting the identified component; this in turn would require knowing a URI or some other way to retrieve the dataset.  This specification does not describe a specific mechanism for this; we anticipate that the W3C Linked Data Platform group (<a href="http://www.w3.org/2012/ldp/" class="externalRef">www.w3.org/2012/ldp/</a>) may address this topic in due course.
+      </p>
       <!--
       <p>
         Some alternative practices for accessing provenance information are discussed in <a href="#best-practice" class="sectionRef"></a>
@@ -681,6 +689,9 @@
         </p>
         <p>While use of RDF for service descriptions is a recommended option, this specification does not preclude the use of non-RDF formats that a service may choose to offer, and which can be selected using HTTP content negotiation.
         </p>
+        <p class="note">
+          We expect the presentation of service descriptions to be considered by the W3C Linked data Platform group (<a href="http://www.w3.org/2012/ldp/" class="externalRef">www.w3.org/2012/ldp/</a>);  at the time of writing, there is no consensus  (cf. message at <a href="http://lists.w3.org/Archives/Public/public-ldp/2012Nov/0036.html" class="externalRef">lists.w3.org/Archives/Public/public-ldp/2012Nov/0036.html</a> and responses).  As and when such consensus emerges, we recommend that provenance service implementers consider adopting it, or at least consider making their implementations compatible with it.
+        </p>
       </section>
 
     </section>
--- a/testcases/prov-dm/example_10_association.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-Examples of association between an activity and an agent are:
-    creation of a web page under the guidance of a designer;
-    various forms of participation in a panel discussion, including audience member, panelist, or panel chair;
-    a public event, sponsored by a company, and hosted by a museum;
--- a/testcases/prov-dm/example_11_delegation.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-A student publishing a web page describing an academic department could result in both the student and the department being agents associated with the activity. It may not matter which actual student published a web page, but it may matter significantly that the department told the student to put up the web page. 
\ No newline at end of file
--- a/testcases/prov-dm/example_12_association.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-An example of association between an activity and an agent involving a plan is: an XSLT transform (an activity) launched by a user (an agent) based on an XSL style sheet (a plan). 
\ No newline at end of file
--- a/testcases/prov-dm/example_13_identification.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-A service may read a same configuration file on two different occasions. Each usage can be identifed by its own identifier, allowing them to be distinguished. 
\ No newline at end of file
--- a/testcases/prov-dm/example_14_bundle.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-In a decision making situation, decision makers may be presented with the same piece of knowledge, issued by multiple sources. In order to validate this piece of knowledge, decision makers can consider its provenance, but also the provenance of its provenance, which may help determine whether it can be trusted. 
\ No newline at end of file
--- a/testcases/prov-dm/example_15_collection.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-An example of collection is an archive of documents. Each document has its own provenance, but the archive itself also has some provenance: who maintained it, which documents it contained at which point in time, how it was assembled, etc. 
\ No newline at end of file
--- a/testcases/prov-dm/example_16_provenance_notation.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
- An activity with identifier a1 and an attribute type with value createFile.
-
-activity(a1, [ prov:type="createFile" ])
-
-Two entities with identifiers e1 and e2.
-
-entity(e1)
-entity(e2)
-
-The activity a1 used e1, and e2 was generated by a1.
-
-used(a1, e1)
-wasGeneratedBy(e2, a1)
-
-The same descriptions, but with an explicit identifier u1 for the usage, and the syntactic marker '-' to mark the absence of identifier in the generation. Both are followed by ';'.
-
-used(u1; a1, e1)
-wasGeneratedBy(-; e2, a1)
--- a/testcases/prov-dm/example_17_entity.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-The following expression
-
-	entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version="2" ])
-
-states the existence of an entity, denoted by identifier tr:WD-prov-dm-20111215, with type document and version number 2. The attribute ex:version is application specific, whereas the attribute type (see Section 5.7.4.4) is reserved in the PROV namespace. 
-
-
--- a/testcases/prov-dm/example_18_acivity.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-The following expression
-
-	activity(a1, 2011-11-16T16:05:00, 2011-11-16T16:06:00,
-        [ ex:host="server.example.org", prov:type='ex:edit' ])
-
-states the existence of an activity with identifier a1, start time 2011-11-16T16:05:00, and end time 2011-11-16T16:06:00, running on host server.example.org, and of type edit. The attribute host is application specific (declared in some namespace with prefix ex). The attribute type is a reserved attribute of PROV-DM, allowing for sub-typing to be expressed (see Section 5.7.4.4).
-
-
--- a/testcases/prov-dm/example_19_generation.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
- The following expressions
-
-  wasGeneratedBy(e1, a1, 2001-10-26T21:32:52, [ ex:port="p1" ])
-  wasGeneratedBy(e2, a1, 2001-10-26T10:00:00, [ ex:port="p2" ])
-
-state the existence of two generations (with respective times 2001-10-26T21:32:52 and 2001-10-26T10:00:00), at which new entities, identified by e1 and e2, were created by an activity, identified by a1. The first one was available on port p1, whereas the other was available on port p2. The semantics of port are application specific. 
-
-
--- a/testcases/prov-dm/example_1_entity.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-An entity may be the document at IRI http://www.bbc.co.uk/news/science-environment-17526723, a file in a file system, a car, or an idea.
\ No newline at end of file
--- a/testcases/prov-dm/example_20_generation.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-In some cases, we may want to record the time at which an entity was generated without having to specify the activity that generated it. To support this requirement, the activity element in generation is optional. Hence, the following expression indicates the time at which an entity is generated, without naming the activity that did it.
-
-  wasGeneratedBy(e, -, 2001-10-26T21:32:52)
-
-
--- a/testcases/prov-dm/example_21_usage.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-The following usages
-
-  used(a1, e1, 2011-11-16T16:00:00, [ ex:parameter="p1" ])
-  used(a1, e2, 2011-11-16T16:00:01, [ ex:parameter="p2" ])
-
-state that the activity identified by a1 used two entities identified by e1 and e2, at times 2011-11-16T16:00:00 and 2011-11-16T16:00:01, respectively; the first one was found as the value of parameter p1, whereas the second was found as value of parameter p2. The semantics of parameter is application specific.
-
--- a/testcases/prov-dm/example_22_communication.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-Consider two activities a1 and a2, the former performed by a government agency, and the latter by a driver caught speeding.
-
-activity(a1, [ prov:type="traffic regulations enforcing" ])
-activity(a2, [ prov:type="fine paying" ])
-wasInformedBy(a2, a1)
-
-The last line indicates that some implicit entity was generated by a1 and used by a2; this entity may be a traffic ticket that had a notice of fine, amount, and payment mailing details. 
\ No newline at end of file
--- a/testcases/prov-dm/example_23_start.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-The following example contains the description of an activity a1 (a discussion), which was started at a specific time, and was triggered by an email message e1.
-
-entity(e1, [ prov:type="email message"] )
-activity(a1, [ prov:type="Discuss" ])
-wasStartedBy(a1, e1, -, 2011-11-16T16:05:00)
-
-Furthermore, if the message is also an input to the activity, this can be described as follows:
-
-used(a1, e1, -)
-
-Alternatively, one can also describe the activity that generated the email message.
-
-activity(a0, [ prov:type="Write" ])
-wasGeneratedBy(e1, a0)
-wasStartedBy(a1, e1, a0, 2011-11-16T16:05:00)
-
-If e1 is not known, it would also be valid to write:
-
-wasStartedBy(a1, -, a0, 2011-11-16T16:05:00)
--- a/testcases/prov-dm/example_24_start.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-In the following example, a race is started by a bang, and responsibility for this trigger is attributed to an agent ex:Bob.
-
-activity(ex:foot_race)
-entity(ex:bang)
-wasStartedBy(ex:foot_race, ex:bang, -, 2012-03-09T08:05:08-05:00)
-agent(ex:Bob)
-wasAttributedTo(ex:bang, ex:Bob)
--- a/testcases/prov-dm/example_25_start.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-In this example, filling the fuel tank was started as a consequence of observing low fuel. The trigger entity is unspecified, it could for instance have been the low fuel warning light, the fuel tank indicator needle position, or the engine not running properly.
-
-activity(ex:filling-fuel)
-activity(ex:observing-low-fuel)
-
-agent(ex:driver, [ prov:type='prov:Person'  )
-wasAssociatedWith(ex:filling-fuel, ex:driver)
-wasAssociatedWith(ex:observing-low-fuel, ex:driver)
-
-wasStartedBy(ex:filling-fuel, -, ex:observing-low-fuel, -)
-
--- a/testcases/prov-dm/example_26_end.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-The following example is a description of an activity a1 (editing) that was ended following an approval document e1.
-
-entity(e1, [ prov:type="approval document" ])
-activity(a1, [ prov:type="Editing" ])
-wasEndedBy(a1, e1)
--- a/testcases/prov-dm/example_27_invalidation.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-The Painter, a Picasso painting, is known to have been destroyed in a plane accident.
-
-entity(ex:The-Painter)
-agent(ex:Picasso)
-wasAttributedTo(ex:The-Painter, ex:Picasso)
-activity(ex:crash)
-wasInvalidatedBy(ex:The-Painter, ex:crash, 1998-09-03T01:31:00, [ ex:circumstances="plane accident" ])
--- a/testcases/prov-dm/example_28_invalidation.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-The BBC news home page on 2012-04-03 ex:bbcNews2012-04-03 contained a reference to a given news item bbc:news/uk-17595024, but the BBC news home page on the next day did not.
-
-entity(ex:bbcNews2012-04-03)
-hadMember(ex:bbcNews2012-04-03, bbc:news/uk-17595024)
-wasGeneratedBy  (ex:bbcNews2012-04-03, -, 2012-04-03T00:00:01)
-wasInvalidatedBy(ex:bbcNews2012-04-03, -, 2012-04-03T23:59:59)
-
-We refer to example Example 43 for further descriptions of the BBC Web site, and to Section 5.6.2 for a description of the relation hadMember. 
\ No newline at end of file
--- a/testcases/prov-dm/example_29_invalidation.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-In this example, the "buy one beer, get one free" offer expired at the end of the happy hour.
-
-entity(buy_one_beer_get_one_free_offer_during_happy_hour)
-wasAttributedTo(buy_one_beer_get_one_free_offer_during_happy_hour, proprietor)
-wasInvalidatedBy(buy_one_beer_get_one_free_offer_during_happy_hour,
-                 -,2012-03-10T18:00:00)
-
-In contrast, in the following descriptions, Bob redeemed the offer 45 minutes before it expired, and got two beers.
-
-entity(buy_one_beer_get_one_free_offer_during_happy_hour)
-wasAttributedTo(buy_one_beer_get_one_free_offer_during_happy_hour, proprietor)
-activity(redeemOffer)
-entity(twoBeers)
-
-wasAssociatedWith(redeemOffer, bob)
-used(redeemOffer,
-     buy_one_beer_get_one_free_offer_during_happy_hour, 
-     2012-03-10T17:15:00)
-wasInvalidatedBy(buy_one_beer_get_one_free_offer_during_happy_hour,
-                 redeemOffer,
-                 2012-03-10T17:15:00)
-wasGeneratedBy(twoBeers,redeemOffer)
-
-We see that the offer was both used to be converted into twoBeers and invalidated by the redeemOffer activity: in other words, the combined usage and invalidation indicate consumption of the offer.
\ No newline at end of file
--- a/testcases/prov-dm/example_2_activity.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-An activity may be the publishing of a document on the Web, sending a twitter message, extracting metadata embedded in a file, driving a car from Boston to Cambridge, assembling a data set based on a set of measurements, performing a statistical analysis over a data set, sorting news items according to some criteria, running a SPARQL query over a triple store, or editing a file.
\ No newline at end of file
--- a/testcases/prov-dm/example_30_derivation.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-The following descriptions are about derivations between e2 and e1, but no information is provided as to the identity of the activity (and usage and generation) underpinning the derivation. In the second line, a type attribute is also provided.
-
-wasDerivedFrom(e2, e1)
-wasDerivedFrom(e2, e1, [ prov:type="physical transform" ])
-
-The following description expresses that activity a, using the entity e1 according to usage u1, derived the entity e2 and generated it according to generation g2. It is followed by descriptions for generation g2 and usage u1.
-
-wasDerivedFrom(e2, e1, a, g2, u1)
-wasGeneratedBy(g2; e2, a, -)
-used(u1; a, e1, -)
-
-With such a comprehensive description of derivation, a program that analyzes provenance can identify the activity underpinning the derivation, it can identify how the preceding entity e1 was used by the activity (e.g. for instance, which argument it was passed as, if the activity is the result of a function invocation), and which output the derived entity e2 was obtained from (say, for a function returning multiple results).
\ No newline at end of file
--- a/testcases/prov-dm/example_31_revision.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-Revisiting the example of Section 4.2, we can now state that the report tr:WD-prov-dm-20111215 was a revision of the report tr:WD-prov-dm-20111018.
-
-entity(tr:WD-prov-dm-20111215, [ prov:type='rec54:WD'  ])
-entity(tr:WD-prov-dm-20111018, [ prov:type='rec54:WD'  ])
-wasDerivedFrom(tr:WD-prov-dm-20111215, 
-               tr:WD-prov-dm-20111018, 
-               [ prov:type='prov:Revision' ])
--- a/testcases/prov-dm/example_32_quotation.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-The following paragraph is a quote from one of the author's blogs.
-
-    "During the workshop, it became clear to me that the consensus based models (which are often graphical in nature) can not only be formalized but also be directly connected to these database focused formalizations. I just needed to get over the differences in syntax. This could imply that we could have nice way to trace provenance across systems and through databases and be able to understand the mathematical properties of this interconnection." 
-
-If wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/ denotes the original blog by agent ex:Paul, and dm:bl-dagstuhl denotes the above paragraph, then the following descriptions express that the above paragraph was copied by agent ex:Luc from a part of the blog, attributed to the agent ex:Paul.
-
-entity(wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/)
-entity(dm:bl-dagstuhl)
-agent(ex:Luc)
-agent(ex:Paul)
-wasDerivedFrom(dm:bl-dagstuhl,
-               wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/,
-               [ prov:type='prov:Quotation' ])
-wasAttributedTo(dm:bl-dagstuhl, ex:Luc)
-wasAttributedTo(wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/, ex:Paul)
--- a/testcases/prov-dm/example_33_primary_source.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-Let us consider Charles Joseph Minard's flow map of Napoleon's March in 1812, which was published in 1869. Although the map is not a primary source, Minard probably used the journal of Pierre-Irénée Jacob, pharmacist to Napoleon's army during the Russian campaign. This primary source relation can be encoded as follows.
-
-entity(ex:la-campagne-de-Russie-1812-1813, [ prov:type="map" ])
-entity(ex:revue-d-Histoire-de-la-Pharmacie-t-XVIII, [ prov:type="journal" ])
-wasDerivedFrom(ex:la-campagne-de-Russie-1812-1813,
-               ex:revue-d-Histoire-de-la-Pharmacie-t-XVIII,
-               [ prov:type='prov:PrimarySource' ])
--- a/testcases/prov-dm/example_34_agent.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-The following expression is about an agent identified by e1, which is a person, named Alice, with employee number 1234.
-
-agent(e1, [ex:employee="1234", ex:name="Alice", prov:type='prov:Person' ])
-
-It is optional to specify the type of an agent. When present, it is expressed using the prov:type attribute.
\ No newline at end of file
--- a/testcases/prov-dm/example_35_attribution.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-Revisiting the example of Section 4.1, we can ascribe tr:WD-prov-dm-20111215 to some agents without an explicit activity.
-
-agent(ex:Paolo, [ prov:type='prov:Person' ])
-agent(ex:Simon, [ prov:type='prov:Person' ])
-entity(tr:WD-prov-dm-20111215, [ prov:type='rec54:WD' ])
-wasAttributedTo(tr:WD-prov-dm-20111215, ex:Paolo, [ prov:type="editorship" ])
-wasAttributedTo(tr:WD-prov-dm-20111215, ex:Simon, [ prov:type="authorship" ])
--- a/testcases/prov-dm/example_36_association.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-In the following example, a designer agent and an operator agent are associated with an activity. The designer's goals are achieved by a workflow ex:wf, described as an entity of type plan.
-
-activity(ex:a, [ prov:type="workflow execution" ])
-agent(ex:ag1,  [ prov:type="operator" ])
-agent(ex:ag2,  [ prov:type="designer" ])
-wasAssociatedWith(ex:a, ex:ag1, -,     [ prov:role="loggedInUser", ex:how="webapp" ])
-wasAssociatedWith(ex:a, ex:ag2, ex:wf, [ prov:role="designer", ex:context="project1" ])
-entity(ex:wf, [ prov:type='prov:Plan' , 
-                ex:label="Workflow 1", 
-                prov:location="http://example.org/workflow1.bpel" %% xsd:anyURI ])
-
-Since the workflow ex:wf is itself an entity, its provenance can also be expressed in PROV: it can be generated by some activity and derived from other entities, for instance. 
\ No newline at end of file
--- a/testcases/prov-dm/example_37_association.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-In some cases, one wants to indicate a plan was followed, without having to specify which agent was involved.
-
-activity(ex:a, [ prov:type="workflow execution" ])
-wasAssociatedWith(ex:a, -, ex:wf)
-entity(ex:wf, [ prov:type='prov:Plan', 
-                ex:label="Workflow 1", 
-                ex:url="http://example.org/workflow1.bpel" %% xsd:anyURI])
-
-In this case, it is assumed that an agent exists, but it has not been specified. 
\ No newline at end of file
--- a/testcases/prov-dm/example_38_delegation.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-The following fragment describes three agents: a programmer, a researcher, and a funder. The programmer and researcher are associated with a workflow activity. The programmer acts on behalf of the researcher (line-management) encoding the commands specified by the researcher; the researcher acts on behalf of the funder, who has a contractual agreement with the researcher. The terms 'line-management' and 'contract' used in this example are domain specific.
-
-activity(a,[ prov:type="workflow" ])
-agent(ag1, [ prov:type="programmer" ])
-agent(ag2, [ prov:type="researcher" ])
-agent(ag3, [ prov:type="funder" ])
-wasAssociatedWith(a, ag1, [ prov:role="loggedInUser" ])
-wasAssociatedWith(a, ag2)
-wasAssociatedWith(a, ag3)
-actedOnBehalfOf(ag1, ag2, a, [ prov:type="line-management" ])
-actedOnBehalfOf(ag2, ag3, a, [ prov:type="contract" ])
--- a/testcases/prov-dm/example_39_influence.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-We refer to the example of Section 4.2, and specifically to Figure 3. We could have expressed that the influence of w3:Consortium on tr:WD-prov-dm-20111215.
-
- wasInfluencedBy(tr:WD-prov-dm-20111215, w3:Consortium)
-
-Instead, it is recommended to express the more specific description:
-
- wasAttributedTo(tr:WD-prov-dm-20111215, w3:Consortium)
--- a/testcases/prov-dm/example_3_usage.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Examples of generation are the completed creation of a file by a program, the completed creation of a linked data set, and the completed publication of a new version of a document. 
\ No newline at end of file
--- a/testcases/prov-dm/example_40_bundle.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-Let us consider two entities ex:report1 and ex:report2.
-
- 
-entity(ex:report1, [ prov:type="report", ex:version=1 ])
-wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01)
-entity(ex:report2, [ prov:type="report", ex:version=2])
-wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
-wasDerivedFrom(ex:report2, ex:report1)
-
-Let us assume that Bob observed the creation of ex:report1. A first bundle can be expressed.
-
- 
-bundle bob:bundle1
-  entity(ex:report1, [ prov:type="report", ex:version=1 ])
-  wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01)
-endBundle
-
-In contrast, Alice observed the creation of ex:report2 and its derivation from ex:report1. A separate bundle can also be expressed.
-
- 
-bundle alice:bundle2
-  entity(ex:report1)
-  entity(ex:report2, [ prov:type="report", ex:version=2 ])
-  wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
-  wasDerivedFrom(ex:report2, ex:report1)
-endBundle
-
-The first bundle contains the descriptions corresponding to Bob observing the creation of ex:report1. Its provenance can be described as follows.
-
- 
-entity(bob:bundle1, [ prov:type='prov:Bundle' ])
-wasGeneratedBy(bob:bundle1, -, 2012-05-24T10:30:00)
-wasAttributedTo(bob:bundle1, ex:Bob)
-
-In contrast, the second bundle is attributed to Alice who observed the derivation of ex:report2 from ex:report1.
-
- 
-entity(alice:bundle2, [ prov:type='prov:Bundle' ])
-wasGeneratedBy(alice:bundle2, -, 2012-05-25T11:15:00)
-wasAttributedTo(alice:bundle2, ex:Alice)
--- a/testcases/prov-dm/example_41_bundle.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-A provenance aggregator could merge two bundles, resulting in a novel bundle, whose provenance is described as follows.
-
- 
-bundle agg:bundle3
-  entity(ex:report1, [ prov:type="report", ex:version=1 ])
-  wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01)
-
-  entity(ex:report2, [ prov:type="report", ex:version=2 ])
-  wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
-  wasDerivedFrom(ex:report2, ex:report1)
-endBundle
-
-entity(agg:bundle3, [ prov:type='prov:Bundle' ])
-agent(ex:aggregator01, [ prov:type='ex:Aggregator' ])
-wasAttributedTo(agg:bundle3, ex:aggregator01)
-wasDerivedFrom(agg:bundle3, bob:bundle1)
-wasDerivedFrom(agg:bundle3, alice:bundle2)
-
-The new bundle is given a new identifier agg:bundle3 and is attributed to the ex:aggregator01 agent. 
\ No newline at end of file
--- a/testcases/prov-dm/example_42_alternate.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-User Alice writes an article. In its provenance, she wishes to refer to the precise version of the article with a date-specific IRI, as she might edit the article later. Alternatively, user Bob refers to the article in general, independently of its variants over time.
\ No newline at end of file
--- a/testcases/prov-dm/example_43_specialization.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-The BBC news home page on 2012-03-23 ex:bbcNews2012-03-23 is a specialization of the BBC news page in general bbc:news/. This can be expressed as follows.
-
-specializationOf(ex:bbcNews2012-03-23, bbc:news/)
-
-We have created a new qualified name, ex:bbcNews2012-03-23, in the namespace ex, to identify the specific page carrying this day's news, which would otherwise be the generic bbc:news/ page. 
\ No newline at end of file
--- a/testcases/prov-dm/example_44_alternate.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-A given news item on the BBC News site bbc:news/science-environment-17526723 for desktop is an alternate of a bbc:news/mobile/science-environment-17526723 for mobile devices.
-
-entity(bbc:news/science-environment-17526723, 
-       [ prov:type="a news item for desktop"])
-entity(bbc:news/mobile/science-environment-17526723, 
-       [ prov:type="a news item for mobile devices"])
-alternateOf(bbc:news/science-environment-17526723, 
-            bbc:news/mobile/science-environment-17526723)
--- a/testcases/prov-dm/example_45_alternate.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-Considering again the two versions of the technical report tr:WD-prov-dm-20111215 (second working draft) and tr:WD-prov-dm-20111018 (first working draft). They are alternates of each other.
-
-entity(tr:WD-prov-dm-20111018)
-entity(tr:WD-prov-dm-20111215)
-alternateOf(tr:WD-prov-dm-20111018, tr:WD-prov-dm-20111215)
-
-They are both specialization of the page http://www.w3.org/TR/prov-dm/.
\ No newline at end of file
--- a/testcases/prov-dm/example_46_collection.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-entity(c0, [ prov:type='prov:EmptyCollection' ])  // c0 is an empty collection
-entity(c1, [ prov:type='prov:Collection'  ])      // c1 is a collection, with unknown content
\ No newline at end of file
--- a/testcases/prov-dm/example_47_membership.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-In this example, c is a collection known to have e0, e1, and e2 as members, and may have other members.
-
-entity(e0)
-entity(e1)
-entity(e2)
-
-entity(c, [prov:type='prov:Collection'  ])      // c is a collection, with unknown content
-hadMember(c, e0)
-hadMember(c, e1)
-hadMember(c, e2)
--- a/testcases/prov-dm/example_48_label_attribute.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-The following entity is provided with a label attribute.
- 	entity(ex:e1, [ prov:label="This is a human-readable label" ])
-
-The following entity has two label attributes, in French and English.
- 	entity(ex:car01, [ prov:label="Voiture 01"@fr, prov:label="Car 01"@en ])
--- a/testcases/prov-dm/example_49_location_attribute.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-The following expression describes entity Mona Lisa, a painting, with a location attribute.
-	entity(ex:MonaLisa, [ prov:location="Le Louvre, Paris", prov:type="StillImage" ])
-
-The following expression describes a cell, at coordinates (5,5), with value 10.
-	entity(ex:cell, [ prov:location="(5,5)", prov:value="10" %% xsd:integer ])
--- a/testcases/prov-dm/example_4_usage.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Usage examples include a procedure beginning to consume an argument, a service starting to read a value on a port, a program beginning to read a configuration file, or the point at which an ingredient, such as eggs, is being added in a baking activity. Usage may entirely consume an entity (e.g. eggs are no longer available after being added to the mix); in contrast, the same entity may be used multiple times, possibly by different activities (e.g. a file on a file system can be read indefinitely). 
\ No newline at end of file
--- a/testcases/prov-dm/example_50_role_attribute.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-The following activity is associated with an agent acting as the operator.
-	wasAssociatedWith(a, ag, [ prov:role="operator" ])
-
-In the following expression, the activity ex:div01 used entity ex:cell in the role of divisor.
-	used(ex:div01, ex:cell, [ prov:role="divisor" ])
--- a/testcases/prov-dm/example_51_type_attribute.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-The following describes an agent of type software agent.
-	agent(ag, [ prov:type='prov:SoftwareAgent' ])
--- a/testcases/prov-dm/example_52_value_attribute.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-The following example illustrates the provenance of the number 4 obtained by an activity that computed the length of an input string "abcd". The input and the output are expressed as entities ex:in and ex:out, respectively. They each have a prov:value attribute associated with the corresponding value.
-
-entity(ex:in, [ prov:value="abcd" ]) 
-entity(ex:out, [ prov:value=4 ]) 
-activity(ex:len, [ prov:type="string-length" ])
-used(ex:len, ex:in)
-wasGeneratedBy(ex:out, ex:len)
-wasDerivedFrom(ex:out, ex:in)
--- a/testcases/prov-dm/example_53_value_attribute.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-Example 52 illustrates an entity with a given value 4. This examples shows that another entity with the same value may be computed differently (by an addition).
-
-entity(ex:in1, [ prov:value=3 ]) 
-entity(ex:in2, [ prov:value=1 ]) 
-entity(ex:out2, [ prov:value=4 ])      // ex:out2 also has value 4
-activity(ex:add1, [ prov:type="addition" ])
-used(ex:add1, ex:in1)
-used(ex:add1, ex:in2)
-wasGeneratedBy(ex:out2, ex:add1)
--- a/testcases/prov-dm/example_54_value.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-The following examples respectively are the string "abc", the integer number 1, and the IRI "http://example.org/foo".
-	"abc"
-	"1" %% xsd:integer
-	"http://example.org/foo" %% xsd:anyURI
-
-The following example shows a value of type prov:QUALIFIED_NAME (see prov:QUALIFIED_NAME [PROV-N]). The prefix ex must be bound to a namespace declared in a namespace declaration.
-	"ex:value" %% prov:QUALIFIED_NAME
-
-Alternatively, the same value can be expressed using the following convenience notation.
-	'ex:value'
--- a/testcases/prov-dm/example_55_value_time_instant.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-In the following example, the generation time of entity e1 is expressed according to xsd:dateTime [XMLSCHEMA11-2].
-	wasGeneratedBy(e1,a1, 2001-10-26T21:32:52)
--- a/testcases/prov-dm/example_56_extensibility_points.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-In the following example, e2 is a translation of e1, expressed as a sub-type of derivation.
-	wasDerivedFrom(e2,e1, [prov:type='ex:Translation' ])
--- a/testcases/prov-dm/example_57_extensibility_points.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-In the following example, e is described as a Car, a type of entity.
-	entity(e, [prov:type='ex:Car' ])
--- a/testcases/prov-dm/example_58_extensibility_points.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-In the following example, two computers ex:laptop4 and ex:desktop9 are used in different roles in a work activity.
- 
-  activity(ex:work)
-  entity(ex:laptop4)
-  entity(ex:desktop9)
-  used(ex:work, ex:laptop4,  [prov:role="day-to-day machine"])
-  used(ex:work, ex:desktop9, [prov:role="backup machine"])
--- a/testcases/prov-dm/example_5_usage.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Let us consider the activity of driving a car from Boston to Cambridge. One might reasonably ask what entities are used and generated by this activity. This is answered by considering that a single artifact may correspond to several entities; in this case, a car in Boston may be a different entity from the same car in Cambridge. Thus, among other things, an entity "car in Boston" would be used, and a new entity "car in Cambridge" would be generated by this activity of driving. The provenance trace of the car might include: designed in Japan, manufactured in Korea, shipped to Boston USA, purchased by customer, driven to Cambridge, serviced by engineer in Cambridge, etc., all of which might be important information when deciding whether or not it represents a sensible second-hand purchase. Or some of it might alternatively be relevant when trying to determine the truth of a web page reporting a traffic violation involving that car. This breadth of provenance allows descriptions of interactions between physical and digital artifacts. 
\ No newline at end of file
--- a/testcases/prov-dm/example_6_communication.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-The activity of writing a celebrity article was informed by (a communication instance) the activity of intercepting voicemails. 
\ No newline at end of file
--- a/testcases/prov-dm/example_7_derivation.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Examples of derivation include the transformation of a relational table into a linked data set, the transformation of a canvas into a painting, the transportation of a work of art from London to New York, and a physical transformation such as the melting of ice into water.
\ No newline at end of file
--- a/testcases/prov-dm/example_8_agent.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Software for checking the use of grammar in a document may be defined as an agent of a document preparation activity; one can also describe its provenance, including for instance the vendor and the version history. A site selling books on the Web, the services involved in the processing of orders, and the companies hosting them are also agents. 
\ No newline at end of file
--- a/testcases/prov-dm/example_9_attribution.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-A blog post can be attributed to an author, a mobile phone to its manufacturer.
\ No newline at end of file
--- a/testcases/prov-dm/example_author_view.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-There was a document tr:WD-prov-dm-20111215, which from the author's perspective was a document in its second version.
-    entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version="2" ])
-
-There was an editing activity.
-    activity(ex:edit1, [ prov:type="edit" ])
-
-The document was generated by the editing activity: this was a Generation. Its time is not specified, hence, the marker '-'.
-    wasGeneratedBy(tr:WD-prov-dm-20111215, ex:edit1, -)
-
-There were some agents.
-    agent(ex:Paolo, [ prov:type='prov:Person' ])
-    agent(ex:Simon, [ prov:type='prov:Person' ])
-
-Agents were assigned various responsibilities in the editing activity: contributor and editor. The plan the agent relied upon is not specified, hence, the marker '-'.
-    wasAssociatedWith(ex:edit1, ex:Paolo, -, [ prov:role="editor" ])
-    wasAssociatedWith(ex:edit1, ex:Simon, -, [ prov:role="contributor" ])
-
--- a/testcases/prov-dm/example_process_view.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-There was a document, a working draft (rec54:WD), which is an entity so that we can describe its provenance. Similar descriptions exist for all entities.
-	entity(tr:WD-prov-dm-20111215, [ prov:type='rec54:WD' ])
-
-There was a publication activity.
-	activity(ex:act2, [ prov:type="publish" ])
-
-The document was generated by the publication activity: this was a Generation. Its time is not specified, hence, the marker '-'.
-	wasGeneratedBy(tr:WD-prov-dm-20111215, ex:act2, -)
-
-The second draft of the document was derived from the first draft: this was a Derivation.
-	wasDerivedFrom(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018)
-
-The activity required a publication request: this was a Usage. Its time is not specified, hence, the marker '-'.
-	used(ex:act2, email:2011Dec/0111, -)
-
-The activity was associated with the Consortium agent, and proceeded according to its publication policy: this is an Association.
-	wasAssociatedWith(ex:act2, w3:Consortium, process:rec-advance)
-
-
--- a/testcases/prov-dm/example_provenance_attribution.txt	Mon Nov 26 12:11:19 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-PROV-DM offers a construct to name a bundle of provenance descriptions (full details: ex:author-view).
-
-bundle ex:author-view
-
-  agent(ex:Paolo,   [ prov:type='prov:Person' ])
-  agent(ex:Simon,   [ prov:type='prov:Person' ])
-
-
-...
-
-endBundle
-
-Likewise, the process view can be expressed as a separate named bundle (full details: ex:process-view).
-
-bundle ex:process-view
-
-   agent(w3:Consortium, [ prov:type='prov:Organization' ])
-
-...
-
-endBundle
-
-To express their respective provenance, these bundles must be seen as entities, and all PROV constructs are now available to express their provenance. In the example below, ex:author-view is attributed to the agent ex:Simon, whereas ex:process-view to w3:Consortium.
-
-entity(ex:author-view, [ prov:type='prov:Bundle' ])
-wasAttributedTo(ex:author-view, ex:Simon)
-
-entity(ex:process-view, [ prov:type='prov:Bundle' ])
-wasAttributedTo(ex:process-view, w3:Consortium)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex10_association-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,4 @@
+Examples of association between an activity and an agent are:
+    creation of a web page under the guidance of a designer;
+    various forms of participation in a panel discussion, including audience member, panelist, or panel chair;
+    a public event, sponsored by a company, and hosted by a museum;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex11_delegation-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+A student publishing a web page describing an academic department could result in both the student and the department being agents associated with the activity. It may not matter which actual student published a web page, but it may matter significantly that the department told the student to put up the web page. 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex12_association-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+An example of association between an activity and an agent involving a plan is: an XSLT transform (an activity) launched by a user (an agent) based on an XSL style sheet (a plan). 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex13_identification-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+A service may read a same configuration file on two different occasions. Each usage can be identifed by its own identifier, allowing them to be distinguished. 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex14_bundle-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+In a decision making situation, decision makers may be presented with the same piece of knowledge, issued by multiple sources. In order to validate this piece of knowledge, decision makers can consider its provenance, but also the provenance of its provenance, which may help determine whether it can be trusted. 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex15_collection-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+An example of collection is an archive of documents. Each document has its own provenance, but the archive itself also has some provenance: who maintained it, which documents it contained at which point in time, how it was assembled, etc. 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex16_provenance_notation-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,18 @@
+ An activity with identifier a1 and an attribute type with value createFile.
+
+activity(a1, [ prov:type="createFile" ])
+
+Two entities with identifiers e1 and e2.
+
+entity(e1)
+entity(e2)
+
+The activity a1 used e1, and e2 was generated by a1.
+
+used(a1, e1)
+wasGeneratedBy(e2, a1)
+
+The same descriptions, but with an explicit identifier u1 for the usage, and the syntactic marker '-' to mark the absence of identifier in the generation. Both are followed by ';'.
+
+used(u1; a1, e1)
+wasGeneratedBy(-; e2, a1)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex17_entity-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,7 @@
+The following expression
+
+	entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version="2" ])
+
+states the existence of an entity, denoted by identifier tr:WD-prov-dm-20111215, with type document and version number 2. The attribute ex:version is application specific, whereas the attribute type (see Section 5.7.4.4) is reserved in the PROV namespace. 
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex18_acivity-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,8 @@
+The following expression
+
+	activity(a1, 2011-11-16T16:05:00, 2011-11-16T16:06:00,
+        [ ex:host="server.example.org", prov:type='ex:edit' ])
+
+states the existence of an activity with identifier a1, start time 2011-11-16T16:05:00, and end time 2011-11-16T16:06:00, running on host server.example.org, and of type edit. The attribute host is application specific (declared in some namespace with prefix ex). The attribute type is a reserved attribute of PROV-DM, allowing for sub-typing to be expressed (see Section 5.7.4.4).
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex19_generation-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,8 @@
+ The following expressions
+
+  wasGeneratedBy(e1, a1, 2001-10-26T21:32:52, [ ex:port="p1" ])
+  wasGeneratedBy(e2, a1, 2001-10-26T10:00:00, [ ex:port="p2" ])
+
+state the existence of two generations (with respective times 2001-10-26T21:32:52 and 2001-10-26T10:00:00), at which new entities, identified by e1 and e2, were created by an activity, identified by a1. The first one was available on port p1, whereas the other was available on port p2. The semantics of port are application specific. 
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex1_entity-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+An entity may be the document at IRI http://www.bbc.co.uk/news/science-environment-17526723, a file in a file system, a car, or an idea.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex20_generation-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,5 @@
+In some cases, we may want to record the time at which an entity was generated without having to specify the activity that generated it. To support this requirement, the activity element in generation is optional. Hence, the following expression indicates the time at which an entity is generated, without naming the activity that did it.
+
+  wasGeneratedBy(e, -, 2001-10-26T21:32:52)
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex21_usage-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,7 @@
+The following usages
+
+  used(a1, e1, 2011-11-16T16:00:00, [ ex:parameter="p1" ])
+  used(a1, e2, 2011-11-16T16:00:01, [ ex:parameter="p2" ])
+
+state that the activity identified by a1 used two entities identified by e1 and e2, at times 2011-11-16T16:00:00 and 2011-11-16T16:00:01, respectively; the first one was found as the value of parameter p1, whereas the second was found as value of parameter p2. The semantics of parameter is application specific.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex22_communication-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,7 @@
+Consider two activities a1 and a2, the former performed by a government agency, and the latter by a driver caught speeding.
+
+activity(a1, [ prov:type="traffic regulations enforcing" ])
+activity(a2, [ prov:type="fine paying" ])
+wasInformedBy(a2, a1)
+
+The last line indicates that some implicit entity was generated by a1 and used by a2; this entity may be a traffic ticket that had a notice of fine, amount, and payment mailing details. 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex23_start-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,19 @@
+The following example contains the description of an activity a1 (a discussion), which was started at a specific time, and was triggered by an email message e1.
+
+entity(e1, [ prov:type="email message"] )
+activity(a1, [ prov:type="Discuss" ])
+wasStartedBy(a1, e1, -, 2011-11-16T16:05:00)
+
+Furthermore, if the message is also an input to the activity, this can be described as follows:
+
+used(a1, e1, -)
+
+Alternatively, one can also describe the activity that generated the email message.
+
+activity(a0, [ prov:type="Write" ])
+wasGeneratedBy(e1, a0)
+wasStartedBy(a1, e1, a0, 2011-11-16T16:05:00)
+
+If e1 is not known, it would also be valid to write:
+
+wasStartedBy(a1, -, a0, 2011-11-16T16:05:00)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex24_start-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,7 @@
+In the following example, a race is started by a bang, and responsibility for this trigger is attributed to an agent ex:Bob.
+
+activity(ex:foot_race)
+entity(ex:bang)
+wasStartedBy(ex:foot_race, ex:bang, -, 2012-03-09T08:05:08-05:00)
+agent(ex:Bob)
+wasAttributedTo(ex:bang, ex:Bob)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex25_start-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,11 @@
+In this example, filling the fuel tank was started as a consequence of observing low fuel. The trigger entity is unspecified, it could for instance have been the low fuel warning light, the fuel tank indicator needle position, or the engine not running properly.
+
+activity(ex:filling-fuel)
+activity(ex:observing-low-fuel)
+
+agent(ex:driver, [ prov:type='prov:Person'  )
+wasAssociatedWith(ex:filling-fuel, ex:driver)
+wasAssociatedWith(ex:observing-low-fuel, ex:driver)
+
+wasStartedBy(ex:filling-fuel, -, ex:observing-low-fuel, -)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex26_end-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,5 @@
+The following example is a description of an activity a1 (editing) that was ended following an approval document e1.
+
+entity(e1, [ prov:type="approval document" ])
+activity(a1, [ prov:type="Editing" ])
+wasEndedBy(a1, e1)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex27_invalidation-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,7 @@
+The Painter, a Picasso painting, is known to have been destroyed in a plane accident.
+
+entity(ex:The-Painter)
+agent(ex:Picasso)
+wasAttributedTo(ex:The-Painter, ex:Picasso)
+activity(ex:crash)
+wasInvalidatedBy(ex:The-Painter, ex:crash, 1998-09-03T01:31:00, [ ex:circumstances="plane accident" ])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex28_invalidation-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,8 @@
+The BBC news home page on 2012-04-03 ex:bbcNews2012-04-03 contained a reference to a given news item bbc:news/uk-17595024, but the BBC news home page on the next day did not.
+
+entity(ex:bbcNews2012-04-03)
+hadMember(ex:bbcNews2012-04-03, bbc:news/uk-17595024)
+wasGeneratedBy  (ex:bbcNews2012-04-03, -, 2012-04-03T00:00:01)
+wasInvalidatedBy(ex:bbcNews2012-04-03, -, 2012-04-03T23:59:59)
+
+We refer to example Example 43 for further descriptions of the BBC Web site, and to Section 5.6.2 for a description of the relation hadMember. 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex29_invalidation-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,24 @@
+In this example, the "buy one beer, get one free" offer expired at the end of the happy hour.
+
+entity(buy_one_beer_get_one_free_offer_during_happy_hour)
+wasAttributedTo(buy_one_beer_get_one_free_offer_during_happy_hour, proprietor)
+wasInvalidatedBy(buy_one_beer_get_one_free_offer_during_happy_hour,
+                 -,2012-03-10T18:00:00)
+
+In contrast, in the following descriptions, Bob redeemed the offer 45 minutes before it expired, and got two beers.
+
+entity(buy_one_beer_get_one_free_offer_during_happy_hour)
+wasAttributedTo(buy_one_beer_get_one_free_offer_during_happy_hour, proprietor)
+activity(redeemOffer)
+entity(twoBeers)
+
+wasAssociatedWith(redeemOffer, bob)
+used(redeemOffer,
+     buy_one_beer_get_one_free_offer_during_happy_hour, 
+     2012-03-10T17:15:00)
+wasInvalidatedBy(buy_one_beer_get_one_free_offer_during_happy_hour,
+                 redeemOffer,
+                 2012-03-10T17:15:00)
+wasGeneratedBy(twoBeers,redeemOffer)
+
+We see that the offer was both used to be converted into twoBeers and invalidated by the redeemOffer activity: in other words, the combined usage and invalidation indicate consumption of the offer.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex2_activity-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+An activity may be the publishing of a document on the Web, sending a twitter message, extracting metadata embedded in a file, driving a car from Boston to Cambridge, assembling a data set based on a set of measurements, performing a statistical analysis over a data set, sorting news items according to some criteria, running a SPARQL query over a triple store, or editing a file.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex30_derivation-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,12 @@
+The following descriptions are about derivations between e2 and e1, but no information is provided as to the identity of the activity (and usage and generation) underpinning the derivation. In the second line, a type attribute is also provided.
+
+wasDerivedFrom(e2, e1)
+wasDerivedFrom(e2, e1, [ prov:type="physical transform" ])
+
+The following description expresses that activity a, using the entity e1 according to usage u1, derived the entity e2 and generated it according to generation g2. It is followed by descriptions for generation g2 and usage u1.
+
+wasDerivedFrom(e2, e1, a, g2, u1)
+wasGeneratedBy(g2; e2, a, -)
+used(u1; a, e1, -)
+
+With such a comprehensive description of derivation, a program that analyzes provenance can identify the activity underpinning the derivation, it can identify how the preceding entity e1 was used by the activity (e.g. for instance, which argument it was passed as, if the activity is the result of a function invocation), and which output the derived entity e2 was obtained from (say, for a function returning multiple results).
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex31_revision-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,7 @@
+Revisiting the example of Section 4.2, we can now state that the report tr:WD-prov-dm-20111215 was a revision of the report tr:WD-prov-dm-20111018.
+
+entity(tr:WD-prov-dm-20111215, [ prov:type='rec54:WD'  ])
+entity(tr:WD-prov-dm-20111018, [ prov:type='rec54:WD'  ])
+wasDerivedFrom(tr:WD-prov-dm-20111215, 
+               tr:WD-prov-dm-20111018, 
+               [ prov:type='prov:Revision' ])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex32_quotation-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,15 @@
+The following paragraph is a quote from one of the author's blogs.
+
+    "During the workshop, it became clear to me that the consensus based models (which are often graphical in nature) can not only be formalized but also be directly connected to these database focused formalizations. I just needed to get over the differences in syntax. This could imply that we could have nice way to trace provenance across systems and through databases and be able to understand the mathematical properties of this interconnection." 
+
+If wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/ denotes the original blog by agent ex:Paul, and dm:bl-dagstuhl denotes the above paragraph, then the following descriptions express that the above paragraph was copied by agent ex:Luc from a part of the blog, attributed to the agent ex:Paul.
+
+entity(wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/)
+entity(dm:bl-dagstuhl)
+agent(ex:Luc)
+agent(ex:Paul)
+wasDerivedFrom(dm:bl-dagstuhl,
+               wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/,
+               [ prov:type='prov:Quotation' ])
+wasAttributedTo(dm:bl-dagstuhl, ex:Luc)
+wasAttributedTo(wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/, ex:Paul)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex33_primary_source-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,7 @@
+Let us consider Charles Joseph Minard's flow map of Napoleon's March in 1812, which was published in 1869. Although the map is not a primary source, Minard probably used the journal of Pierre-Irénée Jacob, pharmacist to Napoleon's army during the Russian campaign. This primary source relation can be encoded as follows.
+
+entity(ex:la-campagne-de-Russie-1812-1813, [ prov:type="map" ])
+entity(ex:revue-d-Histoire-de-la-Pharmacie-t-XVIII, [ prov:type="journal" ])
+wasDerivedFrom(ex:la-campagne-de-Russie-1812-1813,
+               ex:revue-d-Histoire-de-la-Pharmacie-t-XVIII,
+               [ prov:type='prov:PrimarySource' ])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex34_agent-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,5 @@
+The following expression is about an agent identified by e1, which is a person, named Alice, with employee number 1234.
+
+agent(e1, [ex:employee="1234", ex:name="Alice", prov:type='prov:Person' ])
+
+It is optional to specify the type of an agent. When present, it is expressed using the prov:type attribute.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex35_attribution-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,7 @@
+Revisiting the example of Section 4.1, we can ascribe tr:WD-prov-dm-20111215 to some agents without an explicit activity.
+
+agent(ex:Paolo, [ prov:type='prov:Person' ])
+agent(ex:Simon, [ prov:type='prov:Person' ])
+entity(tr:WD-prov-dm-20111215, [ prov:type='rec54:WD' ])
+wasAttributedTo(tr:WD-prov-dm-20111215, ex:Paolo, [ prov:type="editorship" ])
+wasAttributedTo(tr:WD-prov-dm-20111215, ex:Simon, [ prov:type="authorship" ])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex36_association-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,12 @@
+In the following example, a designer agent and an operator agent are associated with an activity. The designer's goals are achieved by a workflow ex:wf, described as an entity of type plan.
+
+activity(ex:a, [ prov:type="workflow execution" ])
+agent(ex:ag1,  [ prov:type="operator" ])
+agent(ex:ag2,  [ prov:type="designer" ])
+wasAssociatedWith(ex:a, ex:ag1, -,     [ prov:role="loggedInUser", ex:how="webapp" ])
+wasAssociatedWith(ex:a, ex:ag2, ex:wf, [ prov:role="designer", ex:context="project1" ])
+entity(ex:wf, [ prov:type='prov:Plan' , 
+                ex:label="Workflow 1", 
+                prov:location="http://example.org/workflow1.bpel" %% xsd:anyURI ])
+
+Since the workflow ex:wf is itself an entity, its provenance can also be expressed in PROV: it can be generated by some activity and derived from other entities, for instance. 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex37_association-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,9 @@
+In some cases, one wants to indicate a plan was followed, without having to specify which agent was involved.
+
+activity(ex:a, [ prov:type="workflow execution" ])
+wasAssociatedWith(ex:a, -, ex:wf)
+entity(ex:wf, [ prov:type='prov:Plan', 
+                ex:label="Workflow 1", 
+                ex:url="http://example.org/workflow1.bpel" %% xsd:anyURI])
+
+In this case, it is assumed that an agent exists, but it has not been specified. 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex38_delegation-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,11 @@
+The following fragment describes three agents: a programmer, a researcher, and a funder. The programmer and researcher are associated with a workflow activity. The programmer acts on behalf of the researcher (line-management) encoding the commands specified by the researcher; the researcher acts on behalf of the funder, who has a contractual agreement with the researcher. The terms 'line-management' and 'contract' used in this example are domain specific.
+
+activity(a,[ prov:type="workflow" ])
+agent(ag1, [ prov:type="programmer" ])
+agent(ag2, [ prov:type="researcher" ])
+agent(ag3, [ prov:type="funder" ])
+wasAssociatedWith(a, ag1, [ prov:role="loggedInUser" ])
+wasAssociatedWith(a, ag2)
+wasAssociatedWith(a, ag3)
+actedOnBehalfOf(ag1, ag2, a, [ prov:type="line-management" ])
+actedOnBehalfOf(ag2, ag3, a, [ prov:type="contract" ])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex39_influence-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,7 @@
+We refer to the example of Section 4.2, and specifically to Figure 3. We could have expressed that the influence of w3:Consortium on tr:WD-prov-dm-20111215.
+
+ wasInfluencedBy(tr:WD-prov-dm-20111215, w3:Consortium)
+
+Instead, it is recommended to express the more specific description:
+
+ wasAttributedTo(tr:WD-prov-dm-20111215, w3:Consortium)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex3_usage-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+Examples of generation are the completed creation of a file by a program, the completed creation of a linked data set, and the completed publication of a new version of a document. 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex40_bundle-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,40 @@
+Let us consider two entities ex:report1 and ex:report2.
+
+ 
+entity(ex:report1, [ prov:type="report", ex:version=1 ])
+wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01)
+entity(ex:report2, [ prov:type="report", ex:version=2])
+wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
+wasDerivedFrom(ex:report2, ex:report1)
+
+Let us assume that Bob observed the creation of ex:report1. A first bundle can be expressed.
+
+ 
+bundle bob:bundle1
+  entity(ex:report1, [ prov:type="report", ex:version=1 ])
+  wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01)
+endBundle
+
+In contrast, Alice observed the creation of ex:report2 and its derivation from ex:report1. A separate bundle can also be expressed.
+
+ 
+bundle alice:bundle2
+  entity(ex:report1)
+  entity(ex:report2, [ prov:type="report", ex:version=2 ])
+  wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
+  wasDerivedFrom(ex:report2, ex:report1)
+endBundle
+
+The first bundle contains the descriptions corresponding to Bob observing the creation of ex:report1. Its provenance can be described as follows.
+
+ 
+entity(bob:bundle1, [ prov:type='prov:Bundle' ])
+wasGeneratedBy(bob:bundle1, -, 2012-05-24T10:30:00)
+wasAttributedTo(bob:bundle1, ex:Bob)
+
+In contrast, the second bundle is attributed to Alice who observed the derivation of ex:report2 from ex:report1.
+
+ 
+entity(alice:bundle2, [ prov:type='prov:Bundle' ])
+wasGeneratedBy(alice:bundle2, -, 2012-05-25T11:15:00)
+wasAttributedTo(alice:bundle2, ex:Alice)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex41_bundle-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,19 @@
+A provenance aggregator could merge two bundles, resulting in a novel bundle, whose provenance is described as follows.
+
+ 
+bundle agg:bundle3
+  entity(ex:report1, [ prov:type="report", ex:version=1 ])
+  wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01)
+
+  entity(ex:report2, [ prov:type="report", ex:version=2 ])
+  wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01)
+  wasDerivedFrom(ex:report2, ex:report1)
+endBundle
+
+entity(agg:bundle3, [ prov:type='prov:Bundle' ])
+agent(ex:aggregator01, [ prov:type='ex:Aggregator' ])
+wasAttributedTo(agg:bundle3, ex:aggregator01)
+wasDerivedFrom(agg:bundle3, bob:bundle1)
+wasDerivedFrom(agg:bundle3, alice:bundle2)
+
+The new bundle is given a new identifier agg:bundle3 and is attributed to the ex:aggregator01 agent. 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex42_alternate-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+User Alice writes an article. In its provenance, she wishes to refer to the precise version of the article with a date-specific IRI, as she might edit the article later. Alternatively, user Bob refers to the article in general, independently of its variants over time.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex43_specialization-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,5 @@
+The BBC news home page on 2012-03-23 ex:bbcNews2012-03-23 is a specialization of the BBC news page in general bbc:news/. This can be expressed as follows.
+
+specializationOf(ex:bbcNews2012-03-23, bbc:news/)
+
+We have created a new qualified name, ex:bbcNews2012-03-23, in the namespace ex, to identify the specific page carrying this day's news, which would otherwise be the generic bbc:news/ page. 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex44_alternate-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,8 @@
+A given news item on the BBC News site bbc:news/science-environment-17526723 for desktop is an alternate of a bbc:news/mobile/science-environment-17526723 for mobile devices.
+
+entity(bbc:news/science-environment-17526723, 
+       [ prov:type="a news item for desktop"])
+entity(bbc:news/mobile/science-environment-17526723, 
+       [ prov:type="a news item for mobile devices"])
+alternateOf(bbc:news/science-environment-17526723, 
+            bbc:news/mobile/science-environment-17526723)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex45_alternate-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,7 @@
+Considering again the two versions of the technical report tr:WD-prov-dm-20111215 (second working draft) and tr:WD-prov-dm-20111018 (first working draft). They are alternates of each other.
+
+entity(tr:WD-prov-dm-20111018)
+entity(tr:WD-prov-dm-20111215)
+alternateOf(tr:WD-prov-dm-20111018, tr:WD-prov-dm-20111215)
+
+They are both specialization of the page http://www.w3.org/TR/prov-dm/.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex46_collection-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,2 @@
+entity(c0, [ prov:type='prov:EmptyCollection' ])  // c0 is an empty collection
+entity(c1, [ prov:type='prov:Collection'  ])      // c1 is a collection, with unknown content
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex47_membership-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,10 @@
+In this example, c is a collection known to have e0, e1, and e2 as members, and may have other members.
+
+entity(e0)
+entity(e1)
+entity(e2)
+
+entity(c, [prov:type='prov:Collection'  ])      // c is a collection, with unknown content
+hadMember(c, e0)
+hadMember(c, e1)
+hadMember(c, e2)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex48_label_attribute-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,5 @@
+The following entity is provided with a label attribute.
+ 	entity(ex:e1, [ prov:label="This is a human-readable label" ])
+
+The following entity has two label attributes, in French and English.
+ 	entity(ex:car01, [ prov:label="Voiture 01"@fr, prov:label="Car 01"@en ])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex49_location_attribute-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,5 @@
+The following expression describes entity Mona Lisa, a painting, with a location attribute.
+	entity(ex:MonaLisa, [ prov:location="Le Louvre, Paris", prov:type="StillImage" ])
+
+The following expression describes a cell, at coordinates (5,5), with value 10.
+	entity(ex:cell, [ prov:location="(5,5)", prov:value="10" %% xsd:integer ])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex4_usage-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+Usage examples include a procedure beginning to consume an argument, a service starting to read a value on a port, a program beginning to read a configuration file, or the point at which an ingredient, such as eggs, is being added in a baking activity. Usage may entirely consume an entity (e.g. eggs are no longer available after being added to the mix); in contrast, the same entity may be used multiple times, possibly by different activities (e.g. a file on a file system can be read indefinitely). 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex50_role_attribute-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,5 @@
+The following activity is associated with an agent acting as the operator.
+	wasAssociatedWith(a, ag, [ prov:role="operator" ])
+
+In the following expression, the activity ex:div01 used entity ex:cell in the role of divisor.
+	used(ex:div01, ex:cell, [ prov:role="divisor" ])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex51_type_attribute-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,2 @@
+The following describes an agent of type software agent.
+	agent(ag, [ prov:type='prov:SoftwareAgent' ])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex52_value_attribute-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,8 @@
+The following example illustrates the provenance of the number 4 obtained by an activity that computed the length of an input string "abcd". The input and the output are expressed as entities ex:in and ex:out, respectively. They each have a prov:value attribute associated with the corresponding value.
+
+entity(ex:in, [ prov:value="abcd" ]) 
+entity(ex:out, [ prov:value=4 ]) 
+activity(ex:len, [ prov:type="string-length" ])
+used(ex:len, ex:in)
+wasGeneratedBy(ex:out, ex:len)
+wasDerivedFrom(ex:out, ex:in)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex53_value_attribute-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,9 @@
+Example 52 illustrates an entity with a given value 4. This examples shows that another entity with the same value may be computed differently (by an addition).
+
+entity(ex:in1, [ prov:value=3 ]) 
+entity(ex:in2, [ prov:value=1 ]) 
+entity(ex:out2, [ prov:value=4 ])      // ex:out2 also has value 4
+activity(ex:add1, [ prov:type="addition" ])
+used(ex:add1, ex:in1)
+used(ex:add1, ex:in2)
+wasGeneratedBy(ex:out2, ex:add1)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex54_value-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,10 @@
+The following examples respectively are the string "abc", the integer number 1, and the IRI "http://example.org/foo".
+	"abc"
+	"1" %% xsd:integer
+	"http://example.org/foo" %% xsd:anyURI
+
+The following example shows a value of type prov:QUALIFIED_NAME (see prov:QUALIFIED_NAME [PROV-N]). The prefix ex must be bound to a namespace declared in a namespace declaration.
+	"ex:value" %% prov:QUALIFIED_NAME
+
+Alternatively, the same value can be expressed using the following convenience notation.
+	'ex:value'
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex55_value_time_instant-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,2 @@
+In the following example, the generation time of entity e1 is expressed according to xsd:dateTime [XMLSCHEMA11-2].
+	wasGeneratedBy(e1,a1, 2001-10-26T21:32:52)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex56_extensibility_points-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,2 @@
+In the following example, e2 is a translation of e1, expressed as a sub-type of derivation.
+	wasDerivedFrom(e2,e1, [prov:type='ex:Translation' ])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex57_extensibility_points-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,2 @@
+In the following example, e is described as a Car, a type of entity.
+	entity(e, [prov:type='ex:Car' ])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex58_extensibility_points-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,7 @@
+In the following example, two computers ex:laptop4 and ex:desktop9 are used in different roles in a work activity.
+ 
+  activity(ex:work)
+  entity(ex:laptop4)
+  entity(ex:desktop9)
+  used(ex:work, ex:laptop4,  [prov:role="day-to-day machine"])
+  used(ex:work, ex:desktop9, [prov:role="backup machine"])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex5_usage-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+Let us consider the activity of driving a car from Boston to Cambridge. One might reasonably ask what entities are used and generated by this activity. This is answered by considering that a single artifact may correspond to several entities; in this case, a car in Boston may be a different entity from the same car in Cambridge. Thus, among other things, an entity "car in Boston" would be used, and a new entity "car in Cambridge" would be generated by this activity of driving. The provenance trace of the car might include: designed in Japan, manufactured in Korea, shipped to Boston USA, purchased by customer, driven to Cambridge, serviced by engineer in Cambridge, etc., all of which might be important information when deciding whether or not it represents a sensible second-hand purchase. Or some of it might alternatively be relevant when trying to determine the truth of a web page reporting a traffic violation involving that car. This breadth of provenance allows descriptions of interactions between physical and digital artifacts. 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex6_communication-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+The activity of writing a celebrity article was informed by (a communication instance) the activity of intercepting voicemails. 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex7_derivation-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+Examples of derivation include the transformation of a relational table into a linked data set, the transformation of a canvas into a painting, the transportation of a work of art from London to New York, and a physical transformation such as the melting of ice into water.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex8_agent-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+Software for checking the use of grammar in a document may be defined as an agent of a document preparation activity; one can also describe its provenance, including for instance the vendor and the version history. A site selling books on the Web, the services involved in the processing of orders, and the companies hosting them are also agents. 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex9_attribution-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,1 @@
+A blog post can be attributed to an author, a mobile phone to its manufacturer.
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex_author_view-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,17 @@
+There was a document tr:WD-prov-dm-20111215, which from the author's perspective was a document in its second version.
+    entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version="2" ])
+
+There was an editing activity.
+    activity(ex:edit1, [ prov:type="edit" ])
+
+The document was generated by the editing activity: this was a Generation. Its time is not specified, hence, the marker '-'.
+    wasGeneratedBy(tr:WD-prov-dm-20111215, ex:edit1, -)
+
+There were some agents.
+    agent(ex:Paolo, [ prov:type='prov:Person' ])
+    agent(ex:Simon, [ prov:type='prov:Person' ])
+
+Agents were assigned various responsibilities in the editing activity: contributor and editor. The plan the agent relied upon is not specified, hence, the marker '-'.
+    wasAssociatedWith(ex:edit1, ex:Paolo, -, [ prov:role="editor" ])
+    wasAssociatedWith(ex:edit1, ex:Simon, -, [ prov:role="contributor" ])
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex_process_view-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,19 @@
+There was a document, a working draft (rec54:WD), which is an entity so that we can describe its provenance. Similar descriptions exist for all entities.
+	entity(tr:WD-prov-dm-20111215, [ prov:type='rec54:WD' ])
+
+There was a publication activity.
+	activity(ex:act2, [ prov:type="publish" ])
+
+The document was generated by the publication activity: this was a Generation. Its time is not specified, hence, the marker '-'.
+	wasGeneratedBy(tr:WD-prov-dm-20111215, ex:act2, -)
+
+The second draft of the document was derived from the first draft: this was a Derivation.
+	wasDerivedFrom(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018)
+
+The activity required a publication request: this was a Usage. Its time is not specified, hence, the marker '-'.
+	used(ex:act2, email:2011Dec/0111, -)
+
+The activity was associated with the Consortium agent, and proceeded according to its publication policy: this is an Association.
+	wasAssociatedWith(ex:act2, w3:Consortium, process:rec-advance)
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testcases/prov-dm/prov-dm-ex_provenance_attribution-PASS.provn	Mon Nov 26 12:11:39 2012 +0000
@@ -0,0 +1,29 @@
+PROV-DM offers a construct to name a bundle of provenance descriptions (full details: ex:author-view).
+
+bundle ex:author-view
+
+  agent(ex:Paolo,   [ prov:type='prov:Person' ])
+  agent(ex:Simon,   [ prov:type='prov:Person' ])
+
+
+...
+
+endBundle
+
+Likewise, the process view can be expressed as a separate named bundle (full details: ex:process-view).
+
+bundle ex:process-view
+
+   agent(w3:Consortium, [ prov:type='prov:Organization' ])
+
+...
+
+endBundle
+
+To express their respective provenance, these bundles must be seen as entities, and all PROV constructs are now available to express their provenance. In the example below, ex:author-view is attributed to the agent ex:Simon, whereas ex:process-view to w3:Consortium.
+
+entity(ex:author-view, [ prov:type='prov:Bundle' ])
+wasAttributedTo(ex:author-view, ex:Simon)
+
+entity(ex:process-view, [ prov:type='prov:Bundle' ])
+wasAttributedTo(ex:process-view, w3:Consortium)