--- a/model/all-divs.js Tue Jun 19 04:49:52 2012 -0700
+++ b/model/all-divs.js Tue Jun 19 05:00:38 2012 -0700
@@ -3,3230 +3,3232 @@
// with <script src="all-divs.js" class="remove"></script>
//Insert glossary definitions with the following
// <div class="glossary-ref" ref="glossary-generation"></div>
-divs_hg='http://dvcs.w3.org/hg/prov/file/c101044c1e57/model/prov-dm.html';
+divs_hg='http://dvcs.w3.org/hg/prov/file/d5cad12b84a2/model/prov-dm.html';
divs_string=
-'<html> \n' +
-'<div style="text-align: left;"> \n' +
-' <table class="thinborder" style="margin-left: auto; margin-right: auto;"> \n' +
-' <caption id="namespace-table"> \n' +
-' Table 1: Prefix and Namespaces used in this specification \n' +
-' </caption> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a><b>prefix</b></a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <b>namespace uri</b> \n' +
-' </td> \n' +
-' <td> \n' +
-' <b>definition</b> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a>prov</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' http://www.w3.org/ns/prov# \n' +
-' </td> \n' +
-' <td> \n' +
-' The PROV namespace (see <a class="section-ref" href="#term-NamespaceDeclaration"><span>TBD</span></a>) \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a>xsd</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' http://www.w3.org/2000/10/XMLSchema# \n' +
-' </td> \n' +
-' <td> \n' +
-' XML Schema Namespace [[!XMLSCHEMA11-2]] \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a>rdf</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' http://www.w3.org/1999/02/22-rdf-syntax-ns# \n' +
-' </td> \n' +
-' <td> \n' +
-' The RDF namespace [[!RDF-CONCEPTS]] \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a>(others)</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' (various) \n' +
-' </td> \n' +
-' <td> \n' +
-' All other namespace prefixes are used in examples only. <br /> In \n' +
-' particular, URIs starting with "http://example.com" represent<br /> \n' +
-' some application-dependent URI [[!URI]] \n' +
-' </td> \n' +
-' </tr> \n' +
-' </table> \n' +
-' </div><div style="text-align: center; "> \n' +
-' <!-- <img src="../images/OverviewDiagram.png" alt="PROV Core Structures" \n' +
-' style="max-width: 70%; " /> --> \n' +
-' <img src="uml/essentials.png" alt="PROV Core Structures" style="max-width: 70%; " /> Figure 1: PROV Core Structures \n' +
-' </div><div style="text-align: left;"> \n' +
-' <table class="thinborder" style="margin-left: auto; margin-right: auto;"> \n' +
-' <caption id="overview-types-and-relations"> \n' +
-' Table 2: Mapping of PROV core concepts to types and relations \n' +
-' </caption> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a><b>PROV Concepts</b></a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <b>PROV-DM types or relations</b> \n' +
-' </td> \n' +
-' <td> \n' +
-' <b>Name</b> \n' +
-' </td> \n' +
-' <td> \n' +
-' <b>Overview</b> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a>Entity</a> \n' +
-' </td> \n' +
-' <td rowspan="3" style="text-align: center;"> \n' +
-' PROV-DM Types \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="dfn-Entity">Entity</a> \n' +
-' </td> \n' +
-' <td style="text-align: center;"> \n' +
-' <a class="section-ref" href="#section-entity-activity"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a>Activity</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="dfn-Activity">Activity</a> \n' +
-' </td> \n' +
-' <td style="text-align: center;"> \n' +
-' <a class="section-ref" href="#section-entity-activity"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a>Agent</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="dfn-agent">Agent</a> \n' +
-' </td> \n' +
-' <td style="text-align: center;"> \n' +
-' <a class="section-ref" href="#section-agents-attribution-association-delegation"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a>Generation</a> \n' +
-' </td> \n' +
-' <td rowspan="7" style="text-align: center;"> \n' +
-' PROV-DM Relations \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="wasGeneratedBy">wasGeneratedBy</a> \n' +
-' </td> \n' +
-' <td style="text-align: center;"> \n' +
-' <a class="section-ref" href="#section-entity-activity"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a>Usage</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="used">Used</a> \n' +
-' </td> \n' +
-' <td style="text-align: center;"> \n' +
-' <a class="section-ref" href="#section-entity-activity"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a>Communication</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="wasInformedBy">WasInformedBy</a> \n' +
-' </td> \n' +
-' <td style="text-align: center;"> \n' +
-' <a class="section-ref" href="#section-entity-activity"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a>Derivation</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="wasDerivedFrom">WasDerivedFrom</a> \n' +
-' </td> \n' +
-' <td style="text-align: center;"> \n' +
-' <a class="section-ref" href="#section-derivation"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a>Attribution</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="wasAttributedTo">WasAttributedTo</a> \n' +
-' </td> \n' +
-' <td style="text-align: center;"> \n' +
-' <a class="section-ref" href="#section-agents-attribution-association-delegation"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a>Association</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="wasAssociatedWith">WasAssociatedWith</a> \n' +
-' </td> \n' +
-' <td style="text-align: center;"> \n' +
-' <a class="section-ref" href="#section-agents-attribution-association-delegation"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a>Delegation</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="actedOnBehalfOf">ActedOnBehalfOf</a> \n' +
-' </td> \n' +
-' <td style="text-align: center;"> \n' +
-' <a class="section-ref" href="#section-agents-attribution-association-delegation"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' </table> \n' +
-' </div><div class="anexample conceptexample" id="entity-example"> \n' +
-' <p> \n' +
-' An entity may be the document at URI <a href="http://www.bbc.co.uk/news/science-environment-17526723">http://www.bbc.co.uk/news/science-environment-17526723</a>, \n' +
-' a file in a file system, a car, or an idea. \n' +
-' </p> \n' +
-' </div><div class="anexample conceptexample" id="activity-example"> \n' +
-' <p> \n' +
-' An activity may be the publishing of a document on the Web, sending a \n' +
-' twitter message, extracting metadata embedded in a file, driving a car \n' +
-' from Boston to Cambridge, assembling a data set based on a set of \n' +
-' measurements, performing a statistical analysis over a data set, sorting \n' +
-' news items according to some criteria, running a SPARQL query over a \n' +
-' triple store, or editing a file. \n' +
-' </p> \n' +
-' </div><div class="anexample conceptexample" id="generation-example"> \n' +
-' <p> \n' +
-' Examples of generation are the completed creation of a file by a \n' +
-' program, the completed creation of a linked data set, and the completed \n' +
-' publication of a new version of a document. \n' +
-' </p> \n' +
-' </div><div class="anexample conceptexample" id="usage-example"> \n' +
-' <p> \n' +
-' Usage examples include a procedure beginning to consume an argument, a \n' +
-' service starting to read a value on a port, a program beginning to read \n' +
-' a configuration file, or the point at which an ingredient, such as eggs, \n' +
-' is being added in a baking activity. Usage may entirely consume an \n' +
-' entity (e.g. eggs are no longer available after being added to the mix); \n' +
-' in contrast, the same entity may be used multiple times, possibly by \n' +
-' different activities (e.g. a file on a file system can be read \n' +
-' indefinitely). \n' +
-' </p> \n' +
-' </div><div class="anexample conceptexample" id="communication-example"> \n' +
-' <p> \n' +
-' The activity of writing a celebrity article was informed by (a \n' +
-' communication instance) the activity of intercepting voicemails. \n' +
-' </p> \n' +
-' </div><div class="anexample conceptexample" id="derivation-example"> \n' +
-' <p> \n' +
-' Examples of derivation include the transformation of a relational table \n' +
-' into a linked data set, the transformation of a canvas into a painting, \n' +
-' the transportation of a work of art from London to New York, and a \n' +
-' physical transformation such as the melting of ice into water. \n' +
-' </p> \n' +
-' </div><div class="anexample conceptexample" id="agent-example"> \n' +
-' <p> \n' +
-' Software for checking the use of grammar in a document may be defined as \n' +
-' an agent of a document preparation activity; one can also describe its \n' +
-' provenance, including for instance the vendor and the version history. A \n' +
-' site selling books on the Web, the services involved in the processing \n' +
-' of orders, and the companies hosting them are also agents. \n' +
-' </p> \n' +
-' </div><div class="anexample conceptexample" id="attribution-example"> \n' +
-' <p> \n' +
-' A blog post can be attributed to an author, a mobile phone to its \n' +
-' manufacturer. \n' +
-' </p> \n' +
-' </div><div class="anexample conceptexample" id="association-example"> \n' +
-' <p> \n' +
-' Examples of association between an activity and an agent are: \n' +
-' </p> \n' +
-' <ul> \n' +
-' <li> \n' +
-' creation of a web page under the guidance of a designer; \n' +
-' </li> \n' +
-' <li> \n' +
-' various forms of participation in a panel discussion, including \n' +
-' audience member, panelist, or panel chair; \n' +
-' </li> \n' +
-' <li> \n' +
-' a public event, sponsored by a company, and hosted by a museum; \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample conceptexample" id="delegation-example"> \n' +
-' <p> \n' +
-' A student publishing a web page describing an academic department could \n' +
-' result in both the student and the department being agents associated \n' +
-' with the activity. It may not matter which actual student published a \n' +
-' web page, but it may matter significantly that the department told the \n' +
-' student to put up the web page. \n' +
-' </p> \n' +
-' </div><div class="anexample conceptexample" id="association-example2"> \n' +
-' <p> \n' +
-' An example of association between an activity and an agent involving a \n' +
-' plan is: an XSLT transform (an activity) launched by a user (an agent) \n' +
-' based on an XSL style sheet (a plan). \n' +
-' </p> \n' +
-' </div><div class="anexample conceptexample" id="identifier-example"> \n' +
-' <p> \n' +
-' A service may read a same configuration file on two different occasions. \n' +
-' Each usage can be identifed by its own identifier, allowing them to be \n' +
-' distinguished. \n' +
-' </p> \n' +
-' </div><div class="anexample conceptexample" id="bundle-example"> \n' +
-' <p> \n' +
-' For users to decide whether they can place their trust in a resource, \n' +
-' they may want to analyze the resource's provenance, but also determine \n' +
-' who its provenance is attributed to, and when it was generated. In other \n' +
-' words, users need to be able to determine the provenance of provenance. \n' +
-' Hence, provenance is also regarded as an entity (of type Bundle), by \n' +
-' which provenance of provenance can then be expressed. \n' +
-' </p> \n' +
-' </div><div class="anexample conceptexample" id="collection-example"> \n' +
-' <p> \n' +
-' An example of collection is an archive of documents. Each document has \n' +
-' its own provenance, but the archive itself also has some provenance: who \n' +
-' maintained it, which documents it contained at which point in time, how \n' +
-' it was assembled, etc. \n' +
-' </p> \n' +
-' </div><div id="components-overview-div" style="text-align: center;"> \n' +
-' <table class="thinborder" style="margin-left: auto; margin-right: auto;"> \n' +
-' <caption id="components-overview"> \n' +
-' Table 3: Components Overview \n' +
-' </caption> \n' +
-' <tr> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td> \n' +
-' Component \n' +
-' </td> \n' +
-' <td> \n' +
-' Core <br />Structures \n' +
-' </td> \n' +
-' <td> \n' +
-' Overview \n' +
-' </td> \n' +
-' <td> \n' +
-' Specification \n' +
-' </td> \n' +
-' <td> \n' +
-' Description \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td style=" padding: 8px;"> \n' +
-' 1 \n' +
-' </td> \n' +
-' <td style="text-align: left;"> \n' +
-' Entities and Activities \n' +
-' </td> \n' +
-' <td> \n' +
-' ✔ \n' +
-' </td> \n' +
-' <td> \n' +
-' <a href="#section-entity-activity">2.1.1</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a href="#component1">5.1</a> \n' +
-' </td> \n' +
-' <td style="text-align: left;"> \n' +
-' about entities and activities, and their interrelations \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' 2 \n' +
-' </td> \n' +
-' <td style="text-align: left;"> \n' +
-' Derivation \n' +
-' </td> \n' +
-' <td> \n' +
-' ✔ \n' +
-' </td> \n' +
-' <td> \n' +
-' <a href="#section-derivation">2.1.2</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a href="#component3">5.2</a> \n' +
-' </td> \n' +
-' <td style="text-align: left;"> \n' +
-' about derivations and its subtypes \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' 3 \n' +
-' </td> \n' +
-' <td style="text-align: left;"> \n' +
-' Agent and Responsibility \n' +
-' </td> \n' +
-' <td> \n' +
-' ✔ \n' +
-' </td> \n' +
-' <td> \n' +
-' <a href="#section-agents-attribution-association-delegation">2.1.3</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a href="#component2">5.3</a> \n' +
-' </td> \n' +
-' <td style="text-align: left;"> \n' +
-' about agents and concepts ascribing responsibility to them \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' 4 \n' +
-' </td> \n' +
-' <td style="text-align: left;"> \n' +
-' Alternate \n' +
-' </td> \n' +
-' <td /> \n' +
-' <td> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a href="#component4">5.4</a> \n' +
-' </td> \n' +
-' <td style="text-align: left;"> \n' +
-' about relations linking entities referring the same thing \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' 5 \n' +
-' </td> \n' +
-' <td style="text-align: left;"> \n' +
-' Bundles \n' +
-' </td> \n' +
-' <td /> \n' +
-' <td> \n' +
-' <a href="#section-provenance-of-provnance">2.2.2</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a href="#component5">5.5</a> \n' +
-' </td> \n' +
-' <td style="text-align: left;"> \n' +
-' about bundles, a mechanism to support provenance of provenance \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' 6 \n' +
-' </td> \n' +
-' <td style="text-align: left;"> \n' +
-' Collections \n' +
-' </td> \n' +
-' <td /> \n' +
-' <td> \n' +
-' <a href="#section-collections">2.2.3</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a href="#component6">5.6</a> \n' +
-' </td> \n' +
-' <td style="text-align: left;"> \n' +
-' about collections and concepts capturing their transformation, such \n' +
-' as insertion and removal \n' +
-' </td> \n' +
-' </tr> \n' +
-' </table> \n' +
-' </div><div class="anexample" id="anexample-prov-n"> \n' +
-' <p> \n' +
-' An activity with identifier <span class="name">a1</span> and an \n' +
-' attribute <span class="name">type</span> with value <span class="name">createFile</span>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'activity(a1, [prov:type="createFile"]) \n' +
-'</pre> \n' +
-' Two entities with identifiers <span class="name">e1</span> and <span class="name">e2</span>. \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(e1) \n' +
-'entity(e2) \n' +
-'</pre> \n' +
-' The activity <span class="name">a1</span> used <span class="name">e1</span>, \n' +
-' and <span class="name">e2</span> was generated by <span class="name">a1</span>. \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'used(a1,e1) \n' +
-'wasGeneratedBy(e2,a1) \n' +
-'</pre> \n' +
-' The same descriptions, but with an explicit identifier <span class="name">u1</span> \n' +
-' for the usage, and the syntactic marker '<span class="name">-</span>' to \n' +
-' mark the absence of identifier in the generation. Both are followed by '<span class="name">;</span>'. \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'used(u1;a1,e1) \n' +
-'wasGeneratedBy(-;e2,a1) \n' +
-'</pre> \n' +
-' </div><div style="text-align: center; "> \n' +
-' <img src="images/w3-publication3.png" alt="Provenance of a Document (1)" style="max-width: 98%; " /> Figure 2: Provenance of a Document (1) \n' +
-' </div><div style="text-align: center;"> \n' +
-' <img src="images/w3-publication1.png" alt="Provenance of a Document (2)" style="max-width: 90%; " /> Figure 3: Provenance of a Document (2) \n' +
-' </div><div id="prov-dm-components-ul"> \n' +
-' <ul> \n' +
-' <li> \n' +
-' <b>Component 1: entities and activities.</b> The first component \n' +
-' consists of entities, activities, and concepts linking them, such as \n' +
-' generation, usage, start, end. The first component is the only one \n' +
-' comprising time-related concepts. \n' +
-' </li> \n' +
-' <li> \n' +
-' <b>Component 2: derivations.</b> The second component is formed with \n' +
-' derivations and derivation subtypes. \n' +
-' </li> \n' +
-' <li> \n' +
-' <b>Component 3: agents and responsibility.</b> The third component \n' +
-' consists of agents and concepts ascribing responsibility to agents. \n' +
-' </li> \n' +
-' <li> \n' +
-' <b>Component 4: bundles.</b> The fourth component is concerned with \n' +
-' bundles, a mechanism to support provenance of provenance. \n' +
-' </li> \n' +
-' <li> \n' +
-' <b>Component 5: alternate.</b> The fifth component consists of \n' +
-' relations linking entities referring to the same thing. \n' +
-' </li> \n' +
-' <li> \n' +
-' <b>Component 6: collections.</b> The sixth component is about \n' +
-' collections and concepts capturing their transformation, such as \n' +
-' insertion and removal. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div style="text-align: center;"> \n' +
-' <img src="images/components-dependencies.png" alt="PROV-DM Components" style="max-width: 90%; " /> <map id="componentMap"> \n' +
-' <area title="collections" href="#component5" coords="220,0,440,70" alt="collections" shape="rect" /> \n' +
-' <area title="alternate" href="#component4" coords="450,0,510,140" alt="alternate" shape="rect" /> \n' +
-' <area title="annotations" href="#component6" coords="530,0,590,220" alt="annotations" shape="rect" /> \n' +
-' <area title="activities/entities" href="#component1" coords="80,150,510,220" alt="activities/entities" shape="rect" /> \n' +
-' <area title="derivations" href="#component3" coords="80,0,210,70" alt="derivations" shape="rect" /> \n' +
-' <area title="agents/responsibility" href="#component2" coords="0,0,70,220" alt="agents/responsibility" shape="rect" /></map> \n' +
-' Figure 4: PROV-DM Components \n' +
-' </div><div id="relations-at-a-glance-div" style="text-align: center;"> \n' +
-' <table class="thinborder" style="margin-left: auto; margin-right: auto;"> \n' +
-' <caption id="relations-at-a-glance"> \n' +
-' Table 4: PROV-DM Relations At a Glance \n' +
-' </caption> \n' +
-' <tr> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td colspan="3"> \n' +
-' Object \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td> \n' +
-' Entity \n' +
-' </td> \n' +
-' <td> \n' +
-' Activity \n' +
-' </td> \n' +
-' <td> \n' +
-' Agent \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td rowspan="3"> \n' +
-' Subject \n' +
-' </td> \n' +
-' <td> \n' +
-' Entity \n' +
-' </td> \n' +
-' <td> \n' +
-' <div class="component2-color"> \n' +
-' <a class="essential">WasDerivedFrom</a><br /><a>WasRevisionOf</a><br /><a>WasQuotedFrom</a><br /><a>HadPrimarySource</a> \n' +
-' </div> \n' +
-' <div class="component5-color"> \n' +
-' <a>AlternateOf</a><br /><a>SpecializationOf</a><br /><a>ContextualizationOf</a> \n' +
-' </div> \n' +
-' </td> \n' +
-' <td class="component1-color"> \n' +
-' <a class="essential" title="wasGeneratedBy">WasGeneratedBy</a><br /><a title="wasInvalidatedBy">WasInvalidatedBy</a> \n' +
-' </td> \n' +
-' <td class="component3-color"> \n' +
-' <a class="essential">WasAttributedTo</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' Activity \n' +
-' </td> \n' +
-' <td> \n' +
-' <div class="component1-color"> \n' +
-' <a class="essential">Used</a><br /><a>WasStartedBy</a><br /><a>WasEndedBy</a> \n' +
-' </div> \n' +
-' </td> \n' +
-' <td class="component1-color"> \n' +
-' <a class="essential">WasInformedBy</a> \n' +
-' </td> \n' +
-' <td class="component3-color"> \n' +
-' <a class="essential">WasAssociatedWith</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' Agent \n' +
-' </td> \n' +
-' <td> \n' +
-' </td> \n' +
-' <td> \n' +
-' </td> \n' +
-' <td class="component3-color"> \n' +
-' <a class="essential">ActedOnBehalfOf</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' </table> \n' +
-' </div><div class="component2-color"> \n' +
-' <a class="essential">WasDerivedFrom</a><br /><a>WasRevisionOf</a><br /><a>WasQuotedFrom</a><br /><a>HadPrimarySource</a> \n' +
-' </div><div class="component5-color"> \n' +
-' <a>AlternateOf</a><br /><a>SpecializationOf</a><br /><a>ContextualizationOf</a> \n' +
-' </div><div class="component1-color"> \n' +
-' <a class="essential">Used</a><br /><a>WasStartedBy</a><br /><a>WasEndedBy</a> \n' +
-' </div><div id="prov-dm-types-and-relations-fig" style="text-align: left;"> \n' +
-' <table class="thinborder" style="margin-left: auto; margin-right: auto;"> \n' +
-' <caption id="prov-dm-types-and-relations"> \n' +
-' Table 5: PROV-DM Types and Relations \n' +
-' </caption> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a><b>Type or Relation Name</b></a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <b>Representation in the PROV-N notation</b> \n' +
-' </td> \n' +
-' <td> \n' +
-' <b>Component</b> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' </tr> \n' +
-' <tr class="component1-color"> \n' +
-' <td class="essential"> \n' +
-' <a>Entity</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="dfn-Entity" class="essential">entity(id, [ attr1=val1, \n' +
-' ...])</a> \n' +
-' </td> \n' +
-' <td rowspan="8"> \n' +
-' <a href="#component1">Component 1: Entities/Activities</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component1-color"> \n' +
-' <td class="essential"> \n' +
-' <a>Activity</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="dfn-Activity" class="essential">activity(id, st, et, [ \n' +
-' attr1=val1, ...])</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component1-color"> \n' +
-' <td class="essential"> \n' +
-' <a>Generation</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="WasGeneratedBy"><span class="essential">wasGeneratedBy(</span>id;<span class="essential">e,a</span>,t,attrs<span class="essential">)</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component1-color"> \n' +
-' <td class="essential"> \n' +
-' <a>Usage</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="used"><span class="essential">used(</span>id;<span class="essential">a,e</span>,t,attrs<span class="essential">)</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component1-color"> \n' +
-' <td class="essential"> \n' +
-' <a>Communication</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="wasInformedBy">wasInformedBy(id;a2,a1,attrs)</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component1-color"> \n' +
-' <td> \n' +
-' <a>Start</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="wasStartedBy">wasStartedBy(id;a2,e,a1,t,attrs)</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component1-color"> \n' +
-' <td> \n' +
-' <a>End</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="wasEndedBy">wasEndedBy(id;a2,e,a1,t,attrs)</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component1-color"> \n' +
-' <td> \n' +
-' <a>Invalidation</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="wasInvalidatedBy">wasInvalidatedBy(id;e,a,t,attrs)</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' </tr> \n' +
-' <tr class="component2-color"> \n' +
-' <td class="essential"> \n' +
-' <a>Derivation</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="wasDerivedFrom"><span class="essential">wasDerivedFrom(</span>id; \n' +
-' <span class="essential">e2, e1</span>, a, g2, u1, attrs<span class="essential">)</span></a> \n' +
-' </td> \n' +
-' <td rowspan="5"> \n' +
-' <a href="#component2">Component 2: Derivations</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component2-color"> \n' +
-' <td class="provType"> \n' +
-' <a>Revision</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="WasRevisionOf">... prov:type='prov:WasRevisionOf' ...</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component2-color"> \n' +
-' <td class="provType"> \n' +
-' <a>Quotation</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="WasQuotedFrom">... prov:type='prov:WasQuotedFrom' ...</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component2-color"> \n' +
-' <td class="provType"> \n' +
-' <a>Primary Source</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="HadPrimarySource">... prov:type='prov:HadPrimarySource' \n' +
-' ...</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component2-color"> \n' +
-' <td> \n' +
-' <a>Trace</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="tracedTo">tracedTo(id;e2,e1,attrs)</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' </tr> \n' +
-' <tr class="component3-color" style="border-collapse: collapse; "> \n' +
-' <td class="essential"> \n' +
-' <a>Agent</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="dfn-agent" class="essential">agent(id, [ attr1=val1, ...])</a> \n' +
-' </td> \n' +
-' <td rowspan="8"> \n' +
-' <a href="#component3">Component 3: Agents/Responsibility</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component3-color"> \n' +
-' <td class="essential"> \n' +
-' <a>Attribution</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="wasAttributedTo"><span class="essential">wasAttributedTo(</span>id;<span class="essential">e,ag</span>,attr<span class="essential">)</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component3-color"> \n' +
-' <td class="essential"> \n' +
-' <a>Association</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="wasAssociatedWith"><span class="essential">wasAssociatedWith(</span>id;<span class="essential">a,ag</span>,pl,attrs<span class="essential">)</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component3-color"> \n' +
-' <td class="essential"> \n' +
-' <a>Delegation</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="actedOnBehalfOf"><span class="essential">actedOnBehalfOf(</span>id;<span class="essential">ag2,ag1</span>,a,attrs<span class="essential">)</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component3-color"> \n' +
-' <td class="provType"> \n' +
-' <a>Plan</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="plan">... prov:type='prov:Plan' ...</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component3-color"> \n' +
-' <td class="provType"> \n' +
-' <a>Person</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="person">... prov:type='prov:Person' ...</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component3-color"> \n' +
-' <td class="provType"> \n' +
-' <a>Organization</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="organization">... prov:type='prov:Organization' ...</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component3-color"> \n' +
-' <td class="provType"> \n' +
-' <a title="software-agent">SoftwareAgent</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="software-agent">... prov:type='prov:SoftwareAgent' ...</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' </tr> \n' +
-' <tr class="component4-color"> \n' +
-' <td> \n' +
-' <a title="bundle">Bundle constructor</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="dfn-bundle">bundle id description_1 ... description_n \n' +
-' endBundle</a> \n' +
-' </td> \n' +
-' <td rowspan="2"> \n' +
-' <a href="#component5">Component 4: Bundles</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component4-color"> \n' +
-' <td class="provType"> \n' +
-' <a title="bundle">Bundle type</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="bundle">... prov:type='prov:Bundle' ...</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' </tr> \n' +
-' <tr class="component5-color"> \n' +
-' <td> \n' +
-' <a>Alternate</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="alternateOf">alternateOf(alt1, alt2)</a> \n' +
-' </td> \n' +
-' <td rowspan="3"> \n' +
-' <a href="#component4">Component 5: Alternate</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component5-color"> \n' +
-' <td> \n' +
-' <a>Specialization</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="specializationOf">specializationOf(sub, super)</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component5-color"> \n' +
-' <td> \n' +
-' <a>Contextualization</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="contextualizationOf">contextualizationOf(i2, i1,bundle)</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' </tr> \n' +
-' <tr class="component6-color"> \n' +
-' <td class="provType"> \n' +
-' <a>Collection</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="collection">... prov:type='prov:Collection' ...</a> \n' +
-' </td> \n' +
-' <td rowspan="7"> \n' +
-' <a href="#component6">Component 6: Collections</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component6-color"> \n' +
-' <td> \n' +
-' <a>Collection Membership</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="memberOf">memberOf(c, {e_1, ..., e_n})</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component6-color"> \n' +
-' <td class="provType"> \n' +
-' <a>Dictionary</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="dictionary">... prov:type='prov:Dictionary' ...</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component6-color"> \n' +
-' <td class="provType"> \n' +
-' <a title="empty dictionary">EmptyDictionary</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="empty dictionary">... prov:type='prov:EmptyDictionary' ...</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component6-color"> \n' +
-' <td> \n' +
-' <a>Insertion</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="derivedByInsertionFrom">derivedByInsertionFrom(id; c2, c1, \n' +
-' {(key_1, e_1), ..., (key_n, e_n)}, attrs)</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component6-color"> \n' +
-' <td> \n' +
-' <a>Removal</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="derivedByRemovalFrom">derivedByRemovalFrom(id; c2, c1, \n' +
-' {key_1, ... key_n}, attrs)</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr class="component6-color"> \n' +
-' <td> \n' +
-' <a>Dictionary Membership</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a title="memberOf-d">memberOf(d, {(key_1, e_1), ..., (key_n, e_n)})</a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' </table> \n' +
-' </div><div style="text-align: center;"> \n' +
-' <!-- <img src="images/Entities-Activities.png" alt="entities and \n' +
-' activities"/> --> \n' +
-' <img src="uml/component1.png" alt="entities and activities" /> Figure 5: \n' +
-' Entities and Activities Component Overview \n' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-entity"> \n' +
-' An <dfn title="dfn-Entity" id="dfn-entity">entity</dfn><span class="withPn">, \n' +
-' written <span class="pnExpression" id="pn-entity">entity(id, [attr1=val1, \n' +
-' ...])</span> in PROV-N, </span> has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="entity.id">id</span>: an identifier for an \n' +
-' entity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="entity.attributes">attributes</span>: an \n' +
-' OPTIONAL set of attribute-value pairs ((<span class="name">attr1</span>, \n' +
-' <span class="name">val1</span>), ...) representing additional \n' +
-' information about this entity. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample" id="anexample-entity"> \n' +
-' <p> \n' +
-' The following expression \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version="2" ]) \n' +
-'</pre> \n' +
-' states the existence of an entity, denoted by identifier <span class="name">tr:WD-prov-dm-20111215</span>, \n' +
-' with type <span class="name">document</span> and version number <span class="name">2</span>. The attribute <span class="name">ex:version</span> \n' +
-' is application specific, whereas the attribute <span class="name">type</span> \n' +
-' (see <a href="#term-attribute-type">Section 5.7.4.4</a>) is reserved in \n' +
-' the <a title="prov-namespace">PROV namespace</a>. \n' +
-' <!-- The following expression</p> <pre class="codeexample"> \n' +
-' entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version="2" ]) \n' +
-' entity(e0, [ prov:type="File", ex:path="/shared/crime.txt", \n' +
-' ex:creator="Alice" ]) </pre> states the existence of an entity, denoted \n' +
-' by identifier <span class="name">e0</span>, with type <span \n' +
-' class="name">File</span> and path <span \n' +
-' class="name">/shared/crime.txt</span> in the file system, and creator \n' +
-' alice. The attributes <span class="name">path</span> and <span \n' +
-' class="name">creator</span> are application specific, whereas the \n' +
-' attribute <span class="name">type</span> is reserved in the PROV \n' +
-' namespace. --> \n' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-activity"> \n' +
-' An <dfn title="dfn-Activity" id="dfn-activity">activity</dfn><span class="withPn">, written <span class="pnExpression" id="pn-activity">activity(id, \n' +
-' st, et, [attr1=val1, ...])</span> in PROV-N,</span> has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="activity.id">id</span>: an identifier for \n' +
-' an activity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="activity.startTime">startTime</span>: an \n' +
-' OPTIONAL time (<span class="name">st</span>) for the start of the \n' +
-' activity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="activity.endTime">endTime</span>: an \n' +
-' OPTIONAL time (<span class="name">et</span>) for the end of the \n' +
-' activity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="activity.attributes">attributes</span>: an \n' +
-' OPTIONAL set of attribute-value pairs ((<span class="name">attr1</span>, \n' +
-' <span class="name">val1</span>), ...) representing additional \n' +
-' information about this activity. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample" id="anexample-activity"> \n' +
-' <p> \n' +
-' The following expression \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'activity(a1,2011-11-16T16:05:00,2011-11-16T16:06:00, \n' +
-' [ ex:host="server.example.org", prov:type='ex:edit' ]) \n' +
-'</pre> \n' +
-' <p> \n' +
-' states the existence of an activity with identifier <span class="name">a1</span>, \n' +
-' start time <span class="name">2011-11-16T16:05:00</span>, and end time \n' +
-' <span class="name">2011-11-16T16:06:00</span>, running on host <span class="name">server.example.org</span>, and of type <span class="name">edit</span>. \n' +
-' The attribute <span class="name">host</span> is application specific \n' +
-' (declared in some namespace with prefix <span class="name">ex</span>). \n' +
-' The attribute <span class="name">type</span> is a reserved attribute of \n' +
-' PROV-DM, allowing for sub-typing to be expressed (see <a href="#term-attribute-type">Section 5.7.4.4</a>). \n' +
-' </p> \n' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-generation"> \n' +
-' <dfn title="wasGeneratedBy">Generation</dfn><span class="withPn">, written \n' +
-' <span class="pnExpression">wasGeneratedBy(id; e, a, t, attrs)</span> in \n' +
-' PROV-N,</span> has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="generation.id">id</span>: an OPTIONAL \n' +
-' identifier for a generation; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="generation.entity">entity</span>: an \n' +
-' identifier (<span class="name">e</span>) for a created entity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="generation.activity">activity</span>: an \n' +
-' OPTIONAL identifier (<span class="name">a</span>) for the activity \n' +
-' that creates the entity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="generation.time">time</span>: an OPTIONAL \n' +
-' "generation time" (<span class="name">t</span>), the time at which the \n' +
-' entity was completely created; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="generation.attributes">attributes</span>: \n' +
-' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value \n' +
-' pairs representing additional information about this generation. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample" id="anexample-generation1"> \n' +
-' <p> \n' +
-' The following expressions \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' wasGeneratedBy(e1, a1, 2001-10-26T21:32:52, [ ex:port="p1" ]) \n' +
-' wasGeneratedBy(e2, a1, 2001-10-26T10:00:00, [ ex:port="p2" ]) \n' +
-'</pre> \n' +
-' <p> \n' +
-' state the existence of two generations (with respective times <span class="name">2001-10-26T21:32:52</span> and <span class="name">2001-10-26T10:00:00</span>), \n' +
-' at which new entities, identified by <span class="name">e1</span> and \n' +
-' <span class="name">e2</span>, are created by an activity, identified by \n' +
-' <span class="name">a1</span>. The first one is available on port <span class="name">p1</span>, whereas the other is available on port <span class="name">p2</span>. The semantics of <span class="name">port</span> \n' +
-' are application specific. \n' +
-' </p> \n' +
-' </div><div class="anexample" id="anexample-generation2"> \n' +
-' <p> \n' +
-' In some cases, we may want to record the time at which an entity was \n' +
-' generated without having to specify the activity that generated it. To \n' +
-' support this requirement, the activity element in generation is \n' +
-' optional. Hence, the following expression indicates the time at which an \n' +
-' entity is generated, without naming the activity that did it. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' wasGeneratedBy(e, -, 2001-10-26T21:32:52) \n' +
-'</pre> \n' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-usage"> \n' +
-' <dfn title="used">Usage</dfn><span class="withPn">, written <span class="pnExpression">used(id; a, e, t, attrs)</span> in PROV-N,</span> \n' +
-' has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="usage.id">id</span>: an OPTIONAL \n' +
-' identifier for a usage; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="usage.activity">activity</span>: an \n' +
-' identifier (<span class="name">a</span>) for the activity that used an \n' +
-' entity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="usage.entity">entity</span>: an OPTIONAL \n' +
-' identifier (<span class="name">e</span>) for the entity being used; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="usage.time">time</span>: an OPTIONAL \n' +
-' "usage time" (<span class="name">t</span>), the time at which the \n' +
-' entity started to be used; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="usage.attributes">attributes</span>: an \n' +
-' OPTIONAL set (<span class="name">attrs</span>) of attribute-value \n' +
-' pairs representing additional information about this usage. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample" id="anexample-usage"> \n' +
-' <p> \n' +
-' The following usages \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' used(a1, e1, 2011-11-16T16:00:00, [ ex:parameter="p1" ]) \n' +
-' used(a1, e2, 2011-11-16T16:00:01, [ ex:parameter="p2" ]) \n' +
-'</pre> \n' +
-' <p> \n' +
-' state that the activity identified by <span class="name">a1</span> used \n' +
-' two entities identified by <span class="name">e1</span> and <span class="name">e2</span>, at times <span class="name">2011-11-16T16:00:00</span> \n' +
-' and <span class="name">2011-11-16T16:00:01</span>, respectively; the \n' +
-' first one was found as the value of parameter <span class="name">p1</span>, \n' +
-' whereas the second was found as value of parameter <span class="name">p2</span>. \n' +
-' The semantics of <span class="name">parameter</span> is application \n' +
-' specific. \n' +
-' </p> \n' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-wasInformedBy"> \n' +
-' A <dfn title="wasInformedBy">communication</dfn><span class="withPn">, \n' +
-' written as <span class="pnExpression">wasInformedBy(id; a2, a1, attrs)</span> \n' +
-' in PROV-N,</span> has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="communication.id">id</span>: an OPTIONAL \n' +
-' identifier identifying the relation; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="communication.informed">informed</span>: \n' +
-' the identifier (<span class="name">a2</span>) of the informed \n' +
-' activity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="communication.informant">informant</span>: \n' +
-' the identifier (<span class="name">a1</span>) of the informant \n' +
-' activity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="communication.attributes">attributes</span>: \n' +
-' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value \n' +
-' pairs representing additional information about this communication. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample" id="anexample-communication"> \n' +
-' <p> \n' +
-' Consider two activities <span class="name">a1</span> and <span class="name">a2</span>, the former performed by a government agency, and \n' +
-' the latter by a driver caught speeding. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'activity(a1, [ prov:type="traffic regulations enforcing" ]) \n' +
-'activity(a2, [ prov:type="fine paying, check writing, and mailing" ]) \n' +
-'wasInformedBy(a2, a1) \n' +
-'</pre> \n' +
-' The last line indicates that some implicit entity was generated by <span class="name">a1</span> and used by <span class="name">a2</span>; this \n' +
-' entity may be a traffic ticket that had a notice of fine, amount, and \n' +
-' payment mailing details. \n' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-start"> \n' +
-' An activity <dfn title="wasStartedBy">start</dfn><span class="withPn">, \n' +
-' written <span class="pnExpression">wasStartedBy(id; a2, e, a1, t, attrs)</span> \n' +
-' in PROV-N,</span> has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="start.id">id</span>: an OPTIONAL \n' +
-' identifier for the activity start; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="start.activity">activity</span>: an \n' +
-' identifier (<span class="name">a2</span>) for the started activity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="start.trigger">trigger</span>: an OPTIONAL \n' +
-' identifier (<span class="name">e</span>) for the entity triggering the \n' +
-' activity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="start.starter">starter</span>: an OPTIONAL \n' +
-' identifier (<span class="name">a1</span>) for the activity that \n' +
-' generated the (possibly unspecified) entity (<span class="name">e</span>); \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="start.time">time</span>: the OPTIONAL time \n' +
-' (<span class="name">t</span>) at which the activity was started; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="start.attributes">attributes</span>: an \n' +
-' OPTIONAL set (<span class="name">attrs</span>) of attribute-value \n' +
-' pairs representing additional information about this activity start. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample" id="anexample-start1"> \n' +
-' <p> \n' +
-' The following example contains the description of an activity <span class="name">a1</span> (a discussion), which was started at a specific \n' +
-' time, and was triggered by an email message <span class="name">e1</span>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(e1, [ prov:type="email message"] ) \n' +
-'activity(a1, [ prov:type="Discuss" ]) \n' +
-'wasStartedBy(a1, e1, -, 2011-11-16T16:05:00) \n' +
-'</pre> \n' +
-' Furthermore, if the message is also an input to the activity, this can be \n' +
-' described as follows: \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'used(a1, e1, -) \n' +
-'</pre> \n' +
-' <p> \n' +
-' Alternatively, one can also describe the activity that generated the \n' +
-' email message. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'activity(a0, [ prov:type="Write" ]) \n' +
-'wasGeneratedBy(e1, a0) \n' +
-'wasStartedBy(a1, e1, a0, 2011-11-16T16:05:00) \n' +
-'</pre> \n' +
-' <p> \n' +
-' If <span class="name">e1</span> is not known, it would also have valid \n' +
-' to write: \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'wasStartedBy(a1, -, a0, 2011-11-16T16:05:00) \n' +
-'</pre> \n' +
-' </div><div class="anexample" id="anexample-start2"> \n' +
-' <p> \n' +
-' In the following example, a race is started by a bang, and \n' +
-' responsibility for this trigger is attributed to an agent <span class="name">ex:Bob</span>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'activity(ex:foot_race) \n' +
-'entity(ex:bang) \n' +
-'wasStartedBy(ex:foot_race, ex:bang, -, 2012-03-09T08:05:08-05:00) \n' +
-'agent(ex:Bob) \n' +
-'wasAttributedTo(ex:bang, ex:Bob) \n' +
-'</pre> \n' +
-' </div><div class="anexample" id="anexample-start3"> \n' +
-' <p> \n' +
-' In this example, filling fuel was started as a consequence of observing \n' +
-' low fuel. The trigger entity is unspecified, it could for instance have \n' +
-' been the low fuel warning light, the fuel tank indicator needle \n' +
-' position, or the engine not running properly. \n' +
-' </p> \n' +
-'<pre class="codeexample" id="anexample-start4" xml:space="preserve"> \n' +
-'activity(ex:filling-fuel) \n' +
-'activity(ex:observing-low-fuel) \n' +
-' \n' +
-'agent(ex:driver, [ prov:type='prov:Person' ) \n' +
-'wasAssociatedWith(ex:filling-fuel, ex:driver) \n' +
-'wasAssociatedWith(ex:observing-low-fuel, ex:driver) \n' +
-' \n' +
-'wasStartedBy(ex:filling-fuel, -, ex:observing-low-fuel, -) \n' +
-'</pre> \n' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-end"> \n' +
-' An activity <dfn title="wasEndedBy">end</dfn><span class="withAsn">, \n' +
-' written <span class="pnExpression">wasEndedBy(id; a2, e, a1, t, attrs)</span> \n' +
-' in PROV-N,</span> has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="end.id">id</span>: an OPTIONAL identifier \n' +
-' for the activity end; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="end.activity">activity</span>: an \n' +
-' identifier (<span class="name">a2</span>) for the ended activity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="end.trigger">trigger</span>: an OPTIONAL \n' +
-' identifier (<span class="name">e</span>) for the entity triggering the \n' +
-' activity ending; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="end.ender">ender</span>: an OPTIONAL \n' +
-' identifier (<span class="name">a1</span>) for the activity that \n' +
-' generated the (possibly unspecified) entity (<span class="name">e</span>); \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="end.time">time</span>: the OPTIONAL time (<span class="name">t</span>) at which the activity was ended; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="end.attributes">attributes</span>: an \n' +
-' OPTIONAL set (<span class="name">attrs</span>) of attribute-value \n' +
-' pairs representing additional information about this activity end. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample" id="anexample-end"> \n' +
-' <p> \n' +
-' The following example is a description of an activity <span class="name">a1</span> \n' +
-' (editing) that was ended following an approval document <span class="name">e1</span>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(e1, [ prov:type="approval document" ]) \n' +
-'activity(a1, [ prov:type="Editing" ]) \n' +
-'wasEndedBy(a1, e1) \n' +
-'</pre> \n' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-invalidation"> \n' +
-' <dfn title="wasInvalidatedBy">Invalidation</dfn><span class="withPn">, \n' +
-' written <span class="pnExpression">wasInvalidatedBy(id; e, a, t, attrs)</span> \n' +
-' in PROV-N,</span> has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="invalidation.id">id</span>: an OPTIONAL \n' +
-' identifier for a invalidation; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="invalidation.entity">entity</span>: an \n' +
-' identifier for the invalidated entity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="invalidation.activity">activity</span>: an \n' +
-' OPTIONAL identifier for the activity that invalidated the entity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="invalidation.time">time</span>: an \n' +
-' OPTIONAL "invalidation time", the time at which the entity began to be \n' +
-' invalidated; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="invalidation.attributes">attributes</span>: \n' +
-' an OPTIONAL set of attribute-value pairs representing additional \n' +
-' information about this invalidation. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample" id="anexample-invalidation1"> \n' +
-' <p> \n' +
-' <em>The Painter</em>, a Picasso painting, is known to have been \n' +
-' destroyed in a <a href="http://en.wikipedia.org/wiki/Lost_artworks#20th_century">plane \n' +
-' accident</a>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(ex:The-Painter) \n' +
-'agent(ex:Picasso) \n' +
-'wasAttributedTo(ex:The-Painter, ex:Picasso) \n' +
-'activity(ex:crash) \n' +
-'wasInvalidatedBy(ex:The-Painter, ex:crash, 1998-09-02, [ ex:circumstances="plane accident" ]) \n' +
-'</pre> \n' +
-' </div><div class="anexample" id="anexample-invalidation2"> \n' +
-' <p> \n' +
-' The BBC news home page on 2012-04-03 <span class="name">ex:bbcNews2012-04-03</span> \n' +
-' contained a reference to a given news item <a href="http://www.bbc.co.uk/news/uk-17595024">bbc:news/uk-17595024</a>, \n' +
-' but the BBC news home page on the next day did not. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(ex:bbcNews2012-04-03) \n' +
-'memberOf(ex:bbcNews2012-04-03, {("item1", bbc:news/uk-17595024)}) \n' +
-'wasGeneratedBy (ex:bbcNews2012-04-03, -, 2012-04-03T00:00:01) \n' +
-'wasInvalidatedBy(ex:bbcNews2012-04-03, -, 2012-04-03T23:59:59) \n' +
-'</pre> \n' +
-' We refer to example <a href="#anexample-specialization" class="anexample-ref"><span>Example REF</span></a> for further \n' +
-' descriptions of the BBC Web site, and to <a href="#term-dictionary-membership">Section 5.6.5</a> for a description of \n' +
-' the relation <a title="memberOf-d">memberOf</a>. \n' +
-' </div><div class="anexample" id="anexample-invalidation3"> \n' +
-' <p> \n' +
-' In this example, the "buy one beer, get one free" offer expired at the \n' +
-' end of the happy hour. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(buy_one_beer_get_one_free_offer_during_happy_hour) \n' +
-'wasAttributedTo(proprietor) \n' +
-'wasInvalidatedBy(buy_one_beer_get_one_free_offer_during_happy_hour, \n' +
-' -,2012-03-10T18:00:00) \n' +
-'</pre> \n' +
-' <p> \n' +
-' In contrast, in the following descriptions, Bob redeemed the offer 45 \n' +
-' minutes before it expired, and got two beers. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(buy_one_beer_get_one_free_offer_during_happy_hour) \n' +
-'wasAttributedTo(proprietor) \n' +
-'activity(redeemOffer) \n' +
-'entity(twoBeers) \n' +
-' \n' +
-'wasAssociatedWith(redeemOffer,bob) \n' +
-'used(buy_one_beer_get_one_free_offer_during_happy_hour, \n' +
-' redeemOffer, 2012-03-10T17:15:00) \n' +
-'wasInvalidatedBy(buy_one_beer_get_one_free_offer_during_happy_hour, \n' +
-' redeemOffer, 2012-03-10T17:15:00) \n' +
-'wasGeneratedBy(twoBeers,redeemOffer) \n' +
-'</pre> \n' +
-' <p> \n' +
-' We see that the offer was both used to be converted into <span class="name">twoBeers</span> and invalidated by the <span class="name">redeemOffer</span> \n' +
-' activity: in other words, the combined usage and invalidation indicate \n' +
-' consumption of the offer. \n' +
-' </p> \n' +
-' </div><div style="text-align: center;"> \n' +
-' <!-- <img src="images/Derivation.png" alt="derivation"/> --> \n' +
-' <img src="uml/component2.png" alt="derivation" /> Figure 6: Derivation \n' +
-' Component Overview \n' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-derivation"> \n' +
-' A <dfn title="wasDerivedFrom">derivation</dfn><span class="withPn">, \n' +
-' written <span class="pnExpression" id="pn-wasDerivedFrom">wasDerivedFrom(id; \n' +
-' e2, e1, a, g2, u1, attrs)</span> in PROV-N,</span> has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="derivation.id">id</span>: an OPTIONAL \n' +
-' identifier for a derivation; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="derivation.generatedEntity">generatedEntity</span>: \n' +
-' the identifier (<span class="name">e2</span>) of the entity generated \n' +
-' by the derivation; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="derivation.usedEntity">usedEntity</span>: \n' +
-' the identifier (<span class="name">e1</span>) of the entity used by \n' +
-' the derivation; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="derivation.activity">activity</span>: an \n' +
-' OPTIONAL identifier (<span class="name">a</span>) for the activity \n' +
-' using and generating the above entities; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="derivation.generation">generation</span>: \n' +
-' an OPTIONAL identifier (<span class="name">g2</span>) for the \n' +
-' generation involving the generated entity (<span class="name">e2</span>) \n' +
-' and activity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="derivation.usage">usage</span>: an \n' +
-' OPTIONAL identifier (<span class="name">u1</span>) for the usage \n' +
-' involving the used entity (<span class="name">e1</span>) and activity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="derivation.attributes">attributes</span>: \n' +
-' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value \n' +
-' pairs representing additional information about this derivation. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample" id="anexample-derivation"> \n' +
-' <p> \n' +
-' The following descriptions are about derivations between <span class="name">e2</span> and <span class="name">e1</span>, but no \n' +
-' information is provided as to the identity of the activity (and usage \n' +
-' and generation) underpinning the derivation. In the second line, a type \n' +
-' attribute is also provided. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'wasDerivedFrom(e2, e1) \n' +
-'wasDerivedFrom(e2, e1, [ prov:type="physical transform" ]) \n' +
-'</pre> \n' +
-' <p> \n' +
-' The following description expresses that activity <span class="name">a</span>, \n' +
-' using the entity <span class="name">e1</span> according to usage <span class="name">u1</span>, derived the entity <span class="name">e2</span> \n' +
-' and generated it according to generation <span class="name">g2</span>. \n' +
-' It is followed by descriptions for generation <span class="name">g2</span> \n' +
-' and usage <span class="name">u1</span>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'wasDerivedFrom(e2, e1, a, g2, u1) \n' +
-'wasGeneratedBy(g2; e2, a, -) \n' +
-'used(u1; a, e1, -) \n' +
-'</pre> \n' +
-' <p> \n' +
-' With such a comprehensive description of derivation, a program that \n' +
-' analyzes provenance can identify the activity underpinning the \n' +
-' derivation, it can identify how the original entity <span class="name">e1</span> \n' +
-' was used by the activity (e.g. for instance, which argument it was \n' +
-' passed as, if the activity is the result of a function invocation), and \n' +
-' which output the derived entity <span class="name">e2</span> was \n' +
-' obtained from (say, for a function returning multiple results). \n' +
-' </p> \n' +
-' </div><div class="anexample" id="anexample-revision"> \n' +
-' <p> \n' +
-' Revisiting the example of <a href="#section-example-two">Section 4.2</a>, \n' +
-' we can now state that the report <span class="name">tr:WD-prov-dm-20111215</span> \n' +
-' was a revision of the report <span class="name">tr:WD-prov-dm-20111018</span>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(tr:WD-prov-dm-20111215, [ prov:type='rec54:WD' ]) \n' +
-'entity(tr:WD-prov-dm-20111018, [ prov:type='rec54:WD' ]) \n' +
-'wasDerivedFrom(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, [ prov:type='prov:WasRevisionOf' ]) \n' +
-'</pre> \n' +
-' </div><div class="anexample" id="anexample-quotation"> \n' +
-' <p> \n' +
-' The following paragraph is a quote from one of <a href="http://thinklinks.wordpress.com/2012/03/07/thoughts-from-the-dagstuhl-principles-of-provenance-workshop/">the \n' +
-' author's blogs</a>. \n' +
-' </p> \n' +
-' <blockquote id="bl-dagstuhl" /> \n' +
-' <em> "During the workshop, it became clear to me that the consensus based \n' +
-' models (which are often graphical in nature) can not only be formalized \n' +
-' but also be directly connected to these database focused formalizations. I \n' +
-' just needed to get over the differences in syntax. This could imply that \n' +
-' we could have nice way to trace provenance across systems and through \n' +
-' databases and be able to understand the mathematical properties of this \n' +
-' interconnection."</em> \n' +
-' <p> \n' +
-' If <a href="http://thinklinks.wordpress.com/2012/03/07/thoughts-from-the-dagstuhl-principles-of-provenance-workshop/"><span class="name">wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/</span></a> \n' +
-' denotes the original blog by agent <span class="name">ex:Paul</span>, \n' +
-' and <a href="#bl-dagstuhl"><span class="name">dm:bl-dagstuhl</span></a> \n' +
-' denotes the above paragraph, then the following descriptions express \n' +
-' that the above paragraph was copied by agent <span class="name">ex:Luc</span> \n' +
-' from a part of the blog, attributed to the agent <span class="name">ex:Paul</span>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/) \n' +
-'entity(dm:bl-dagstuhl) \n' +
-'agent(ex:Luc) \n' +
-'agent(ex:Paul) \n' +
-'wasDerivedFrom(dm:bl-dagstuhl, \n' +
-' wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/, \n' +
-' [ prov:type='prov:WasQuotedFrom' ]) \n' +
-'wasAttributedTo(dm:bl-dagstuhl, ex:Luc) \n' +
-'wasAttributedTo(wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/, ex:Paul) \n' +
-'</pre> \n' +
-' </div><div class="anexample" id="anexample-primary-source1"> \n' +
-' <p> \n' +
-' Let us consider Charles Joseph Minard's flow map of Napoleon's March in \n' +
-' 1812, which was published in 1869. Although the map is not a primary \n' +
-' source, Minard probably used the journal of Pierre-Irénée Jacob, \n' +
-' pharmacist to Napoleon's army during the Russian campaign. This primary \n' +
-' source relation can be encoded as follows. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(ex:la-campagne-de-Russie-1812-1813) \n' +
-'entity(ex:revue-d-Histoire-de-la-Pharmacie-t-XVIII) \n' +
-'wasDerivedFrom(ex:la-campagne-de-Russie-1812-1813, \n' +
-' ex:revue-d-Histoire-de-la-Pharmacie-t-XVIII, \n' +
-' [ prov:type='prov:HadPrimarySource' ]) \n' +
-'</pre> \n' +
-' </div><div style="text-align: center;"> \n' +
-' <!-- <img src="images/Agents-Responsibility.png" alt="agents and \n' +
-' responsibilities"/> --> \n' +
-' <img src="uml/component3.png" alt="agents and responsibilities" /> Figure \n' +
-' 7: Agents and Responsibility Component Overview \n' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-agent"> \n' +
-' An <dfn title="dfn-agent" id="dfn-agent">agent</dfn><span class="withPn">, \n' +
-' written <span class="pnExpression" id="pn-agent">agent(id, [attr1=val1, \n' +
-' ...])</span> in PROV-N,</span> has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="agent.id">id</span>: an identifier for an \n' +
-' agent; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="agent.attributes">attributes</span>: a set \n' +
-' of attribute-value pairs ((<span class="name">attr1</span>, <span class="name">val1</span>), ...) representing additional information \n' +
-' about this agent. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="glossary-ref" /><div class="glossary-ref" /><div class="glossary-ref" /><div class="anexample"> \n' +
-' <p> \n' +
-' The following expression is about an agent identified by <span class="name">e1</span>, which is a person, named Alice, with employee \n' +
-' number 1234. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'agent(e1, [ex:employee="1234", ex:name="Alice", prov:type='prov:Person' ]) \n' +
-'</pre> \n' +
-' <p> \n' +
-' It is optional to specify the type of an agent. When present, it is \n' +
-' expressed using the <span class="name">prov:type</span> attribute. \n' +
-' </p> \n' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-attribution"> \n' +
-' An <dfn title="wasAttributedTo">attribution</dfn> relation<span class="withPn">, written <span class="pnExpression">wasAttributedTo(id; e, \n' +
-' ag, attrs)</span> in PROV-N,</span> has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="attribution.id">id</span>: an OPTIONAL \n' +
-' identifier for the relation; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="attribution.entity">entity</span>: an \n' +
-' entity identifier (<span class="name">e</span>); \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="attribution.agent">agent</span>: the \n' +
-' identifier (<span class="name">ag</span>) of the agent whom the entity \n' +
-' is ascribed to, and therefore bears some responsibility for its \n' +
-' existence; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="attribution.attributes">attributes</span>: \n' +
-' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value \n' +
-' pairs representing additional information about this attribution. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample" id="anexample-attribution"> \n' +
-' <p> \n' +
-' Revisiting the example of <a class="section-ref" href="#section-example-one"><span>TBD</span></a>, we can ascribe <span class="name">tr:WD-prov-dm-20111215</span> to some agents without an \n' +
-' explicit activity. The reserved attribute <span class="name">role</span> \n' +
-' (see <a class="section-ref" href="#term-attribute-role"><span>TBD</span></a>) \n' +
-' allows for role of the agent in the attribution to be specified. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'agent(ex:Paolo, [ prov:type="Person" ]) \n' +
-'agent(ex:Simon, [ prov:type="Person" ]) \n' +
-'entity(tr:WD-prov-dm-20111215, [ prov:type='rec54:WD' ]) \n' +
-'wasAttributedTo(tr:WD-prov-dm-20111215, ex:Paolo, [ prov:type="editorship" ]) \n' +
-'wasAttributedTo(tr:WD-prov-dm-20111215, ex:Simon, [ prov:type="authorship" ]) \n' +
-'</pre> \n' +
-' </div><div class="glossary-ref" /><div class="glossary-ref" /><div class="attributes" id="attributes-activity-association"> \n' +
-' An <dfn title="wasAssociatedWith">activity association</dfn><span class="withPn">, written <span class="pnExpression">wasAssociatedWith(id; \n' +
-' a, ag, pl, attrs)</span> in PROV-N,</span> has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="association.id">id</span>: an OPTIONAL \n' +
-' identifier for the association between an activity and an agent; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="association.activity">activity</span>: an \n' +
-' identifier (<span class="name">a</span>) for the activity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="association.agent">agent</span>: an \n' +
-' OPTIONAL identifier (<span class="name">ag</span>) for the agent \n' +
-' associated with the activity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="association.plan">plan</span>: an OPTIONAL \n' +
-' identifier (<span class="name">pl</span>) for the plan adopted by the \n' +
-' agent in the context of this activity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="association.attributes">attributes</span>: \n' +
-' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value \n' +
-' pairs representing additional information about this association of \n' +
-' this activity with this agent. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample" id="anexample-wasAssociatedWith"> \n' +
-' <p> \n' +
-' In the following example, a designer agent and an operator agent are \n' +
-' associated with an activity. The designer's goals are achieved by a \n' +
-' workflow <span class="name">ex:wf</span>, described as an an entity of \n' +
-' type <span class="name"><a>plan</a></span>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'activity(ex:a, [ prov:type="workflow execution" ]) \n' +
-'agent(ex:ag1, [ prov:type="operator" ]) \n' +
-'agent(ex:ag2, [ prov:type="designer" ]) \n' +
-'wasAssociatedWith(ex:a, ex:ag1, -, [ prov:role="loggedInUser", ex:how="webapp" ]) \n' +
-'wasAssociatedWith(ex:a, ex:ag2, ex:wf, [ prov:role="designer", ex:context="project1" ]) \n' +
-'entity(ex:wf, [ prov:type='prov:Plan' , \n' +
-' ex:label="Workflow 1", \n' +
-' ex:url="http://example.org/workflow1.bpel" %% xsd:anyURI ]) \n' +
-'</pre> \n' +
-' Since the workflow <span class="name">ex:wf</span> is itself an entity, \n' +
-' its provenance can also be expressed in PROV-DM: it can be generated by \n' +
-' some activity and derived from other entities, for instance. \n' +
-' </div><div class="anexample" id="anexample-wasAssociatedWith-2"> \n' +
-' <p> \n' +
-' In some cases, one wants to indicate a plan was followed, without having \n' +
-' to specify which agent was involved. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'activity(ex:a, [ prov:type="workflow execution" ]) \n' +
-'wasAssociatedWith(ex:a, -, ex:wf) \n' +
-'entity(ex:wf, [ prov:type='prov:Plan', \n' +
-' ex:label="Workflow 1", \n' +
-' ex:url="http://example.org/workflow1.bpel" %% xsd:anyURI]) \n' +
-'</pre> \n' +
-' In this case, it is assumed that an agent exists, but it has not been \n' +
-' specified. \n' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-delegation"> \n' +
-' A <dfn title="actedOnBehalfOf">delegation</dfn> link<span class="withPn">, \n' +
-' written <span class="pnExpression">actedOnBehalfOf(id; ag2, ag1, a, attrs)</span> \n' +
-' in PROV-N,</span> has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="delegation.id">id</span>: an OPTIONAL \n' +
-' identifier for the delegation link between delegate and responsible; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="delegation.delegate">delegate</span>: an \n' +
-' identifier (<span class="name">ag2</span>) for the agent associated \n' +
-' with an activity, acting on behalf of the responsible agent; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="delegation.responsible">responsible</span>: \n' +
-' an identifier (<span class="name">ag1</span>) for the agent, on behalf \n' +
-' of which the delegate agent acted; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="delegation.activity">activity</span>: an \n' +
-' OPTIONAL identifier (<span class="name">a</span>) of an activity for \n' +
-' which the delegation link holds; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="delegation.attributes">attributes</span>: \n' +
-' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value \n' +
-' pairs representing additional information about this delegation link. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample"> \n' +
-' <p> \n' +
-' The following fragment describes three agents: a programmer, a \n' +
-' researcher, and a funder. The programmer and researcher are associated \n' +
-' with a workflow activity. The programmer acts on behalf of the \n' +
-' researcher (line-management) encoding the commands specified by the \n' +
-' researcher; the researcher acts on behalf of the funder, who has a \n' +
-' contractual agreement with the researcher. The terms 'line-management' \n' +
-' and 'contract' used in this example are domain specific. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'activity(a,[ prov:type="workflow" ]) \n' +
-'agent(ag1, [ prov:type="programmer" ]) \n' +
-'agent(ag2, [ prov:type="researcher" ]) \n' +
-'agent(ag3, [ prov:type="funder" ]) \n' +
-'wasAssociatedWith(a, ag1, [ prov:role="loggedInUser" ]) \n' +
-'wasAssociatedWith(a, ag2) \n' +
-'wasAssociatedWith(a, ag3) \n' +
-'actedOnBehalfOf(ag1, ag2, a, [ prov:type="line-management" ]) \n' +
-'actedOnBehalfOf(ag2, ag3, a, [ prov:type="contract" ]) \n' +
-'</pre> \n' +
-' </div><div class="anexample"> \n' +
-' <p> \n' +
-' We refer to the example of <a class="section-ref" href="#section-example-two"><span>TBD</span></a>, and specifically to <a href="#prov-a-document2-top">Figure 3</a>. We can see that there is a \n' +
-' path from <span class="name">tr:WD-prov-dm-20111215</span> to <span class="name">w3:Consortium</span> and to <span class="name">process:rec-advance</span>. \n' +
-' This is expressed as follows. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' tracedTo(tr:WD-prov-dm-20111215, w3:Consortium) \n' +
-' tracedTo(tr:WD-prov-dm-20111215, process:rec-advance) \n' +
-'</pre> \n' +
-' </div><div style="text-align: center;"> \n' +
-' <img src="uml/component4.png" alt="bundles" /> Figure 8: Bundle Component \n' +
-' Overview \n' +
-' </div><div class="attributes" id="attributes-bundle"> \n' +
-' A <dfn title="dfn-bundle" id="dfn-bundle-declaration">bundle constructor</dfn> \n' +
-' allows the content and the name of a bundle to be specified; it is written \n' +
-' <span class="pnExpression">bundle id description_1 ... description_n \n' +
-' endBundle</span> and consists of: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="bundle.declaration.id">id</span>: an \n' +
-' identifier for the bundle; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="bundle.declaration.descriptions">descriptions</span>: \n' +
-' a set of provenance descriptions <span class="name"> description_1</span>, \n' +
-' ..., <span class="name">description_n</span>. \n' +
-' </li> \n' +
-' </ul> \n' +
-' <p> \n' +
-' A bundle's identifier <span class="name">id</span> identifies a unique \n' +
-' set of descriptions. \n' +
-' </p> \n' +
-' </div><div class="anexample" id="anexample-provenance-of-provenance"> \n' +
-' <p> \n' +
-' Let us consider two entities <span class="name">ex:report1</span> and \n' +
-' <span class="name">ex:report2</span>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(ex:report1, [ prov:type="report", ex:version=1 ]) \n' +
-'wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01) \n' +
-'entity(ex:report2, [ prov:type="report", ex:version=2]) \n' +
-'wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01) \n' +
-'wasDerivedFrom(ex:report2, ex:report1) \n' +
-'</pre> \n' +
-' <p> \n' +
-' Let us assume that Bob observed the creation of <span class="name">ex:report1</span>. \n' +
-' A first bundle can be expressed. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'bundle bob:bundle1 \n' +
-' entity(ex:report1, [ prov:type="report", ex:version=1 ]) \n' +
-' wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01) \n' +
-'endBundle \n' +
-'</pre> \n' +
-' <p> \n' +
-' In contrast, Alice observed the creation of <span class="name">ex:report2</span> \n' +
-' and its derivation from <span class="name">ex:report1</span>. A separate \n' +
-' bundle can also be expressed. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'bundle alice:bundle2 \n' +
-' entity(ex:report1) \n' +
-' entity(ex:report2, [ prov:type="report", ex:version=2 ]) \n' +
-' wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01) \n' +
-' wasDerivedFrom(ex:report2, ex:report1) \n' +
-'endBundle \n' +
-'</pre> \n' +
-' <p> \n' +
-' The first bundle contains the descriptions corresponding to Bob \n' +
-' observing the creation of <span class="name">ex:report1</span>. Its \n' +
-' provenance can be described as follows. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(bob:bundle1, [prov:type='prov:Bundle']) \n' +
-'wasGeneratedBy(bob:bundle1, -, 2012-05-24T10:30:00) \n' +
-'wasAttributedTo(bob:bundle1, ex:Bob) \n' +
-'</pre> \n' +
-' <p> \n' +
-' In contrast, the second bundle is attributed to Alice who observed the \n' +
-' derivation of <span class="name">ex:report2</span> from <span class="name">ex:report1</span>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(alice:bundle2, [ prov:type='prov:Bundle' ]) \n' +
-'wasGeneratedBy(alice:bundle2, -, 2012-05-25T11:15:00) \n' +
-'wasAttributedTo(alice:bundle2, ex:Alice) \n' +
-'</pre> \n' +
-' </div><div class="anexample" id="anexample-provenance-aggregation"> \n' +
-' <p> \n' +
-' A provenance aggregator could merge two bundles, resulting in a novel \n' +
-' bundle, whose provenance is described as follows. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'bundle agg:bundle3 \n' +
-' entity(ex:report1, [ prov:type="report", ex:version=1 ]) \n' +
-' wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01) \n' +
-' \n' +
-' entity(ex:report2, [ prov:type="report", ex:version=2 ]) \n' +
-' wasGeneratedBy(ex:report2, -, 2012-05-25T11:00:01) \n' +
-' wasDerivedFrom(ex:report2, ex:report1) \n' +
-'endBundle \n' +
-' \n' +
-'entity(agg:bundle3, [ prov:type='prov:Bundle' ]) \n' +
-'agent(ex:aggregator01, [ prov:type='ex:Aggregator' ]) \n' +
-'wasAttributedTo(agg:bundle3, ex:aggregator01) \n' +
-'wasDerivedFrom(agg:bundle3, bob:bundle1) \n' +
-'wasDerivedFrom(agg:bundle3, alice:bundle2) \n' +
-'</pre> \n' +
-' <p> \n' +
-' The new bundle is given a new identifier <span class="name">agg:bundle3</span> \n' +
-' and is attributed to the <span class="name">ex:aggregator01</span> \n' +
-' agent. \n' +
-' </p> \n' +
-' </div><div style="text-align: center;"> \n' +
-' <!-- <img src="images/Alternates.png" alt="alternates"/> --> \n' +
-' <img src="uml/component5.png" alt="alternates" /> Figure 9: Alternates \n' +
-' Component Overview \n' +
-' </div><div class="anexample" id="entity-example1"> \n' +
-' <p> \n' +
-' User Alice writes an article. In its provenance, she wishes to refer to \n' +
-' the precise version of the article with a date-specific IRI, as she \n' +
-' might edit the article later. Alternatively, user Bob refers to the \n' +
-' article in general, independently of its variants over time. \n' +
-' </p> \n' +
-' </div><div class="attributes" id="attributes-specialization"> \n' +
-' A <dfn title="specializationOf">specialization</dfn> relation<span class="withPn">, written <span class="pnExpression">specializationOf(infra, \n' +
-' supra)</span> in PROV-N,</span> has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="specialization.specificEntity">specificEntity</span>: \n' +
-' an identifier (<span class="name">infra</span>) of the specialized \n' +
-' entity; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="specialization.generalEntity">generalEntity</span>: \n' +
-' an identifier (<span class="name">supra</span>) of the entity that is \n' +
-' being specialized. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample" id="anexample-specialization"> \n' +
-' <p> \n' +
-' The BBC news home page on 2012-03-23 <span class="name">ex:bbcNews2012-03-23</span> \n' +
-' is a specialization of the BBC news page in general <a href="http://www.bbc.co.uk/news/">bbc:news/</a>. This can be expressed \n' +
-' as follows. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'specializationOf(ex:bbcNews2012-03-23, bbc:news/) \n' +
-'</pre> \n' +
-' We have created a new qualified name, <span class="name">ex:bbcNews2012-03-23</span>, \n' +
-' in the namespace <span class="name">ex</span>, to identify the specific \n' +
-' page carrying this day's news, which would otherwise be the generic <span class="name">bbc:news/</span> page. \n' +
-' </div><div class="attributes" id="attributes-alternate"> \n' +
-' An <dfn title="alternateOf">alternate</dfn> relation<span class="withPn">, \n' +
-' written <span class="pnExpression">alternateOf(e1, e2)</span> in PROV-N,</span> \n' +
-' has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="alternate.alternate1">alternate1</span>: \n' +
-' an identifier (<span class="name">e1</span>) of the first of the two \n' +
-' entities; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="alternate.alternate2">alternate2</span>: \n' +
-' an identifier (<span class="name">e2</span>) of the second of the two \n' +
-' entities. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample" id="anexample-alternate"> \n' +
-' <p> \n' +
-' A given news item on the BBC News site <a href="http://www.bbc.co.uk/news/science-environment-17526723">bbc:news/science-environment-17526723</a> \n' +
-' for desktop is an alternate of a <a href="http://www.bbc.co.uk/news/mobile/science-environment-17526723">bbc:news/mobile/science-environment-17526723</a> \n' +
-' for mobile devices. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(bbc:news/science-environment-17526723, [ prov:type="a news item for desktop"]) \n' +
-'entity(bbc:news/mobile/science-environment-17526723, [ prov:type="a news item for mobile devices"]) \n' +
-'alternateOf(bbc:news/science-environment-17526723, bbc:news/mobile/science-environment-17526723) \n' +
-'</pre> \n' +
-' </div><div class="anexample" id="anexample-alternate2"> \n' +
-' <p> \n' +
-' Considering again the two versions of the technical report <span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111215">tr:WD-prov-dm-20111215</a></span> \n' +
-' (second working draft) and <span class="name"><span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018">tr:WD-prov-dm-20111018</a></span></span> \n' +
-' (first working draft). They are alternate of each other. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(tr:WD-prov-dm-20111018) \n' +
-'entity(tr:WD-prov-dm-20111215) \n' +
-'alternateOf(tr:WD-prov-dm-20111018,tr:WD-prov-dm-20111215) \n' +
-'</pre> \n' +
-' <p> \n' +
-' They are both specialization of the page <a href="http://www.w3.org/TR/prov-dm/">http://www.w3.org/TR/prov-dm/</a>. \n' +
-' </p> \n' +
-' </div><div class="attributes" id="attributes-contextualization"> \n' +
-' A <dfn title="contextualizationOf">contextualization</dfn> relation<span class="withPn">, written <span class="pnExpression">contextualizationOf(l, \n' +
-' e, b)</span> in PROV-N,</span> has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="contextualization.local">local</span>: an \n' +
-' identifier (<span class="name">l</span>) for an entity in the local \n' +
-' bundle (not explicitly identified) presenting the aspects of <span class="name">e</span> in remote bundle <span class="name">b</span> ; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="contextualization.contextualized">contextualized</span>: \n' +
-' an identifier (<span class="name">e</span>) of an entity in some \n' +
-' remote bundle <span class="name">b</span>; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="contextualization.context">bundle</span>: \n' +
-' an identifier (<span class="name">b</span>) for a remote bundle. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample" id="anexample-contextualization1"> \n' +
-' <p> \n' +
-' In the following example, two bundles <span class="name">ex:run1</span> \n' +
-' and <span class="name">ex:run2</span> refer to an agent <span class="name">ex:Bob</span> that controlled two activities <span class="name">ex:a1</span> and <span class="name">ex:a2</span>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'bundle ex:run1 \n' +
-' activity(ex:a1, 2011-11-16T16:00:00,2011-11-16T17:00:00) //duration: 1hour \n' +
-' wasAssociatedWith(ex:a1,ex:Bob,[prov:role="controller"]) \n' +
-'endBundle \n' +
-' \n' +
-'bundle ex:run2 \n' +
-' activity(ex:a2, 2011-11-17T10:00:00,2011-11-17T17:00:00) //duration: 7hours \n' +
-' wasAssociatedWith(ex:a2,ex:Bob,[prov:role="controller"]) \n' +
-'endBundle \n' +
-'</pre> \n' +
-' <p> \n' +
-' A performance rating tool reads these bundles, and rates the performance \n' +
-' of the agent described in these bundles. The performance rating tool \n' +
-' creates a new bundle <span class="name">tool:analysis01</span> \n' +
-' containing the following. A new agent <span class="name">tool:Bob-2011-11-16</span> \n' +
-' is declared as a contextualization of <span class="name">ex:Bob</span> \n' +
-' as described in remote bundle <span class="name">ex:run1</span>, and \n' +
-' likewise for <span class="name">tool:Bob-2011-11-17</span> with respect \n' +
-' to <span class="name">ex:run2</span>. The tool adds a domain-specific \n' +
-' performance attribute to each of these specialized entities as follows: \n' +
-' the performance of the agent in the first bundle is judged to be good \n' +
-' since the duration of <span class="name">ex:a1</span> is one hour, \n' +
-' whereas it is judged to be bad in the second bundle since <span class="name">ex:a2</span>'s duration is seven hours. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'bundle tool:analysis01 \n' +
-' agent(tool:Bob-2011-11-16, [perf:rating="good"]) \n' +
-' contextualizationOf(tool:Bob-2011-11-16, ex:Bob, ex:run1) \n' +
-' \n' +
-' agent(tool:Bob-2011-11-17, [perf:rating="bad"]) \n' +
-' contextualizationOf(tool:Bob-2011-11-17, ex:Bob, ex:run2) \n' +
-'endBundle \n' +
-'</pre> \n' +
-' </div><div class="anexample" id="aexample-contextualization-viz"> \n' +
-' <p> \n' +
-' Consider the following bundle of descriptions, in which derivation and \n' +
-' generations have been identified. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'bundle obs:bundle1 \n' +
-' entity(ex:report1, [prov:type="report", ex:version=1]) \n' +
-' wasGeneratedBy(ex:g1; ex:report1,-,2012-05-24T10:00:01) \n' +
-' entity(ex:report2, [prov:type="report", ex:version=2]) \n' +
-' wasGeneratedBy(ex:g2; ex:report2,-,2012-05-25T11:00:01) \n' +
-' wasDerivedFrom(ex:report2, ex:report1) \n' +
-'endBundle \n' +
-'entity(obs:bundle1, [ prov:type='prov:Bundle' ]) \n' +
-'wasAttributedTo(obs:bundle1, ex:observer01) \n' +
-'</pre> \n' +
-' Bundle <span class="name">obs:bundle1</span> is rendered by a \n' +
-' visualisation tool. It may useful for the tool configuration for this \n' +
-' bundle to be shared along with the provenance descriptions, so that other \n' +
-' users can render provenance as it was originally rendered. The original \n' +
-' bundle obviously cannot be changed. However, one can create a new bundle, \n' +
-' as follows. \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'bundle tool:bundle2 \n' +
-' entity(tool:bundle2, [ prov:type='viz:Configuration', prov:type='prov:Bundle' ]) \n' +
-' wasAttributedTo(tool:bundle2, viz:Visualizer) \n' +
-' \n' +
-' entity(tool:report1, [viz:color="orange"]) \n' +
-' contextualizationOf(tool:report1, obs:bundle1, ex:report1) \n' +
-' \n' +
-' entity(tool:report2, [viz:color="blue"]) \n' +
-' contextualizationOf(tool:report2, obs:bundle1, ex:report2) \n' +
-'endBundle \n' +
-'</pre> \n' +
-' <p> \n' +
-' In bundle <span class="name">tool:bundle2</span>, the prefix <span class="name">viz</span> is used for naming visualisation-specific \n' +
-' attributes, types or values. \n' +
-' </p> \n' +
-' <p> \n' +
-' Bundle <span class="name">tool:bundle2</span> is given type <span class="name">viz:Configuration</span> to indicate that it consists of \n' +
-' descriptions that pertain to the configuration of the visualisation \n' +
-' tool. This type attribute can be used for searching bundles containing \n' +
-' visualization-related descriptions. \n' +
-' </p> \n' +
-' <p> \n' +
-' The visualisation tool created new identifiers <span class="name">tool:report1</span> \n' +
-' and <span class="name">tool:report2</span>. They denote entities which \n' +
-' are specializations of <span class="name">ex:report1</span> and <span class="name">ex:report2</span>, described in bundle <span class="name">obs:bundle1</span>, \n' +
-' with visualization attribute for the color to be used when rendering \n' +
-' these entities. \n' +
-' </p> \n' +
-' </div><div style="text-align: center;"> \n' +
-' <!-- <img src="images/Dictionaries.png" alt="dictionaries"/> --> \n' +
-' <img src="uml/component6.png" alt="dictionaries" /> Figure 10: Collections \n' +
-' Component Overview \n' +
-' </div><div class="anexample"> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(c0, [prov:type='prov:EmptyCollection' ]) // c0 is an empty collection \n' +
-'entity(c1, [prov:type='prov:Collection' ]) // c1 is a collection, with unknown content \n' +
-'</pre> \n' +
-' </div><div class="attributes" id="attributes-memberOf"> \n' +
-' A <dfn title="memberOf">membership</dfn> relation, written <span class="pnExpression">memberOf(id; c, {e_1, ..., e_n}, cplt, attrs)</span>, \n' +
-' has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="membership.id">id</span>: an OPTIONAL \n' +
-' identifier identifying the relation; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="membership.collection">collection</span>: \n' +
-' an identifier (<span class="name">c</span>) for the collection whose \n' +
-' members are asserted; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="membership.entity-set">entity-set</span>: \n' +
-' a set of entities <span class="name">e_1</span>, ..., <span class="name">e_n</span> that are members of the collection; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="membership.complete">complete</span>: an \n' +
-' OPTIONAL boolean <a title="value">Value</a> (<span class="name">cplt</span>). \n' +
-' It is interpreted as follows: \n' +
-' <ul> \n' +
-' <li> \n' +
-' if it is present and set to true, then c is believed to include \n' +
-' all and only the members specified in the entity-set; \n' +
-' </li> \n' +
-' <li> \n' +
-' if it is present and set to false, then c is believed to include \n' +
-' more members in addition to those specified in the entity-set; \n' +
-' </li> \n' +
-' <li> \n' +
-' if it is not present, then c is believed to include all the \n' +
-' members specified in the entity-set, and it MAY include more. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="membership.attributes">attributes</span>: \n' +
-' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value \n' +
-' pairs representing additional information about this relation. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample"> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(d0, [prov:type='prov:EmptyDictionary' ]) // d0 is an empty dictionary \n' +
-'entity(d1, [prov:type='prov:Dictionary' ]) // d1 is a dictionary, with unknown content \n' +
-'</pre> \n' +
-' </div><div class="attributes" id="attributes-memberOf-d"> \n' +
-' A <dfn title="memberOf-d">membership</dfn> relation, written <span class="pnExpression">memberOf(id; c, {(key_1, e_1), ..., (key_n, e_n)}, \n' +
-' cplt, attrs)</span>, has: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="membership-d.id">id</span>: an OPTIONAL \n' +
-' identifier identifying the relation; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="membership-d.dictionary">dictionary</span>: \n' +
-' an identifier (<span class="name">c</span>) for the dictionary whose \n' +
-' members are asserted; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="membership-d.key-entity-set">key-entity-set</span>: \n' +
-' a set of key-entity pairs <span class="name">(key_1, e_1)</span>, ..., \n' +
-' <span class="name">(key_n, e_n)</span> that are members of the \n' +
-' dictionary; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="membership-d.complete">complete</span>: an \n' +
-' OPTIONAL boolean <a title="value">Value</a> (<span class="name">cplt</span>). \n' +
-' It is interpreted as follows: \n' +
-' <ul> \n' +
-' <li> \n' +
-' if it is present and set to true, then c is believed to include \n' +
-' all and only the members specified in the key-entity-set; \n' +
-' </li> \n' +
-' <li> \n' +
-' if it is present and set to false, then c is believed to include \n' +
-' more members in addition to those specified in the key-entity-set; \n' +
-' </li> \n' +
-' <li> \n' +
-' if it is not present, then c is believed to include all the \n' +
-' members specified in the key-entity-set, and it MAY include more. \n' +
-' </li> \n' +
-' </ul> \n' +
-' <!-- if true, it indicates that no other member belongs to the \n' +
-' dictionary; if false, it indicates that other members belong to the \n' +
-' dictionary; if unspecified, other members MAY belong to the \n' +
-' dictionary; --> \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="membership-d.attributes">attributes</span>: \n' +
-' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value \n' +
-' pairs representing additional information about this relation. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample"> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(d1, [prov:type='prov:Dictionary' ]) // d1 is a dictionary, with unknown content \n' +
-'entity(d2, [prov:type='prov:Dictionary' ]) // d2 is a dictionary, with unknown content \n' +
-' \n' +
-'entity(e1) \n' +
-'entity(e2) \n' +
-' \n' +
-'memberOf(d1, {("k1", e1), ("k2", e2)} ) \n' +
-'memberOf(d2, {("k1", e1), ("k2", e2)}, true) \n' +
-' \n' +
-'</pre> \n' +
-' From these descriptions, we conclude: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="name">d1</span> has the following pairs as members: <span class="name">("k1", e1), ("k2", e2)</span>, and may contain others. \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="name">d2</span> exactly has the following pairs as \n' +
-' members: <span class="name">("k1", e1), ("k2", e2)</span>, and does \n' +
-' not contain any other. \n' +
-' </li> \n' +
-' </ul> \n' +
-' <p> \n' +
-' Thus, the membership of <span class="name">d1</span> is only partially \n' +
-' known. \n' +
-' </p> \n' +
-' </div><div class="attributes" id="attributes-derivedByInsertionFrom"> \n' +
-' <p> \n' +
-' An <dfn title="derivedByInsertionFrom">Insertion</dfn> relation<span class="withPn">, written <span class="pnExpression">derivedByInsertionFrom(id; \n' +
-' d2, d1, {(key_1, e_1), ..., (key_n, e_n)}, attrs)</span>,</span> has: \n' +
-' </p> \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="insertion.id">id</span>: an OPTIONAL \n' +
-' identifier identifying the relation; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="insertion.after">after</span>: an \n' +
-' identifier (<span class="name">d2</span>) for the dictionary <em>after</em> \n' +
-' insertion; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="insertion.before">before</span>: an \n' +
-' identifier (<span class="name">d1</span>) for the dictionary <em>before</em> \n' +
-' insertion; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="insertion.key-entity-set">key-entity-set</span>: \n' +
-' the inserted key-entity pairs <span class="name">(key_1, e_1)</span>, \n' +
-' ..., <span class="name">(key_n, e_n)</span> in which each <span class="name">key_i</span> is a <a>value</a>, and <span class="name">e_i</span> \n' +
-' is an identifier for the entity that has been inserted with the key; \n' +
-' each <span class="name">key_i</span> is expected to be unique for the \n' +
-' key-entity-set; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="insertion.attributes">attributes</span>: \n' +
-' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value \n' +
-' pairs representing additional information about this relation. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample"> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(d0, [prov:type='prov:EmptyDictionary' ]) // d0 is an empty dictionary \n' +
-'entity(e1) \n' +
-'entity(e2) \n' +
-'entity(e3) \n' +
-'entity(d1, [prov:type='prov:Dictionary' ]) \n' +
-'entity(d2, [prov:type='prov:Dictionary' ]) \n' +
-' \n' +
-'derivedByInsertionFrom(d1, d0, {("k1", e1), ("k2", e2)}) \n' +
-'derivedByInsertionFrom(d2, d1, {("k3", e3)}) \n' +
-'</pre> \n' +
-' From this set of descriptions, we conclude: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="name">d0</span> is the set <span class="name">{ }</span> \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="name">d1</span> is the set <span class="name">{ ("k1", \n' +
-' e1), ("k2", e2) }</span> \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="name">d2</span> is the set <span class="name">{ ("k1", \n' +
-' e1), ("k2", e2), ("k3", e3) }</span> \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample"> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(d0, [prov:type='prov:EmptyDictionary' ]) // d0 is an empty dictionary \n' +
-'entity(e1) \n' +
-'entity(e2) \n' +
-'entity(e3) \n' +
-'entity(d1, [prov:type='prov:Dictionary' ]) \n' +
-'entity(d2, [prov:type='prov:Dictionary' ]) \n' +
-' \n' +
-'derivedByInsertionFrom(d1, d0, {("k1", e1), ("k2", e2)}) \n' +
-'derivedByInsertionFrom(d2, d1, {("k1", e3)}) \n' +
-'</pre> \n' +
-' This is a case of <em>update</em> of <span class="name">e1</span> to <span class="name">e3</span> for the same key, <span class="name">"k1"</span>. \n' +
-' <br /> From this set of descriptions, we conclude: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="name">d0</span> is the set <span class="name">{ }</span> \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="name">d1</span> is the set <span class="name">{ ("k1", \n' +
-' e1), ("k2", e2) }</span> \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="name">d2</span> is the set <span class="name">{ ("k1", \n' +
-' e3), ("k2", e2) }</span> \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="attributes" id="attributes-derivedByRemovalFrom"> \n' +
-' <p> \n' +
-' A <dfn title="derivedByRemovalFrom">Removal</dfn> relation, written \n' +
-' <span class="pnExpression">derivedByRemovalFrom(id; d2, d1, {key_1, ... \n' +
-' key_n}, attrs)</span>, has: \n' +
-' </p> \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="attribute" id="removal.id">id</span>: an OPTIONAL \n' +
-' identifier identifying the relation; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="removal.after">after</span>: an identifier \n' +
-' (<span class="name">d2</span>) for the dictionary <em>after</em> the \n' +
-' deletion; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="removal.before">before</span>: an \n' +
-' identifier (<span class="name">d1</span>) for the dictionary <em>before</em> \n' +
-' the deletion; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="removal.key-set">key-set</span>: a set of \n' +
-' deleted keys <span class="name">key_1</span>, ..., <span class="name">key_n</span>, \n' +
-' for which each <span class="name">key_i</span> is a <a>value</a>; \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="attribute" id="removal.attributes">attributes</span>: an \n' +
-' OPTIONAL set (<span class="name">attrs</span>) of attribute-value \n' +
-' pairs representing additional information about this relation. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="anexample"> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(d0, [prov:type="prov:EmptyDictionary"]) // d0 is an empty dictionary \n' +
-'entity(e1) \n' +
-'entity(e2) \n' +
-'entity(e3) \n' +
-'entity(d1, [prov:type="prov:Dictionary"]) \n' +
-'entity(d2, [prov:type="prov:Dictionary"]) \n' +
-' \n' +
-'derivedByInsertionFrom(d1, d0, {("k1", e1), ("k2",e2)}) \n' +
-'derivedByInsertionFrom(d2, d1, {("k3", e3)}) \n' +
-'derivedByRemovalFrom(d3, d2, {"k1", "k3"}) \n' +
-'</pre> \n' +
-' From this set of descriptions, we conclude: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="name">d0</span> is the set <span class="name">{ }</span> \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="name">d1</span> is the set <span class="name">{ ("k1", \n' +
-' e1), ("k2", e2) }</span> \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="name">d2</span> is the set <span class="name">{ ("k1", \n' +
-' e1), ("k2", e2), ("k3", e3) }</span> \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="name">d3</span> is the set <span class="name">{ ("k2", \n' +
-' e2) }</span> \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div id="attributes-at-a-glance-div" style="text-align: left;"> \n' +
-' <table class="thinborder" style="margin-left: auto; margin-right: auto;"> \n' +
-' <caption id="attributes-at-a-glance"> \n' +
-' Table 6: PROV-DM Attributes At a Glance \n' +
-' </caption> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <b>Attribute</b> \n' +
-' </td> \n' +
-' <td> \n' +
-' <b>Allowed In</b> \n' +
-' </td> \n' +
-' <td> \n' +
-' <b>value</b> \n' +
-' </td> \n' +
-' <td> \n' +
-' <b>Section</b> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' <td style="border-width: 0px; " /> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a title="label">prov:label</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <em>any construct</em> \n' +
-' </td> \n' +
-' <td> \n' +
-' A <a>Value</a> of type <a class="section-ref" href="http://www.w3.org/TR/xmlschema11-2/#string">xsd:string</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a class="section-ref" href="#term-attribute-label"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a title="location">prov:location</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a>Entity</a>, <a>Activity</a>, <a>Usage</a>, and <a>Generation</a>. \n' +
-' </td> \n' +
-' <td> \n' +
-' A <a title="value">Value</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a class="section-ref" href="#term-attribute-location"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a title="role">prov:role</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a>Usage</a>, <a>Generation</a>, <a>Invalidation</a>, <a>Association</a>, \n' +
-' <a>Start</a>, and <a>End</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' A <a title="value">Value</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a class="section-ref" href="#term-attribute-role"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a title="type">prov:type</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <em>any construct</em> \n' +
-' </td> \n' +
-' <td> \n' +
-' A <a title="value">Value</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a class="section-ref" href="#term-attribute-type"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' <tr> \n' +
-' <td> \n' +
-' <a title="value-attribute">prov:value</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a>Entity</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' A <a title="value">Value</a> \n' +
-' </td> \n' +
-' <td> \n' +
-' <a class="section-ref" href="#term-attribute-value"><span>TBD</span></a> \n' +
-' </td> \n' +
-' </tr> \n' +
-' </table> \n' +
-' </div><div class="anexample"> \n' +
-' <p> \n' +
-' The following entity is provided with a label attribute. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' entity(ex:e1, [ prov:label="This is a human-readable label" ]) \n' +
-'</pre> \n' +
-' </div><div class="anexample" id="example-location"> \n' +
-' <p> \n' +
-' The following expression describes entity Mona Lisa, a painting, with a \n' +
-' location attribute. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' entity(ex:MonaLisa, [ prov:location="Le Louvres, Paris", prov:type="StillImage" ]) \n' +
-'</pre> \n' +
-' <p> \n' +
-' The following expression describes a cell, at coordinates (5,5), with \n' +
-' value 10. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' entity(ex:cell, [ prov:location="(5,5)", prov:value="10" %% xsd:integer ]) \n' +
-'</pre> \n' +
-' </div><div class="anexample" id="anexample-role"> \n' +
-' <p> \n' +
-' The following activity is associated with an agent acting as the \n' +
-' operator. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' wasAssociatedWith(a, ag, [ prov:role="operator" ]) \n' +
-'</pre> \n' +
-' <p> \n' +
-' In the following expression, the activity <span class="name">ex:div01</span> \n' +
-' used entity <span class="name">ex:cell</span> in the role of divisor. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'used(ex:div01, ex:cell, [ prov:role="divisor" ]) \n' +
-'</pre> \n' +
-' </div><div class="anexample"> \n' +
-' <p> \n' +
-' The following describes an agent of type software agent. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' agent(ag, [ prov:type='prov:SoftwareAgent' ]) \n' +
-'</pre> \n' +
-' </div><div class="anexample"> \n' +
-' <p> \n' +
-' The following example illustrates the provenance of the number <span class="name">4</span> obtained by an activity that computed the length \n' +
-' of an input string <span class="name">"abcd"</span>. The input and the \n' +
-' output are expressed as entities <span class="name">ex:in</span> and \n' +
-' <span class="name">ex:out</span>, respectively. They each have a <span class="name">prov:value</span> attribute associated with the \n' +
-' corresponding value. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(ex:in, [ prov:value="abcd" ]) \n' +
-'entity(ex:out, [ prov:value=4 ]) \n' +
-'activity(ex:len, [ prov:type="string-length" ]) \n' +
-'used(ex:len, ex:in) \n' +
-'wasGeneratedBy(ex:out, ex:len) \n' +
-'wasDerivedFrom(ex:out, ex:in) \n' +
-'</pre> \n' +
-' </div><div class="note"> \n' +
-' Should we also have prov:encoding? \n' +
-' </div><div class="anexample" id="anexample-value"> \n' +
-' <p> \n' +
-' The following examples respectively are the string "abc", the integer \n' +
-' number 1, and the IRI "http://example.org/foo". \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' "abc" \n' +
-' "1" %% xsd:integer \n' +
-' "http://example.org/foo" %% xsd:anyURI \n' +
-'</pre> \n' +
-' <p> \n' +
-' The following example shows a value of type <span class="name">prov:QUALIFIED_NAME</span> \n' +
-' (see <span class="name"><a href="http://www.w3.org/TR/prov-n/#prod-QUALIFIED_NAME">prov:QUALIFIED_NAME</a></span> \n' +
-' [[PROV-N]]). The prefix <span class="name">ex</span> MUST be bound to a \n' +
-' <a>namespace</a> declared in a <a>namespace declaration</a>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' "ex:value" %% prov:QUALIFIED_NAME \n' +
-'</pre> \n' +
-' Alternatively, the same value can be expressed using the following \n' +
-' convenience notation. \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' 'ex:value' \n' +
-'</pre> \n' +
-' </div><div class="anexample" id="anexample-time"> \n' +
-' <p> \n' +
-' In the following example, the generation time of entity <span class="name">e1</span> is expressed according to <a href="http://www.w3.org/TR/xmlschema11-2/#dateTime">xsd:dateTime</a> \n' +
-' [[!XMLSCHEMA11-2]]. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' wasGeneratedBy(e1,a1, 2001-10-26T21:32:52) \n' +
-'</pre> \n' +
-' </div><div class="anexample" id="anexample-sub-relation"> \n' +
-' <p> \n' +
-' In the following example, <span class="name">e2</span> is a \n' +
-' translation of <span class="name">e1</span>, expressed as a sub-type \n' +
-' of derivation. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' wasDerivedFrom(e2,e1, [prov:type='ex:Translation' ]) \n' +
-'</pre> \n' +
-' </div><div class="anexample" id="anexample-sub-type"> \n' +
-' <p> \n' +
-' In the following example, <span class="name">e</span> is described \n' +
-' as a Car, a type of entity. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' entity(e, [prov:type='ex:Car' ]) \n' +
-'</pre> \n' +
-' </div><div class="anexample" id="anexample-usage-with-role"> \n' +
-' <p> \n' +
-' In the following example, two computers <span class="name">ex:laptop4</span> \n' +
-' and <span class="name">ex:desktop9</span> are used in different \n' +
-' roles in a work activity. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' activity(ex:work) \n' +
-' entity(ex:laptop4) \n' +
-' entity(ex:desktop9) \n' +
-' used(ex:work, ex:laptop4, [prov:role="day-to-day machine"]) \n' +
-' used(ex:work, ex:desktop9, [prov:role="backup machine"]) \n' +
-'</pre> \n' +
-' </div><div id="glossary_div" class="remove"> \n' +
-' <!-- glossary loaded from glossary.js will be hooked up here, class \n' +
-' remove, will remove this element from the final output. --> \n' +
-' </div><div class="note"> \n' +
-' TODO: Add collection and account constraint sections to the compliance \n' +
-' list as appropriate. \n' +
-' </div><div class="note"> \n' +
-' Should we specify a way for PROV instances to say whether they are meant \n' +
-' to be validated or not? Seems outside the scope of this document, may \n' +
-' require changes to PROV-N. \n' +
-' </div><div class="note"> \n' +
-' Table: work in progress. Done up to constraint 25. \n' +
-' </div><div class="inference" id="inference-example"> \n' +
-' <p> \n' +
-' <span class="conditional">IF</span> <span class="name">hyp_1</span> and \n' +
-' ... and <span class="name">hyp_k</span> <span class="conditional">THEN</span> \n' +
-' there exists <span class="name">a_1</span> and ... and <span class="name">a_m</span> \n' +
-' such that <span class="name">conclusion_1</span> and ... and <span class="name">conclusion_n</span>. \n' +
-' </p> \n' +
-' </div><div class="note"> \n' +
-' TODO: Is this re-inventing blank nodes in PROV-DM, and do we want to do \n' +
-' this? A lot of the inferences have existentially quantified conclusions \n' +
-' (and there is some theory that supports this). TODO: Make sure conjunctive \n' +
-' reading of conclusion is clear. \n' +
-' </div><div class="definition" id="definition-example"> \n' +
-' <p> \n' +
-' <span class="name">defined_exp</span> holds <span class="conditional">IF \n' +
-' AND ONLY IF </span> there exists <span class="name">a_1</span>,..., \n' +
-' <span class="name">a_m</span> such that <span class="name">defining_exp_1</span> \n' +
-' and ... and <span class="name">defining_exp_n</span>. \n' +
-' </p> \n' +
-' </div><div class="definition" id="wasInformedBy-definition"> \n' +
-' <p> \n' +
-' Given two activities identified by <span class="name">a1</span> and \n' +
-' <span class="name">a2</span>, <span class="name">wasInformedBy(-;a2,a1)</span> \n' +
-' holds <span class="conditional">IF AND ONLY IF</span> there is an entity \n' +
-' with some identifier <span class="name">e</span>, such that <span class="name">wasGeneratedBy(-;e,a1,-,)</span> and <span class="name">used(-;a2,e,-)</span> \n' +
-' hold. \n' +
-' </p> \n' +
-' </div><div class="definition" id="wasStartedBy-definition"> \n' +
-' <p> \n' +
-' Given two activities with identifiers <span class="name">a1</span> and \n' +
-' <span class="name">a2</span>, <span class="name">wasStartedBy(-;a2,e,a1,-)</span> \n' +
-' holds <span class="conditional">IF AND ONLY IF</span> <span class="name">wasGeneratedBy(-;e,a1,-,-)</span> \n' +
-' and <span class="name">wasStartedBy(-;a2,e,-,-)</span> hold. \n' +
-' </p> \n' +
-' </div><div class="definition" id="wasEndedBy-definition"> \n' +
-' <p> \n' +
-' Given two activities with identifiers <span class="name">a1</span> and \n' +
-' <span class="name">a2</span>, <span class="name">wasEndedBy(-;a2,e,a1,-)</span> \n' +
-' holds <span class="conditional">IF AND ONLY IF</span> <span class="name">wasGeneratedBy(-;e,a1,-,-)</span> \n' +
-' and <span class="name">wasEndedBy(-;a2,e,-,-)</span> hold. \n' +
-' </p> \n' +
-' </div><div class="inference" id="derivation-use"> \n' +
-' <p> \n' +
-' Given an activity <span class="name">a</span>, entities denoted by <span class="name">e1</span> and <span class="name">e2</span>, <span class="conditional">IF</span> <span class="name">wasDerivedFrom(-;e2,e1, \n' +
-' a, -, -)</span> and <span class="name">wasGeneratedBy(-;e2,a,-)</span> \n' +
-' hold, <span class="conditional">THEN</span> <span class="name">used(-;a,e1,-)</span> \n' +
-' also holds. \n' +
-' </p> \n' +
-' </div><div class="note"> \n' +
-' There is some redundancy in the following discussion. \n' +
-' </div><div class="inference" id="revision-is-alternate"> \n' +
-' Given two identifiers <span class="name">e1</span> and <span class="name">e2</span> \n' +
-' identifying two entities, <span class="conditional">IF</span> <span class="name">wasDerivedFrom(-,e2,e1,[prov:type="prov:WasRevisionOf"])</span> \n' +
-' holds, <span class="conditional">THEN</span> the following holds: \n' +
-'<pre xml:space="preserve"> \n' +
-'alternateOf(e2,e1) \n' +
-'</pre> \n' +
-' </div><div class="inference" id="inference-attribution"> \n' +
-' <p> \n' +
-' <span class="conditional">IF</span> <span class="name">wasAttributedTo(-;e,ag)</span> \n' +
-' holds for some identifiers <span class="name">e</span> and <span class="name">ag</span>, <span class="conditional">THEN</span> there \n' +
-' exists an activity with some identifier <span class="name">a</span> such \n' +
-' that the following statements hold: \n' +
-' </p> \n' +
-'<pre xml:space="preserve"> \n' +
-'activity(a, -, -) \n' +
-'wasGeneratedBy(-; e, a, -) \n' +
-'wasAssociatedWith(-; a, ag, -) \n' +
-'</pre> \n' +
-' </div><div class="note"> \n' +
-' @@TODO: Could this be an inference? Does it imply that a1 is associated \n' +
-' with all activities a2 is associated with? \n' +
-' </div><div class="inference" id="inference-trace"> \n' +
-' <p> \n' +
-' Given two identifiers <span class="name">e2</span> and <span class="name">e1</span> \n' +
-' for entities, the following statements hold: \n' +
-' </p> \n' +
-' <ol> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasDerivedFrom(e2,e1,a,g2,u1)</span> \n' +
-' holds, for some <span class="name">a</span>, <span class="name">g2</span>, \n' +
-' <span class="name">u1</span>, <span class="conditional">THEN</span> \n' +
-' <span class="name">tracedTo(e2,e1)</span> also holds. \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasDerivedFrom(e2,e1)</span> \n' +
-' holds, <span class="conditional">THEN</span> <span class="name">tracedTo(e2,e1)</span> \n' +
-' also holds. \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasAttributedTo(e2,ag1,aAttr)</span> \n' +
-' holds, <span class="conditional">THEN</span> <span class="name">tracedTo(e2,ag1)</span> \n' +
-' also holds. \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasAttributedTo(e2,ag2,aAttr)</span>, \n' +
-' <span class="name">wasGeneratedBy(-;e2,a,-,gAttr)</span>, and <span class="name">actedOnBehalfOf(ag2,ag1,a,rAttr)</span> hold, for some \n' +
-' <span class="name">a</span>, <span class="name">ag2</span>, <span class="name">ag1</span>, <span class="name">aAttr</span>, <span class="name">gAttr</span>, and <span class="name">rAttr</span>, <span class="conditional">THEN</span> <span class="name">tracedTo(e2,ag1)</span> \n' +
-' also holds. \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasGeneratedBy(e2,a,gAttr)</span> \n' +
-' and <span class="name">wasStartedBy(a,e1,sAttr)</span> hold, for some \n' +
-' <span class="name">a</span>, <span class="name">gAttr</span> , <span class="name">sAttr</span> then <span class="name">tracedTo(e2,e1)</span> \n' +
-' holds. \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">tracedTo(e2,e)</span> \n' +
-' and <span class="name">tracedTo(e,e1)</span> hold for some <span class="name">e</span>, <span class="conditional">THEN</span> <span class="name">tracedTo(e2,e1)</span> also holds. \n' +
-' </li> \n' +
-' </ol> \n' +
-' </div><div class="note"> \n' +
-' TODO: There is currently no consensus what inferences on alternate or \n' +
-' specialization should be assumed. The following section lists possible \n' +
-' inferences that may or may not be adopted. Section is under review, \n' +
-' pending ISSUE-29. \n' +
-' </div><div class="inference" id="alternate-reflexive"> \n' +
-' <p> \n' +
-' For any entity <span class="name">e</span>, we have <span class="name">alternateOf(e,e)</span>. \n' +
-' </p> \n' +
-' </div><div class="inference" id="alternate-transitive"> \n' +
-' <p> \n' +
-' For any entities <span class="name">e1</span>, <span class="name">e2</span>, \n' +
-' <span class="name">e3</span>, <span class="conditional">IF</span> <span class="name">alternateOf(e1,e2)</span> and <span class="name">alternateOf(e2,e3)</span> \n' +
-' <span class="conditional">THEN</span> <span class="name">alternateOf(e1,e3)</span>. \n' +
-' </p> \n' +
-' </div><div class="inference" id="alternate-symmetric"> \n' +
-' <p> \n' +
-' For any entity <span class="name">e1</span>, <span class="name">e2</span>, \n' +
-' <span class="conditional">IF</span> <span class="name">alternateOf(e1,e2)</span> \n' +
-' <span class="conditional">THEN</span> <span class="name">alternateOf(e2,e1)</span>. \n' +
-' </p> \n' +
-' </div><div class="inference" id="specialization-irreflexive"> \n' +
-' <p> \n' +
-' For any entity <span class="name">e</span>, it is not the case that have \n' +
-' <span class="name">specializationOf(e,e)</span>. \n' +
-' </p> \n' +
-' </div><div class="inference" id="specialization-antisymmetric"> \n' +
-' <p> \n' +
-' For any entities <span class="name">e1</span>, <span class="name">e2</span>, \n' +
-' it is not the case that <span class="name">specializationOf(e1,e2)</span> \n' +
-' and <span class="name">specializationOf(e2,e1)</span>. \n' +
-' </p> \n' +
-' </div><div class="inference" id="specialization-transitive"> \n' +
-' <p> \n' +
-' For any entities <span class="name">e1</span>, <span class="name">e2</span>, \n' +
-' <span class="name">e3</span>, <span class="conditional">IF</span> <span class="name">specializationOf(e1,e2)</span> and <span class="name">specializationOf(e2,e3)</span> \n' +
-' <span class="conditional">THEN</span> <span class="name">specializationOf(e1,e3)</span>. \n' +
-' </p> \n' +
-' </div><div class="inference" id="specialization-alternate"> \n' +
-' <p> \n' +
-' For any entities <span class="name">e1</span>, <span class="name">e2</span>, \n' +
-' <span class="conditional">IF</span> <span class="name">specializationOf(e1,e2)</span> \n' +
-' <span class="conditional">THEN</span> <span class="name">alternateOf(e1,e2)</span>. \n' +
-' </p> \n' +
-' </div><div class="constraint" id="functional-contextualization"> \n' +
-' <p> \n' +
-' Given an entity denoted by <span class="name">e</span>, two entities \n' +
-' denoted by <span class="name">e1</span> and <span class="name">e2</span>, \n' +
-' and two bundles denoted by <span class="name">b1</span> and <span class="name">b2</span>, <span class="conditional">IF</span> <span class="name">contentualizationOf(e, e1, b1)</span> and <span class="name">contentualizationOf(e, \n' +
-' e2, b2)</span> exist, <span class="conditional">THEN</span> <span class="name">e1</span>=<span class="name">e2</span> and <span class="name">b1</span>=<span class="name">b2</span>. \n' +
-' </p> \n' +
-' </div><div class="inference" id="contextualization-specialization"> \n' +
-' <p> \n' +
-' For any entities <span class="name">e1</span>, <span class="name">e2</span>, \n' +
-' <span class="conditional">IF</span> <span class="name">contextualizationOf(e2,e1,b)</span> \n' +
-' <span class="conditional">THEN</span> <span class="name">specializationOf(e2,e1)</span>. \n' +
-' </p> \n' +
-' </div><div class="note"> \n' +
-' TODO: Possible inferences about attributes, generation, invalidation? \n' +
-' </div><div class="note"> \n' +
-' The following sections are retained from an older version, and are not \n' +
-' consistent with the above constraints. This will be revised once the \n' +
-' consensus on ISSUE-29 is clearer. \n' +
-' </div><div class="anexample" id="anexample-not-symmetric"> \n' +
-' "Alice's toyota car on fifth Avenue" is a specialization of "Alice's \n' +
-' toyota car", but the converse does not hold. \n' +
-' </div><div class="anexample" id="anexample-specialization-not-anti-symmetric"> \n' +
-' anti-symmetric counter-example??? \n' +
-' </div><div class="anexample" id="anexample-specialization-is-transitive"> \n' +
-' A specialization of "this email message" would be, for example, the \n' +
-' "printed version on my desk", which is a specialization of "my thoughts on \n' +
-' this email thread". So, the "printed version on my desk" is also a \n' +
-' specialization "my thoughts on this email thread". \n' +
-' </div><div class="anexample" id="anexample-alternate-not-transitive1"> \n' +
-' <p> \n' +
-' At 6pm, the customer in a chair is a woman in a red dress, who happens \n' +
-' to be Alice. After she leaves, another customer arrives at 7pm, a man \n' +
-' with glasses, who happens to be Bob. Transitivity does not hold since \n' +
-' the <span class="name">womanInRedDress\</span> is not alternate of <span class="name">customerInChairAt7pm</span>. \n' +
-' </p> \n' +
-'<pre xml:space="preserve"> \n' +
-'alternate(womanInRedDress,customerInChairAt6pm) \n' +
-'specialization(customerInChairAt6pm,Alice) \n' +
-'specialization(womanInRedDress,Alice) \n' +
-' \n' +
-'alternate(manWithGlasses,customerInChairAt7pm) \n' +
-'specialization(customerInChairAt7pm,Bob) \n' +
-'specialization(manWithGlasses,Bob) \n' +
-' \n' +
-'alternate(customerInChairAt6pm, customerInChairAt7pm) \n' +
-'specialization(customerInChairAt6pm, customerInChair) \n' +
-'specialization(customerInChairAt7pm, customerInChair) \n' +
-'</pre> \n' +
-' </div><div class="anexample"> \n' +
-' Two copies of the same book, where copy A was destroyed before copy B was \n' +
-' made. \n' +
-' </div><div class="note"> \n' +
-' TODO: Clarify how optional attributes are handled; clarify merging. The \n' +
-' following is not very explicit about the difference between "not present" \n' +
-' and "omitted but inferred". \n' +
-' </div><div class="note"> \n' +
-' We should check that normal forms exist, i.e. that applying rules and \n' +
-' definitions eventually terminates. More clarity is needed about enforcing \n' +
-' uniqueness via merging vs. constraint checking. \n' +
-' </div><div class="note"> \n' +
-' TODO: More about what it means for constraints to be satisfied; constraint \n' +
-' template(s) \n' +
-' </div><div class="note"> \n' +
-' Attribute uniqueness constraints? \n' +
-' </div><div class="constraint" id="unique-entity"> \n' +
-' <p> \n' +
-' Given an entity identifier <span class="name">e</span>, there is at most \n' +
-' one expression <span class="name">entity(e,attrs)</span>, where <span class="name">attrs</span> is some set of attribute-values. \n' +
-' </p> \n' +
-' </div><div class="constraint" id="unique-activity"> \n' +
-' <p> \n' +
-' Given an activity identifier <span class="name">a</span>, there is at \n' +
-' most one expression <span class="name">activity(a,t1,t2,attrs)</span>, \n' +
-' where <span class="name">attrs</span> is some set of attribute-values. \n' +
-' </p> \n' +
-' </div><div class="note"> \n' +
-' TODO: Same goes for all other objects: agent, note, generation, usage, \n' +
-' invalidation, start, end, communication, start by, attribution, \n' +
-' association, delegation, derivation, revision, quotation. We should find a \n' +
-' way of saying this once concisely. \n' +
-' </div><div class="constraint" id="unique-generation"> \n' +
-' <p> \n' +
-' Given an entity denoted by <span class="name">e</span>, two activities \n' +
-' denoted by <span class="name">a1</span> and <span class="name">a2</span>, \n' +
-' two time instants <span class="name">t1</span> and <span class="name">t2</span>, \n' +
-' and two sets of attribute-value pairs <span class="name">attrs1</span> \n' +
-' and <span class="name">attrs2</span>, <span class="conditional">IF</span> \n' +
-' <span class="name">wasGeneratedBy(id1; e, a1, t1, attrs1)</span> and \n' +
-' <span class="name">wasGeneratedBy(id2; e, a2, t2, attrs2)</span> exist, \n' +
-' <span class="conditional">THEN</span> <span class="name">id1</span>=<span class="name">id2</span>, <span class="name">a1</span>=<span class="name">a2</span>, \n' +
-' <span class="name">t1</span>=<span class="name">t2</span> and <span class="name">attrs1</span>=<span class="name">attrs2</span>. \n' +
-' </p> \n' +
-' </div><div class="note"> \n' +
-' Wouldn't the above constraint violate uniqueness? \n' +
-' </div><div class="note"> \n' +
-' Invalidation uniqueness? \n' +
-' </div><div class="note"> \n' +
-' Seems redundant given unique-generation \n' +
-' </div><div class="constraint" id="unique-generation-time"> \n' +
-' <p> \n' +
-' Given an entity denoted by <span class="name">e</span> and two time \n' +
-' instants <span class="name">t1</span> and <span class="name">t2</span>, \n' +
-' <span class="conditional">IF</span> <span class="name">wasGeneratedBy(-;e, \n' +
-' -, t1)</span> and <span class="name">wasGeneratedBy(-;e, -, t2)</span> \n' +
-' hold, <span class="conditional">THEN</span> <span class="name">t1</span>=<span class="name">t2</span>. \n' +
-' </p> \n' +
-' </div><div class="constraint" id="unique-invalidation-time"> \n' +
-' <p> \n' +
-' Given an entity denoted by <span class="name">e</span> and two time \n' +
-' instants <span class="name">t1</span> and <span class="name">t2</span>, \n' +
-' <span class="conditional">IF</span> <span class="name">wasInvalidatedBy(-;e, \n' +
-' -, t1)</span> and <span class="name">wasInvalidatedBy(-;e, -, t2)</span> \n' +
-' hold, <span class="conditional">THEN</span> <span class="name">t1</span>=<span class="name">t2</span>. \n' +
-' </p> \n' +
-' </div><div class="constraint" id="unique-startTime"> \n' +
-' <p> \n' +
-' <span class="conditional">IF</span> <span class="name">activity(a,t1,t2)</span> \n' +
-' and <span class="name">wasStartedBy(id;a,-,-,t)</span>, <span class="conditional">THEN</span> <span class="name">t</span>=<span class="name">t1</span>. \n' +
-' </p> \n' +
-' </div><div class="constraint" id="unique-endTime"> \n' +
-' <p> \n' +
-' <span class="conditional">IF</span> <span class="name">activity(a,t1,t2)</span> \n' +
-' and <span class="name">wasEndedBy(id;a,-,-,t)</span>, <span class="conditional">THEN</span> <span class="name">t</span> = <span class="name">t2</span>. \n' +
-' </p> \n' +
-' </div><div class="note"> \n' +
-' Do we want to allow an event to "precede" itself? Perhaps precedes should \n' +
-' be strict. \n' +
-' </div><div class="note"> \n' +
-' The following discussion is unclear: what is being said here, and why? \n' +
-' </div><div class="constraint" id="start-precedes-end"> \n' +
-' <p> \n' +
-' <span class="conditional">IF</span> <span class="name">wasStartedBy(start;a,-,-,-)</span> \n' +
-' and <span class="name">wasEndedBy(end;a,-,-,-)</span> <span class="conditional">THEN</span> <span class="name">start</span> <a>precedes</a> \n' +
-' <span class="name">end</span>. \n' +
-' </p> \n' +
-' </div><div class="constraint" id="usage-within-activity"> \n' +
-' <ol> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">used(use;a,e,-)</span> \n' +
-' and <span class="name">wasStartedBy(start;a,-,-,-)</span> <span class="conditional">THEN</span> <span class="name">start</span> <a>precedes</a> \n' +
-' <span class="name">use</span>. \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">used(use;a,e,-)</span> \n' +
-' and <span class="name">wasEndedBy(end;a,-,-,-)</span> <span class="conditional">THEN</span> <span class="name">use</span> <a>precedes</a> \n' +
-' <span class="name">end</span>. \n' +
-' </li> \n' +
-' </ol> \n' +
-' </div><div class="constraint" id="generation-within-activity"> \n' +
-' <ol> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasGeneratedBy(gen;a,e,-)</span> \n' +
-' and <span class="name">wasStartedBy(start;a,-,-,-)</span> <span class="conditional">THEN</span> <span class="name">start</span> <a>precedes</a> \n' +
-' <span class="name">gen</span>. \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasGeneratedBy(gen;a,e,-)</span> \n' +
-' and <span class="name">wasEndedBy(end;a,-,-,-)</span> <span class="conditional">THEN</span> <span class="name">gen</span> <a>precedes</a> \n' +
-' <span class="name">end</span>. \n' +
-' </li> \n' +
-' </ol> \n' +
-' </div><div class="constraint" id="wasInformedBy-ordering"> \n' +
-' <span class="conditional">IF</span> <span class="name">wasInformedBy(-;a2,a1)</span> \n' +
-' and <span class="name">wasStartedBy(start;a1,-,-,-)</span> and <span class="name">wasEndedBy(end;a2,-,-,-)</span> <span class="conditional">THEN</span> \n' +
-' <span class="name">start</span> <a>precedes</a> <span class="name">end</span>. \n' +
-' </div><div class="constraint" id="wasStartedByActivity-ordering"> \n' +
-' <span class="conditional">IF</span> <span class="name">wasStartedBy(start2;a2,-,a1,-)</span> \n' +
-' and <span class="name">wasStartedBy(start1;a1,-,-,-)</span> <span class="conditional">THEN</span> <span class="name">start1</span> <a>precedes</a> \n' +
-' <span class="name">start2</span>. \n' +
-' </div><div class="constraint" id="generation-precedes-invalidation"> \n' +
-' <p> \n' +
-' <span class="conditional">IF</span> <span class="name">wasGeneratedBy(gen;e,-,-)</span> \n' +
-' and <span class="name">wasInvalidatedBy(inv;e,-,-)</span> <span class="conditional">THEN</span> <span class="name">gen</span> <a>precedes</a> \n' +
-' <span class="name">inv</span>. \n' +
-' </p> \n' +
-' </div><div class="constraint" id="generation-precedes-usage"> \n' +
-' <span class="conditional">IF</span> <span class="name">wasGeneratedBy(gen;e,-,-)</span> \n' +
-' and <span class="name">used(use;-,e,-)</span> <span class="conditional">THEN</span> \n' +
-' <span class="name">gen</span> <a>precedes</a> <span class="name">use</span>. \n' +
-' </div><div class="constraint" id="usage-precedes-invalidation"> \n' +
-' <p> \n' +
-' <span class="conditional">IF</span> <span class="name">used(use;-,e,-)</span> \n' +
-' and <span class="name">wasInvalidatedBy(inv;e,-,-)</span> <span class="conditional">THEN</span> <span class="name">use</span> <a>precedes</a> \n' +
-' <span class="name">inv</span>. \n' +
-' </p> \n' +
-' </div><div class="constraint" id="derivation-usage-generation-ordering"> \n' +
-' <p> \n' +
-' <span class="conditional">IF</span> <span class="name">wasDerivedFrom(d;e2,e1,a,g2,u1)</span> \n' +
-' <span class="conditional">THEN</span> <span class="name">u1</span> <a>precedes</a> \n' +
-' <span class="name">g2</span>. \n' +
-' </p> \n' +
-' </div><div class="constraint" id="derivation-generation-generation-ordering"> \n' +
-' <p> \n' +
-' <span class="conditional">IF</span> <span class="name">wasDerivedFrom(-;e2,e1,attrs)</span> \n' +
-' and <span class="name">wasGeneratedBy(gen1;e1,-,-)</span> and <span class="name">wasGeneratedBy(gen2;e2,-,-)</span> <span class="conditional">THEN</span> \n' +
-' <span class="name">gen1</span> <a>precedes</a> <span class="name">gen2</span>. \n' +
-' </p> \n' +
-' </div><div class="constraint" id="wasStartedBy-ordering"> \n' +
-' <ol> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasStartedBy(start;a,e,-,-)</span> \n' +
-' and <span class="name">wasGeneratedBy(gen;e,-,-)</span> <span class="conditional">THEN</span> <span class="name">gen</span> <a>precedes</a> \n' +
-' <span class="name">start</span>. \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasStartedBy(start;a,e,-,-)</span> \n' +
-' and <span class="name">wasInvalidatedBy(inv;e,-,-)</span> <span class="conditional">THEN</span> <span class="name">start</span> <a>precedes</a> \n' +
-' <span class="name">inv</span>. \n' +
-' </li> \n' +
-' </ol> \n' +
-' </div><div class="constraint" id="wasEndedBy-ordering"> \n' +
-' <ol> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasEndedBy(end;a,e,-,-)</span> \n' +
-' and <span class="name">wasGeneratedBy(gen;e,-,-)</span> <span class="conditional">THEN</span> <span class="name">gen</span> <a>precedes</a> \n' +
-' <span class="name">end</span>. \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasEndedBy(end;a,e,-,-)</span> \n' +
-' and <span class="name">wasInvalidatedBy(inv;e,-,-)</span> <span class="conditional">THEN</span> <span class="name">end</span> <a>precedes</a> \n' +
-' <span class="name">inv</span>. \n' +
-' </li> \n' +
-' </ol> \n' +
-' </div><div class="constraint" id="wasAssociatedWith-ordering"> \n' +
-' <ol> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasAssociatedWith(-;a,ag,-)</span> \n' +
-' and <span class="name">wasStartedBy(start;a,-,-,-)</span> and <span class="name">wasInvalidatedBy(inv;ag,-,-)</span> <span class="conditional">THEN</span> <span class="name">start</span> <a>precedes</a> \n' +
-' <span class="name">inv</span>. \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasAssociatedWith(-;a,ag,-)</span> \n' +
-' and <span class="name">wasGeneratedBy(gen;ag,-,-)</span> and <span class="name">wasEndedBy(end;a,-,-,-)</span> <span class="conditional">THEN</span> \n' +
-' <span class="name">gen</span> <a>precedes</a> <span class="name">end</span>. \n' +
-' </li> \n' +
-' </ol> \n' +
-' </div><div class="constraint" id="wasAttributedTo-ordering"> \n' +
-' <ol> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasAttributedTo(-;e,ag)</span> \n' +
-' and <span class="name">wasGeneratedBy(gen;e,-,-)</span> and <span class="name">wasInvalidatedBy(inv;ag,-,-)</span> <span class="conditional">THEN</span> <span class="name">gen</span> <a>precedes</a> \n' +
-' <span class="name">inv</span>. \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="conditional">IF</span> <span class="name">wasAttributedTo(-;e,ag)</span> \n' +
-' and <span class="name">wasGeneratedBy(gen;ag,-,-)</span> and <span class="name">wasInvalidatedBy(inv;e,-,-)</span> <span class="conditional">THEN</span> <span class="name">gen</span> <a>precedes</a> \n' +
-' <span class="name">inv</span>. \n' +
-' </li> \n' +
-' </ol> \n' +
-' </div><div class="constraint" id="actedOnBehalfOf-ordering"> \n' +
-' <p> \n' +
-' <span class="conditional">IF</span> <span class="name">actedOnBehalfOf(-;ag2,ag1,-)</span> \n' +
-' and <span class="name">wasGeneratedBy(gen;ag1,-,-)</span> and <span class="name">wasInvalidatedBy(inv;ag2,-,-)</span> <span class="conditional">THEN</span> <span class="name">gen</span> <a>precedes</a> \n' +
-' <span class="name">inv</span>. \n' +
-' </p> \n' +
-' </div><div class="note"> \n' +
-' Work on dictionaries and on these constraints is deferred until after the \n' +
-' next working draft, so this section may not be stable. \n' +
-' </div><div class="definition" id="membership-as-insertion"> \n' +
-' <p> \n' +
-' <span class="name">memberOf(d, {(k1, v1), ...})</span> holds <span class="conditional">IF AND ONLY IF</span> there exists a dictionary \n' +
-' <span class="name">d0</span>, such that <span class="name">derivedByInsertionFrom(d, \n' +
-' d0, {(k1, v1), ...})</span>. \n' +
-' </p> \n' +
-' </div><div class="note"> \n' +
-' The following constraint is unclear. \n' +
-' </div><div class="constraint" id="dictionary-unique-derivation"> \n' +
-' <p> \n' +
-' A dictionary MUST NOT be derived through multiple insertions, removal, \n' +
-' or membership relations. \n' +
-' </p> \n' +
-' </div><div class="anexample"> \n' +
-' Consider the following statements about three dictionaries. \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(d1, [prov:type='prov:Dictionary']) \n' +
-'entity(d2, [prov:type='prov:Dictionary']) \n' +
-'entity(d3, [prov:type='prov:Dictionary']) \n' +
-' \n' +
-' \n' +
-'derivedByInsertionFrom(d3, d1, {("k1", e1), ("k2", e2)}) \n' +
-'derivedByInsertionFrom(d3, d2, {("k3", e3)}) \n' +
-'</pre> \n' +
-' <p> \n' +
-' There is no interpretation for such statements since <span class="name">d3</span> \n' +
-' is derived multiple times by insertion. \n' +
-' </p> \n' +
-' </div><div class="anexample"> \n' +
-' <p> \n' +
-' As a particular case, dictionary <span class="name">d</span> is derived \n' +
-' multiple times from the same <span class="name">d1</span>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'derivedByInsertionFrom(id1, d, d1, {("k1", e1), ("k2", e2)}) \n' +
-'derivedByInsertionFrom(id2, d, d1, {("k3", e3), ("k4", e4)}) \n' +
-'</pre> \n' +
-' <p> \n' +
-' The interpretation of such statements is also unspecified. \n' +
-' </p> \n' +
-' <p> \n' +
-' To describe the insertion of the 4 key-entity pairs, one would instead \n' +
-' write: \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'derivedByInsertionFrom(id1, d, d1, {("k1", e1), ("k2", e2), ("k3", e3), ("k4", e4)}) \n' +
-'</pre> \n' +
-' </div><div class="anexample"> \n' +
-' <p> \n' +
-' The following statements \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'derivedByInsertionFrom(d, d1, {("k1", e1)}) \n' +
-'derivedByRemovalFrom(d, d2, {"k2"}) \n' +
-'</pre> \n' +
-' have no interpretation. Nor have the following: \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'derivedByInsertionFrom(d, d1, {("k1", e1)}) \n' +
-'memberOf(d, {"k2",e2}) \n' +
-'</pre> \n' +
-' </div><div class="anexample"> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(d0, [prov:type='prov:EmptyDictionary']) // d0 is an empty dictionary \n' +
-'entity(d1, [prov:type='prov:Dictionary']) \n' +
-'entity(d2, [prov:type='prov:Dictionary']) \n' +
-'entity(d3, [prov:type='prov:Dictionary']) \n' +
-'entity(e1) \n' +
-'entity(e2) \n' +
-'entity(e3) \n' +
-' \n' +
-'derivedByInsertionFrom(d1, d0, {("k1", e1)}) \n' +
-'derivedByInsertionFrom(d2, d0, {("k2", e2)}) \n' +
-'derivedByInsertionFrom(d3, d1, {("k3", e3)}) \n' +
-'</pre> \n' +
-' From this set of statements, we conclude: \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-' d1 = { ("k1", e1) } \n' +
-' d2 = { ("k2", e2) } \n' +
-' d3 = { ("k1", e1), ("k3", e3)} \n' +
-'</pre> \n' +
-' </div><div class="anexample"> \n' +
-' In the example, the state of <span class="name">d2</span> is only \n' +
-' partially known because the dictionary is constructed from partially known \n' +
-' other dictionaries. \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(d0, [prov:type='prov:EmptyDictionary']) // d0 is an empty dictionary \n' +
-'entity(d1, [prov:type='prov:Dictionary']) \n' +
-'entity(d2, [prov:type='prov:Dictionary']) \n' +
-'entity(d3, [prov:type='prov:Dictionary']) \n' +
-'entity(e1) \n' +
-'entity(e2) \n' +
-' \n' +
-'derivedByInsertionFrom(d1, d0, {("k1", e1)}) \n' +
-'wasDerivedFrom(d2, d1) \n' +
-'derivedByInsertionFrom(d3, d2, {("k2", e2)}) \n' +
-' </pre> \n' +
-' From this set of statements, we conclude: \n' +
-' <ul> \n' +
-' <li> \n' +
-' <span class="name">d1 = { ("k1", e1) }</span> \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="name">d2</span> is somehow derived from <span class="name">d1</span>, \n' +
-' but the precise sequence of updates is unknown \n' +
-' </li> \n' +
-' <li> \n' +
-' <span class="name">d3</span> includes <span class="name">("k2", e2)</span> \n' +
-' but the earlier "gap" leaves uncertainty regarding <span class="name">("k1", \n' +
-' e1)</span> (it may have been removed) or any other pair that may have \n' +
-' been added as part of the derivation activities. \n' +
-' </li> \n' +
-' </ul> \n' +
-' </div><div class="note"> \n' +
-' Do the insertion/removal derivation steps imply wasDerivedFrom, \n' +
-' wasVersionOf, alternateOf? \n' +
-' </div><div class="note"> \n' +
-' Axiomatisation of dictionaries to be expressed here. See <a href="./working-copy/wd6-collections-constraints.html">here</a>. \n' +
-' </div><div class="note"> \n' +
-' This section does not talk about accounts. \n' +
-' </div><div class="anexample" id="example-two-entities-one-id"> \n' +
-' <p> \n' +
-' Let us consider two statements about the same entity, which we have \n' +
-' taken from two different contexts. A working draft published by the \n' +
-' <span class="name">w3:Consortium</span>: \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(tr:WD-prov-dm-20111215, [ prov:type='pr:RecsWD' ]) \n' +
-'</pre> \n' +
-' The second version of a document edited by some authors: \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version="2" ]) \n' +
-'</pre> \n' +
-' <p> \n' +
-' Both statements are about the same entity identified by <span class="name">tr:WD-prov-dm-20111215</span>, but they contain different \n' +
-' attributes, describing the situation or partial state of the these \n' +
-' entities according to the context in which they occur. \n' +
-' </p> \n' +
-' </div><div class="anexample" id="merge-with-rename"> \n' +
-' <p> \n' +
-' We now reconsider the same two statements of a same entity, but we \n' +
-' change the identifier for one of them: \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'entity(tr:WD-prov-dm-20111215, [ prov:type='pr:RecsWD' ]) \n' +
-'entity(ex:alternate-20111215, [ prov:type="document", ex:version="2" ]) \n' +
-'alternateOf(tr:WD-prov-dm-20111215,ex:alternate-20111215) \n' +
-'</pre> \n' +
-' </div><div class="note"> \n' +
-' Since we are not specifying ways to take the union of two accounts, we may \n' +
-' drop this discussion \n' +
-' </div><div class="note"> \n' +
-' Material transplanted from old structural well-formedness constraints \n' +
-' section. This example isn't very clear, since the sub-workflow-ness isn't \n' +
-' represented in the data. According to what was written above, we should \n' +
-' conclude that a0 and a2 are equal! \n' +
-' </div><div class="anexample"> \n' +
-' <p> \n' +
-' In the following statements, a workflow execution <span class="name">a0</span> \n' +
-' consists of two sub-workflow executions <span class="name">a1</span> and \n' +
-' <span class="name">a2</span>. Sub-workflow execution <span class="name">a2</span> \n' +
-' generates entity <span class="name">e</span>, so does <span class="name">a0</span>. \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'activity(a0, [prov:type="workflow execution"]) \n' +
-'activity(a1, [prov:type="workflow execution"]) \n' +
-'activity(a2, [prov:type="workflow execution"]) \n' +
-'wasInformedBy(a2,a1) \n' +
-' \n' +
-'wasGeneratedBy(e,a0) \n' +
-'wasGeneratedBy(e,a2) \n' +
-'</pre> \n' +
-' <p> \n' +
-' So, we have two different <a title="generation">generations</a> for \n' +
-' entity <span class="name">e</span>. Such an example is permitted in \n' +
-' PROV-DM if the two activities denoted by <span class="name">a0</span> \n' +
-' and <span class="name">a2</span> are a single thing happening in the \n' +
-' world but described from different perspectives. \n' +
-' </p> \n' +
-' </div><div class="anexample"> \n' +
-' <p> \n' +
-' The same example is now revisited, with the following statements that \n' +
-' are structurally well-formed. Two accounts are introduced, and there is \n' +
-' a single generation for entity <span class="name">e</span> per account. \n' +
-' </p> \n' +
-' <p> \n' +
-' In a first account, entitled "summary", we find: \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'activity(a0,t1,t2,[prov:type="workflow execution"]) \n' +
-'wasGeneratedBy(e,a0,-) \n' +
-'</pre> \n' +
-' <p> \n' +
-' In a second account, entitled "detail", we find: \n' +
-' </p> \n' +
-'<pre class="codeexample" xml:space="preserve"> \n' +
-'activity(a1,t1,t3,[prov:type="workflow execution"]) \n' +
-'activity(a2,t3,t2,[prov:type="workflow execution"]) \n' +
-'wasInformedBy(a2,a1) \n' +
-'wasGeneratedBy(e,a2,-) \n' +
-'</pre> \n' +
-' </div><div class="note"> \n' +
-' This section collects all of the explanatory material that I was not \n' +
-' certain how to interpret as an unambiguous inference or constraint. Some \n' +
-' of these observations may need to be folded into the explanatory text in \n' +
-' respective sections (for example for events, accounts or collections). \n' +
-' Editing is also needed to decrease redundancy. \n' +
-' </div><div class="anexample" id="a-report-example"> \n' +
-' Different users may take different perspectives on a resource with a URL. \n' +
-' A provenance record might use one (or more) different entities to talk \n' +
-' about different perspectives, such as: \n' +
-' <ul> \n' +
-' <li> \n' +
-' a report available at a URL: fixes the nature of the thing, i.e. a \n' +
-' document, and its location; \n' +
-' </li> \n' +
-' <li> \n' +
-' the version of the report available there today: fixes its version \n' +
-' number, contents, and its date; \n' +
-' </li> \n' +
-' <li> \n' +
-' the report independent of where it is hosted and of its content over \n' +
-' time: fixes the nature of the thing as a conceptual artifact. \n' +
-' </li> \n' +
-' </ul> \n' +
-' The provenance of these three entities may differ, and may be along the \n' +
-' following lines: \n' +
-' <ul> \n' +
-' <li> \n' +
-' the provenance of a report available at a URL may include: the act of \n' +
-' publishing it and making it available at a given location, possibly \n' +
-' under some license and access control; \n' +
-' </li> \n' +
-' <li> \n' +
-' the provenance of the version of the report available there today may \n' +
-' include: the authorship of the specific content, and reference to \n' +
-' imported content; \n' +
-' </li> \n' +
-' <li> \n' +
-' the provenance of the report independent of where it is hosted over \n' +
-' time may include: the motivation for writing the report, the overall \n' +
-' methodology for producing it, and the broad team involved in it. \n' +
-' </li> \n' +
-' </ul> \n' +
-' <p> \n' +
-' We do not assume that any entity is a better or worse description of \n' +
-' reality than any other. That is, we do not assume an absolute ground \n' +
-' truth with respect to which we can judge correctness or completeness of \n' +
-' descriptions. In fact, it is possible to describe the processing that \n' +
-' occurred for the report to be commissioned, for individual versions to \n' +
-' be created, for those versions to be published at the given URL, etc., \n' +
-' each via a different entity with attribute-value pairs that fix some \n' +
-' aspects of the report appropriately. \n' +
-' </p> \n' +
-' </div><div class="note"> \n' +
-' TODO: Constraints on alternateOf/specializationOf for this? \n' +
-' </div><div class="note"> \n' +
-' TODO: Further discussion of entities moved from the old "Definitional \n' +
-' constraints" section. Should merge with the surrounding discussion to \n' +
-' avoid repetition. \n' +
-' </div><div class="note"> \n' +
-' TODO: Further discussion of activities moved from old "Definitional \n' +
-' constraints and inferences" section. Edit to avoid repeating information. \n' +
-' </div><div class="anexample"> \n' +
-' A file at some point during its lifecycle, which includes multiple edits \n' +
-' by multiple people, can be described by its type, its location in the file \n' +
-' system, a creator, and content. \n' +
-' </div><div class="note"> \n' +
-' The following paragraphs are unclear and need to be revised, to address \n' +
-' review concerns: if we aren't saying anything about how events and time \n' +
-' relate, and time is the only concrete information about event ordering in \n' +
-' PROV-DM, then how can implementations check that event ordering \n' +
-' constraints are satisfied? \n' +
-' </div><span class="conditional">IF</span><span class="name">hyp_1</span><span class="name">hyp_k</span><span class="conditional">THEN</span><span class="name">a_1</span><span class="name">a_m</span><span class="name">conclusion_1</span><span class="name">conclusion_n</span><span class="name">hyp_1</span><span class="name">hyp_k</span><span class="name">concl_1</span><span class="name">concl_n</span><span class="name">a_1</span><span class="name">a_m</span><span class="name">defined_exp</span><span class="conditional">IF \n' +
-' AND ONLY IF </span><span class="name">a_1</span><span class="name">a_m</span><span class="name">defining_exp_1</span><span class="name">defining_exp_n</span><span class="name">defined_exp</span><span class="name">defining_exp_1</span><span class="name">defining_exp_n</span><span class="name">a_1</span><span class="name">a_m</span><span class="name">a_1</span><span class="name">a_m</span><span class="name">defining_exp_1</span><span class="name">defining_exp_n</span><span class="name">def_exp</span><span class="name">a1</span><span class="name">a2</span><span class="name">wasInformedBy(-;a2,a1)</span><span class="conditional">IF AND ONLY IF</span><span class="name">e</span><span class="name">wasGeneratedBy(-;e,a1,-,)</span><span class="name">used(-;a2,e,-)</span><span class="name">wasInformedBy</span><span class="name">wasInformedBy(a3,a1)</span><span class="name">wasInformedBy(a2,a1)</span><span class="name">e1</span><span class="name">e1</span><span class="name">a1</span><span class="name">a2</span><span class="name">wasInformedBy(a3,a2)</span><span class="name">e2</span><span class="name">e2</span><span class="name">a2</span><span class="name">a3</span><span class="name">e1</span><span class="name">e2</span><span class="name">a3</span><span class="name">a1</span><span class="name">a3</span><span class="name">a1</span><span class="name">a2</span><span class="name">e</span><span class="name">a1</span><span class="name">a1</span><span class="name">a2</span><span class="name">wasStartedBy(-;a2,e,a1,-)</span><span class="conditional">IF AND ONLY IF</span><span class="name">wasGeneratedBy(-;e,a1,-,-)</span><span class="name">wasStartedBy(-;a2,e,-,-)</span><span class="name">a2</span><span class="name">e</span><span class="name">a1</span><span class="name">a1</span><span class="name">a2</span><span class="name">wasEndedBy(-;a2,e,a1,-)</span><span class="conditional">IF AND ONLY IF</span><span class="name">wasGeneratedBy(-;e,a1,-,-)</span><span class="name">wasEndedBy(-;a2,e,-,-)</span><span class="name">a</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">wasDerivedFrom(-;e2,e1, \n' +
-' a, -, -)</span><span class="name">wasGeneratedBy(-;e2,a,-)</span><span class="conditional">THEN</span><span class="name">used(-;a,e1,-)</span><span class="name">e2</span><span class="name">e1</span><span class="name">wasDerivedFrom(e2,e1)</span><span class="name">used(a,e1,-)</span><span class="name">wasGeneratedBy(e2,a,-)</span><span class="name">e1</span><span class="name">e2</span><span class="name">wasGeneratedBy(g; e2, a, -, attrs2)</span><span class="name">used(u; a, e1, -, attrs1)</span><span class="name">e1</span><span class="name">e2</span><span class="name">attrs1</span><span class="name">attrs2</span><span class="name">a</span><span class="name">wasDerivedFrom(e2, e1, a, g, u)</span><span class="name">wasDerivedFrom(e2,e1)</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e1</span><span class="name">e2</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">wasDerivedFrom(-,e2,e1,[prov:type="prov:WasRevisionOf"])</span><span class="conditional">THEN</span><span class="conditional">IF</span><span class="name">wasAttributedTo(-;e,ag)</span><span class="name">e</span><span class="name">ag</span><span class="conditional">THEN</span><span class="name">a</span><span class="name">e2</span><span class="name">e1</span><span class="conditional">IF</span><span class="name">wasDerivedFrom(e2,e1,a,g2,u1)</span><span class="name">a</span><span class="name">g2</span><span class="name">u1</span><span class="conditional">THEN</span><span class="name">tracedTo(e2,e1)</span><span class="conditional">IF</span><span class="name">wasDerivedFrom(e2,e1)</span><span class="conditional">THEN</span><span class="name">tracedTo(e2,e1)</span><span class="conditional">IF</span><span class="name">wasAttributedTo(e2,ag1,aAttr)</span><span class="conditional">THEN</span><span class="name">tracedTo(e2,ag1)</span><span class="conditional">IF</span><span class="name">wasAttributedTo(e2,ag2,aAttr)</span><span class="name">wasGeneratedBy(-;e2,a,-,gAttr)</span><span class="name">actedOnBehalfOf(ag2,ag1,a,rAttr)</span><span class="name">a</span><span class="name">ag2</span><span class="name">ag1</span><span class="name">aAttr</span><span class="name">gAttr</span><span class="name">rAttr</span><span class="conditional">THEN</span><span class="name">tracedTo(e2,ag1)</span><span class="conditional">IF</span><span class="name">wasGeneratedBy(e2,a,gAttr)</span><span class="name">wasStartedBy(a,e1,sAttr)</span><span class="name">a</span><span class="name">gAttr</span><span class="name">sAttr</span><span class="name">tracedTo(e2,e1)</span><span class="conditional">IF</span><span class="name">tracedTo(e2,e)</span><span class="name">tracedTo(e,e1)</span><span class="name">e</span><span class="conditional">THEN</span><span class="name">tracedTo(e2,e1)</span><span class="name">alternateOf</span><span class="name">e</span><span class="name">alternateOf(e,e)</span><span class="name">e1</span><span class="name">e2</span><span class="name">e3</span><span class="conditional">IF</span><span class="name">alternateOf(e1,e2)</span><span class="name">alternateOf(e2,e3)</span><span class="conditional">THEN</span><span class="name">alternateOf(e1,e3)</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">alternateOf(e1,e2)</span><span class="conditional">THEN</span><span class="name">alternateOf(e2,e1)</span><span class="name">e</span><span class="name">specializationOf(e,e)</span><span class="name">e1</span><span class="name">e2</span><span class="name">specializationOf(e1,e2)</span><span class="name">specializationOf(e2,e1)</span><span class="name">e1</span><span class="name">e2</span><span class="name">e3</span><span class="conditional">IF</span><span class="name">specializationOf(e1,e2)</span><span class="name">specializationOf(e2,e3)</span><span class="conditional">THEN</span><span class="name">specializationOf(e1,e3)</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">specializationOf(e1,e2)</span><span class="conditional">THEN</span><span class="name">alternateOf(e1,e2)</span><span class="name">e</span><span class="name">e1</span><span class="name">e2</span><span class="name">b1</span><span class="name">b2</span><span class="conditional">IF</span><span class="name">contentualizationOf(e, e1, b1)</span><span class="name">contentualizationOf(e, \n' +
-' e2, b2)</span><span class="conditional">THEN</span><span class="name">e1</span><span class="name">e2</span><span class="name">b1</span><span class="name">b2</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">contextualizationOf(e2,e1,b)</span><span class="conditional">THEN</span><span class="name">specializationOf(e2,e1)</span><span class="name">specializationOf(e1,e2)</span><span class="name">T1-2</span><span class="name">e1</span><span class="name">e2</span><span class="name">specializationOf(e2,e3)</span><span class="name">T2-3</span><span class="name">e2</span><span class="name">e3</span><span class="name">T1-2</span><span class="name">T2-3</span><span class="name">e2</span><span class="name">specializationOf(e1,e3)</span><span class="name">e1</span><span class="name">e3</span><span class="name">e1</span><span class="name">e3</span><span class="name">alternate(e,e)</span><span class="name">e</span><span class="name">e</span><span class="name">alternate(e1,e2)</span><span class="name">e</span><span class="name">e1</span><span class="name">e2</span><span class="name">e</span><span class="name">alternate(e2,e1)</span><span class="name">alternate(e1,e2)</span><span class="name">e1-2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1-2</span><span class="name">alternate(e2,e3)</span><span class="name">e2-3</span><span class="name">e2</span><span class="name">e3</span><span class="name">e2-3</span><span class="name">e1-3</span><span class="name">e1</span><span class="name">e3</span><span class="name">womanInRedDress\</span><span class="name">customerInChairAt7pm</span><span class="name">customerInChairAt6pm</span><span class="name">customerInChairAt7pm</span><span class="name">womanInRedDress</span><span class="name">customerInChairAt6pm</span><span class="name">wasAssociatedWith(a, \n' +
-' ag, -, attr)</span><span class="name">wasAssociatedWith(a, \n' +
-' -, pl, attr)</span><span class="name">actedOnBehalfOf(a, \n' +
-' ag2, ag1, -, attr)</span><span class="name">e</span><span class="name">entity(e,attrs)</span><span class="name">attrs</span><span class="name">a</span><span class="name">activity(a,t1,t2,attrs)</span><span class="name">attrs</span><span class="name">g1</span><span class="name">g2</span><span class="name">e</span><span class="name">a1</span><span class="name">a2</span><span class="name">t1</span><span class="name">t2</span><span class="name">attrs1</span><span class="name">attrs2</span><span class="conditional">IF</span><span class="name">wasGeneratedBy(id1; e, a1, t1, attrs1)</span><span class="name">wasGeneratedBy(id2; e, a2, t2, attrs2)</span><span class="conditional">THEN</span><span class="name">id1</span><span class="name">id2</span><span class="name">a1</span><span class="name">a2</span><span class="name">t1</span><span class="name">t2</span><span class="name">attrs1</span><span class="name">attrs2</span><span class="name">e</span><span class="name">t1</span><span class="name">t2</span><span class="conditional">IF</span><span class="name">wasGeneratedBy(-;e, \n' +
-' -, t1)</span><span class="name">wasGeneratedBy(-;e, -, t2)</span><span class="conditional">THEN</span><span class="name">t1</span><span class="name">t2</span><span class="name">e</span><span class="name">t1</span><span class="name">t2</span><span class="conditional">IF</span><span class="name">wasInvalidatedBy(-;e, \n' +
-' -, t1)</span><span class="name">wasInvalidatedBy(-;e, -, t2)</span><span class="conditional">THEN</span><span class="name">t1</span><span class="name">t2</span><span class="conditional">IF</span><span class="name">activity(a,t1,t2)</span><span class="name">wasStartedBy(id;a,-,-,t)</span><span class="conditional">THEN</span><span class="name">t</span><span class="name">t1</span><span class="conditional">IF</span><span class="name">activity(a,t1,t2)</span><span class="name">wasEndedBy(id;a,-,-,t)</span><span class="conditional">THEN</span><span class="name">t</span><span class="name">t2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">wasStartedBy(start;a,-,-,-)</span><span class="name">wasEndedBy(end;a,-,-,-)</span><span class="conditional">THEN</span><span class="name">start</span><span class="name">end</span><span class="conditional">IF</span><span class="name">used(use;a,e,-)</span><span class="name">wasStartedBy(start;a,-,-,-)</span><span class="conditional">THEN</span><span class="name">start</span><span class="name">use</span><span class="conditional">IF</span><span class="name">used(use;a,e,-)</span><span class="name">wasEndedBy(end;a,-,-,-)</span><span class="conditional">THEN</span><span class="name">use</span><span class="name">end</span><span class="conditional">IF</span><span class="name">wasGeneratedBy(gen;a,e,-)</span><span class="name">wasStartedBy(start;a,-,-,-)</span><span class="conditional">THEN</span><span class="name">start</span><span class="name">gen</span><span class="conditional">IF</span><span class="name">wasGeneratedBy(gen;a,e,-)</span><span class="name">wasEndedBy(end;a,-,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">end</span><span class="name">a1</span><span class="name">a2</span><span class="name">a1</span><span class="name">a2</span><span class="conditional">IF</span><span class="name">wasInformedBy(-;a2,a1)</span><span class="name">wasStartedBy(start;a1,-,-,-)</span><span class="name">wasEndedBy(end;a2,-,-,-)</span><span class="conditional">THEN</span><span class="name">start</span><span class="name">end</span><span class="name">a2</span><span class="name">a1</span><span class="name">a1</span><span class="name">a2</span><span class="conditional">IF</span><span class="name">wasStartedBy(start2;a2,-,a1,-)</span><span class="name">wasStartedBy(start1;a1,-,-,-)</span><span class="conditional">THEN</span><span class="name">start1</span><span class="name">start2</span><span class="conditional">IF</span><span class="name">wasGeneratedBy(gen;e,-,-)</span><span class="name">wasInvalidatedBy(inv;e,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">inv</span><span class="conditional">IF</span><span class="name">wasGeneratedBy(gen;e,-,-)</span><span class="name">used(use;-,e,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">use</span><span class="conditional">IF</span><span class="name">used(use;-,e,-)</span><span class="name">wasInvalidatedBy(inv;e,-,-)</span><span class="conditional">THEN</span><span class="name">use</span><span class="name">inv</span><span class="name">e2</span><span class="name">e1</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">wasDerivedFrom(d;e2,e1,a,g2,u1)</span><span class="conditional">THEN</span><span class="name">u1</span><span class="name">g2</span><span class="conditional">IF</span><span class="name">wasDerivedFrom(-;e2,e1,attrs)</span><span class="name">wasGeneratedBy(gen1;e1,-,-)</span><span class="name">wasGeneratedBy(gen2;e2,-,-)</span><span class="conditional">THEN</span><span class="name">gen1</span><span class="name">gen2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">wasStartedBy(start;a,e,-,-)</span><span class="name">wasGeneratedBy(gen;e,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">start</span><span class="conditional">IF</span><span class="name">wasStartedBy(start;a,e,-,-)</span><span class="name">wasInvalidatedBy(inv;e,-,-)</span><span class="conditional">THEN</span><span class="name">start</span><span class="name">inv</span><span class="conditional">IF</span><span class="name">wasEndedBy(end;a,e,-,-)</span><span class="name">wasGeneratedBy(gen;e,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">end</span><span class="conditional">IF</span><span class="name">wasEndedBy(end;a,e,-,-)</span><span class="name">wasInvalidatedBy(inv;e,-,-)</span><span class="conditional">THEN</span><span class="name">end</span><span class="name">inv</span><span class="conditional">IF</span><span class="name">wasAssociatedWith(-;a,ag,-)</span><span class="name">wasStartedBy(start;a,-,-,-)</span><span class="name">wasInvalidatedBy(inv;ag,-,-)</span><span class="conditional">THEN</span><span class="name">start</span><span class="name">inv</span><span class="conditional">IF</span><span class="name">wasAssociatedWith(-;a,ag,-)</span><span class="name">wasGeneratedBy(gen;ag,-,-)</span><span class="name">wasEndedBy(end;a,-,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">end</span><span class="conditional">IF</span><span class="name">wasAttributedTo(-;e,ag)</span><span class="name">wasGeneratedBy(gen;e,-,-)</span><span class="name">wasInvalidatedBy(inv;ag,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">inv</span><span class="conditional">IF</span><span class="name">wasAttributedTo(-;e,ag)</span><span class="name">wasGeneratedBy(gen;ag,-,-)</span><span class="name">wasInvalidatedBy(inv;e,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">inv</span><span class="conditional">IF</span><span class="name">actedOnBehalfOf(-;ag2,ag1,-)</span><span class="name">wasGeneratedBy(gen;ag1,-,-)</span><span class="name">wasInvalidatedBy(inv;ag2,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">inv</span><span class="name">memberOf(d, {(k1, v1), ...})</span><span class="conditional">IF AND ONLY IF</span><span class="name">d0</span><span class="name">derivedByInsertionFrom(d, \n' +
-' d0, {(k1, v1), ...})</span><span class="name">d3</span><span class="name">d</span><span class="name">d1</span><span class="name">d2</span><span class="name">d1 = { ("k1", e1) }</span><span class="name">d2</span><span class="name">d1</span><span class="name">d3</span><span class="name">("k2", e2)</span><span class="name">("k1", \n' +
-' e1)</span><span class="name">w3:Consortium</span><span class="name">tr:WD-prov-dm-20111215</span><span class="name">alternateOf</span><span class="name">a0</span><span class="name">a1</span><span class="name">a2</span><span class="name">a2</span><span class="name">e</span><span class="name">a0</span><span class="name">e</span><span class="name">a0</span><span class="name">a2</span><span class="name">e</span><span class="name">alternateOf</span><span class="name">specializationOf</span></html> \n' +
+'<html> ' +
+'<div style="text-align: left;"> ' +
+' <table class="thinborder" style="margin-left: auto; margin-right: auto;"> ' +
+' <caption id="namespace-table"> ' +
+' Table 1: Prefix and Namespaces used in this specification ' +
+' </caption> ' +
+' <tr> ' +
+' <td> ' +
+' <a><b>prefix</b></a> ' +
+' </td> ' +
+' <td> ' +
+' <b>namespace uri</b> ' +
+' </td> ' +
+' <td> ' +
+' <b>definition</b> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a>prov</a> ' +
+' </td> ' +
+' <td> ' +
+' http://www.w3.org/ns/prov# ' +
+' </td> ' +
+' <td> ' +
+' The PROV namespace (see <a class="section-ref" href="#term-NamespaceDeclaration"><span>TBD</span></a>) ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a>xsd</a> ' +
+' </td> ' +
+' <td> ' +
+' http://www.w3.org/2000/10/XMLSchema# ' +
+' </td> ' +
+' <td> ' +
+' XML Schema Namespace [[!XMLSCHEMA11-2]] ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a>rdf</a> ' +
+' </td> ' +
+' <td> ' +
+' http://www.w3.org/1999/02/22-rdf-syntax-ns# ' +
+' </td> ' +
+' <td> ' +
+' The RDF namespace [[!RDF-CONCEPTS]] ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a>(others)</a> ' +
+' </td> ' +
+' <td> ' +
+' (various) ' +
+' </td> ' +
+' <td> ' +
+' All other namespace prefixes are used in examples only. <br /> In ' +
+' particular, URIs starting with "http://example.com" represent<br /> ' +
+' some application-dependent URI [[!URI]] ' +
+' </td> ' +
+' </tr> ' +
+' </table> ' +
+' </div><div style="text-align: center; "> ' +
+' <!-- <img src="../images/OverviewDiagram.png" alt="PROV Core Structures" ' +
+' style="max-width: 70%; " /> --> ' +
+' <img src="uml/essentials.png" alt="PROV Core Structures" style="max-width: 70%; " /> Figure 1: PROV Core Structures ' +
+' </div><div style="text-align: left;"> ' +
+' <table class="thinborder" style="margin-left: auto; margin-right: auto;"> ' +
+' <caption id="overview-types-and-relations"> ' +
+' Table 2: Mapping of PROV core concepts to types and relations ' +
+' </caption> ' +
+' <tr> ' +
+' <td> ' +
+' <a><b>PROV Concepts</b></a> ' +
+' </td> ' +
+' <td> ' +
+' <b>PROV-DM types or relations</b> ' +
+' </td> ' +
+' <td> ' +
+' <b>Name</b> ' +
+' </td> ' +
+' <td> ' +
+' <b>Overview</b> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a>Entity</a> ' +
+' </td> ' +
+' <td rowspan="3" style="text-align: center;"> ' +
+' PROV-DM Types ' +
+' </td> ' +
+' <td> ' +
+' <a title="dfn-Entity">Entity</a> ' +
+' </td> ' +
+' <td style="text-align: center;"> ' +
+' <a class="section-ref" href="#section-entity-activity"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a>Activity</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="dfn-Activity">Activity</a> ' +
+' </td> ' +
+' <td style="text-align: center;"> ' +
+' <a class="section-ref" href="#section-entity-activity"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a>Agent</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="dfn-agent">Agent</a> ' +
+' </td> ' +
+' <td style="text-align: center;"> ' +
+' <a class="section-ref" href="#section-agents-attribution-association-delegation"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a>Generation</a> ' +
+' </td> ' +
+' <td rowspan="7" style="text-align: center;"> ' +
+' PROV-DM Relations ' +
+' </td> ' +
+' <td> ' +
+' <a title="wasGeneratedBy">wasGeneratedBy</a> ' +
+' </td> ' +
+' <td style="text-align: center;"> ' +
+' <a class="section-ref" href="#section-entity-activity"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a>Usage</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="used">Used</a> ' +
+' </td> ' +
+' <td style="text-align: center;"> ' +
+' <a class="section-ref" href="#section-entity-activity"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a>Communication</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="wasInformedBy">WasInformedBy</a> ' +
+' </td> ' +
+' <td style="text-align: center;"> ' +
+' <a class="section-ref" href="#section-entity-activity"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a>Derivation</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="wasDerivedFrom">WasDerivedFrom</a> ' +
+' </td> ' +
+' <td style="text-align: center;"> ' +
+' <a class="section-ref" href="#section-derivation"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a>Attribution</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="wasAttributedTo">WasAttributedTo</a> ' +
+' </td> ' +
+' <td style="text-align: center;"> ' +
+' <a class="section-ref" href="#section-agents-attribution-association-delegation"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a>Association</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="wasAssociatedWith">WasAssociatedWith</a> ' +
+' </td> ' +
+' <td style="text-align: center;"> ' +
+' <a class="section-ref" href="#section-agents-attribution-association-delegation"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a>Delegation</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="actedOnBehalfOf">ActedOnBehalfOf</a> ' +
+' </td> ' +
+' <td style="text-align: center;"> ' +
+' <a class="section-ref" href="#section-agents-attribution-association-delegation"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' </table> ' +
+' </div><div class="anexample conceptexample" id="entity-example"> ' +
+' <p> ' +
+' An entity may be the document at URI <a href="http://www.bbc.co.uk/news/science-environment-17526723">http://www.bbc.co.uk/news/science-environment-17526723</a>, ' +
+' a file in a file system, a car, or an idea. ' +
+' </p> ' +
+' </div><div class="anexample conceptexample" id="activity-example"> ' +
+' <p> ' +
+' 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. ' +
+' </p> ' +
+' </div><div class="anexample conceptexample" id="generation-example"> ' +
+' <p> ' +
+' 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. ' +
+' </p> ' +
+' </div><div class="anexample conceptexample" id="usage-example"> ' +
+' <p> ' +
+' 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). ' +
+' </p> ' +
+' </div><div class="anexample conceptexample" id="communication-example"> ' +
+' <p> ' +
+' The activity of writing a celebrity article was informed by (a ' +
+' communication instance) the activity of intercepting voicemails. ' +
+' </p> ' +
+' </div><div class="anexample conceptexample" id="derivation-example"> ' +
+' <p> ' +
+' 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. ' +
+' </p> ' +
+' </div><div class="anexample conceptexample" id="agent-example"> ' +
+' <p> ' +
+' 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. ' +
+' </p> ' +
+' </div><div class="anexample conceptexample" id="attribution-example"> ' +
+' <p> ' +
+' A blog post can be attributed to an author, a mobile phone to its ' +
+' manufacturer. ' +
+' </p> ' +
+' </div><div class="anexample conceptexample" id="association-example"> ' +
+' <p> ' +
+' Examples of association between an activity and an agent are: ' +
+' </p> ' +
+' <ul> ' +
+' <li> ' +
+' creation of a web page under the guidance of a designer; ' +
+' </li> ' +
+' <li> ' +
+' various forms of participation in a panel discussion, including ' +
+' audience member, panelist, or panel chair; ' +
+' </li> ' +
+' <li> ' +
+' a public event, sponsored by a company, and hosted by a museum; ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample conceptexample" id="delegation-example"> ' +
+' <p> ' +
+' 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. ' +
+' </p> ' +
+' </div><div class="anexample conceptexample" id="association-example2"> ' +
+' <p> ' +
+' 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). ' +
+' </p> ' +
+' </div><div class="anexample conceptexample" id="identifier-example"> ' +
+' <p> ' +
+' 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. ' +
+' </p> ' +
+' </div><div class="anexample conceptexample" id="bundle-example"> ' +
+' <p> ' +
+' For users to decide whether they can place their trust in a resource, ' +
+' they may want to analyze the resource\'s provenance, but also determine ' +
+' who its provenance is attributed to, and when it was generated. In other ' +
+' words, users need to be able to determine the provenance of provenance. ' +
+' Hence, provenance is also regarded as an entity (of type Bundle), by ' +
+' which provenance of provenance can then be expressed. ' +
+' </p> ' +
+' </div><div class="anexample conceptexample" id="collection-example"> ' +
+' <p> ' +
+' 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. ' +
+' </p> ' +
+' </div><div id="components-overview-div" style="text-align: center;"> ' +
+' <table class="thinborder" style="margin-left: auto; margin-right: auto;"> ' +
+' <caption id="components-overview"> ' +
+' Table 3: Components Overview ' +
+' </caption> ' +
+' <tr> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td> ' +
+' Component ' +
+' </td> ' +
+' <td> ' +
+' Core <br />Structures ' +
+' </td> ' +
+' <td> ' +
+' Overview ' +
+' </td> ' +
+' <td> ' +
+' Specification ' +
+' </td> ' +
+' <td> ' +
+' Description ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' </tr> ' +
+' <tr> ' +
+' <td style=" padding: 8px;"> ' +
+' 1 ' +
+' </td> ' +
+' <td style="text-align: left;"> ' +
+' Entities and Activities ' +
+' </td> ' +
+' <td> ' +
+' ✔ ' +
+' </td> ' +
+' <td> ' +
+' <a href="#section-entity-activity">2.1.1</a> ' +
+' </td> ' +
+' <td> ' +
+' <a href="#component1">5.1</a> ' +
+' </td> ' +
+' <td style="text-align: left;"> ' +
+' about entities and activities, and their interrelations ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' 2 ' +
+' </td> ' +
+' <td style="text-align: left;"> ' +
+' Derivation ' +
+' </td> ' +
+' <td> ' +
+' ✔ ' +
+' </td> ' +
+' <td> ' +
+' <a href="#section-derivation">2.1.2</a> ' +
+' </td> ' +
+' <td> ' +
+' <a href="#component3">5.2</a> ' +
+' </td> ' +
+' <td style="text-align: left;"> ' +
+' about derivations and its subtypes ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' 3 ' +
+' </td> ' +
+' <td style="text-align: left;"> ' +
+' Agent and Responsibility ' +
+' </td> ' +
+' <td> ' +
+' ✔ ' +
+' </td> ' +
+' <td> ' +
+' <a href="#section-agents-attribution-association-delegation">2.1.3</a> ' +
+' </td> ' +
+' <td> ' +
+' <a href="#component2">5.3</a> ' +
+' </td> ' +
+' <td style="text-align: left;"> ' +
+' about agents and concepts ascribing responsibility to them ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' 4 ' +
+' </td> ' +
+' <td style="text-align: left;"> ' +
+' Alternate ' +
+' </td> ' +
+' <td /> ' +
+' <td> ' +
+' </td> ' +
+' <td> ' +
+' <a href="#component4">5.4</a> ' +
+' </td> ' +
+' <td style="text-align: left;"> ' +
+' about relations linking entities referring the same thing ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' 5 ' +
+' </td> ' +
+' <td style="text-align: left;"> ' +
+' Bundles ' +
+' </td> ' +
+' <td /> ' +
+' <td> ' +
+' <a href="#section-provenance-of-provnance">2.2.2</a> ' +
+' </td> ' +
+' <td> ' +
+' <a href="#component5">5.5</a> ' +
+' </td> ' +
+' <td style="text-align: left;"> ' +
+' about bundles, a mechanism to support provenance of provenance ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' 6 ' +
+' </td> ' +
+' <td style="text-align: left;"> ' +
+' Collections ' +
+' </td> ' +
+' <td /> ' +
+' <td> ' +
+' <a href="#section-collections">2.2.3</a> ' +
+' </td> ' +
+' <td> ' +
+' <a href="#component6">5.6</a> ' +
+' </td> ' +
+' <td style="text-align: left;"> ' +
+' about collections and concepts capturing their transformation, such ' +
+' as insertion and removal ' +
+' </td> ' +
+' </tr> ' +
+' </table> ' +
+' </div><div class="anexample" id="anexample-prov-n"> ' +
+' <p> ' +
+' An activity with identifier <span class="name">a1</span> and an ' +
+' attribute <span class="name">type</span> with value <span class="name">createFile</span>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'activity(a1, [prov:type="createFile"]) ' +
+'</pre> ' +
+' Two entities with identifiers <span class="name">e1</span> and <span class="name">e2</span>. ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(e1) ' +
+'entity(e2) ' +
+'</pre> ' +
+' The activity <span class="name">a1</span> used <span class="name">e1</span>, ' +
+' and <span class="name">e2</span> was generated by <span class="name">a1</span>. ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'used(a1,e1) ' +
+'wasGeneratedBy(e2,a1) ' +
+'</pre> ' +
+' The same descriptions, but with an explicit identifier <span class="name">u1</span> ' +
+' for the usage, and the syntactic marker \'<span class="name">-</span>\' to ' +
+' mark the absence of identifier in the generation. Both are followed by \'<span class="name">;</span>\'. ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'used(u1;a1,e1) ' +
+'wasGeneratedBy(-;e2,a1) ' +
+'</pre> ' +
+' </div><div style="text-align: center; "> ' +
+' <img src="images/w3-publication3.png" alt="Provenance of a Document (1)" style="max-width: 98%; " /> Figure 2: Provenance of a Document (1) ' +
+' </div><div style="text-align: center;"> ' +
+' <img src="images/w3-publication1.png" alt="Provenance of a Document (2)" style="max-width: 90%; " /> Figure 3: Provenance of a Document (2) ' +
+' </div><div id="prov-dm-components-ul"> ' +
+' <ul> ' +
+' <li> ' +
+' <b>Component 1: entities and activities.</b> The first component ' +
+' consists of entities, activities, and concepts linking them, such as ' +
+' generation, usage, start, end. The first component is the only one ' +
+' comprising time-related concepts. ' +
+' </li> ' +
+' <li> ' +
+' <b>Component 2: derivations.</b> The second component is formed with ' +
+' derivations and derivation subtypes. ' +
+' </li> ' +
+' <li> ' +
+' <b>Component 3: agents and responsibility.</b> The third component ' +
+' consists of agents and concepts ascribing responsibility to agents. ' +
+' </li> ' +
+' <li> ' +
+' <b>Component 4: bundles.</b> The fourth component is concerned with ' +
+' bundles, a mechanism to support provenance of provenance. ' +
+' </li> ' +
+' <li> ' +
+' <b>Component 5: alternate.</b> The fifth component consists of ' +
+' relations linking entities referring to the same thing. ' +
+' </li> ' +
+' <li> ' +
+' <b>Component 6: collections.</b> The sixth component is about ' +
+' collections and concepts capturing their transformation, such as ' +
+' insertion and removal. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div style="text-align: center;"> ' +
+' <img src="images/components-dependencies.png" alt="PROV-DM Components" style="max-width: 90%; " /> <map id="componentMap"> ' +
+' <area title="collections" href="#component5" coords="220,0,440,70" alt="collections" shape="rect" /> ' +
+' <area title="alternate" href="#component4" coords="450,0,510,140" alt="alternate" shape="rect" /> ' +
+' <area title="annotations" href="#component6" coords="530,0,590,220" alt="annotations" shape="rect" /> ' +
+' <area title="activities/entities" href="#component1" coords="80,150,510,220" alt="activities/entities" shape="rect" /> ' +
+' <area title="derivations" href="#component3" coords="80,0,210,70" alt="derivations" shape="rect" /> ' +
+' <area title="agents/responsibility" href="#component2" coords="0,0,70,220" alt="agents/responsibility" shape="rect" /></map> ' +
+' Figure 4: PROV-DM Components ' +
+' </div><div id="relations-at-a-glance-div" style="text-align: center;"> ' +
+' <table class="thinborder" style="margin-left: auto; margin-right: auto;"> ' +
+' <caption id="relations-at-a-glance"> ' +
+' Table 4: PROV-DM Relations At a Glance ' +
+' </caption> ' +
+' <tr> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td colspan="3"> ' +
+' Object ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td> ' +
+' Entity ' +
+' </td> ' +
+' <td> ' +
+' Activity ' +
+' </td> ' +
+' <td> ' +
+' Agent ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td rowspan="3"> ' +
+' Subject ' +
+' </td> ' +
+' <td> ' +
+' Entity ' +
+' </td> ' +
+' <td> ' +
+' <div class="component2-color"> ' +
+' <a class="essential">WasDerivedFrom</a><br /><a>WasRevisionOf</a><br /><a>WasQuotedFrom</a><br /><a>HadPrimarySource</a> ' +
+' </div> ' +
+' <div class="component5-color"> ' +
+' <a>AlternateOf</a><br /><a>SpecializationOf</a><br /><a>ContextualizationOf</a> ' +
+' </div> ' +
+' </td> ' +
+' <td class="component1-color"> ' +
+' <a class="essential" title="wasGeneratedBy">WasGeneratedBy</a><br /><a title="wasInvalidatedBy">WasInvalidatedBy</a> ' +
+' </td> ' +
+' <td class="component3-color"> ' +
+' <a class="essential">WasAttributedTo</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' Activity ' +
+' </td> ' +
+' <td> ' +
+' <div class="component1-color"> ' +
+' <a class="essential">Used</a><br /><a>WasStartedBy</a><br /><a>WasEndedBy</a> ' +
+' </div> ' +
+' </td> ' +
+' <td class="component1-color"> ' +
+' <a class="essential">WasInformedBy</a> ' +
+' </td> ' +
+' <td class="component3-color"> ' +
+' <a class="essential">WasAssociatedWith</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' Agent ' +
+' </td> ' +
+' <td> ' +
+' </td> ' +
+' <td> ' +
+' </td> ' +
+' <td class="component3-color"> ' +
+' <a class="essential">ActedOnBehalfOf</a> ' +
+' </td> ' +
+' </tr> ' +
+' </table> ' +
+' </div><div class="component2-color"> ' +
+' <a class="essential">WasDerivedFrom</a><br /><a>WasRevisionOf</a><br /><a>WasQuotedFrom</a><br /><a>HadPrimarySource</a> ' +
+' </div><div class="component5-color"> ' +
+' <a>AlternateOf</a><br /><a>SpecializationOf</a><br /><a>ContextualizationOf</a> ' +
+' </div><div class="component1-color"> ' +
+' <a class="essential">Used</a><br /><a>WasStartedBy</a><br /><a>WasEndedBy</a> ' +
+' </div><div id="prov-dm-types-and-relations-fig" style="text-align: left;"> ' +
+' <table class="thinborder" style="margin-left: auto; margin-right: auto;"> ' +
+' <caption id="prov-dm-types-and-relations"> ' +
+' Table 5: PROV-DM Types and Relations ' +
+' </caption> ' +
+' <tr> ' +
+' <td> ' +
+' <a><b>Type or Relation Name</b></a> ' +
+' </td> ' +
+' <td> ' +
+' <b>Representation in the PROV-N notation</b> ' +
+' </td> ' +
+' <td> ' +
+' <b>Component</b> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' </tr> ' +
+' <tr class="component1-color"> ' +
+' <td class="essential"> ' +
+' <a>Entity</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="dfn-Entity" class="essential">entity(id, [ attr1=val1, ' +
+' ...])</a> ' +
+' </td> ' +
+' <td rowspan="8"> ' +
+' <a href="#component1">Component 1: Entities/Activities</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component1-color"> ' +
+' <td class="essential"> ' +
+' <a>Activity</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="dfn-Activity" class="essential">activity(id, st, et, [ ' +
+' attr1=val1, ...])</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component1-color"> ' +
+' <td class="essential"> ' +
+' <a>Generation</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="WasGeneratedBy"><span class="essential">wasGeneratedBy(</span>id;<span class="essential">e,a</span>,t,attrs<span class="essential">)</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component1-color"> ' +
+' <td class="essential"> ' +
+' <a>Usage</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="used"><span class="essential">used(</span>id;<span class="essential">a,e</span>,t,attrs<span class="essential">)</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component1-color"> ' +
+' <td class="essential"> ' +
+' <a>Communication</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="wasInformedBy">wasInformedBy(id;a2,a1,attrs)</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component1-color"> ' +
+' <td> ' +
+' <a>Start</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="wasStartedBy">wasStartedBy(id;a2,e,a1,t,attrs)</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component1-color"> ' +
+' <td> ' +
+' <a>End</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="wasEndedBy">wasEndedBy(id;a2,e,a1,t,attrs)</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component1-color"> ' +
+' <td> ' +
+' <a>Invalidation</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="wasInvalidatedBy">wasInvalidatedBy(id;e,a,t,attrs)</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' </tr> ' +
+' <tr class="component2-color"> ' +
+' <td class="essential"> ' +
+' <a>Derivation</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="wasDerivedFrom"><span class="essential">wasDerivedFrom(</span>id; ' +
+' <span class="essential">e2, e1</span>, a, g2, u1, attrs<span class="essential">)</span></a> ' +
+' </td> ' +
+' <td rowspan="5"> ' +
+' <a href="#component2">Component 2: Derivations</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component2-color"> ' +
+' <td class="provType"> ' +
+' <a>Revision</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="WasRevisionOf">... prov:type=\'prov:WasRevisionOf\' ...</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component2-color"> ' +
+' <td class="provType"> ' +
+' <a>Quotation</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="WasQuotedFrom">... prov:type=\'prov:WasQuotedFrom\' ...</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component2-color"> ' +
+' <td class="provType"> ' +
+' <a>Primary Source</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="HadPrimarySource">... prov:type=\'prov:HadPrimarySource\' ' +
+' ...</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component2-color"> ' +
+' <td> ' +
+' <a>Trace</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="tracedTo">tracedTo(id;e2,e1,attrs)</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' </tr> ' +
+' <tr class="component3-color" style="border-collapse: collapse; "> ' +
+' <td class="essential"> ' +
+' <a>Agent</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="dfn-agent" class="essential">agent(id, [ attr1=val1, ...])</a> ' +
+' </td> ' +
+' <td rowspan="8"> ' +
+' <a href="#component3">Component 3: Agents/Responsibility</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component3-color"> ' +
+' <td class="essential"> ' +
+' <a>Attribution</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="wasAttributedTo"><span class="essential">wasAttributedTo(</span>id;<span class="essential">e,ag</span>,attr<span class="essential">)</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component3-color"> ' +
+' <td class="essential"> ' +
+' <a>Association</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="wasAssociatedWith"><span class="essential">wasAssociatedWith(</span>id;<span class="essential">a,ag</span>,pl,attrs<span class="essential">)</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component3-color"> ' +
+' <td class="essential"> ' +
+' <a>Delegation</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="actedOnBehalfOf"><span class="essential">actedOnBehalfOf(</span>id;<span class="essential">ag2,ag1</span>,a,attrs<span class="essential">)</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component3-color"> ' +
+' <td class="provType"> ' +
+' <a>Plan</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="plan">... prov:type=\'prov:Plan\' ...</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component3-color"> ' +
+' <td class="provType"> ' +
+' <a>Person</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="person">... prov:type=\'prov:Person\' ...</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component3-color"> ' +
+' <td class="provType"> ' +
+' <a>Organization</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="organization">... prov:type=\'prov:Organization\' ...</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component3-color"> ' +
+' <td class="provType"> ' +
+' <a title="software-agent">SoftwareAgent</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="software-agent">... prov:type=\'prov:SoftwareAgent\' ...</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' </tr> ' +
+' <tr class="component4-color"> ' +
+' <td> ' +
+' <a title="bundle">Bundle constructor</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="dfn-bundle">bundle id description_1 ... description_n ' +
+' endBundle</a> ' +
+' </td> ' +
+' <td rowspan="2"> ' +
+' <a href="#component5">Component 4: Bundles</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component4-color"> ' +
+' <td class="provType"> ' +
+' <a title="bundle">Bundle type</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="bundle">... prov:type=\'prov:Bundle\' ...</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' </tr> ' +
+' <tr class="component5-color"> ' +
+' <td> ' +
+' <a>Alternate</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="alternateOf">alternateOf(alt1, alt2)</a> ' +
+' </td> ' +
+' <td rowspan="3"> ' +
+' <a href="#component4">Component 5: Alternate</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component5-color"> ' +
+' <td> ' +
+' <a>Specialization</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="specializationOf">specializationOf(sub, super)</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component5-color"> ' +
+' <td> ' +
+' <a>Contextualization</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="contextualizationOf">contextualizationOf(i2, i1,bundle)</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' </tr> ' +
+' <tr class="component6-color"> ' +
+' <td class="provType"> ' +
+' <a>Collection</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="collection">... prov:type=\'prov:Collection\' ...</a> ' +
+' </td> ' +
+' <td rowspan="7"> ' +
+' <a href="#component6">Component 6: Collections</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component6-color"> ' +
+' <td> ' +
+' <a>Collection Membership</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="memberOf">memberOf(c, {e_1, ..., e_n})</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component6-color"> ' +
+' <td class="provType"> ' +
+' <a>Dictionary</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="dictionary">... prov:type=\'prov:Dictionary\' ...</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component6-color"> ' +
+' <td class="provType"> ' +
+' <a title="empty dictionary">EmptyDictionary</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="empty dictionary">... prov:type=\'prov:EmptyDictionary\' ...</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component6-color"> ' +
+' <td> ' +
+' <a>Insertion</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="derivedByInsertionFrom">derivedByInsertionFrom(id; c2, c1, ' +
+' {(key_1, e_1), ..., (key_n, e_n)}, attrs)</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component6-color"> ' +
+' <td> ' +
+' <a>Removal</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="derivedByRemovalFrom">derivedByRemovalFrom(id; c2, c1, ' +
+' {key_1, ... key_n}, attrs)</a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr class="component6-color"> ' +
+' <td> ' +
+' <a>Dictionary Membership</a> ' +
+' </td> ' +
+' <td> ' +
+' <a title="memberOf-d">memberOf(d, {(key_1, e_1), ..., (key_n, e_n)})</a> ' +
+' </td> ' +
+' </tr> ' +
+' </table> ' +
+' </div><div style="text-align: center;"> ' +
+' <!-- <img src="images/Entities-Activities.png" alt="entities and ' +
+' activities"/> --> ' +
+' <img src="uml/component1.png" alt="entities and activities" /> Figure 5: ' +
+' Entities and Activities Component Overview ' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-entity"> ' +
+' An <dfn title="dfn-Entity" id="dfn-entity">entity</dfn><span class="withPn">, ' +
+' written <span class="pnExpression" id="pn-entity">entity(id, [attr1=val1, ' +
+' ...])</span> in PROV-N, </span> has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="entity.id">id</span>: an identifier for an ' +
+' entity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="entity.attributes">attributes</span>: an ' +
+' OPTIONAL set of attribute-value pairs ((<span class="name">attr1</span>, ' +
+' <span class="name">val1</span>), ...) representing additional ' +
+' information about this entity. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample" id="anexample-entity"> ' +
+' <p> ' +
+' The following expression ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version="2" ]) ' +
+'</pre> ' +
+' states the existence of an entity, denoted by identifier <span class="name">tr:WD-prov-dm-20111215</span>, ' +
+' with type <span class="name">document</span> and version number <span class="name">2</span>. The attribute <span class="name">ex:version</span> ' +
+' is application specific, whereas the attribute <span class="name">type</span> ' +
+' (see <a href="#term-attribute-type">Section 5.7.4.4</a>) is reserved in ' +
+' the <a title="prov-namespace">PROV namespace</a>. ' +
+' <!-- The following expression</p> <pre class="codeexample"> ' +
+' entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version="2" ]) ' +
+' entity(e0, [ prov:type="File", ex:path="/shared/crime.txt", ' +
+' ex:creator="Alice" ]) </pre> states the existence of an entity, denoted ' +
+' by identifier <span class="name">e0</span>, with type <span ' +
+' class="name">File</span> and path <span ' +
+' class="name">/shared/crime.txt</span> in the file system, and creator ' +
+' alice. The attributes <span class="name">path</span> and <span ' +
+' class="name">creator</span> are application specific, whereas the ' +
+' attribute <span class="name">type</span> is reserved in the PROV ' +
+' namespace. --> ' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-activity"> ' +
+' An <dfn title="dfn-Activity" id="dfn-activity">activity</dfn><span class="withPn">, written <span class="pnExpression" id="pn-activity">activity(id, ' +
+' st, et, [attr1=val1, ...])</span> in PROV-N,</span> has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="activity.id">id</span>: an identifier for ' +
+' an activity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="activity.startTime">startTime</span>: an ' +
+' OPTIONAL time (<span class="name">st</span>) for the start of the ' +
+' activity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="activity.endTime">endTime</span>: an ' +
+' OPTIONAL time (<span class="name">et</span>) for the end of the ' +
+' activity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="activity.attributes">attributes</span>: an ' +
+' OPTIONAL set of attribute-value pairs ((<span class="name">attr1</span>, ' +
+' <span class="name">val1</span>), ...) representing additional ' +
+' information about this activity. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample" id="anexample-activity"> ' +
+' <p> ' +
+' The following expression ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'activity(a1,2011-11-16T16:05:00,2011-11-16T16:06:00, ' +
+' [ ex:host="server.example.org", prov:type=\'ex:edit\' ]) ' +
+'</pre> ' +
+' <p> ' +
+' states the existence of an activity with identifier <span class="name">a1</span>, ' +
+' start time <span class="name">2011-11-16T16:05:00</span>, and end time ' +
+' <span class="name">2011-11-16T16:06:00</span>, running on host <span class="name">server.example.org</span>, and of type <span class="name">edit</span>. ' +
+' The attribute <span class="name">host</span> is application specific ' +
+' (declared in some namespace with prefix <span class="name">ex</span>). ' +
+' The attribute <span class="name">type</span> is a reserved attribute of ' +
+' PROV-DM, allowing for sub-typing to be expressed (see <a href="#term-attribute-type">Section 5.7.4.4</a>). ' +
+' </p> ' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-generation"> ' +
+' <dfn title="wasGeneratedBy">Generation</dfn><span class="withPn">, written ' +
+' <span class="pnExpression">wasGeneratedBy(id; e, a, t, attrs)</span> in ' +
+' PROV-N,</span> has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="generation.id">id</span>: an OPTIONAL ' +
+' identifier for a generation; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="generation.entity">entity</span>: an ' +
+' identifier (<span class="name">e</span>) for a created entity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="generation.activity">activity</span>: an ' +
+' OPTIONAL identifier (<span class="name">a</span>) for the activity ' +
+' that creates the entity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="generation.time">time</span>: an OPTIONAL ' +
+' "generation time" (<span class="name">t</span>), the time at which the ' +
+' entity was completely created; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="generation.attributes">attributes</span>: ' +
+' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value ' +
+' pairs representing additional information about this generation. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample" id="anexample-generation1"> ' +
+' <p> ' +
+' The following expressions ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' wasGeneratedBy(e1, a1, 2001-10-26T21:32:52, [ ex:port="p1" ]) ' +
+' wasGeneratedBy(e2, a1, 2001-10-26T10:00:00, [ ex:port="p2" ]) ' +
+'</pre> ' +
+' <p> ' +
+' state the existence of two generations (with respective times <span class="name">2001-10-26T21:32:52</span> and <span class="name">2001-10-26T10:00:00</span>), ' +
+' at which new entities, identified by <span class="name">e1</span> and ' +
+' <span class="name">e2</span>, are created by an activity, identified by ' +
+' <span class="name">a1</span>. The first one is available on port <span class="name">p1</span>, whereas the other is available on port <span class="name">p2</span>. The semantics of <span class="name">port</span> ' +
+' are application specific. ' +
+' </p> ' +
+' </div><div class="anexample" id="anexample-generation2"> ' +
+' <p> ' +
+' 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. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' wasGeneratedBy(e, -, 2001-10-26T21:32:52) ' +
+'</pre> ' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-usage"> ' +
+' <dfn title="used">Usage</dfn><span class="withPn">, written <span class="pnExpression">used(id; a, e, t, attrs)</span> in PROV-N,</span> ' +
+' has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="usage.id">id</span>: an OPTIONAL ' +
+' identifier for a usage; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="usage.activity">activity</span>: an ' +
+' identifier (<span class="name">a</span>) for the activity that used an ' +
+' entity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="usage.entity">entity</span>: an OPTIONAL ' +
+' identifier (<span class="name">e</span>) for the entity being used; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="usage.time">time</span>: an OPTIONAL ' +
+' "usage time" (<span class="name">t</span>), the time at which the ' +
+' entity started to be used; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="usage.attributes">attributes</span>: an ' +
+' OPTIONAL set (<span class="name">attrs</span>) of attribute-value ' +
+' pairs representing additional information about this usage. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample" id="anexample-usage"> ' +
+' <p> ' +
+' The following usages ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' used(a1, e1, 2011-11-16T16:00:00, [ ex:parameter="p1" ]) ' +
+' used(a1, e2, 2011-11-16T16:00:01, [ ex:parameter="p2" ]) ' +
+'</pre> ' +
+' <p> ' +
+' state that the activity identified by <span class="name">a1</span> used ' +
+' two entities identified by <span class="name">e1</span> and <span class="name">e2</span>, at times <span class="name">2011-11-16T16:00:00</span> ' +
+' and <span class="name">2011-11-16T16:00:01</span>, respectively; the ' +
+' first one was found as the value of parameter <span class="name">p1</span>, ' +
+' whereas the second was found as value of parameter <span class="name">p2</span>. ' +
+' The semantics of <span class="name">parameter</span> is application ' +
+' specific. ' +
+' </p> ' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-wasInformedBy"> ' +
+' A <dfn title="wasInformedBy">communication</dfn><span class="withPn">, ' +
+' written as <span class="pnExpression">wasInformedBy(id; a2, a1, attrs)</span> ' +
+' in PROV-N,</span> has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="communication.id">id</span>: an OPTIONAL ' +
+' identifier identifying the relation; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="communication.informed">informed</span>: ' +
+' the identifier (<span class="name">a2</span>) of the informed ' +
+' activity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="communication.informant">informant</span>: ' +
+' the identifier (<span class="name">a1</span>) of the informant ' +
+' activity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="communication.attributes">attributes</span>: ' +
+' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value ' +
+' pairs representing additional information about this communication. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample" id="anexample-communication"> ' +
+' <p> ' +
+' Consider two activities <span class="name">a1</span> and <span class="name">a2</span>, the former performed by a government agency, and ' +
+' the latter by a driver caught speeding. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'activity(a1, [ prov:type="traffic regulations enforcing" ]) ' +
+'activity(a2, [ prov:type="fine paying, check writing, and mailing" ]) ' +
+'wasInformedBy(a2, a1) ' +
+'</pre> ' +
+' The last line indicates that some implicit entity was generated by <span class="name">a1</span> and used by <span class="name">a2</span>; this ' +
+' entity may be a traffic ticket that had a notice of fine, amount, and ' +
+' payment mailing details. ' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-start"> ' +
+' An activity <dfn title="wasStartedBy">start</dfn><span class="withPn">, ' +
+' written <span class="pnExpression">wasStartedBy(id; a2, e, a1, t, attrs)</span> ' +
+' in PROV-N,</span> has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="start.id">id</span>: an OPTIONAL ' +
+' identifier for the activity start; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="start.activity">activity</span>: an ' +
+' identifier (<span class="name">a2</span>) for the started activity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="start.trigger">trigger</span>: an OPTIONAL ' +
+' identifier (<span class="name">e</span>) for the entity triggering the ' +
+' activity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="start.starter">starter</span>: an OPTIONAL ' +
+' identifier (<span class="name">a1</span>) for the activity that ' +
+' generated the (possibly unspecified) entity (<span class="name">e</span>); ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="start.time">time</span>: the OPTIONAL time ' +
+' (<span class="name">t</span>) at which the activity was started; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="start.attributes">attributes</span>: an ' +
+' OPTIONAL set (<span class="name">attrs</span>) of attribute-value ' +
+' pairs representing additional information about this activity start. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample" id="anexample-start1"> ' +
+' <p> ' +
+' The following example contains the description of an activity <span class="name">a1</span> (a discussion), which was started at a specific ' +
+' time, and was triggered by an email message <span class="name">e1</span>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(e1, [ prov:type="email message"] ) ' +
+'activity(a1, [ prov:type="Discuss" ]) ' +
+'wasStartedBy(a1, e1, -, 2011-11-16T16:05:00) ' +
+'</pre> ' +
+' Furthermore, if the message is also an input to the activity, this can be ' +
+' described as follows: ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'used(a1, e1, -) ' +
+'</pre> ' +
+' <p> ' +
+' Alternatively, one can also describe the activity that generated the ' +
+' email message. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'activity(a0, [ prov:type="Write" ]) ' +
+'wasGeneratedBy(e1, a0) ' +
+'wasStartedBy(a1, e1, a0, 2011-11-16T16:05:00) ' +
+'</pre> ' +
+' <p> ' +
+' If <span class="name">e1</span> is not known, it would also have valid ' +
+' to write: ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'wasStartedBy(a1, -, a0, 2011-11-16T16:05:00) ' +
+'</pre> ' +
+' </div><div class="anexample" id="anexample-start2"> ' +
+' <p> ' +
+' In the following example, a race is started by a bang, and ' +
+' responsibility for this trigger is attributed to an agent <span class="name">ex:Bob</span>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'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) ' +
+'</pre> ' +
+' </div><div class="anexample" id="anexample-start3"> ' +
+' <p> ' +
+' In this example, filling fuel 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. ' +
+' </p> ' +
+'<pre class="codeexample" id="anexample-start4" xml:space="preserve"> ' +
+'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, -) ' +
+'</pre> ' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-end"> ' +
+' An activity <dfn title="wasEndedBy">end</dfn><span class="withAsn">, ' +
+' written <span class="pnExpression">wasEndedBy(id; a2, e, a1, t, attrs)</span> ' +
+' in PROV-N,</span> has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="end.id">id</span>: an OPTIONAL identifier ' +
+' for the activity end; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="end.activity">activity</span>: an ' +
+' identifier (<span class="name">a2</span>) for the ended activity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="end.trigger">trigger</span>: an OPTIONAL ' +
+' identifier (<span class="name">e</span>) for the entity triggering the ' +
+' activity ending; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="end.ender">ender</span>: an OPTIONAL ' +
+' identifier (<span class="name">a1</span>) for the activity that ' +
+' generated the (possibly unspecified) entity (<span class="name">e</span>); ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="end.time">time</span>: the OPTIONAL time (<span class="name">t</span>) at which the activity was ended; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="end.attributes">attributes</span>: an ' +
+' OPTIONAL set (<span class="name">attrs</span>) of attribute-value ' +
+' pairs representing additional information about this activity end. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample" id="anexample-end"> ' +
+' <p> ' +
+' The following example is a description of an activity <span class="name">a1</span> ' +
+' (editing) that was ended following an approval document <span class="name">e1</span>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(e1, [ prov:type="approval document" ]) ' +
+'activity(a1, [ prov:type="Editing" ]) ' +
+'wasEndedBy(a1, e1) ' +
+'</pre> ' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-invalidation"> ' +
+' <dfn title="wasInvalidatedBy">Invalidation</dfn><span class="withPn">, ' +
+' written <span class="pnExpression">wasInvalidatedBy(id; e, a, t, attrs)</span> ' +
+' in PROV-N,</span> has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="invalidation.id">id</span>: an OPTIONAL ' +
+' identifier for a invalidation; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="invalidation.entity">entity</span>: an ' +
+' identifier for the invalidated entity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="invalidation.activity">activity</span>: an ' +
+' OPTIONAL identifier for the activity that invalidated the entity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="invalidation.time">time</span>: an ' +
+' OPTIONAL "invalidation time", the time at which the entity began to be ' +
+' invalidated; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="invalidation.attributes">attributes</span>: ' +
+' an OPTIONAL set of attribute-value pairs representing additional ' +
+' information about this invalidation. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample" id="anexample-invalidation1"> ' +
+' <p> ' +
+' <em>The Painter</em>, a Picasso painting, is known to have been ' +
+' destroyed in a <a href="http://en.wikipedia.org/wiki/Lost_artworks#20th_century">plane ' +
+' accident</a>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(ex:The-Painter) ' +
+'agent(ex:Picasso) ' +
+'wasAttributedTo(ex:The-Painter, ex:Picasso) ' +
+'activity(ex:crash) ' +
+'wasInvalidatedBy(ex:The-Painter, ex:crash, 1998-09-02, [ ex:circumstances="plane accident" ]) ' +
+'</pre> ' +
+' </div><div class="anexample" id="anexample-invalidation2"> ' +
+' <p> ' +
+' The BBC news home page on 2012-04-03 <span class="name">ex:bbcNews2012-04-03</span> ' +
+' contained a reference to a given news item <a href="http://www.bbc.co.uk/news/uk-17595024">bbc:news/uk-17595024</a>, ' +
+' but the BBC news home page on the next day did not. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(ex:bbcNews2012-04-03) ' +
+'memberOf(ex:bbcNews2012-04-03, {("item1", bbc:news/uk-17595024)}) ' +
+'wasGeneratedBy (ex:bbcNews2012-04-03, -, 2012-04-03T00:00:01) ' +
+'wasInvalidatedBy(ex:bbcNews2012-04-03, -, 2012-04-03T23:59:59) ' +
+'</pre> ' +
+' We refer to example <a href="#anexample-specialization" class="anexample-ref"><span>Example REF</span></a> for further ' +
+' descriptions of the BBC Web site, and to <a href="#term-dictionary-membership">Section 5.6.5</a> for a description of ' +
+' the relation <a title="memberOf-d">memberOf</a>. ' +
+' </div><div class="anexample" id="anexample-invalidation3"> ' +
+' <p> ' +
+' In this example, the "buy one beer, get one free" offer expired at the ' +
+' end of the happy hour. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(buy_one_beer_get_one_free_offer_during_happy_hour) ' +
+'wasAttributedTo(proprietor) ' +
+'wasInvalidatedBy(buy_one_beer_get_one_free_offer_during_happy_hour, ' +
+' -,2012-03-10T18:00:00) ' +
+'</pre> ' +
+' <p> ' +
+' In contrast, in the following descriptions, Bob redeemed the offer 45 ' +
+' minutes before it expired, and got two beers. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(buy_one_beer_get_one_free_offer_during_happy_hour) ' +
+'wasAttributedTo(proprietor) ' +
+'activity(redeemOffer) ' +
+'entity(twoBeers) ' +
+' ' +
+'wasAssociatedWith(redeemOffer,bob) ' +
+'used(buy_one_beer_get_one_free_offer_during_happy_hour, ' +
+' redeemOffer, 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) ' +
+'</pre> ' +
+' <p> ' +
+' We see that the offer was both used to be converted into <span class="name">twoBeers</span> and invalidated by the <span class="name">redeemOffer</span> ' +
+' activity: in other words, the combined usage and invalidation indicate ' +
+' consumption of the offer. ' +
+' </p> ' +
+' </div><div style="text-align: center;"> ' +
+' <!-- <img src="images/Derivation.png" alt="derivation"/> --> ' +
+' <img src="uml/component2.png" alt="derivation" /> Figure 6: Derivation ' +
+' Component Overview ' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-derivation"> ' +
+' A <dfn title="wasDerivedFrom">derivation</dfn><span class="withPn">, ' +
+' written <span class="pnExpression" id="pn-wasDerivedFrom">wasDerivedFrom(id; ' +
+' e2, e1, a, g2, u1, attrs)</span> in PROV-N,</span> has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="derivation.id">id</span>: an OPTIONAL ' +
+' identifier for a derivation; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="derivation.generatedEntity">generatedEntity</span>: ' +
+' the identifier (<span class="name">e2</span>) of the entity generated ' +
+' by the derivation; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="derivation.usedEntity">usedEntity</span>: ' +
+' the identifier (<span class="name">e1</span>) of the entity used by ' +
+' the derivation; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="derivation.activity">activity</span>: an ' +
+' OPTIONAL identifier (<span class="name">a</span>) for the activity ' +
+' using and generating the above entities; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="derivation.generation">generation</span>: ' +
+' an OPTIONAL identifier (<span class="name">g2</span>) for the ' +
+' generation involving the generated entity (<span class="name">e2</span>) ' +
+' and activity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="derivation.usage">usage</span>: an ' +
+' OPTIONAL identifier (<span class="name">u1</span>) for the usage ' +
+' involving the used entity (<span class="name">e1</span>) and activity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="derivation.attributes">attributes</span>: ' +
+' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value ' +
+' pairs representing additional information about this derivation. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample" id="anexample-derivation"> ' +
+' <p> ' +
+' The following descriptions are about derivations between <span class="name">e2</span> and <span class="name">e1</span>, 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. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'wasDerivedFrom(e2, e1) ' +
+'wasDerivedFrom(e2, e1, [ prov:type="physical transform" ]) ' +
+'</pre> ' +
+' <p> ' +
+' The following description expresses that activity <span class="name">a</span>, ' +
+' using the entity <span class="name">e1</span> according to usage <span class="name">u1</span>, derived the entity <span class="name">e2</span> ' +
+' and generated it according to generation <span class="name">g2</span>. ' +
+' It is followed by descriptions for generation <span class="name">g2</span> ' +
+' and usage <span class="name">u1</span>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'wasDerivedFrom(e2, e1, a, g2, u1) ' +
+'wasGeneratedBy(g2; e2, a, -) ' +
+'used(u1; a, e1, -) ' +
+'</pre> ' +
+' <p> ' +
+' With such a comprehensive description of derivation, a program that ' +
+' analyzes provenance can identify the activity underpinning the ' +
+' derivation, it can identify how the original entity <span class="name">e1</span> ' +
+' 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 <span class="name">e2</span> was ' +
+' obtained from (say, for a function returning multiple results). ' +
+' </p> ' +
+' </div><div class="anexample" id="anexample-revision"> ' +
+' <p> ' +
+' Revisiting the example of <a href="#section-example-two">Section 4.2</a>, ' +
+' we can now state that the report <span class="name">tr:WD-prov-dm-20111215</span> ' +
+' was a revision of the report <span class="name">tr:WD-prov-dm-20111018</span>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'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:WasRevisionOf\' ]) ' +
+'</pre> ' +
+' </div><div class="anexample" id="anexample-quotation"> ' +
+' <p> ' +
+' The following paragraph is a quote from one of <a href="http://thinklinks.wordpress.com/2012/03/07/thoughts-from-the-dagstuhl-principles-of-provenance-workshop/">the ' +
+' author\'s blogs</a>. ' +
+' </p> ' +
+' <blockquote id="bl-dagstuhl" /> ' +
+' <em> "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."</em> ' +
+' <p> ' +
+' If <a href="http://thinklinks.wordpress.com/2012/03/07/thoughts-from-the-dagstuhl-principles-of-provenance-workshop/"><span class="name">wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/</span></a> ' +
+' denotes the original blog by agent <span class="name">ex:Paul</span>, ' +
+' and <a href="#bl-dagstuhl"><span class="name">dm:bl-dagstuhl</span></a> ' +
+' denotes the above paragraph, then the following descriptions express ' +
+' that the above paragraph was copied by agent <span class="name">ex:Luc</span> ' +
+' from a part of the blog, attributed to the agent <span class="name">ex:Paul</span>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'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:WasQuotedFrom\' ]) ' +
+'wasAttributedTo(dm:bl-dagstuhl, ex:Luc) ' +
+'wasAttributedTo(wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop/, ex:Paul) ' +
+'</pre> ' +
+' </div><div class="anexample" id="anexample-primary-source1"> ' +
+' <p> ' +
+' 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. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(ex:la-campagne-de-Russie-1812-1813) ' +
+'entity(ex:revue-d-Histoire-de-la-Pharmacie-t-XVIII) ' +
+'wasDerivedFrom(ex:la-campagne-de-Russie-1812-1813, ' +
+' ex:revue-d-Histoire-de-la-Pharmacie-t-XVIII, ' +
+' [ prov:type=\'prov:HadPrimarySource\' ]) ' +
+'</pre> ' +
+' </div><div style="text-align: center;"> ' +
+' <!-- <img src="images/Agents-Responsibility.png" alt="agents and ' +
+' responsibilities"/> --> ' +
+' <img src="uml/component3.png" alt="agents and responsibilities" /> Figure ' +
+' 7: Agents and Responsibility Component Overview ' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-agent"> ' +
+' An <dfn title="dfn-agent" id="dfn-agent">agent</dfn><span class="withPn">, ' +
+' written <span class="pnExpression" id="pn-agent">agent(id, [attr1=val1, ' +
+' ...])</span> in PROV-N,</span> has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="agent.id">id</span>: an identifier for an ' +
+' agent; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="agent.attributes">attributes</span>: a set ' +
+' of attribute-value pairs ((<span class="name">attr1</span>, <span class="name">val1</span>), ...) representing additional information ' +
+' about this agent. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="glossary-ref" /><div class="glossary-ref" /><div class="glossary-ref" /><div class="anexample"> ' +
+' <p> ' +
+' The following expression is about an agent identified by <span class="name">e1</span>, which is a person, named Alice, with employee ' +
+' number 1234. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'agent(e1, [ex:employee="1234", ex:name="Alice", prov:type=\'prov:Person\' ]) ' +
+'</pre> ' +
+' <p> ' +
+' It is optional to specify the type of an agent. When present, it is ' +
+' expressed using the <span class="name">prov:type</span> attribute. ' +
+' </p> ' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-attribution"> ' +
+' An <dfn title="wasAttributedTo">attribution</dfn> relation<span class="withPn">, written <span class="pnExpression">wasAttributedTo(id; e, ' +
+' ag, attrs)</span> in PROV-N,</span> has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="attribution.id">id</span>: an OPTIONAL ' +
+' identifier for the relation; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="attribution.entity">entity</span>: an ' +
+' entity identifier (<span class="name">e</span>); ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="attribution.agent">agent</span>: the ' +
+' identifier (<span class="name">ag</span>) of the agent whom the entity ' +
+' is ascribed to, and therefore bears some responsibility for its ' +
+' existence; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="attribution.attributes">attributes</span>: ' +
+' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value ' +
+' pairs representing additional information about this attribution. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample" id="anexample-attribution"> ' +
+' <p> ' +
+' Revisiting the example of <a class="section-ref" href="#section-example-one"><span>TBD</span></a>, we can ascribe <span class="name">tr:WD-prov-dm-20111215</span> to some agents without an ' +
+' explicit activity. The reserved attribute <span class="name">role</span> ' +
+' (see <a class="section-ref" href="#term-attribute-role"><span>TBD</span></a>) ' +
+' allows for role of the agent in the attribution to be specified. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'agent(ex:Paolo, [ prov:type="Person" ]) ' +
+'agent(ex:Simon, [ prov:type="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" ]) ' +
+'</pre> ' +
+' </div><div class="glossary-ref" /><div class="glossary-ref" /><div class="attributes" id="attributes-activity-association"> ' +
+' An <dfn title="wasAssociatedWith">activity association</dfn><span class="withPn">, written <span class="pnExpression">wasAssociatedWith(id; ' +
+' a, ag, pl, attrs)</span> in PROV-N,</span> has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="association.id">id</span>: an OPTIONAL ' +
+' identifier for the association between an activity and an agent; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="association.activity">activity</span>: an ' +
+' identifier (<span class="name">a</span>) for the activity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="association.agent">agent</span>: an ' +
+' OPTIONAL identifier (<span class="name">ag</span>) for the agent ' +
+' associated with the activity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="association.plan">plan</span>: an OPTIONAL ' +
+' identifier (<span class="name">pl</span>) for the plan adopted by the ' +
+' agent in the context of this activity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="association.attributes">attributes</span>: ' +
+' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value ' +
+' pairs representing additional information about this association of ' +
+' this activity with this agent. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample" id="anexample-wasAssociatedWith"> ' +
+' <p> ' +
+' 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 <span class="name">ex:wf</span>, described as an an entity of ' +
+' type <span class="name"><a>plan</a></span>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'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", ' +
+' ex:url="http://example.org/workflow1.bpel" %% xsd:anyURI ]) ' +
+'</pre> ' +
+' Since the workflow <span class="name">ex:wf</span> is itself an entity, ' +
+' its provenance can also be expressed in PROV-DM: it can be generated by ' +
+' some activity and derived from other entities, for instance. ' +
+' </div><div class="anexample" id="anexample-wasAssociatedWith-2"> ' +
+' <p> ' +
+' In some cases, one wants to indicate a plan was followed, without having ' +
+' to specify which agent was involved. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'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]) ' +
+'</pre> ' +
+' In this case, it is assumed that an agent exists, but it has not been ' +
+' specified. ' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-delegation"> ' +
+' A <dfn title="actedOnBehalfOf">delegation</dfn> link<span class="withPn">, ' +
+' written <span class="pnExpression">actedOnBehalfOf(id; ag2, ag1, a, attrs)</span> ' +
+' in PROV-N,</span> has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="delegation.id">id</span>: an OPTIONAL ' +
+' identifier for the delegation link between delegate and responsible; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="delegation.delegate">delegate</span>: an ' +
+' identifier (<span class="name">ag2</span>) for the agent associated ' +
+' with an activity, acting on behalf of the responsible agent; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="delegation.responsible">responsible</span>: ' +
+' an identifier (<span class="name">ag1</span>) for the agent, on behalf ' +
+' of which the delegate agent acted; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="delegation.activity">activity</span>: an ' +
+' OPTIONAL identifier (<span class="name">a</span>) of an activity for ' +
+' which the delegation link holds; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="delegation.attributes">attributes</span>: ' +
+' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value ' +
+' pairs representing additional information about this delegation link. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample"> ' +
+' <p> ' +
+' 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. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'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" ]) ' +
+'</pre> ' +
+' </div><div class="anexample"> ' +
+' <p> ' +
+' We refer to the example of <a class="section-ref" href="#section-example-two"><span>TBD</span></a>, and specifically to <a href="#prov-a-document2-top">Figure 3</a>. We can see that there is a ' +
+' path from <span class="name">tr:WD-prov-dm-20111215</span> to <span class="name">w3:Consortium</span> and to <span class="name">process:rec-advance</span>. ' +
+' This is expressed as follows. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' tracedTo(tr:WD-prov-dm-20111215, w3:Consortium) ' +
+' tracedTo(tr:WD-prov-dm-20111215, process:rec-advance) ' +
+'</pre> ' +
+' </div><div style="text-align: center;"> ' +
+' <img src="uml/component4.png" alt="bundles" /> Figure 8: Bundle Component ' +
+' Overview ' +
+' </div><div class="attributes" id="attributes-bundle"> ' +
+' A <dfn title="dfn-bundle" id="dfn-bundle-declaration">bundle constructor</dfn> ' +
+' allows the content and the name of a bundle to be specified; it is written ' +
+' <span class="pnExpression">bundle id description_1 ... description_n ' +
+' endBundle</span> and consists of: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="bundle.declaration.id">id</span>: an ' +
+' identifier for the bundle; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="bundle.declaration.descriptions">descriptions</span>: ' +
+' a set of provenance descriptions <span class="name"> description_1</span>, ' +
+' ..., <span class="name">description_n</span>. ' +
+' </li> ' +
+' </ul> ' +
+' <p> ' +
+' A bundle\'s identifier <span class="name">id</span> identifies a unique ' +
+' set of descriptions. ' +
+' </p> ' +
+' </div><div class="anexample" id="anexample-provenance-of-provenance"> ' +
+' <p> ' +
+' Let us consider two entities <span class="name">ex:report1</span> and ' +
+' <span class="name">ex:report2</span>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'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) ' +
+'</pre> ' +
+' <p> ' +
+' Let us assume that Bob observed the creation of <span class="name">ex:report1</span>. ' +
+' A first bundle can be expressed. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'bundle bob:bundle1 ' +
+' entity(ex:report1, [ prov:type="report", ex:version=1 ]) ' +
+' wasGeneratedBy(ex:report1, -, 2012-05-24T10:00:01) ' +
+'endBundle ' +
+'</pre> ' +
+' <p> ' +
+' In contrast, Alice observed the creation of <span class="name">ex:report2</span> ' +
+' and its derivation from <span class="name">ex:report1</span>. A separate ' +
+' bundle can also be expressed. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'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 ' +
+'</pre> ' +
+' <p> ' +
+' The first bundle contains the descriptions corresponding to Bob ' +
+' observing the creation of <span class="name">ex:report1</span>. Its ' +
+' provenance can be described as follows. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(bob:bundle1, [prov:type=\'prov:Bundle\']) ' +
+'wasGeneratedBy(bob:bundle1, -, 2012-05-24T10:30:00) ' +
+'wasAttributedTo(bob:bundle1, ex:Bob) ' +
+'</pre> ' +
+' <p> ' +
+' In contrast, the second bundle is attributed to Alice who observed the ' +
+' derivation of <span class="name">ex:report2</span> from <span class="name">ex:report1</span>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(alice:bundle2, [ prov:type=\'prov:Bundle\' ]) ' +
+'wasGeneratedBy(alice:bundle2, -, 2012-05-25T11:15:00) ' +
+'wasAttributedTo(alice:bundle2, ex:Alice) ' +
+'</pre> ' +
+' </div><div class="anexample" id="anexample-provenance-aggregation"> ' +
+' <p> ' +
+' A provenance aggregator could merge two bundles, resulting in a novel ' +
+' bundle, whose provenance is described as follows. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'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) ' +
+'</pre> ' +
+' <p> ' +
+' The new bundle is given a new identifier <span class="name">agg:bundle3</span> ' +
+' and is attributed to the <span class="name">ex:aggregator01</span> ' +
+' agent. ' +
+' </p> ' +
+' </div><div style="text-align: center;"> ' +
+' <!-- <img src="images/Alternates.png" alt="alternates"/> --> ' +
+' <img src="uml/component5.png" alt="alternates" /> Figure 9: Alternates ' +
+' Component Overview ' +
+' </div><div class="anexample" id="entity-example1"> ' +
+' <p> ' +
+' 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. ' +
+' </p> ' +
+' </div><div class="attributes" id="attributes-specialization"> ' +
+' A <dfn title="specializationOf">specialization</dfn> relation<span class="withPn">, written <span class="pnExpression">specializationOf(infra, ' +
+' supra)</span> in PROV-N,</span> has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="specialization.specificEntity">specificEntity</span>: ' +
+' an identifier (<span class="name">infra</span>) of the specialized ' +
+' entity; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="specialization.generalEntity">generalEntity</span>: ' +
+' an identifier (<span class="name">supra</span>) of the entity that is ' +
+' being specialized. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample" id="anexample-specialization"> ' +
+' <p> ' +
+' The BBC news home page on 2012-03-23 <span class="name">ex:bbcNews2012-03-23</span> ' +
+' is a specialization of the BBC news page in general <a href="http://www.bbc.co.uk/news/">bbc:news/</a>. This can be expressed ' +
+' as follows. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+ 'specializationOf(ex:bbcNews2012-03-23, bbc:news/) ' ;
+
+divs_string= divs+
+'</pre> ' +
+' We have created a new qualified name, <span class="name">ex:bbcNews2012-03-23</span>, ' +
+' in the namespace <span class="name">ex</span>, to identify the specific ' +
+' page carrying this day\'s news, which would otherwise be the generic <span class="name">bbc:news/</span> page. ' +
+' </div><div class="attributes" id="attributes-alternate"> ' +
+' An <dfn title="alternateOf">alternate</dfn> relation<span class="withPn">, ' +
+' written <span class="pnExpression">alternateOf(e1, e2)</span> in PROV-N,</span> ' +
+' has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="alternate.alternate1">alternate1</span>: ' +
+' an identifier (<span class="name">e1</span>) of the first of the two ' +
+' entities; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="alternate.alternate2">alternate2</span>: ' +
+' an identifier (<span class="name">e2</span>) of the second of the two ' +
+' entities. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample" id="anexample-alternate"> ' +
+' <p> ' +
+' A given news item on the BBC News site <a href="http://www.bbc.co.uk/news/science-environment-17526723">bbc:news/science-environment-17526723</a> ' +
+' for desktop is an alternate of a <a href="http://www.bbc.co.uk/news/mobile/science-environment-17526723">bbc:news/mobile/science-environment-17526723</a> ' +
+' for mobile devices. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'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) ' +
+'</pre> ' +
+' </div><div class="anexample" id="anexample-alternate2"> ' +
+' <p> ' +
+' Considering again the two versions of the technical report <span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111215">tr:WD-prov-dm-20111215</a></span> ' +
+' (second working draft) and <span class="name"><span class="name"><a href="http://www.w3.org/TR/2011/WD-prov-dm-20111018">tr:WD-prov-dm-20111018</a></span></span> ' +
+' (first working draft). They are alternate of each other. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(tr:WD-prov-dm-20111018) ' +
+'entity(tr:WD-prov-dm-20111215) ' +
+'alternateOf(tr:WD-prov-dm-20111018,tr:WD-prov-dm-20111215) ' +
+'</pre> ' +
+' <p> ' +
+' They are both specialization of the page <a href="http://www.w3.org/TR/prov-dm/">http://www.w3.org/TR/prov-dm/</a>. ' +
+' </p> ' +
+' </div><div class="attributes" id="attributes-contextualization"> ' +
+' A <dfn title="contextualizationOf">contextualization</dfn> relation<span class="withPn">, written <span class="pnExpression">contextualizationOf(l, ' +
+' e, b)</span> in PROV-N,</span> has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="contextualization.local">local</span>: an ' +
+' identifier (<span class="name">l</span>) for an entity in the local ' +
+' bundle (not explicitly identified) presenting the aspects of <span class="name">e</span> in remote bundle <span class="name">b</span> ; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="contextualization.contextualized">contextualized</span>: ' +
+' an identifier (<span class="name">e</span>) of an entity in some ' +
+' remote bundle <span class="name">b</span>; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="contextualization.context">bundle</span>: ' +
+' an identifier (<span class="name">b</span>) for a remote bundle. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample" id="anexample-contextualization1"> ' +
+' <p> ' +
+' In the following example, two bundles <span class="name">ex:run1</span> ' +
+' and <span class="name">ex:run2</span> refer to an agent <span class="name">ex:Bob</span> that controlled two activities <span class="name">ex:a1</span> and <span class="name">ex:a2</span>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'bundle ex:run1 ' +
+' activity(ex:a1, 2011-11-16T16:00:00,2011-11-16T17:00:00) //duration: 1hour ' +
+' wasAssociatedWith(ex:a1,ex:Bob,[prov:role="controller"]) ' +
+'endBundle ' +
+' ' +
+'bundle ex:run2 ' +
+' activity(ex:a2, 2011-11-17T10:00:00,2011-11-17T17:00:00) //duration: 7hours ' +
+' wasAssociatedWith(ex:a2,ex:Bob,[prov:role="controller"]) ' +
+'endBundle ' +
+'</pre> ' +
+' <p> ' +
+' A performance rating tool reads these bundles, and rates the performance ' +
+' of the agent described in these bundles. The performance rating tool ' +
+' creates a new bundle <span class="name">tool:analysis01</span> ' +
+' containing the following. A new agent <span class="name">tool:Bob-2011-11-16</span> ' +
+' is declared as a contextualization of <span class="name">ex:Bob</span> ' +
+' as described in remote bundle <span class="name">ex:run1</span>, and ' +
+' likewise for <span class="name">tool:Bob-2011-11-17</span> with respect ' +
+' to <span class="name">ex:run2</span>. The tool adds a domain-specific ' +
+' performance attribute to each of these specialized entities as follows: ' +
+' the performance of the agent in the first bundle is judged to be good ' +
+' since the duration of <span class="name">ex:a1</span> is one hour, ' +
+' whereas it is judged to be bad in the second bundle since <span class="name">ex:a2</span>\'s duration is seven hours. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'bundle tool:analysis01 ' +
+' agent(tool:Bob-2011-11-16, [perf:rating="good"]) ' +
+' contextualizationOf(tool:Bob-2011-11-16, ex:Bob, ex:run1) ' +
+' ' +
+' agent(tool:Bob-2011-11-17, [perf:rating="bad"]) ' +
+' contextualizationOf(tool:Bob-2011-11-17, ex:Bob, ex:run2) ' +
+'endBundle ' +
+'</pre> ' +
+' </div><div class="anexample" id="aexample-contextualization-viz"> ' +
+' <p> ' +
+' Consider the following bundle of descriptions, in which derivation and ' +
+' generations have been identified. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'bundle obs:bundle1 ' +
+' entity(ex:report1, [prov:type="report", ex:version=1]) ' +
+' wasGeneratedBy(ex:g1; ex:report1,-,2012-05-24T10:00:01) ' +
+' entity(ex:report2, [prov:type="report", ex:version=2]) ' +
+' wasGeneratedBy(ex:g2; ex:report2,-,2012-05-25T11:00:01) ' +
+' wasDerivedFrom(ex:report2, ex:report1) ' +
+'endBundle ' +
+'entity(obs:bundle1, [ prov:type=\'prov:Bundle\' ]) ' +
+'wasAttributedTo(obs:bundle1, ex:observer01) ' +
+'</pre> ' +
+' Bundle <span class="name">obs:bundle1</span> is rendered by a ' +
+' visualisation tool. It may useful for the tool configuration for this ' +
+' bundle to be shared along with the provenance descriptions, so that other ' +
+' users can render provenance as it was originally rendered. The original ' +
+' bundle obviously cannot be changed. However, one can create a new bundle, ' +
+' as follows. ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'bundle tool:bundle2 ' +
+' entity(tool:bundle2, [ prov:type=\'viz:Configuration\', prov:type=\'prov:Bundle\' ]) ' +
+' wasAttributedTo(tool:bundle2, viz:Visualizer) ' +
+' ' +
+' entity(tool:report1, [viz:color="orange"]) ' +
+' contextualizationOf(tool:report1, obs:bundle1, ex:report1) ' +
+' ' +
+' entity(tool:report2, [viz:color="blue"]) ' +
+' contextualizationOf(tool:report2, obs:bundle1, ex:report2) ' +
+'endBundle ' +
+'</pre> ' +
+' <p> ' +
+' In bundle <span class="name">tool:bundle2</span>, the prefix <span class="name">viz</span> is used for naming visualisation-specific ' +
+' attributes, types or values. ' +
+' </p> ' +
+' <p> ' +
+' Bundle <span class="name">tool:bundle2</span> is given type <span class="name">viz:Configuration</span> to indicate that it consists of ' +
+' descriptions that pertain to the configuration of the visualisation ' +
+' tool. This type attribute can be used for searching bundles containing ' +
+' visualization-related descriptions. ' +
+' </p> ' +
+' <p> ' +
+' The visualisation tool created new identifiers <span class="name">tool:report1</span> ' +
+' and <span class="name">tool:report2</span>. They denote entities which ' +
+' are specializations of <span class="name">ex:report1</span> and <span class="name">ex:report2</span>, described in bundle <span class="name">obs:bundle1</span>, ' +
+' with visualization attribute for the color to be used when rendering ' +
+' these entities. ' +
+' </p> ' +
+' </div><div style="text-align: center;"> ' +
+' <!-- <img src="images/Dictionaries.png" alt="dictionaries"/> --> ' +
+' <img src="uml/component6.png" alt="dictionaries" /> Figure 10: Collections ' +
+' Component Overview ' +
+' </div><div class="anexample"> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(c0, [prov:type=\'prov:EmptyCollection\' ]) // c0 is an empty collection ' +
+'entity(c1, [prov:type=\'prov:Collection\' ]) // c1 is a collection, with unknown content ' +
+'</pre> ' +
+' </div><div class="attributes" id="attributes-memberOf"> ' +
+' A <dfn title="memberOf">membership</dfn> relation, written <span class="pnExpression">memberOf(id; c, {e_1, ..., e_n}, cplt, attrs)</span>, ' +
+' has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="membership.id">id</span>: an OPTIONAL ' +
+' identifier identifying the relation; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="membership.collection">collection</span>: ' +
+' an identifier (<span class="name">c</span>) for the collection whose ' +
+' members are asserted; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="membership.entity-set">entity-set</span>: ' +
+' a set of entities <span class="name">e_1</span>, ..., <span class="name">e_n</span> that are members of the collection; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="membership.complete">complete</span>: an ' +
+' OPTIONAL boolean <a title="value">Value</a> (<span class="name">cplt</span>). ' +
+' It is interpreted as follows: ' +
+' <ul> ' +
+' <li> ' +
+' if it is present and set to true, then c is believed to include ' +
+' all and only the members specified in the entity-set; ' +
+' </li> ' +
+' <li> ' +
+' if it is present and set to false, then c is believed to include ' +
+' more members in addition to those specified in the entity-set; ' +
+' </li> ' +
+' <li> ' +
+' if it is not present, then c is believed to include all the ' +
+' members specified in the entity-set, and it MAY include more. ' +
+' </li> ' +
+' </ul> ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="membership.attributes">attributes</span>: ' +
+' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value ' +
+' pairs representing additional information about this relation. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample"> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(d0, [prov:type=\'prov:EmptyDictionary\' ]) // d0 is an empty dictionary ' +
+'entity(d1, [prov:type=\'prov:Dictionary\' ]) // d1 is a dictionary, with unknown content ' +
+'</pre> ' +
+' </div><div class="attributes" id="attributes-memberOf-d"> ' +
+' A <dfn title="memberOf-d">membership</dfn> relation, written <span class="pnExpression">memberOf(id; c, {(key_1, e_1), ..., (key_n, e_n)}, ' +
+' cplt, attrs)</span>, has: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="membership-d.id">id</span>: an OPTIONAL ' +
+' identifier identifying the relation; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="membership-d.dictionary">dictionary</span>: ' +
+' an identifier (<span class="name">c</span>) for the dictionary whose ' +
+' members are asserted; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="membership-d.key-entity-set">key-entity-set</span>: ' +
+' a set of key-entity pairs <span class="name">(key_1, e_1)</span>, ..., ' +
+' <span class="name">(key_n, e_n)</span> that are members of the ' +
+' dictionary; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="membership-d.complete">complete</span>: an ' +
+' OPTIONAL boolean <a title="value">Value</a> (<span class="name">cplt</span>). ' +
+' It is interpreted as follows: ' +
+' <ul> ' +
+' <li> ' +
+' if it is present and set to true, then c is believed to include ' +
+' all and only the members specified in the key-entity-set; ' +
+' </li> ' +
+' <li> ' +
+' if it is present and set to false, then c is believed to include ' +
+' more members in addition to those specified in the key-entity-set; ' +
+' </li> ' +
+' <li> ' +
+' if it is not present, then c is believed to include all the ' +
+' members specified in the key-entity-set, and it MAY include more. ' +
+' </li> ' +
+' </ul> ' +
+' <!-- if true, it indicates that no other member belongs to the ' +
+' dictionary; if false, it indicates that other members belong to the ' +
+' dictionary; if unspecified, other members MAY belong to the ' +
+' dictionary; --> ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="membership-d.attributes">attributes</span>: ' +
+' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value ' +
+' pairs representing additional information about this relation. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample"> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(d1, [prov:type=\'prov:Dictionary\' ]) // d1 is a dictionary, with unknown content ' +
+'entity(d2, [prov:type=\'prov:Dictionary\' ]) // d2 is a dictionary, with unknown content ' +
+' ' +
+'entity(e1) ' +
+'entity(e2) ' +
+' ' +
+'memberOf(d1, {("k1", e1), ("k2", e2)} ) ' +
+'memberOf(d2, {("k1", e1), ("k2", e2)}, true) ' +
+' ' +
+'</pre> ' +
+' From these descriptions, we conclude: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="name">d1</span> has the following pairs as members: <span class="name">("k1", e1), ("k2", e2)</span>, and may contain others. ' +
+' </li> ' +
+' <li> ' +
+' <span class="name">d2</span> exactly has the following pairs as ' +
+' members: <span class="name">("k1", e1), ("k2", e2)</span>, and does ' +
+' not contain any other. ' +
+' </li> ' +
+' </ul> ' +
+' <p> ' +
+' Thus, the membership of <span class="name">d1</span> is only partially ' +
+' known. ' +
+' </p> ' +
+' </div><div class="attributes" id="attributes-derivedByInsertionFrom"> ' +
+' <p> ' +
+' An <dfn title="derivedByInsertionFrom">Insertion</dfn> relation<span class="withPn">, written <span class="pnExpression">derivedByInsertionFrom(id; ' +
+' d2, d1, {(key_1, e_1), ..., (key_n, e_n)}, attrs)</span>,</span> has: ' +
+' </p> ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="insertion.id">id</span>: an OPTIONAL ' +
+' identifier identifying the relation; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="insertion.after">after</span>: an ' +
+' identifier (<span class="name">d2</span>) for the dictionary <em>after</em> ' +
+' insertion; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="insertion.before">before</span>: an ' +
+' identifier (<span class="name">d1</span>) for the dictionary <em>before</em> ' +
+' insertion; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="insertion.key-entity-set">key-entity-set</span>: ' +
+' the inserted key-entity pairs <span class="name">(key_1, e_1)</span>, ' +
+' ..., <span class="name">(key_n, e_n)</span> in which each <span class="name">key_i</span> is a <a>value</a>, and <span class="name">e_i</span> ' +
+' is an identifier for the entity that has been inserted with the key; ' +
+' each <span class="name">key_i</span> is expected to be unique for the ' +
+' key-entity-set; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="insertion.attributes">attributes</span>: ' +
+' an OPTIONAL set (<span class="name">attrs</span>) of attribute-value ' +
+' pairs representing additional information about this relation. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample"> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(d0, [prov:type=\'prov:EmptyDictionary\' ]) // d0 is an empty dictionary ' +
+'entity(e1) ' +
+'entity(e2) ' +
+'entity(e3) ' +
+'entity(d1, [prov:type=\'prov:Dictionary\' ]) ' +
+'entity(d2, [prov:type=\'prov:Dictionary\' ]) ' +
+' ' +
+'derivedByInsertionFrom(d1, d0, {("k1", e1), ("k2", e2)}) ' +
+'derivedByInsertionFrom(d2, d1, {("k3", e3)}) ' +
+'</pre> ' +
+' From this set of descriptions, we conclude: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="name">d0</span> is the set <span class="name">{ }</span> ' +
+' </li> ' +
+' <li> ' +
+' <span class="name">d1</span> is the set <span class="name">{ ("k1", ' +
+' e1), ("k2", e2) }</span> ' +
+' </li> ' +
+' <li> ' +
+' <span class="name">d2</span> is the set <span class="name">{ ("k1", ' +
+' e1), ("k2", e2), ("k3", e3) }</span> ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample"> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(d0, [prov:type=\'prov:EmptyDictionary\' ]) // d0 is an empty dictionary ' +
+'entity(e1) ' +
+'entity(e2) ' +
+'entity(e3) ' +
+'entity(d1, [prov:type=\'prov:Dictionary\' ]) ' +
+'entity(d2, [prov:type=\'prov:Dictionary\' ]) ' +
+' ' +
+'derivedByInsertionFrom(d1, d0, {("k1", e1), ("k2", e2)}) ' +
+'derivedByInsertionFrom(d2, d1, {("k1", e3)}) ' +
+'</pre> ' +
+' This is a case of <em>update</em> of <span class="name">e1</span> to <span class="name">e3</span> for the same key, <span class="name">"k1"</span>. ' +
+' <br /> From this set of descriptions, we conclude: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="name">d0</span> is the set <span class="name">{ }</span> ' +
+' </li> ' +
+' <li> ' +
+' <span class="name">d1</span> is the set <span class="name">{ ("k1", ' +
+' e1), ("k2", e2) }</span> ' +
+' </li> ' +
+' <li> ' +
+' <span class="name">d2</span> is the set <span class="name">{ ("k1", ' +
+' e3), ("k2", e2) }</span> ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="attributes" id="attributes-derivedByRemovalFrom"> ' +
+' <p> ' +
+' A <dfn title="derivedByRemovalFrom">Removal</dfn> relation, written ' +
+' <span class="pnExpression">derivedByRemovalFrom(id; d2, d1, {key_1, ... ' +
+' key_n}, attrs)</span>, has: ' +
+' </p> ' +
+' <ul> ' +
+' <li> ' +
+' <span class="attribute" id="removal.id">id</span>: an OPTIONAL ' +
+' identifier identifying the relation; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="removal.after">after</span>: an identifier ' +
+' (<span class="name">d2</span>) for the dictionary <em>after</em> the ' +
+' deletion; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="removal.before">before</span>: an ' +
+' identifier (<span class="name">d1</span>) for the dictionary <em>before</em> ' +
+' the deletion; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="removal.key-set">key-set</span>: a set of ' +
+' deleted keys <span class="name">key_1</span>, ..., <span class="name">key_n</span>, ' +
+' for which each <span class="name">key_i</span> is a <a>value</a>; ' +
+' </li> ' +
+' <li> ' +
+' <span class="attribute" id="removal.attributes">attributes</span>: an ' +
+' OPTIONAL set (<span class="name">attrs</span>) of attribute-value ' +
+' pairs representing additional information about this relation. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="anexample"> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(d0, [prov:type="prov:EmptyDictionary"]) // d0 is an empty dictionary ' +
+'entity(e1) ' +
+'entity(e2) ' +
+'entity(e3) ' +
+'entity(d1, [prov:type="prov:Dictionary"]) ' +
+'entity(d2, [prov:type="prov:Dictionary"]) ' +
+' ' +
+'derivedByInsertionFrom(d1, d0, {("k1", e1), ("k2",e2)}) ' +
+'derivedByInsertionFrom(d2, d1, {("k3", e3)}) ' +
+'derivedByRemovalFrom(d3, d2, {"k1", "k3"}) ' +
+'</pre> ' +
+' From this set of descriptions, we conclude: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="name">d0</span> is the set <span class="name">{ }</span> ' +
+' </li> ' +
+' <li> ' +
+' <span class="name">d1</span> is the set <span class="name">{ ("k1", ' +
+' e1), ("k2", e2) }</span> ' +
+' </li> ' +
+' <li> ' +
+' <span class="name">d2</span> is the set <span class="name">{ ("k1", ' +
+' e1), ("k2", e2), ("k3", e3) }</span> ' +
+' </li> ' +
+' <li> ' +
+' <span class="name">d3</span> is the set <span class="name">{ ("k2", ' +
+' e2) }</span> ' +
+' </li> ' +
+' </ul> ' +
+' </div><div id="attributes-at-a-glance-div" style="text-align: left;"> ' +
+' <table class="thinborder" style="margin-left: auto; margin-right: auto;"> ' +
+' <caption id="attributes-at-a-glance"> ' +
+' Table 6: PROV-DM Attributes At a Glance ' +
+' </caption> ' +
+' <tr> ' +
+' <td> ' +
+' <b>Attribute</b> ' +
+' </td> ' +
+' <td> ' +
+' <b>Allowed In</b> ' +
+' </td> ' +
+' <td> ' +
+' <b>value</b> ' +
+' </td> ' +
+' <td> ' +
+' <b>Section</b> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' <td style="border-width: 0px; " /> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a title="label">prov:label</a> ' +
+' </td> ' +
+' <td> ' +
+' <em>any construct</em> ' +
+' </td> ' +
+' <td> ' +
+' A <a>Value</a> of type <a class="section-ref" href="http://www.w3.org/TR/xmlschema11-2/#string">xsd:string</a> ' +
+' </td> ' +
+' <td> ' +
+' <a class="section-ref" href="#term-attribute-label"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a title="location">prov:location</a> ' +
+' </td> ' +
+' <td> ' +
+' <a>Entity</a>, <a>Activity</a>, <a>Usage</a>, and <a>Generation</a>. ' +
+' </td> ' +
+' <td> ' +
+' A <a title="value">Value</a> ' +
+' </td> ' +
+' <td> ' +
+' <a class="section-ref" href="#term-attribute-location"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a title="role">prov:role</a> ' +
+' </td> ' +
+' <td> ' +
+' <a>Usage</a>, <a>Generation</a>, <a>Invalidation</a>, <a>Association</a>, ' +
+' <a>Start</a>, and <a>End</a> ' +
+' </td> ' +
+' <td> ' +
+' A <a title="value">Value</a> ' +
+' </td> ' +
+' <td> ' +
+' <a class="section-ref" href="#term-attribute-role"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a title="type">prov:type</a> ' +
+' </td> ' +
+' <td> ' +
+' <em>any construct</em> ' +
+' </td> ' +
+' <td> ' +
+' A <a title="value">Value</a> ' +
+' </td> ' +
+' <td> ' +
+' <a class="section-ref" href="#term-attribute-type"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' <tr> ' +
+' <td> ' +
+' <a title="value-attribute">prov:value</a> ' +
+' </td> ' +
+' <td> ' +
+' <a>Entity</a> ' +
+' </td> ' +
+' <td> ' +
+' A <a title="value">Value</a> ' +
+' </td> ' +
+' <td> ' +
+' <a class="section-ref" href="#term-attribute-value"><span>TBD</span></a> ' +
+' </td> ' +
+' </tr> ' +
+' </table> ' +
+' </div><div class="anexample"> ' +
+' <p> ' +
+' The following entity is provided with a label attribute. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' entity(ex:e1, [ prov:label="This is a human-readable label" ]) ' +
+'</pre> ' +
+' </div><div class="anexample" id="example-location"> ' +
+' <p> ' +
+' The following expression describes entity Mona Lisa, a painting, with a ' +
+' location attribute. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' entity(ex:MonaLisa, [ prov:location="Le Louvres, Paris", prov:type="StillImage" ]) ' +
+'</pre> ' +
+' <p> ' +
+' The following expression describes a cell, at coordinates (5,5), with ' +
+' value 10. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' entity(ex:cell, [ prov:location="(5,5)", prov:value="10" %% xsd:integer ]) ' +
+'</pre> ' +
+' </div><div class="anexample" id="anexample-role"> ' +
+' <p> ' +
+' The following activity is associated with an agent acting as the ' +
+' operator. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' wasAssociatedWith(a, ag, [ prov:role="operator" ]) ' +
+'</pre> ' +
+' <p> ' +
+' In the following expression, the activity <span class="name">ex:div01</span> ' +
+' used entity <span class="name">ex:cell</span> in the role of divisor. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'used(ex:div01, ex:cell, [ prov:role="divisor" ]) ' +
+'</pre> ' +
+' </div><div class="anexample"> ' +
+' <p> ' +
+' The following describes an agent of type software agent. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' agent(ag, [ prov:type=\'prov:SoftwareAgent\' ]) ' +
+'</pre> ' +
+' </div><div class="anexample"> ' +
+' <p> ' +
+' The following example illustrates the provenance of the number <span class="name">4</span> obtained by an activity that computed the length ' +
+' of an input string <span class="name">"abcd"</span>. The input and the ' +
+' output are expressed as entities <span class="name">ex:in</span> and ' +
+' <span class="name">ex:out</span>, respectively. They each have a <span class="name">prov:value</span> attribute associated with the ' +
+' corresponding value. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'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) ' +
+'</pre> ' +
+' </div><div class="note"> ' +
+' Should we also have prov:encoding? ' +
+' </div><div class="anexample" id="anexample-value"> ' +
+' <p> ' +
+' The following examples respectively are the string "abc", the integer ' +
+' number 1, and the IRI "http://example.org/foo". ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' "abc" ' +
+' "1" %% xsd:integer ' +
+' "http://example.org/foo" %% xsd:anyURI ' +
+'</pre> ' +
+' <p> ' +
+' The following example shows a value of type <span class="name">prov:QUALIFIED_NAME</span> ' +
+' (see <span class="name"><a href="http://www.w3.org/TR/prov-n/#prod-QUALIFIED_NAME">prov:QUALIFIED_NAME</a></span> ' +
+' [[PROV-N]]). The prefix <span class="name">ex</span> MUST be bound to a ' +
+' <a>namespace</a> declared in a <a>namespace declaration</a>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' "ex:value" %% prov:QUALIFIED_NAME ' +
+'</pre> ' +
+' Alternatively, the same value can be expressed using the following ' +
+' convenience notation. ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' \'ex:value\' ' +
+'</pre> ' +
+' </div><div class="anexample" id="anexample-time"> ' +
+' <p> ' +
+' In the following example, the generation time of entity <span class="name">e1</span> is expressed according to <a href="http://www.w3.org/TR/xmlschema11-2/#dateTime">xsd:dateTime</a> ' +
+' [[!XMLSCHEMA11-2]]. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' wasGeneratedBy(e1,a1, 2001-10-26T21:32:52) ' +
+'</pre> ' +
+' </div><div class="anexample" id="anexample-sub-relation"> ' +
+' <p> ' +
+' In the following example, <span class="name">e2</span> is a ' +
+' translation of <span class="name">e1</span>, expressed as a sub-type ' +
+' of derivation. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' wasDerivedFrom(e2,e1, [prov:type=\'ex:Translation\' ]) ' +
+'</pre> ' +
+' </div><div class="anexample" id="anexample-sub-type"> ' +
+' <p> ' +
+' In the following example, <span class="name">e</span> is described ' +
+' as a Car, a type of entity. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' entity(e, [prov:type=\'ex:Car\' ]) ' +
+'</pre> ' +
+' </div><div class="anexample" id="anexample-usage-with-role"> ' +
+' <p> ' +
+' In the following example, two computers <span class="name">ex:laptop4</span> ' +
+' and <span class="name">ex:desktop9</span> are used in different ' +
+' roles in a work activity. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' 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"]) ' +
+'</pre> ' +
+' </div><div id="glossary_div" class="remove"> ' +
+' <!-- glossary loaded from glossary.js will be hooked up here, class ' +
+' remove, will remove this element from the final output. --> ' +
+' </div><div class="note"> ' +
+' TODO: Add collection and account constraint sections to the compliance ' +
+' list as appropriate. ' +
+' </div><div class="note"> ' +
+' Should we specify a way for PROV instances to say whether they are meant ' +
+' to be validated or not? Seems outside the scope of this document, may ' +
+' require changes to PROV-N. ' +
+' </div><div class="note"> ' +
+' Table: work in progress. Done up to constraint 25. ' +
+' </div><div class="inference" id="inference-example"> ' +
+' <p> ' +
+' <span class="conditional">IF</span> <span class="name">hyp_1</span> and ' +
+' ... and <span class="name">hyp_k</span> <span class="conditional">THEN</span> ' +
+' there exists <span class="name">a_1</span> and ... and <span class="name">a_m</span> ' +
+' such that <span class="name">conclusion_1</span> and ... and <span class="name">conclusion_n</span>. ' +
+' </p> ' +
+' </div><div class="note"> ' +
+' TODO: Is this re-inventing blank nodes in PROV-DM, and do we want to do ' +
+' this? A lot of the inferences have existentially quantified conclusions ' +
+' (and there is some theory that supports this). TODO: Make sure conjunctive ' +
+' reading of conclusion is clear. ' +
+' </div><div class="definition" id="definition-example"> ' +
+' <p> ' +
+' <span class="name">defined_exp</span> holds <span class="conditional">IF ' +
+' AND ONLY IF </span> there exists <span class="name">a_1</span>,..., ' +
+' <span class="name">a_m</span> such that <span class="name">defining_exp_1</span> ' +
+' and ... and <span class="name">defining_exp_n</span>. ' +
+' </p> ' +
+' </div><div class="definition" id="wasInformedBy-definition"> ' +
+' <p> ' +
+' Given two activities identified by <span class="name">a1</span> and ' +
+' <span class="name">a2</span>, <span class="name">wasInformedBy(-;a2,a1)</span> ' +
+' holds <span class="conditional">IF AND ONLY IF</span> there is an entity ' +
+' with some identifier <span class="name">e</span>, such that <span class="name">wasGeneratedBy(-;e,a1,-,)</span> and <span class="name">used(-;a2,e,-)</span> ' +
+' hold. ' +
+' </p> ' +
+' </div><div class="definition" id="wasStartedBy-definition"> ' +
+' <p> ' +
+' Given two activities with identifiers <span class="name">a1</span> and ' +
+' <span class="name">a2</span>, <span class="name">wasStartedBy(-;a2,e,a1,-)</span> ' +
+' holds <span class="conditional">IF AND ONLY IF</span> <span class="name">wasGeneratedBy(-;e,a1,-,-)</span> ' +
+' and <span class="name">wasStartedBy(-;a2,e,-,-)</span> hold. ' +
+' </p> ' +
+' </div><div class="definition" id="wasEndedBy-definition"> ' +
+' <p> ' +
+' Given two activities with identifiers <span class="name">a1</span> and ' +
+' <span class="name">a2</span>, <span class="name">wasEndedBy(-;a2,e,a1,-)</span> ' +
+' holds <span class="conditional">IF AND ONLY IF</span> <span class="name">wasGeneratedBy(-;e,a1,-,-)</span> ' +
+' and <span class="name">wasEndedBy(-;a2,e,-,-)</span> hold. ' +
+' </p> ' +
+' </div><div class="inference" id="derivation-use"> ' +
+' <p> ' +
+' Given an activity <span class="name">a</span>, entities denoted by <span class="name">e1</span> and <span class="name">e2</span>, <span class="conditional">IF</span> <span class="name">wasDerivedFrom(-;e2,e1, ' +
+' a, -, -)</span> and <span class="name">wasGeneratedBy(-;e2,a,-)</span> ' +
+' hold, <span class="conditional">THEN</span> <span class="name">used(-;a,e1,-)</span> ' +
+' also holds. ' +
+' </p> ' +
+' </div><div class="note"> ' +
+' There is some redundancy in the following discussion. ' +
+' </div><div class="inference" id="revision-is-alternate"> ' +
+' Given two identifiers <span class="name">e1</span> and <span class="name">e2</span> ' +
+' identifying two entities, <span class="conditional">IF</span> <span class="name">wasDerivedFrom(-,e2,e1,[prov:type="prov:WasRevisionOf"])</span> ' +
+' holds, <span class="conditional">THEN</span> the following holds: ' +
+'<pre xml:space="preserve"> ' +
+'alternateOf(e2,e1) ' +
+'</pre> ' +
+' </div><div class="inference" id="inference-attribution"> ' +
+' <p> ' +
+' <span class="conditional">IF</span> <span class="name">wasAttributedTo(-;e,ag)</span> ' +
+' holds for some identifiers <span class="name">e</span> and <span class="name">ag</span>, <span class="conditional">THEN</span> there ' +
+' exists an activity with some identifier <span class="name">a</span> such ' +
+' that the following statements hold: ' +
+' </p> ' +
+'<pre xml:space="preserve"> ' +
+'activity(a, -, -) ' +
+'wasGeneratedBy(-; e, a, -) ' +
+'wasAssociatedWith(-; a, ag, -) ' +
+'</pre> ' +
+' </div><div class="note"> ' +
+' @@TODO: Could this be an inference? Does it imply that a1 is associated ' +
+' with all activities a2 is associated with? ' +
+' </div><div class="inference" id="inference-trace"> ' +
+' <p> ' +
+' Given two identifiers <span class="name">e2</span> and <span class="name">e1</span> ' +
+' for entities, the following statements hold: ' +
+' </p> ' +
+' <ol> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasDerivedFrom(e2,e1,a,g2,u1)</span> ' +
+' holds, for some <span class="name">a</span>, <span class="name">g2</span>, ' +
+' <span class="name">u1</span>, <span class="conditional">THEN</span> ' +
+' <span class="name">tracedTo(e2,e1)</span> also holds. ' +
+' </li> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasDerivedFrom(e2,e1)</span> ' +
+' holds, <span class="conditional">THEN</span> <span class="name">tracedTo(e2,e1)</span> ' +
+' also holds. ' +
+' </li> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasAttributedTo(e2,ag1,aAttr)</span> ' +
+' holds, <span class="conditional">THEN</span> <span class="name">tracedTo(e2,ag1)</span> ' +
+' also holds. ' +
+' </li> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasAttributedTo(e2,ag2,aAttr)</span>, ' +
+' <span class="name">wasGeneratedBy(-;e2,a,-,gAttr)</span>, and <span class="name">actedOnBehalfOf(ag2,ag1,a,rAttr)</span> hold, for some ' +
+' <span class="name">a</span>, <span class="name">ag2</span>, <span class="name">ag1</span>, <span class="name">aAttr</span>, <span class="name">gAttr</span>, and <span class="name">rAttr</span>, <span class="conditional">THEN</span> <span class="name">tracedTo(e2,ag1)</span> ' +
+' also holds. ' +
+' </li> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasGeneratedBy(e2,a,gAttr)</span> ' +
+' and <span class="name">wasStartedBy(a,e1,sAttr)</span> hold, for some ' +
+' <span class="name">a</span>, <span class="name">gAttr</span> , <span class="name">sAttr</span> then <span class="name">tracedTo(e2,e1)</span> ' +
+' holds. ' +
+' </li> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">tracedTo(e2,e)</span> ' +
+' and <span class="name">tracedTo(e,e1)</span> hold for some <span class="name">e</span>, <span class="conditional">THEN</span> <span class="name">tracedTo(e2,e1)</span> also holds. ' +
+' </li> ' +
+' </ol> ' +
+' </div><div class="note"> ' +
+' TODO: There is currently no consensus what inferences on alternate or ' +
+' specialization should be assumed. The following section lists possible ' +
+' inferences that may or may not be adopted. Section is under review, ' +
+' pending ISSUE-29. ' +
+' </div><div class="inference" id="alternate-reflexive"> ' +
+' <p> ' +
+' For any entity <span class="name">e</span>, we have <span class="name">alternateOf(e,e)</span>. ' +
+' </p> ' +
+' </div><div class="inference" id="alternate-transitive"> ' +
+' <p> ' +
+' For any entities <span class="name">e1</span>, <span class="name">e2</span>, ' +
+' <span class="name">e3</span>, <span class="conditional">IF</span> <span class="name">alternateOf(e1,e2)</span> and <span class="name">alternateOf(e2,e3)</span> ' +
+' <span class="conditional">THEN</span> <span class="name">alternateOf(e1,e3)</span>. ' +
+' </p> ' +
+' </div><div class="inference" id="alternate-symmetric"> ' +
+' <p> ' +
+' For any entity <span class="name">e1</span>, <span class="name">e2</span>, ' +
+' <span class="conditional">IF</span> <span class="name">alternateOf(e1,e2)</span> ' +
+' <span class="conditional">THEN</span> <span class="name">alternateOf(e2,e1)</span>. ' +
+' </p> ' +
+' </div><div class="inference" id="specialization-irreflexive"> ' +
+' <p> ' +
+' For any entity <span class="name">e</span>, it is not the case that have ' +
+' <span class="name">specializationOf(e,e)</span>. ' +
+' </p> ' +
+' </div><div class="inference" id="specialization-antisymmetric"> ' +
+' <p> ' +
+' For any entities <span class="name">e1</span>, <span class="name">e2</span>, ' +
+' it is not the case that <span class="name">specializationOf(e1,e2)</span> ' +
+' and <span class="name">specializationOf(e2,e1)</span>. ' +
+' </p> ' +
+' </div><div class="inference" id="specialization-transitive"> ' +
+' <p> ' +
+' For any entities <span class="name">e1</span>, <span class="name">e2</span>, ' +
+' <span class="name">e3</span>, <span class="conditional">IF</span> <span class="name">specializationOf(e1,e2)</span> and <span class="name">specializationOf(e2,e3)</span> ' +
+' <span class="conditional">THEN</span> <span class="name">specializationOf(e1,e3)</span>. ' +
+' </p> ' +
+' </div><div class="inference" id="specialization-alternate"> ' +
+' <p> ' +
+' For any entities <span class="name">e1</span>, <span class="name">e2</span>, ' +
+' <span class="conditional">IF</span> <span class="name">specializationOf(e1,e2)</span> ' +
+' <span class="conditional">THEN</span> <span class="name">alternateOf(e1,e2)</span>. ' +
+' </p> ' +
+' </div><div class="constraint" id="functional-contextualization"> ' +
+' <p> ' +
+' Given an entity denoted by <span class="name">e</span>, two entities ' +
+' denoted by <span class="name">e1</span> and <span class="name">e2</span>, ' +
+' and two bundles denoted by <span class="name">b1</span> and <span class="name">b2</span>, <span class="conditional">IF</span> <span class="name">contentualizationOf(e, e1, b1)</span> and <span class="name">contentualizationOf(e, ' +
+' e2, b2)</span> exist, <span class="conditional">THEN</span> <span class="name">e1</span>=<span class="name">e2</span> and <span class="name">b1</span>=<span class="name">b2</span>. ' +
+' </p> ' +
+' </div><div class="inference" id="contextualization-specialization"> ' +
+' <p> ' +
+' For any entities <span class="name">e1</span>, <span class="name">e2</span>, ' +
+' <span class="conditional">IF</span> <span class="name">contextualizationOf(e2,e1,b)</span> ' +
+' <span class="conditional">THEN</span> <span class="name">specializationOf(e2,e1)</span>. ' +
+' </p> ' +
+' </div><div class="note"> ' +
+' TODO: Possible inferences about attributes, generation, invalidation? ' +
+' </div><div class="note"> ' +
+' The following sections are retained from an older version, and are not ' +
+' consistent with the above constraints. This will be revised once the ' +
+' consensus on ISSUE-29 is clearer. ' +
+' </div><div class="anexample" id="anexample-not-symmetric"> ' +
+' "Alice\'s toyota car on fifth Avenue" is a specialization of "Alice\'s ' +
+' toyota car", but the converse does not hold. ' +
+' </div><div class="anexample" id="anexample-specialization-not-anti-symmetric"> ' +
+' anti-symmetric counter-example??? ' +
+' </div><div class="anexample" id="anexample-specialization-is-transitive"> ' +
+' A specialization of "this email message" would be, for example, the ' +
+' "printed version on my desk", which is a specialization of "my thoughts on ' +
+' this email thread". So, the "printed version on my desk" is also a ' +
+' specialization "my thoughts on this email thread". ' +
+' </div><div class="anexample" id="anexample-alternate-not-transitive1"> ' +
+' <p> ' +
+' At 6pm, the customer in a chair is a woman in a red dress, who happens ' +
+' to be Alice. After she leaves, another customer arrives at 7pm, a man ' +
+' with glasses, who happens to be Bob. Transitivity does not hold since ' +
+' the <span class="name">womanInRedDress\</span> is not alternate of <span class="name">customerInChairAt7pm</span>. ' +
+' </p> ' +
+'<pre xml:space="preserve"> ' +
+'alternate(womanInRedDress,customerInChairAt6pm) ' +
+'specialization(customerInChairAt6pm,Alice) ' +
+'specialization(womanInRedDress,Alice) ' +
+' ' +
+'alternate(manWithGlasses,customerInChairAt7pm) ' +
+'specialization(customerInChairAt7pm,Bob) ' +
+'specialization(manWithGlasses,Bob) ' +
+' ' +
+'alternate(customerInChairAt6pm, customerInChairAt7pm) ' +
+'specialization(customerInChairAt6pm, customerInChair) ' +
+'specialization(customerInChairAt7pm, customerInChair) ' +
+'</pre> ' +
+' </div><div class="anexample"> ' +
+' Two copies of the same book, where copy A was destroyed before copy B was ' +
+' made. ' +
+' </div><div class="note"> ' +
+' TODO: Clarify how optional attributes are handled; clarify merging. The ' +
+' following is not very explicit about the difference between "not present" ' +
+' and "omitted but inferred". ' +
+' </div><div class="note"> ' +
+' We should check that normal forms exist, i.e. that applying rules and ' +
+' definitions eventually terminates. More clarity is needed about enforcing ' +
+' uniqueness via merging vs. constraint checking. ' +
+' </div><div class="note"> ' +
+' TODO: More about what it means for constraints to be satisfied; constraint ' +
+' template(s) ' +
+' </div><div class="note"> ' +
+' Attribute uniqueness constraints? ' +
+' </div><div class="constraint" id="unique-entity"> ' +
+' <p> ' +
+' Given an entity identifier <span class="name">e</span>, there is at most ' +
+' one expression <span class="name">entity(e,attrs)</span>, where <span class="name">attrs</span> is some set of attribute-values. ' +
+' </p> ' +
+' </div><div class="constraint" id="unique-activity"> ' +
+' <p> ' +
+' Given an activity identifier <span class="name">a</span>, there is at ' +
+' most one expression <span class="name">activity(a,t1,t2,attrs)</span>, ' +
+' where <span class="name">attrs</span> is some set of attribute-values. ' +
+' </p> ' +
+' </div><div class="note"> ' +
+' TODO: Same goes for all other objects: agent, note, generation, usage, ' +
+' invalidation, start, end, communication, start by, attribution, ' +
+' association, delegation, derivation, revision, quotation. We should find a ' +
+' way of saying this once concisely. ' +
+' </div><div class="constraint" id="unique-generation"> ' +
+' <p> ' +
+' Given an entity denoted by <span class="name">e</span>, two activities ' +
+' denoted by <span class="name">a1</span> and <span class="name">a2</span>, ' +
+' two time instants <span class="name">t1</span> and <span class="name">t2</span>, ' +
+' and two sets of attribute-value pairs <span class="name">attrs1</span> ' +
+' and <span class="name">attrs2</span>, <span class="conditional">IF</span> ' +
+' <span class="name">wasGeneratedBy(id1; e, a1, t1, attrs1)</span> and ' +
+' <span class="name">wasGeneratedBy(id2; e, a2, t2, attrs2)</span> exist, ' +
+' <span class="conditional">THEN</span> <span class="name">id1</span>=<span class="name">id2</span>, <span class="name">a1</span>=<span class="name">a2</span>, ' +
+' <span class="name">t1</span>=<span class="name">t2</span> and <span class="name">attrs1</span>=<span class="name">attrs2</span>. ' +
+' </p> ' +
+' </div><div class="note"> ' +
+' Wouldn\'t the above constraint violate uniqueness? ' +
+' </div><div class="note"> ' +
+' Invalidation uniqueness? ' +
+' </div><div class="note"> ' +
+' Seems redundant given unique-generation ' +
+' </div><div class="constraint" id="unique-generation-time"> ' +
+' <p> ' +
+' Given an entity denoted by <span class="name">e</span> and two time ' +
+' instants <span class="name">t1</span> and <span class="name">t2</span>, ' +
+' <span class="conditional">IF</span> <span class="name">wasGeneratedBy(-;e, ' +
+' -, t1)</span> and <span class="name">wasGeneratedBy(-;e, -, t2)</span> ' +
+' hold, <span class="conditional">THEN</span> <span class="name">t1</span>=<span class="name">t2</span>. ' +
+' </p> ' +
+' </div><div class="constraint" id="unique-invalidation-time"> ' +
+' <p> ' +
+' Given an entity denoted by <span class="name">e</span> and two time ' +
+' instants <span class="name">t1</span> and <span class="name">t2</span>, ' +
+' <span class="conditional">IF</span> <span class="name">wasInvalidatedBy(-;e, ' +
+' -, t1)</span> and <span class="name">wasInvalidatedBy(-;e, -, t2)</span> ' +
+' hold, <span class="conditional">THEN</span> <span class="name">t1</span>=<span class="name">t2</span>. ' +
+' </p> ' +
+' </div><div class="constraint" id="unique-startTime"> ' +
+' <p> ' +
+' <span class="conditional">IF</span> <span class="name">activity(a,t1,t2)</span> ' +
+' and <span class="name">wasStartedBy(id;a,-,-,t)</span>, <span class="conditional">THEN</span> <span class="name">t</span>=<span class="name">t1</span>. ' +
+' </p> ' +
+' </div><div class="constraint" id="unique-endTime"> ' +
+' <p> ' +
+' <span class="conditional">IF</span> <span class="name">activity(a,t1,t2)</span> ' +
+' and <span class="name">wasEndedBy(id;a,-,-,t)</span>, <span class="conditional">THEN</span> <span class="name">t</span> = <span class="name">t2</span>. ' +
+' </p> ' +
+' </div><div class="note"> ' +
+' Do we want to allow an event to "precede" itself? Perhaps precedes should ' +
+' be strict. ' +
+' </div><div class="note"> ' +
+' The following discussion is unclear: what is being said here, and why? ' +
+' </div><div class="constraint" id="start-precedes-end"> ' +
+' <p> ' +
+' <span class="conditional">IF</span> <span class="name">wasStartedBy(start;a,-,-,-)</span> ' +
+' and <span class="name">wasEndedBy(end;a,-,-,-)</span> <span class="conditional">THEN</span> <span class="name">start</span> <a>precedes</a> ' +
+' <span class="name">end</span>. ' +
+' </p> ' +
+' </div><div class="constraint" id="usage-within-activity"> ' +
+' <ol> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">used(use;a,e,-)</span> ' +
+' and <span class="name">wasStartedBy(start;a,-,-,-)</span> <span class="conditional">THEN</span> <span class="name">start</span> <a>precedes</a> ' +
+' <span class="name">use</span>. ' +
+' </li> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">used(use;a,e,-)</span> ' +
+' and <span class="name">wasEndedBy(end;a,-,-,-)</span> <span class="conditional">THEN</span> <span class="name">use</span> <a>precedes</a> ' +
+' <span class="name">end</span>. ' +
+' </li> ' +
+' </ol> ' +
+' </div><div class="constraint" id="generation-within-activity"> ' +
+' <ol> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasGeneratedBy(gen;a,e,-)</span> ' +
+' and <span class="name">wasStartedBy(start;a,-,-,-)</span> <span class="conditional">THEN</span> <span class="name">start</span> <a>precedes</a> ' +
+' <span class="name">gen</span>. ' +
+' </li> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasGeneratedBy(gen;a,e,-)</span> ' +
+' and <span class="name">wasEndedBy(end;a,-,-,-)</span> <span class="conditional">THEN</span> <span class="name">gen</span> <a>precedes</a> ' +
+' <span class="name">end</span>. ' +
+' </li> ' +
+' </ol> ' +
+' </div><div class="constraint" id="wasInformedBy-ordering"> ' +
+' <span class="conditional">IF</span> <span class="name">wasInformedBy(-;a2,a1)</span> ' +
+' and <span class="name">wasStartedBy(start;a1,-,-,-)</span> and <span class="name">wasEndedBy(end;a2,-,-,-)</span> <span class="conditional">THEN</span> ' +
+' <span class="name">start</span> <a>precedes</a> <span class="name">end</span>. ' +
+' </div><div class="constraint" id="wasStartedByActivity-ordering"> ' +
+' <span class="conditional">IF</span> <span class="name">wasStartedBy(start2;a2,-,a1,-)</span> ' +
+' and <span class="name">wasStartedBy(start1;a1,-,-,-)</span> <span class="conditional">THEN</span> <span class="name">start1</span> <a>precedes</a> ' +
+' <span class="name">start2</span>. ' +
+' </div><div class="constraint" id="generation-precedes-invalidation"> ' +
+' <p> ' +
+' <span class="conditional">IF</span> <span class="name">wasGeneratedBy(gen;e,-,-)</span> ' +
+' and <span class="name">wasInvalidatedBy(inv;e,-,-)</span> <span class="conditional">THEN</span> <span class="name">gen</span> <a>precedes</a> ' +
+' <span class="name">inv</span>. ' +
+' </p> ' +
+' </div><div class="constraint" id="generation-precedes-usage"> ' +
+' <span class="conditional">IF</span> <span class="name">wasGeneratedBy(gen;e,-,-)</span> ' +
+' and <span class="name">used(use;-,e,-)</span> <span class="conditional">THEN</span> ' +
+' <span class="name">gen</span> <a>precedes</a> <span class="name">use</span>. ' +
+' </div><div class="constraint" id="usage-precedes-invalidation"> ' +
+' <p> ' +
+' <span class="conditional">IF</span> <span class="name">used(use;-,e,-)</span> ' +
+' and <span class="name">wasInvalidatedBy(inv;e,-,-)</span> <span class="conditional">THEN</span> <span class="name">use</span> <a>precedes</a> ' +
+' <span class="name">inv</span>. ' +
+' </p> ' +
+' </div><div class="constraint" id="derivation-usage-generation-ordering"> ' +
+' <p> ' +
+' <span class="conditional">IF</span> <span class="name">wasDerivedFrom(d;e2,e1,a,g2,u1)</span> ' +
+' <span class="conditional">THEN</span> <span class="name">u1</span> <a>precedes</a> ' +
+' <span class="name">g2</span>. ' +
+' </p> ' +
+' </div><div class="constraint" id="derivation-generation-generation-ordering"> ' +
+' <p> ' +
+' <span class="conditional">IF</span> <span class="name">wasDerivedFrom(-;e2,e1,attrs)</span> ' +
+' and <span class="name">wasGeneratedBy(gen1;e1,-,-)</span> and <span class="name">wasGeneratedBy(gen2;e2,-,-)</span> <span class="conditional">THEN</span> ' +
+' <span class="name">gen1</span> <a>precedes</a> <span class="name">gen2</span>. ' +
+' </p> ' +
+' </div><div class="constraint" id="wasStartedBy-ordering"> ' +
+' <ol> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasStartedBy(start;a,e,-,-)</span> ' +
+' and <span class="name">wasGeneratedBy(gen;e,-,-)</span> <span class="conditional">THEN</span> <span class="name">gen</span> <a>precedes</a> ' +
+' <span class="name">start</span>. ' +
+' </li> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasStartedBy(start;a,e,-,-)</span> ' +
+' and <span class="name">wasInvalidatedBy(inv;e,-,-)</span> <span class="conditional">THEN</span> <span class="name">start</span> <a>precedes</a> ' +
+' <span class="name">inv</span>. ' +
+' </li> ' +
+' </ol> ' +
+' </div><div class="constraint" id="wasEndedBy-ordering"> ' +
+' <ol> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasEndedBy(end;a,e,-,-)</span> ' +
+' and <span class="name">wasGeneratedBy(gen;e,-,-)</span> <span class="conditional">THEN</span> <span class="name">gen</span> <a>precedes</a> ' +
+' <span class="name">end</span>. ' +
+' </li> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasEndedBy(end;a,e,-,-)</span> ' +
+' and <span class="name">wasInvalidatedBy(inv;e,-,-)</span> <span class="conditional">THEN</span> <span class="name">end</span> <a>precedes</a> ' +
+' <span class="name">inv</span>. ' +
+' </li> ' +
+' </ol> ' +
+' </div><div class="constraint" id="wasAssociatedWith-ordering"> ' +
+' <ol> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasAssociatedWith(-;a,ag,-)</span> ' +
+' and <span class="name">wasStartedBy(start;a,-,-,-)</span> and <span class="name">wasInvalidatedBy(inv;ag,-,-)</span> <span class="conditional">THEN</span> <span class="name">start</span> <a>precedes</a> ' +
+' <span class="name">inv</span>. ' +
+' </li> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasAssociatedWith(-;a,ag,-)</span> ' +
+' and <span class="name">wasGeneratedBy(gen;ag,-,-)</span> and <span class="name">wasEndedBy(end;a,-,-,-)</span> <span class="conditional">THEN</span> ' +
+' <span class="name">gen</span> <a>precedes</a> <span class="name">end</span>. ' +
+' </li> ' +
+' </ol> ' +
+' </div><div class="constraint" id="wasAttributedTo-ordering"> ' +
+' <ol> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasAttributedTo(-;e,ag)</span> ' +
+' and <span class="name">wasGeneratedBy(gen;e,-,-)</span> and <span class="name">wasInvalidatedBy(inv;ag,-,-)</span> <span class="conditional">THEN</span> <span class="name">gen</span> <a>precedes</a> ' +
+' <span class="name">inv</span>. ' +
+' </li> ' +
+' <li> ' +
+' <span class="conditional">IF</span> <span class="name">wasAttributedTo(-;e,ag)</span> ' +
+' and <span class="name">wasGeneratedBy(gen;ag,-,-)</span> and <span class="name">wasInvalidatedBy(inv;e,-,-)</span> <span class="conditional">THEN</span> <span class="name">gen</span> <a>precedes</a> ' +
+' <span class="name">inv</span>. ' +
+' </li> ' +
+' </ol> ' +
+' </div><div class="constraint" id="actedOnBehalfOf-ordering"> ' +
+' <p> ' +
+' <span class="conditional">IF</span> <span class="name">actedOnBehalfOf(-;ag2,ag1,-)</span> ' +
+' and <span class="name">wasGeneratedBy(gen;ag1,-,-)</span> and <span class="name">wasInvalidatedBy(inv;ag2,-,-)</span> <span class="conditional">THEN</span> <span class="name">gen</span> <a>precedes</a> ' +
+' <span class="name">inv</span>. ' +
+' </p> ' +
+' </div><div class="note"> ' +
+' Work on dictionaries and on these constraints is deferred until after the ' +
+' next working draft, so this section may not be stable. ' +
+' </div><div class="definition" id="membership-as-insertion"> ' +
+' <p> ' +
+' <span class="name">memberOf(d, {(k1, v1), ...})</span> holds <span class="conditional">IF AND ONLY IF</span> there exists a dictionary ' +
+' <span class="name">d0</span>, such that <span class="name">derivedByInsertionFrom(d, ' +
+' d0, {(k1, v1), ...})</span>. ' +
+' </p> ' +
+' </div><div class="note"> ' +
+' The following constraint is unclear. ' +
+' </div><div class="constraint" id="dictionary-unique-derivation"> ' +
+' <p> ' +
+' A dictionary MUST NOT be derived through multiple insertions, removal, ' +
+' or membership relations. ' +
+' </p> ' +
+' </div><div class="anexample"> ' +
+' Consider the following statements about three dictionaries. ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(d1, [prov:type=\'prov:Dictionary\']) ' +
+'entity(d2, [prov:type=\'prov:Dictionary\']) ' +
+'entity(d3, [prov:type=\'prov:Dictionary\']) ' +
+' ' +
+' ' +
+'derivedByInsertionFrom(d3, d1, {("k1", e1), ("k2", e2)}) ' +
+'derivedByInsertionFrom(d3, d2, {("k3", e3)}) ' +
+'</pre> ' +
+' <p> ' +
+' There is no interpretation for such statements since <span class="name">d3</span> ' +
+' is derived multiple times by insertion. ' +
+' </p> ' +
+' </div><div class="anexample"> ' +
+' <p> ' +
+' As a particular case, dictionary <span class="name">d</span> is derived ' +
+' multiple times from the same <span class="name">d1</span>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'derivedByInsertionFrom(id1, d, d1, {("k1", e1), ("k2", e2)}) ' +
+'derivedByInsertionFrom(id2, d, d1, {("k3", e3), ("k4", e4)}) ' +
+'</pre> ' +
+' <p> ' +
+' The interpretation of such statements is also unspecified. ' +
+' </p> ' +
+' <p> ' +
+' To describe the insertion of the 4 key-entity pairs, one would instead ' +
+' write: ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'derivedByInsertionFrom(id1, d, d1, {("k1", e1), ("k2", e2), ("k3", e3), ("k4", e4)}) ' +
+'</pre> ' +
+' </div><div class="anexample"> ' +
+' <p> ' +
+' The following statements ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'derivedByInsertionFrom(d, d1, {("k1", e1)}) ' +
+'derivedByRemovalFrom(d, d2, {"k2"}) ' +
+'</pre> ' +
+' have no interpretation. Nor have the following: ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'derivedByInsertionFrom(d, d1, {("k1", e1)}) ' +
+'memberOf(d, {"k2",e2}) ' +
+'</pre> ' +
+' </div><div class="anexample"> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(d0, [prov:type=\'prov:EmptyDictionary\']) // d0 is an empty dictionary ' +
+'entity(d1, [prov:type=\'prov:Dictionary\']) ' +
+'entity(d2, [prov:type=\'prov:Dictionary\']) ' +
+'entity(d3, [prov:type=\'prov:Dictionary\']) ' +
+'entity(e1) ' +
+'entity(e2) ' +
+'entity(e3) ' +
+' ' +
+'derivedByInsertionFrom(d1, d0, {("k1", e1)}) ' +
+'derivedByInsertionFrom(d2, d0, {("k2", e2)}) ' +
+'derivedByInsertionFrom(d3, d1, {("k3", e3)}) ' +
+'</pre> ' +
+' From this set of statements, we conclude: ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+' d1 = { ("k1", e1) } ' +
+' d2 = { ("k2", e2) } ' +
+' d3 = { ("k1", e1), ("k3", e3)} ' +
+'</pre> ' +
+' </div><div class="anexample"> ' +
+' In the example, the state of <span class="name">d2</span> is only ' +
+' partially known because the dictionary is constructed from partially known ' +
+' other dictionaries. ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(d0, [prov:type=\'prov:EmptyDictionary\']) // d0 is an empty dictionary ' +
+'entity(d1, [prov:type=\'prov:Dictionary\']) ' +
+'entity(d2, [prov:type=\'prov:Dictionary\']) ' +
+'entity(d3, [prov:type=\'prov:Dictionary\']) ' +
+'entity(e1) ' +
+'entity(e2) ' +
+' ' +
+'derivedByInsertionFrom(d1, d0, {("k1", e1)}) ' +
+'wasDerivedFrom(d2, d1) ' +
+'derivedByInsertionFrom(d3, d2, {("k2", e2)}) ' +
+' </pre> ' +
+' From this set of statements, we conclude: ' +
+' <ul> ' +
+' <li> ' +
+' <span class="name">d1 = { ("k1", e1) }</span> ' +
+' </li> ' +
+' <li> ' +
+' <span class="name">d2</span> is somehow derived from <span class="name">d1</span>, ' +
+' but the precise sequence of updates is unknown ' +
+' </li> ' +
+' <li> ' +
+' <span class="name">d3</span> includes <span class="name">("k2", e2)</span> ' +
+' but the earlier "gap" leaves uncertainty regarding <span class="name">("k1", ' +
+' e1)</span> (it may have been removed) or any other pair that may have ' +
+' been added as part of the derivation activities. ' +
+' </li> ' +
+' </ul> ' +
+' </div><div class="note"> ' +
+' Do the insertion/removal derivation steps imply wasDerivedFrom, ' +
+' wasVersionOf, alternateOf? ' +
+' </div><div class="note"> ' +
+' Axiomatisation of dictionaries to be expressed here. See <a href="./working-copy/wd6-collections-constraints.html">here</a>. ' +
+' </div><div class="note"> ' +
+' This section does not talk about accounts. ' +
+' </div><div class="anexample" id="example-two-entities-one-id"> ' +
+' <p> ' +
+' Let us consider two statements about the same entity, which we have ' +
+' taken from two different contexts. A working draft published by the ' +
+' <span class="name">w3:Consortium</span>: ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(tr:WD-prov-dm-20111215, [ prov:type=\'pr:RecsWD\' ]) ' +
+'</pre> ' +
+' The second version of a document edited by some authors: ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version="2" ]) ' +
+'</pre> ' +
+' <p> ' +
+' Both statements are about the same entity identified by <span class="name">tr:WD-prov-dm-20111215</span>, but they contain different ' +
+' attributes, describing the situation or partial state of the these ' +
+' entities according to the context in which they occur. ' +
+' </p> ' +
+' </div><div class="anexample" id="merge-with-rename"> ' +
+' <p> ' +
+' We now reconsider the same two statements of a same entity, but we ' +
+' change the identifier for one of them: ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'entity(tr:WD-prov-dm-20111215, [ prov:type=\'pr:RecsWD\' ]) ' +
+'entity(ex:alternate-20111215, [ prov:type="document", ex:version="2" ]) ' +
+'alternateOf(tr:WD-prov-dm-20111215,ex:alternate-20111215) ' +
+'</pre> ' +
+' </div><div class="note"> ' +
+' Since we are not specifying ways to take the union of two accounts, we may ' +
+' drop this discussion ' +
+' </div><div class="note"> ' +
+' Material transplanted from old structural well-formedness constraints ' +
+' section. This example isn\'t very clear, since the sub-workflow-ness isn\'t ' +
+' represented in the data. According to what was written above, we should ' +
+' conclude that a0 and a2 are equal! ' +
+' </div><div class="anexample"> ' +
+' <p> ' +
+' In the following statements, a workflow execution <span class="name">a0</span> ' +
+' consists of two sub-workflow executions <span class="name">a1</span> and ' +
+' <span class="name">a2</span>. Sub-workflow execution <span class="name">a2</span> ' +
+' generates entity <span class="name">e</span>, so does <span class="name">a0</span>. ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'activity(a0, [prov:type="workflow execution"]) ' +
+'activity(a1, [prov:type="workflow execution"]) ' +
+'activity(a2, [prov:type="workflow execution"]) ' +
+'wasInformedBy(a2,a1) ' +
+' ' +
+'wasGeneratedBy(e,a0) ' +
+'wasGeneratedBy(e,a2) ' +
+'</pre> ' +
+' <p> ' +
+' So, we have two different <a title="generation">generations</a> for ' +
+' entity <span class="name">e</span>. Such an example is permitted in ' +
+' PROV-DM if the two activities denoted by <span class="name">a0</span> ' +
+' and <span class="name">a2</span> are a single thing happening in the ' +
+' world but described from different perspectives. ' +
+' </p> ' +
+' </div><div class="anexample"> ' +
+' <p> ' +
+' The same example is now revisited, with the following statements that ' +
+' are structurally well-formed. Two accounts are introduced, and there is ' +
+' a single generation for entity <span class="name">e</span> per account. ' +
+' </p> ' +
+' <p> ' +
+' In a first account, entitled "summary", we find: ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'activity(a0,t1,t2,[prov:type="workflow execution"]) ' +
+'wasGeneratedBy(e,a0,-) ' +
+'</pre> ' +
+' <p> ' +
+' In a second account, entitled "detail", we find: ' +
+' </p> ' +
+'<pre class="codeexample" xml:space="preserve"> ' +
+'activity(a1,t1,t3,[prov:type="workflow execution"]) ' +
+'activity(a2,t3,t2,[prov:type="workflow execution"]) ' +
+'wasInformedBy(a2,a1) ' +
+'wasGeneratedBy(e,a2,-) ' +
+'</pre> ' +
+' </div><div class="note"> ' +
+' This section collects all of the explanatory material that I was not ' +
+' certain how to interpret as an unambiguous inference or constraint. Some ' +
+' of these observations may need to be folded into the explanatory text in ' +
+' respective sections (for example for events, accounts or collections). ' +
+' Editing is also needed to decrease redundancy. ' +
+' </div><div class="anexample" id="a-report-example"> ' +
+' Different users may take different perspectives on a resource with a URL. ' +
+' A provenance record might use one (or more) different entities to talk ' +
+' about different perspectives, such as: ' +
+' <ul> ' +
+' <li> ' +
+' a report available at a URL: fixes the nature of the thing, i.e. a ' +
+' document, and its location; ' +
+' </li> ' +
+' <li> ' +
+' the version of the report available there today: fixes its version ' +
+' number, contents, and its date; ' +
+' </li> ' +
+' <li> ' +
+' the report independent of where it is hosted and of its content over ' +
+' time: fixes the nature of the thing as a conceptual artifact. ' +
+' </li> ' +
+' </ul> ' +
+' The provenance of these three entities may differ, and may be along the ' +
+' following lines: ' +
+' <ul> ' +
+' <li> ' +
+' the provenance of a report available at a URL may include: the act of ' +
+' publishing it and making it available at a given location, possibly ' +
+' under some license and access control; ' +
+' </li> ' +
+' <li> ' +
+' the provenance of the version of the report available there today may ' +
+' include: the authorship of the specific content, and reference to ' +
+' imported content; ' +
+' </li> ' +
+' <li> ' +
+' the provenance of the report independent of where it is hosted over ' +
+' time may include: the motivation for writing the report, the overall ' +
+' methodology for producing it, and the broad team involved in it. ' +
+' </li> ' +
+' </ul> ' +
+' <p> ' +
+' We do not assume that any entity is a better or worse description of ' +
+' reality than any other. That is, we do not assume an absolute ground ' +
+' truth with respect to which we can judge correctness or completeness of ' +
+' descriptions. In fact, it is possible to describe the processing that ' +
+' occurred for the report to be commissioned, for individual versions to ' +
+' be created, for those versions to be published at the given URL, etc., ' +
+' each via a different entity with attribute-value pairs that fix some ' +
+' aspects of the report appropriately. ' +
+' </p> ' +
+' </div><div class="note"> ' +
+' TODO: Constraints on alternateOf/specializationOf for this? ' +
+' </div><div class="note"> ' +
+' TODO: Further discussion of entities moved from the old "Definitional ' +
+' constraints" section. Should merge with the surrounding discussion to ' +
+' avoid repetition. ' +
+' </div><div class="note"> ' +
+' TODO: Further discussion of activities moved from old "Definitional ' +
+' constraints and inferences" section. Edit to avoid repeating information. ' +
+' </div><div class="anexample"> ' +
+' A file at some point during its lifecycle, which includes multiple edits ' +
+' by multiple people, can be described by its type, its location in the file ' +
+' system, a creator, and content. ' +
+' </div><div class="note"> ' +
+' The following paragraphs are unclear and need to be revised, to address ' +
+' review concerns: if we aren\'t saying anything about how events and time ' +
+' relate, and time is the only concrete information about event ordering in ' +
+' PROV-DM, then how can implementations check that event ordering ' +
+' constraints are satisfied? ' +
+' </div><span class="conditional">IF</span><span class="name">hyp_1</span><span class="name">hyp_k</span><span class="conditional">THEN</span><span class="name">a_1</span><span class="name">a_m</span><span class="name">conclusion_1</span><span class="name">conclusion_n</span><span class="name">hyp_1</span><span class="name">hyp_k</span><span class="name">concl_1</span><span class="name">concl_n</span><span class="name">a_1</span><span class="name">a_m</span><span class="name">defined_exp</span><span class="conditional">IF ' +
+' AND ONLY IF </span><span class="name">a_1</span><span class="name">a_m</span><span class="name">defining_exp_1</span><span class="name">defining_exp_n</span><span class="name">defined_exp</span><span class="name">defining_exp_1</span><span class="name">defining_exp_n</span><span class="name">a_1</span><span class="name">a_m</span><span class="name">a_1</span><span class="name">a_m</span><span class="name">defining_exp_1</span><span class="name">defining_exp_n</span><span class="name">def_exp</span><span class="name">a1</span><span class="name">a2</span><span class="name">wasInformedBy(-;a2,a1)</span><span class="conditional">IF AND ONLY IF</span><span class="name">e</span><span class="name">wasGeneratedBy(-;e,a1,-,)</span><span class="name">used(-;a2,e,-)</span><span class="name">wasInformedBy</span><span class="name">wasInformedBy(a3,a1)</span><span class="name">wasInformedBy(a2,a1)</span><span class="name">e1</span><span class="name">e1</span><span class="name">a1</span><span class="name">a2</span><span class="name">wasInformedBy(a3,a2)</span><span class="name">e2</span><span class="name">e2</span><span class="name">a2</span><span class="name">a3</span><span class="name">e1</span><span class="name">e2</span><span class="name">a3</span><span class="name">a1</span><span class="name">a3</span><span class="name">a1</span><span class="name">a2</span><span class="name">e</span><span class="name">a1</span><span class="name">a1</span><span class="name">a2</span><span class="name">wasStartedBy(-;a2,e,a1,-)</span><span class="conditional">IF AND ONLY IF</span><span class="name">wasGeneratedBy(-;e,a1,-,-)</span><span class="name">wasStartedBy(-;a2,e,-,-)</span><span class="name">a2</span><span class="name">e</span><span class="name">a1</span><span class="name">a1</span><span class="name">a2</span><span class="name">wasEndedBy(-;a2,e,a1,-)</span><span class="conditional">IF AND ONLY IF</span><span class="name">wasGeneratedBy(-;e,a1,-,-)</span><span class="name">wasEndedBy(-;a2,e,-,-)</span><span class="name">a</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">wasDerivedFrom(-;e2,e1, ' +
+' a, -, -)</span><span class="name">wasGeneratedBy(-;e2,a,-)</span><span class="conditional">THEN</span><span class="name">used(-;a,e1,-)</span><span class="name">e2</span><span class="name">e1</span><span class="name">wasDerivedFrom(e2,e1)</span><span class="name">used(a,e1,-)</span><span class="name">wasGeneratedBy(e2,a,-)</span><span class="name">e1</span><span class="name">e2</span><span class="name">wasGeneratedBy(g; e2, a, -, attrs2)</span><span class="name">used(u; a, e1, -, attrs1)</span><span class="name">e1</span><span class="name">e2</span><span class="name">attrs1</span><span class="name">attrs2</span><span class="name">a</span><span class="name">wasDerivedFrom(e2, e1, a, g, u)</span><span class="name">wasDerivedFrom(e2,e1)</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e1</span><span class="name">e2</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">wasDerivedFrom(-,e2,e1,[prov:type="prov:WasRevisionOf"])</span><span class="conditional">THEN</span><span class="conditional">IF</span><span class="name">wasAttributedTo(-;e,ag)</span><span class="name">e</span><span class="name">ag</span><span class="conditional">THEN</span><span class="name">a</span><span class="name">e2</span><span class="name">e1</span><span class="conditional">IF</span><span class="name">wasDerivedFrom(e2,e1,a,g2,u1)</span><span class="name">a</span><span class="name">g2</span><span class="name">u1</span><span class="conditional">THEN</span><span class="name">tracedTo(e2,e1)</span><span class="conditional">IF</span><span class="name">wasDerivedFrom(e2,e1)</span><span class="conditional">THEN</span><span class="name">tracedTo(e2,e1)</span><span class="conditional">IF</span><span class="name">wasAttributedTo(e2,ag1,aAttr)</span><span class="conditional">THEN</span><span class="name">tracedTo(e2,ag1)</span><span class="conditional">IF</span><span class="name">wasAttributedTo(e2,ag2,aAttr)</span><span class="name">wasGeneratedBy(-;e2,a,-,gAttr)</span><span class="name">actedOnBehalfOf(ag2,ag1,a,rAttr)</span><span class="name">a</span><span class="name">ag2</span><span class="name">ag1</span><span class="name">aAttr</span><span class="name">gAttr</span><span class="name">rAttr</span><span class="conditional">THEN</span><span class="name">tracedTo(e2,ag1)</span><span class="conditional">IF</span><span class="name">wasGeneratedBy(e2,a,gAttr)</span><span class="name">wasStartedBy(a,e1,sAttr)</span><span class="name">a</span><span class="name">gAttr</span><span class="name">sAttr</span><span class="name">tracedTo(e2,e1)</span><span class="conditional">IF</span><span class="name">tracedTo(e2,e)</span><span class="name">tracedTo(e,e1)</span><span class="name">e</span><span class="conditional">THEN</span><span class="name">tracedTo(e2,e1)</span><span class="name">alternateOf</span><span class="name">e</span><span class="name">alternateOf(e,e)</span><span class="name">e1</span><span class="name">e2</span><span class="name">e3</span><span class="conditional">IF</span><span class="name">alternateOf(e1,e2)</span><span class="name">alternateOf(e2,e3)</span><span class="conditional">THEN</span><span class="name">alternateOf(e1,e3)</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">alternateOf(e1,e2)</span><span class="conditional">THEN</span><span class="name">alternateOf(e2,e1)</span><span class="name">e</span><span class="name">specializationOf(e,e)</span><span class="name">e1</span><span class="name">e2</span><span class="name">specializationOf(e1,e2)</span><span class="name">specializationOf(e2,e1)</span><span class="name">e1</span><span class="name">e2</span><span class="name">e3</span><span class="conditional">IF</span><span class="name">specializationOf(e1,e2)</span><span class="name">specializationOf(e2,e3)</span><span class="conditional">THEN</span><span class="name">specializationOf(e1,e3)</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">specializationOf(e1,e2)</span><span class="conditional">THEN</span><span class="name">alternateOf(e1,e2)</span><span class="name">e</span><span class="name">e1</span><span class="name">e2</span><span class="name">b1</span><span class="name">b2</span><span class="conditional">IF</span><span class="name">contentualizationOf(e, e1, b1)</span><span class="name">contentualizationOf(e, ' +
+' e2, b2)</span><span class="conditional">THEN</span><span class="name">e1</span><span class="name">e2</span><span class="name">b1</span><span class="name">b2</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">contextualizationOf(e2,e1,b)</span><span class="conditional">THEN</span><span class="name">specializationOf(e2,e1)</span><span class="name">specializationOf(e1,e2)</span><span class="name">T1-2</span><span class="name">e1</span><span class="name">e2</span><span class="name">specializationOf(e2,e3)</span><span class="name">T2-3</span><span class="name">e2</span><span class="name">e3</span><span class="name">T1-2</span><span class="name">T2-3</span><span class="name">e2</span><span class="name">specializationOf(e1,e3)</span><span class="name">e1</span><span class="name">e3</span><span class="name">e1</span><span class="name">e3</span><span class="name">alternate(e,e)</span><span class="name">e</span><span class="name">e</span><span class="name">alternate(e1,e2)</span><span class="name">e</span><span class="name">e1</span><span class="name">e2</span><span class="name">e</span><span class="name">alternate(e2,e1)</span><span class="name">alternate(e1,e2)</span><span class="name">e1-2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1-2</span><span class="name">alternate(e2,e3)</span><span class="name">e2-3</span><span class="name">e2</span><span class="name">e3</span><span class="name">e2-3</span><span class="name">e1-3</span><span class="name">e1</span><span class="name">e3</span><span class="name">womanInRedDress\</span><span class="name">customerInChairAt7pm</span><span class="name">customerInChairAt6pm</span><span class="name">customerInChairAt7pm</span><span class="name">womanInRedDress</span><span class="name">customerInChairAt6pm</span><span class="name">wasAssociatedWith(a, ' +
+' ag, -, attr)</span><span class="name">wasAssociatedWith(a, ' +
+' -, pl, attr)</span><span class="name">actedOnBehalfOf(a, ' +
+' ag2, ag1, -, attr)</span><span class="name">e</span><span class="name">entity(e,attrs)</span><span class="name">attrs</span><span class="name">a</span><span class="name">activity(a,t1,t2,attrs)</span><span class="name">attrs</span><span class="name">g1</span><span class="name">g2</span><span class="name">e</span><span class="name">a1</span><span class="name">a2</span><span class="name">t1</span><span class="name">t2</span><span class="name">attrs1</span><span class="name">attrs2</span><span class="conditional">IF</span><span class="name">wasGeneratedBy(id1; e, a1, t1, attrs1)</span><span class="name">wasGeneratedBy(id2; e, a2, t2, attrs2)</span><span class="conditional">THEN</span><span class="name">id1</span><span class="name">id2</span><span class="name">a1</span><span class="name">a2</span><span class="name">t1</span><span class="name">t2</span><span class="name">attrs1</span><span class="name">attrs2</span><span class="name">e</span><span class="name">t1</span><span class="name">t2</span><span class="conditional">IF</span><span class="name">wasGeneratedBy(-;e, ' +
+' -, t1)</span><span class="name">wasGeneratedBy(-;e, -, t2)</span><span class="conditional">THEN</span><span class="name">t1</span><span class="name">t2</span><span class="name">e</span><span class="name">t1</span><span class="name">t2</span><span class="conditional">IF</span><span class="name">wasInvalidatedBy(-;e, ' +
+' -, t1)</span><span class="name">wasInvalidatedBy(-;e, -, t2)</span><span class="conditional">THEN</span><span class="name">t1</span><span class="name">t2</span><span class="conditional">IF</span><span class="name">activity(a,t1,t2)</span><span class="name">wasStartedBy(id;a,-,-,t)</span><span class="conditional">THEN</span><span class="name">t</span><span class="name">t1</span><span class="conditional">IF</span><span class="name">activity(a,t1,t2)</span><span class="name">wasEndedBy(id;a,-,-,t)</span><span class="conditional">THEN</span><span class="name">t</span><span class="name">t2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">wasStartedBy(start;a,-,-,-)</span><span class="name">wasEndedBy(end;a,-,-,-)</span><span class="conditional">THEN</span><span class="name">start</span><span class="name">end</span><span class="conditional">IF</span><span class="name">used(use;a,e,-)</span><span class="name">wasStartedBy(start;a,-,-,-)</span><span class="conditional">THEN</span><span class="name">start</span><span class="name">use</span><span class="conditional">IF</span><span class="name">used(use;a,e,-)</span><span class="name">wasEndedBy(end;a,-,-,-)</span><span class="conditional">THEN</span><span class="name">use</span><span class="name">end</span><span class="conditional">IF</span><span class="name">wasGeneratedBy(gen;a,e,-)</span><span class="name">wasStartedBy(start;a,-,-,-)</span><span class="conditional">THEN</span><span class="name">start</span><span class="name">gen</span><span class="conditional">IF</span><span class="name">wasGeneratedBy(gen;a,e,-)</span><span class="name">wasEndedBy(end;a,-,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">end</span><span class="name">a1</span><span class="name">a2</span><span class="name">a1</span><span class="name">a2</span><span class="conditional">IF</span><span class="name">wasInformedBy(-;a2,a1)</span><span class="name">wasStartedBy(start;a1,-,-,-)</span><span class="name">wasEndedBy(end;a2,-,-,-)</span><span class="conditional">THEN</span><span class="name">start</span><span class="name">end</span><span class="name">a2</span><span class="name">a1</span><span class="name">a1</span><span class="name">a2</span><span class="conditional">IF</span><span class="name">wasStartedBy(start2;a2,-,a1,-)</span><span class="name">wasStartedBy(start1;a1,-,-,-)</span><span class="conditional">THEN</span><span class="name">start1</span><span class="name">start2</span><span class="conditional">IF</span><span class="name">wasGeneratedBy(gen;e,-,-)</span><span class="name">wasInvalidatedBy(inv;e,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">inv</span><span class="conditional">IF</span><span class="name">wasGeneratedBy(gen;e,-,-)</span><span class="name">used(use;-,e,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">use</span><span class="conditional">IF</span><span class="name">used(use;-,e,-)</span><span class="name">wasInvalidatedBy(inv;e,-,-)</span><span class="conditional">THEN</span><span class="name">use</span><span class="name">inv</span><span class="name">e2</span><span class="name">e1</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">wasDerivedFrom(d;e2,e1,a,g2,u1)</span><span class="conditional">THEN</span><span class="name">u1</span><span class="name">g2</span><span class="conditional">IF</span><span class="name">wasDerivedFrom(-;e2,e1,attrs)</span><span class="name">wasGeneratedBy(gen1;e1,-,-)</span><span class="name">wasGeneratedBy(gen2;e2,-,-)</span><span class="conditional">THEN</span><span class="name">gen1</span><span class="name">gen2</span><span class="name">e1</span><span class="name">e2</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">IF</span><span class="name">wasStartedBy(start;a,e,-,-)</span><span class="name">wasGeneratedBy(gen;e,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">start</span><span class="conditional">IF</span><span class="name">wasStartedBy(start;a,e,-,-)</span><span class="name">wasInvalidatedBy(inv;e,-,-)</span><span class="conditional">THEN</span><span class="name">start</span><span class="name">inv</span><span class="conditional">IF</span><span class="name">wasEndedBy(end;a,e,-,-)</span><span class="name">wasGeneratedBy(gen;e,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">end</span><span class="conditional">IF</span><span class="name">wasEndedBy(end;a,e,-,-)</span><span class="name">wasInvalidatedBy(inv;e,-,-)</span><span class="conditional">THEN</span><span class="name">end</span><span class="name">inv</span><span class="conditional">IF</span><span class="name">wasAssociatedWith(-;a,ag,-)</span><span class="name">wasStartedBy(start;a,-,-,-)</span><span class="name">wasInvalidatedBy(inv;ag,-,-)</span><span class="conditional">THEN</span><span class="name">start</span><span class="name">inv</span><span class="conditional">IF</span><span class="name">wasAssociatedWith(-;a,ag,-)</span><span class="name">wasGeneratedBy(gen;ag,-,-)</span><span class="name">wasEndedBy(end;a,-,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">end</span><span class="conditional">IF</span><span class="name">wasAttributedTo(-;e,ag)</span><span class="name">wasGeneratedBy(gen;e,-,-)</span><span class="name">wasInvalidatedBy(inv;ag,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">inv</span><span class="conditional">IF</span><span class="name">wasAttributedTo(-;e,ag)</span><span class="name">wasGeneratedBy(gen;ag,-,-)</span><span class="name">wasInvalidatedBy(inv;e,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">inv</span><span class="conditional">IF</span><span class="name">actedOnBehalfOf(-;ag2,ag1,-)</span><span class="name">wasGeneratedBy(gen;ag1,-,-)</span><span class="name">wasInvalidatedBy(inv;ag2,-,-)</span><span class="conditional">THEN</span><span class="name">gen</span><span class="name">inv</span><span class="name">memberOf(d, {(k1, v1), ...})</span><span class="conditional">IF AND ONLY IF</span><span class="name">d0</span><span class="name">derivedByInsertionFrom(d, ' +
+' d0, {(k1, v1), ...})</span><span class="name">d3</span><span class="name">d</span><span class="name">d1</span><span class="name">d2</span><span class="name">d1 = { ("k1", e1) }</span><span class="name">d2</span><span class="name">d1</span><span class="name">d3</span><span class="name">("k2", e2)</span><span class="name">("k1", ' +
+' e1)</span><span class="name">w3:Consortium</span><span class="name">tr:WD-prov-dm-20111215</span><span class="name">alternateOf</span><span class="name">a0</span><span class="name">a1</span><span class="name">a2</span><span class="name">a2</span><span class="name">e</span><span class="name">a0</span><span class="name">e</span><span class="name">a0</span><span class="name">a2</span><span class="name">e</span><span class="name">alternateOf</span><span class="name">specializationOf</span></html> ' +
' ' ;