reorder components
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Tue, 19 Jun 2012 05:00:38 -0700
changeset 3415 7853ad0f4085
parent 3414 d5cad12b84a2
child 3416 72e06fdc2afa
reorder components
model/Makefile
model/all-divs.js
--- a/model/Makefile	Tue Jun 19 04:49:52 2012 -0700
+++ b/model/Makefile	Tue Jun 19 05:00:38 2012 -0700
@@ -53,7 +53,7 @@
 	@$(MAKE) OUT.JS=$(OUT.JS) documentation
 	@$(MAKE) OUT.JS=$(OUT.JS) hgDivsId
 	@echo "divs_string= " >> $(OUT.JS)
-	cat $(IN.HTML) | awk '{ print "'\''"  $$0 " '\\\\n\'' + " }' >> $(OUT.JS)
+	cat $(IN.HTML) | sed -e "s/\d039/\\\'/g" | awk '{ print "'\''"  $$0 " '\'' + " }' >> $(OUT.JS)
 	echo "' ' ;" >> $(OUT.JS)
 
 
--- 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-Irne 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-Irne 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> ' + 
 ' ' ;