--- a/model/all-divs.js Tue Feb 28 12:11:06 2012 +0100
+++ b/model/all-divs.js Tue Feb 28 14:11:30 2012 +0100
@@ -3,1485 +3,1528 @@
// 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/8b2302508d86/model/prov-dm.html';
+divs_hg='http://dvcs.w3.org/hg/prov/file/728b2ac1398d/model/prov-dm.html';
divs_string=
-'<html> ' +
-'<div class="note"> ' +
-' TO EDIT ' +
-' </div><div class="note"> ' +
-' TO EDIT ' +
-' </div><div class="buttonpanel"> ' +
-' <form action="#"> ' +
-' <p> ' +
-' <input id="hide-asn" onclick="set_display_by_class(\'div\',\'withAsn\',\'none\');set_display_by_class(\'span\',\'withAsn\',\'none\'); set_display_by_id(\'hide-asn\',\'none\'); set_display_by_id(\'show-asn\',\'\');" type="button" value="Hide ASN" /> <input id="show-asn" onclick="set_display_by_class(\'div\',\'withAsn\',\'\'); set_display_by_class(\'span\',\'withAsn\',\'\'); set_display_by_id(\'hide-asn\',\'\'); set_display_by_id(\'show-asn\',\'none\');" style="display: none" type="button" value="Show ASN" /> ' +
-' </p> ' +
-' </form> ' +
-' </div><div class="issue"> ' +
-' There is a desire to use a single namespace that all specifications of the ' +
-' PROV family can share to refer to common provenance terms. This is <a href="http://www.w3.org/2011/prov/track/issues/224">ISSUE-224</a>. ' +
-' </div><div class="glossary-ref"> ' +
-' </div><div class="anexample" id="entity-example"> ' +
-' <p> ' +
-' An entity may be the document at URI <a href="http://www.w3.org/TR/prov-dm/">http://www.w3.org/TR/prov-dm/</a>, ' +
-' a file in a file system, a car or an idea. ' +
-' </p> ' +
-' </div><div class="anexample" 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, or 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, and editing a file. ' +
-' </p> ' +
-' </div><div class="anexample" 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, and at the same time one ' +
-' can describe its provenance, including for instance the vendor and the ' +
-' version history. ' +
-' </p> ' +
-' </div><div class="glossary-ref"> ' +
-' </div><div class="glossary-ref"> ' +
-' </div><div class="anexample" id="generation-example"> ' +
-' 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. ' +
-' </div><div class="anexample" id="usage-example"> ' +
-' 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); ' +
-' alternatively, a same entity may be used multiple times, possibly by ' +
-' different activities (e.g. a file on a file system can be read ' +
-' indefinitely). ' +
-' </div><div class="anexample" 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" id="plan-example"> ' +
-' <p> ' +
-' A plan can be a blog post tutorial for how to set up a web server, a ' +
-' list of instructions for a micro-processor execution, a cook\'s written ' +
-' recipe for a chocolate cake, or a workflow for a scientific experiment. ' +
-' </p> ' +
-' </div><div class="anexample" 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 class="anexample" id="account-example"> ' +
-' <p> ' +
-' Having found a resource, a user may want to retrieve its provenance. For ' +
-' users to decide whether they can place their trust in that resource, ' +
-' they may want to analyze its provenance, but also determine who the ' +
-' provenance is attributed to, and when it was generated. Hence, from the ' +
-' PROV-DM data model, the provenance is regarded as an entity, an ' +
-' AccountEntity, for which provenance can be sought. ' +
-' </p> ' +
-' </div><div class="anexample" id="software-agents-example"> ' +
-' <p> ' +
-' Even software agents can be assigned some responsibility for the effects ' +
-' they have in the world, so for example if one is using a Text Editor and ' +
-' one\'s laptop crashes, then one would say that the Text Editor was ' +
-' responsible for crashing the laptop. If one invokes a service to buy a ' +
-' book, that service can be considered responsible for drawing funds from ' +
-' one\'s bank to make the purchase (the company that runs the service and ' +
-' the web site would also be responsible, but the point here is that we ' +
-' assign some measure of responsibility to software as well). ' +
-' </p> ' +
-' </div><div class="anexample" id="association-example"> ' +
-' <p> ' +
-' Examples of association between an activity and 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> ' +
-' <li> ' +
-' an XSLT transform initiated by a user; ' +
-' </li> ' +
-' </ul> ' +
-' </div><div class="anexample" id="responsibilityChain-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, and it may not matter which student published a web ' +
-' page but it matters a lot that the department told the student to put up ' +
-' the web page. ' +
-' </p> ' +
-' </div><div class="note"> ' +
-' TODO: short text required to explain the overview diagram ' +
-' </div><div class="note"> ' +
-' Illustration to be hand crafted instead of being generated automatically. ' +
-' It\'s important to adopt a common style for all illustrations across all ' +
-' PROV documents. ' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-entity"> ' +
-' An entity<span class="withAsn">, written <span class="name">entity(id, [ ' +
-' attr1=val1, ...])</span> in PROV-ASN, </span> contains: ' +
-' <ul> ' +
-' <li> ' +
-' <em>id</em>: an identifier identifying an entity; ' +
-' </li> ' +
-' <li> ' +
-' <em>attributes</em>: an OPTIONAL set of attribute-value pairs ' +
-' representing this entity\'s situation in the world. ' +
-' </li> ' +
-' </ul> ' +
-' </div><div class="anexample"> ' +
-' <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 attributes <span class="name">ex:version</span> ' +
-' is application specific, whereas the attribute <span class="name">type</span> ' +
-' is reserved in the PROV-DM namespace. ' +
-' <!-- 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-DM ' +
-' namespace. --> ' +
-' </div><div class="issue"> ' +
-' The characterization interval of an entity is currently implicit. Making ' +
-' it explicit would allow us to define wasComplementOf more precisely. ' +
-' Beginning and end of characterization interval could be expressed by ' +
-' attributes (similarly to activities). How do we define the end of an ' +
-' entity? This is <a href="http://www.w3.org/2011/prov/track/issues/204">ISSUE-204</a>. ' +
-' </div><div class="issue"> ' +
-' There is still some confusion about what the identifiers really denote. ' +
-' For instance, are they entity identifiers or entity record identifiers. ' +
-' This is <a href="http://www.w3.org/2011/prov/track/issues/183">ISSUE-183</a>. ' +
-' An example and questions appear in <a href="http://www.w3.org/2011/prov/track/issues/215">ISSUE-215</a>. A ' +
-' related issued is also raised in <a href="http://www.w3.org/2011/prov/track/issues/145">ISSUE-145</a>. ' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-activity"> ' +
-' An activity<span class="withAsn">, written <span class="name">activity(id, ' +
-' st, et, [ attr1=val1, ...])</span> in PROV-ASN,</span> contains: ' +
-' <ul> ' +
-' <li> ' +
-' <em>id</em>: an identifier identifying an activity; ' +
-' </li> ' +
-' <li> ' +
-' <em>startTime</em>: an OPTIONAL time for the start of the activity; ' +
-' </li> ' +
-' <li> ' +
-' <em>endTime</em>: an OPTIONAL time for the end of the activity; ' +
-' </li> ' +
-' <li> ' +
-' <em>attributes</em>: an OPTIONAL set of attribute-value pairs for this ' +
-' activity. ' +
-' </li> ' +
-' </ul> ' +
-' </div><div class="anexample"> ' +
-' <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" %% xsd:QName]) ' +
-'</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. ' +
-' </p> ' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-agent"> ' +
-' An agent<span class="withAsn">, noted <span class="name">agent(id, [ ' +
-' attr1=val1, ...])</span> in PROV-ASN,</span> contains: ' +
-' <ul> ' +
-' <li> ' +
-' <em>id</em>: an identifier identifying an agent; ' +
-' </li> ' +
-' <li> ' +
-' <em>attributes</em>: a set of attribute-value pairs representing this ' +
-' agent\'s situation in the world. ' +
-' </li> ' +
-' </ul> ' +
-' </div><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:Human" %% xsd:QName]) ' +
-'</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="issue"> ' +
-' Shouldn\'t we allow for entities (not agent) to be associated with an ' +
-' activity? Should we drop the inference association-agent? <a href="http://www.w3.org/2011/prov/track/issues/203">ISSUE-203</a>. ' +
-' </div><div class="attributes" id="attributes-note"> ' +
-' A <dfn title="dfn-note">note</dfn><span class="withAsn">, noted <span class="name">note(id, [ attr1=val1, ...])</span> in PROV-ASN,</span> ' +
-' contains: ' +
-' <ul> ' +
-' <li> ' +
-' <em>id</em>: an identifier identifying the note; ' +
-' </li> ' +
-' <li> ' +
-' <em>attributes</em>: a set of attribute-value pairs, whose meaning is ' +
-' application specific. ' +
-' </li> ' +
-' </ul> ' +
-' </div><div class="anexample" id="anexample-note1"> ' +
-' <p> ' +
-' The following note consists of a set of application-specific ' +
-' attribute-value pairs, intended to help the rendering of what it is ' +
-' associated with, by specifying its color and its position on the screen. ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-'note(ex2:n1,[ex2:color="blue", ex2:screenX=20, ex2:screenY=30]) ' +
-'hasAnnotation(tr:WD-prov-dm-20111215,ex2:n1) ' +
-'</pre> ' +
-' <p> ' +
-' The note is associated with the entity <span class="name">tr:WD-prov-dm-20111215</span> ' +
-' previously introduced (<a title="annotation">hasAnnotation</a> is ' +
-' discussed in Section <a href="#term-annotation">Annotation</a>). The ' +
-' note\'s identifier and attributes are declares in a separate namespace ' +
-' denoted by prefix <span class="name">ex2</span>. ' +
-' </p> ' +
-' </div><div class="anexample" id="anexample-note2"> ' +
-' <p> ' +
-' Alternatively, a reputation service may enrich a provenance record with ' +
-' notes providing reputation ratings about agents. In the following ' +
-' fragment, both agents <span class="name">ex:Simon</span> and <span class="name">ex:Paolo</span> are rated "excellent". ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-'note(ex3:n2,[ex3:reputation="excellent"]) ' +
-'hasAnnotation(ex:Simon,ex3:n2) ' +
-'hasAnnotation(ex:Paolo,ex3:n2) ' +
-'</pre> ' +
-' <p> ' +
-' The note\'s identifier and attributes are declares in a separate ' +
-' namespace denoted by prefix <span class="name">ex3</span>. ' +
-' </p> ' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-generation"> ' +
-' <dfn title="dfn-Generation">Generation</dfn><span class="withAsn">, ' +
-' written <span class="name">wasGeneratedBy(id,e,a,t,attrs)</span> in ' +
-' PROV-ASN,</span> has the following components: ' +
-' <ul> ' +
-' <li> ' +
-' <em>id</em>: an OPTIONAL identifier identifying a generation; ' +
-' </li> ' +
-' <li> ' +
-' <em>entity</em>: an identifier identifying a created entity; ' +
-' </li> ' +
-' <li> ' +
-' <em>activity</em>: an OPTIONAL identifier identifying the activity ' +
-' that creates the entity; ' +
-' </li> ' +
-' <li> ' +
-' <em>time</em>: an OPTIONAL "generation time", the time at which the ' +
-' entity was completely created; ' +
-' </li> ' +
-' <li> ' +
-' <em>attributes</em>: an OPTIONAL set of attribute-value pairs that ' +
-' describes the modalities of generation of this entity by this ' +
-' activity. ' +
-' </li> ' +
-' </ul> ' +
-' </div><div class="anexample"> ' +
-' <p> ' +
-' The following expressions ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-' wasGeneratedBy(e1,a1, 2001-10-26T21:32:52, [ex:port="p1", ex:order=1]) ' +
-' wasGeneratedBy(e2,a1, 2001-10-26T10:00:00, [ex:port="p1", ex:order=2]) ' +
-'</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 as the first ' +
-' value on port p1, whereas the other is the second value on port p1. The ' +
-' semantics of <span class="name">port</span> and <span class="name">order</span> ' +
-' are application specific. ' +
-' </p> ' +
-' </div><div class="anexample"> ' +
-' <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 component 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="dfn-Usage">Usage</dfn><span class="withAsn">, written <span class="name">used(id,a,e,t,attrs)</span> in PROV-ASN,</span> has the ' +
-' following constituents: ' +
-' <ul> ' +
-' <li> ' +
-' <em>id</em>: an OPTIONAL identifier identifying a usage; ' +
-' </li> ' +
-' <li> ' +
-' <em>activity</em>: an identifier for the consuming activity; ' +
-' </li> ' +
-' <li> ' +
-' <em>entity</em>: an identifier for the consumed entity; ' +
-' </li> ' +
-' <li> ' +
-' <em>time</em>: an OPTIONAL "usage time", the time at which the entity ' +
-' started to be used; ' +
-' </li> ' +
-' <li> ' +
-' <em>attributes</em>: an OPTIONAL set of attribute-value pairs that ' +
-' describe the modalities of usage of this entity by this activity. ' +
-' </li> ' +
-' </ul> ' +
-' </div><div class="anexample"> ' +
-' <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> ' +
-' consumed 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="note"> ' +
-' <p> ' +
-' A usage record\'s id is OPTIONAL. It MUST be present when annotating ' +
-' usage records (see Section <a href="#term-annotation">Annotation Record</a>) ' +
-' or when defining precise-1 derivations (see <a href="#Derivation-Relation">Derivation</a>). ' +
-' </p> ' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-activity-association"> ' +
-' An <dfn title="dfn-activity-association">activity association</dfn><span class="withAsn">, written <span class="name">wasAssociatedWith(id,a,ag,pl,attrs)</span> ' +
-' in PROV-ASN,</span> has the following constituents: ' +
-' <ul> ' +
-' <li> ' +
-' <em>id</em>: an OPTIONAL identifier for the association between an ' +
-' activity and an agent; ' +
-' </li> ' +
-' <li> ' +
-' <em>activity</em>: an identifier for the activity; ' +
-' </li> ' +
-' <li> ' +
-' <em>agent</em>: an identifier for the agent associated with the ' +
-' activity; ' +
-' </li> ' +
-' <li> ' +
-' <em>plan</em>: an OPTIONAL identifier for the plan adopted by the ' +
-' agent in the context of this activity; ' +
-' </li> ' +
-' <li> ' +
-' <em>attributes</em>: an OPTIONAL set of attribute-value pairs that ' +
-' describe the modalities of association of this activity with this ' +
-' agent. ' +
-' </li> ' +
-' </ul> ' +
-' </div><div class="anexample"> ' +
-' In the following example, a designer and an operator agents are associated ' +
-' with an activity. The designer\'s goals are achieved by a workflow <span class="name">ex:wf</span>. ' +
-'<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"%% xsd:QName, 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="issue"> ' +
-' The activity association record does not allow for a plan to be asserted ' +
-' without an agent. This seems over-restrictive. Discussed in the context of ' +
-' <a href="http://www.w3.org/2011/prov/track/issues/203">ISSUE-203</a>. ' +
-' </div><div class="issue"> ' +
-' Agents should not be inferred. WasAssociatedWith should also work with ' +
-' entities. This is <a href="http://www.w3.org/2011/prov/track/issues/206">ISSUE-206</a>. ' +
-' </div><div class="anexample"> ' +
-' <p> ' +
-' In the following example, ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-'wasStartedBy(a,ag,[ex:mode="manual"]) ' +
-'wasEndedby(a,ag,[ex:mode="manual"]) ' +
-'</pre> ' +
-' <p> ' +
-' there is an activity denoted by <span class="name">a</span> that was ' +
-' started and ended by an agent denoted by <span class="name">ag</span>, ' +
-' in "manual" mode, an application specific characterization of these ' +
-' relations. ' +
-' </p> ' +
-' </div><div class="issue"> ' +
-' Should we define start/end records as representation of activity start/end ' +
-' events. Should time be associated with these events rather than with ' +
-' activities. This will be similar to what we do for entities. This is issue ' +
-' <a href="http://www.w3.org/2011/prov/track/issues/207">ISSUE-207</a>. ' +
-' </div><div class="glossary-ref" /><div class="attributes" id="attributes-responsibility-chain"> ' +
-' A <dfn title="dfn-responsibility-chain">responsibility chain</dfn><span class="withAsn">, written <span class="name">actedOnBehalfOf(id,ag2,ag1,a,attrs)</span> ' +
-' in PROV-ASN,</span> has the following constituents: ' +
-' <ul> ' +
-' <li> ' +
-' <em>id</em>: an OPTIONAL identifier identifying the responsibility ' +
-' chain; ' +
-' </li> ' +
-' <li> ' +
-' <em>subordinate</em>: an identifier for the agent associated with an ' +
-' activity, acting on behalf of the responsible agent; ' +
-' </li> ' +
-' <li> ' +
-' <em>responsible</em>: an identifier for the agent, on behalf of which ' +
-' the subordinate agent acted; ' +
-' </li> ' +
-' <li> ' +
-' <em>activity</em>: an OPTIONAL identifier of an activity for which the ' +
-' responsibility chain holds; ' +
-' </li> ' +
-' <li> ' +
-' <em>attributes</em>: an OPTIONAL set of attribute-value pairs that ' +
-' describe the modalities of this relation. ' +
-' </li> ' +
-' </ul> ' +
-' </div><div class="anexample"> ' +
-' In the following example, a programmer, a researcher and a funder agents ' +
-' are described. The programmer and researcher are associated with a ' +
-' workflow activity. The programmer acts on behalf of the researcher ' +
-' (delegation) encoding the commands specified by the researcher; the ' +
-' researcher acts on behalf of the funder, who has an contractual agreement ' +
-' with the researcher. The terms \'delegation\' and \'contact\' used in this ' +
-' example are domain specific. ' +
-'<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) ' +
-'actedOnBehalfOf(ag1,ag2,a,[prov:type="delegation"]) ' +
-'actedOnBehalfOf(ag2,ag3,a,[prov:type="contract"]) ' +
-'</pre> ' +
-' </div><div class="glossary-ref" /><div class="note"> ' +
-' This text was not edited much. It keeps on referring to ' +
-' asserter/assertion. Before editing this section, we would like to have <a href="http://www.w3.org/2011/prov/track/issues/249">ISSUE-249</a> ' +
-' resolved. ' +
-' </div><div class="attributes" id="attributes-derivation"> ' +
-' A <dfn>precise-1 derivation</dfn><span class="withAsn">, written <span class="name">wasDerivedFrom(id, e2, e1, a, g2, u1, attrs)</span> in ' +
-' PROV-ASN,</span> contains: ' +
-' <ul> ' +
-' <li> ' +
-' <em>id</em>: an OPTIONAL identifier identifying the derivation; ' +
-' </li> ' +
-' <li> ' +
-' <em>generatedEntity</em>: the identifier of the generation entity; ' +
-' </li> ' +
-' <li> ' +
-' <em>usedEntity</em>: the identifier of the used entity; ' +
-' </li> ' +
-' <li> ' +
-' <em>activity</em>: the identifier of the activity using and generating ' +
-' the above entities; ' +
-' </li> ' +
-' <li> ' +
-' <em>generation</em>: the identifier the generation for the generated ' +
-' entity and activity; ' +
-' </li> ' +
-' <li> ' +
-' <em>usage</em>: the identifier of the usage for the used entity and ' +
-' activity; ' +
-' </li> ' +
-' <li> ' +
-' <em>attributes</em>: an OPTIONAL set of attribute-value pairs that ' +
-' describe the modalities of this derivation, optionally including the ' +
-' attribute-value pair <span class="name">prov:steps="single"</span>. ' +
-' </li> ' +
-' </ul> ' +
-' </div><div class="anexample"> ' +
-' <p> ' +
-' The following descriptions state the existence of derivations. ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-'wasDerivedFrom(e5,e3,a4,g2,u2) ' +
-'wasDerivedFrom(e5,e3,a4,g2,u2,[prov:steps="single"]) ' +
-' ' +
-'wasDerivedFrom(e3,e2,[prov:steps="single"]) ' +
-' ' +
-'wasDerivedFrom(e2,e1,[]) ' +
-'wasDerivedFrom(e2,e1,[prov:steps="any"]) ' +
-' ' +
-'wasDerivedFrom(e2,e1,2012-01-18T16:00:00, [prov:steps="any"]) ' +
-'</pre> ' +
-' <p> ' +
-' The first two are precise-1 derivations expressing that the activity ' +
-' identified by <span class="name">a4</span>, by using the entity denoted ' +
-' by <span class="name">e3</span> according to usage <span class="name">u2</span> ' +
-' derived the entity denoted by <span class="name">e5</span> and generated ' +
-' it according to generation <span class="name">g2</span>. ' +
-' </p> ' +
-' <p> ' +
-' The third line describes an imprecise-1 derivation, which is similar for ' +
-' <span class="name">e3</span> and <span class="name">e2</span>, but it ' +
-' leaves the activity and associated attributes implicit. The fourth and ' +
-' fifth lines are about imprecise-n derivations between <span class="name">e2</span> ' +
-' and <span class="name">e1</span>, but no information is provided as to ' +
-' the number and identity of activities underpinning the derivation. The ' +
-' sixth derivation extends the fifth with the derivation time of <span class="name">e2</span>. ' +
-' </p> ' +
-' </div><div class="issue"> ' +
-' Several points were raised about the attribute steps. Its name, its ' +
-' default value <a href="http://www.w3.org/2011/prov/track/issues/180">ISSUE-180</a>. ' +
-' <a href="http://www.w3.org/2011/prov/track/issues/179">ISSUE-179</a>. ' +
-' </div><div class="issue"> ' +
-' Emphasize the notion of \'affected by\' <a href="http://www.w3.org/2011/prov/track/issues/133">ISSUE-133</a>. ' +
-' </div><div class="issue"> ' +
-' Is imprecise-1 derivation necessary? Can we just use precise-1 and ' +
-' imprecise-n? <a href="http://www.w3.org/2011/prov/track/issues/249">ISSUE-249</a>. ' +
-' </div><div class="anexample" id="anexample-alternate"> ' +
-' <p> ' +
-' The following expressions describe two persons, respectively holder of a ' +
-' Facebook account and a Twitter account, and their relation as alternate. ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-'entity(facebook:ABC, [ prov:type="person with Facebook account " ]) ' +
-'entity(twitter:XYZ, [ prov:type="person with Twitter account" ]) ' +
-'alternateOf(facebook:ABC, twitter:XYZ) ' +
-'</pre> ' +
-' </div><div class="anexample" id="anexample-specialization"> ' +
-' <p> ' +
-' The following expressions describe two persons, the second of which is ' +
-' holder of a Twitter account. The second entity is a specialization of ' +
-' the first. ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-'entity(ex:Bob, [ prov:type="person", ex:name="Bob" ]) ' +
-'entity(twitter:XYZ, [ prov:type="person with Twitter account" ]) ' +
-'specializationOf(twitter:XYZ, ex:Bob) ' +
-'</pre> ' +
-' </div><div class="issue"> ' +
-' A discussion on alternative definition of these relations has not yet ' +
-' reached a satisfactory conclusion. This is <a href="http://www.w3.org/2011/prov/track/issues/29">ISSUE-29</a>. Also <a href="http://www.w3.org/2011/prov/track/issues/96">ISSUE-96</a>. ' +
-' </div><div class="glossary" id="glossary-annotation"> ' +
-' An <dfn title="concept-annotation">annotation</dfn> is a link between ' +
-' something that is identifiable and a note referred to by its identifier. ' +
-' </div><div class="anexample"> ' +
-' <p> ' +
-' The following expressions ' +
-' </p> ' +
-'<pre class="codexample" xml:space="preserve"> ' +
-'entity(e1,[prov:type="document"]) ' +
-'entity(e2,[prov:type="document"]) ' +
-'activity(a,t1,t2) ' +
-'used(u1,a,e1,[ex:file="stdin"]) ' +
-'wasGeneratedBy(e2, a, [ex:file="stdout"]) ' +
-' ' +
-'note(n1,[ex:icon="doc.png"]) ' +
-'hasAnnotation(e1,n1) ' +
-'hasAnnotation(e2,n1) ' +
-' ' +
-'note(n2,[ex:style="dotted"]) ' +
-'hasAnnotation(u1,n2) ' +
-'</pre> ' +
-' <p> ' +
-' describe two documents (attribute-value pair: <span class="name">prov:type="document"</span>) ' +
-' identified by <span class="name">e1</span> and <span class="name">e2</span>, ' +
-' and their annotation with a note indicating that the icon (an ' +
-' application specific way of rendering provenance) is <span class="name">doc.png</span>. ' +
-' The example also includes an activity, its usage of the first entity, ' +
-' and its generation of the second entity. The <a title="dfn-usage">usage</a> ' +
-' is annotated with a style (an application specific way of rendering this ' +
-' edge graphically). To be able to express this annotation, the usage was ' +
-' provided with an identifier <span class="name">u1</span>, which was then ' +
-' referred to in <span class="name">hasAnnotation(u1,n2)</span>. ' +
-' </p> ' +
-' </div><div class="anexample"> ' +
-' <p> ' +
-' The following activity start describes the role of the agent identified ' +
-' by <span class="name">ag</span> in this start relation with activity ' +
-' <span class="name">a</span>. ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-' wasStartedBy(a,ag, [prov:role="program-operator"]) ' +
-'</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:ComputingSystem" %% xsd:QName]) ' +
-'</pre> ' +
-' </div><div class="anexample"> ' +
-' <p> ' +
-' The following expression declares an imprecise-1 derivation, which is ' +
-' known to involve one activity, though its identity, usage details of ' +
-' <span class="name">ex:e1</span>, and generation details of <span class="name">ex:e2</span> are not explicit. ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-' wasDerivedFrom(ex:e2, ex:e1, [prov:steps="single"]) ' +
-'</pre> ' +
-' </div><div class="issue"> ' +
-' This is <a href="http://www.w3.org/2011/prov/track/issues/219">ISSUE-219</a>. ' +
-' </div><div class="anexample"> ' +
-' <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> ' +
-' </div><div class="note"> ' +
-' Usually, in programming languages, Literal are a notation for values. So, ' +
-' Literals should probably be moved to the serialization. Here, instead, we ' +
-' should define the types of values. Thoughts? ' +
-' </div><div class="anexample"> ' +
-' <p> ' +
-' The following examples respectively are the string "abc", the string ' +
-' "abc", the integer number 1, and the IRI "http://example.org/foo". ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-' "abc" ' +
-' 1 ' +
-' "http://example.org/foo" %% xsd:anyURI ' +
-'</pre> ' +
-' <p> ' +
-' The following example shows a literal of type <span class="name">xsd:QName</span> ' +
-' (see <a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#QName">QName</a> ' +
-' [[!XMLSCHEMA-2]]). 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" %% xsd:QName ' +
-'</pre> ' +
-' </div><div class="note"> ' +
-' It\'s a legacy of the charter that time is a top level section. Time is a ' +
-' specific kind of value, and should be folded into the "value" section. ' +
-' </div><div class="anexample"> ' +
-' <p> ' +
-' Revisiting the example of <a href="#section-example-a">Section 3.1</a>, ' +
-' we can now state that the report <span class="name">tr:WD-prov-dm-20111215</span> ' +
-' is a revision of the report <span class="name">tr:WD-prov-dm-20111018</span>, ' +
-' approved by agent <span class="name">w3:Consortium</span>. ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-'entity(tr:WD-prov-dm-20111215, [ prov:type="pr:RecsWD" %% xsd:QName ]) ' +
-'entity(tr:WD-prov-dm-20111018, [ prov:type="pr:RecsWD" %% xsd:QName ]) ' +
-'wasRevisionOf(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, w3:Consortium) ' +
-'</pre> ' +
-' </div><div class="anexample"> ' +
-' <p> ' +
-' Revisiting the example of <a href="#section-example-b">Section 3.2</a>, ' +
-' we can ascribe <span class="name">tr:WD-prov-dm-20111215</span> to some ' +
-' agents without having to make an activity explicit. ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-'agent(ex:Paolo, [ prov:type="Human" ]) ' +
-'agent(ex:Simon, [ prov:type="Human" ]) ' +
-'entity(tr:WD-prov-dm-20111215, [ prov:type="pr:RecsWD" %% xsd:QName ]) ' +
-'wasAttributedTo(tr:WD-prov-dm-20111215, ex:Paolo, [prov:role="editor"]) ' +
-'wasAttributedTo(tr:WD-prov-dm-20111215, ex:Simon, [prov:role="contributor"]) ' +
-'</pre> ' +
-' </div><div class="anexample"> ' +
-' <p> ' +
-' Consider two long running services, which we represent by activities ' +
-' <span class="name">s1</span> and <span class="name">s2</span>. ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-'activity(s1,,,[prov:type="service"]) ' +
-'activity(s2,,,[prov:type="service"]) ' +
-'wasInformedBy(s2,s1) ' +
-'</pre> ' +
-' The last line indicates that some entity was generated by <span class="name">s1</span> and used by <span class="name">s2</span>. ' +
-' </div><div class="anexample"> ' +
-' <p> ' +
-' Suppose activities <span class="name">a1</span> and <span class="name">a2</span> ' +
-' are computer processes that are executed on different hosts, and that ' +
-' <span class="name">a1</span> started <span class="name">a2</span>. This ' +
-' can be expressed as in the following fragment: ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-'activity(a1,t1,t2,[ex:host="server1.example.org",prov:type="workflow"]) ' +
-'activity(a2,t3,t4,[ex:host="server2.example.org",prov:type="subworkflow"]) ' +
-'wasStartedBy(a2,a1) ' +
-'</pre> ' +
-' </div><div class="anexample"> ' +
-' <p> ' +
-' We refer to the example of <a href="#section-example-a">Section 3.1</a>, ' +
-' and specifically to <a href="#prov-tech-report">Figure prov-tech-report</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> or to <span class="name">pr: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,pr:rec-advance) ' +
-'</pre> ' +
-' </div><div class="note"> ' +
-' I propose to delete the following, given that this document does not ' +
-' mention inferences. [LM] ' +
-' <p> ' +
-' Further considerations: ' +
-' </p> ' +
-' <ul> ' +
-' <li> ' +
-' Traceability is more general than <a href="#Derivation-Relation">Derivation</a>. ' +
-' This means that an assertion of the form: <span class="name">tracedTo(...,e2,e1,...)</span> ' +
-' can be inferred from an assertion of the form: <span class="name">wasDerivedFrom(e2,e1,..)</span>. ' +
-' The precise inference rules are specified in [REF]. ' +
-' </li> ' +
-' <li> ' +
-' Traceability is related to responsibility by way of inference rules ' +
-' that involve <a href="#term-responsibility">responsibility chain</a> ' +
-' and <a href="#term-Generation">generation</a> relations. These rules ' +
-' are specified in [REF] ' +
-' </li> ' +
-' </ul> ' +
-' </div><div class="note"> ' +
-' looking at the definition, there is something wrong. It\'s not true that e2 ' +
-' was neceaary for e1 (in the transitive case) and that e1 bears ' +
-' responsibility. [LM] ' +
-' </div><div class="note"> ' +
-' I find that quotation is really a misnomer. This expands into derivation ' +
-' with attribution, in what sense is the derived entity a "quote" of the ' +
-' original? . The agent that is quoted is particularly obscure. It does not ' +
-' seem to be involved in the quoting at all. Why isn\'t quoting an activity ' +
-' with the quoting agent associated with it? [PM] ' +
-' </div><div class="note"> ' +
-' Omitted as this is likely to be removed [PM] ' +
-' </div><div class="issue"> ' +
-' Drop this relation <a href="http://www.w3.org/2011/prov/track/issues/220">ISSUE-220</a>. ' +
-' </div><div class="note"> ' +
-' I find this relation confusing. Please add an example. I wouldn\'t really ' +
-' know when to use this. [PM] ' +
-' </div><div class="anexample"> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-' entity(c, [prov:type="EmptyCollection"]) // e is an empty collection ' +
-' entity(v1) ' +
-' entity(v2) ' +
-' entity(c1, [prov:type="Collection"]) ' +
-' entity(c2, [prov:type="Collection"]) ' +
-' ' +
-' CollectionAfterInsertion(c1, c, "k1", v1) // c1 = { ("k1",v1) } ' +
-' CollectionAfterInsertion(c2, c1, "k2", v2) // c2 = { ("k1",v1), ("k2", v2) } ' +
-' CollectionAfterRemoval(c3, c2, k1) // c3 = { ("k2",v2) } ' +
-'</pre> ' +
-' </div><div class="note"> ' +
-' I propose to call them afterInsertion instead of CollectionAfterInsertion ' +
-' (likewise, for deletion). What about attributes and optional Id? ' +
-' </div><div class="note"> ' +
-' Deleted further items. Some of them are constraints which belong to part ' +
-' 2. ' +
-' </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"> ' +
-' TO EDIT ' +
-' </div><div class="note"> ' +
-' TO EDIT ' +
-' </div><div class="buttonpanel"> ' +
-' <form action="#"> ' +
-' <p> ' +
-' <input id="hide-bnf" onclick="set_display_by_class(\'div\',\'grammar\',\'none\'); set_display_by_id(\'hide-bnf\',\'none\'); set_display_by_id(\'show-bnf\',\'\');" type="button" value="Hide Grammar" /> <input id="show-bnf" onclick="set_display_by_class(\'div\',\'grammar\',\'\'); set_display_by_id(\'hide-bnf\',\'\'); set_display_by_id(\'show-bnf\',\'none\');" style="display: none" type="button" value="Show Grammar" /> <input id="hide-examples" onclick="set_display_by_class(\'div\',\'anexample\',\'none\'); set_display_by_id(\'hide-examples\',\'none\'); set_display_by_id(\'show-examples\',\'\');" type="button" value="Hide Examples" /> <input id="show-examples" onclick="set_display_by_class(\'div\',\'anexample\',\'\'); set_display_by_id(\'hide-examples\',\'\'); set_display_by_id(\'show-examples\',\'none\');" style="display: none" type="button" value="Show Examples" /> ' +
-' </p> ' +
-' </form> ' +
-' </div><div class="note"> ' +
-' TODO ' +
-' </div><div class="note"> ' +
-' Tentative definition of destruction! ' +
-' </div><div class="anexample" id="a-report-example"> ' +
-' Different users may take different perspectives on a resource with a URL. ' +
-' For each perspective, an entity may be expressed: ' +
-' <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> ' +
-' </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="issue"> ' +
-' We need to refine the definition of entity and activity, and all the ' +
-' concepts in general. This is <a href="http://www.w3.org/2011/prov/track/issues/223">ISSUE-223</a>. ' +
-' </div><div class="note"> ' +
-' The last point is important and needs to be discussed by the Working ' +
-' Group. It indicates that within an account: ' +
-' <ul> ' +
-' <li> ' +
-' It is always possible to add new provenance descriptions, e.g. stating ' +
-' that a given entity was used by an activity. This is very much an open ' +
-' world assumption. ' +
-' </li> ' +
-' <li> ' +
-' It is not permitted to add new attributes to a given entity (a form of ' +
-' closed world assumption from the attributes point of view), though it ' +
-' is always permitted to create a new description for an entity, which ' +
-' is a "copy" of the original description extended with novel attributes ' +
-' (cf Example <a href="#merge-with-rename">merge-with-rename</a>). ' +
-' </li> ' +
-' </ul> ' +
-' </div><div class="note"> ' +
-' <p> ' +
-' Overview the kind of constraints ' +
-' </p> ' +
-' <ul> ' +
-' <li> ' +
-' Definitional constraints (<a href="#definitional-constraints">Section ' +
-' 4</a>) ' +
-' </li> ' +
-' <li> ' +
-' Account constraints (<a href="#account-constraints">Section 5</a>) ' +
-' </li> ' +
-' <li> ' +
-' Event ordering constraints (<a href="#interpretation">Section 6</a>) ' +
-' </li> ' +
-' <li> ' +
-' Structural constraints (<a href="#structural-constraints">Section 7</a>) ' +
-' </li> ' +
-' <li> ' +
-' Collection constraints (<a href="#collection-constraints">Section 8</a>) ' +
-' </li> ' +
-' </ul> ' +
-' </div><div class="note"> ' +
-' Proposing to remove the subsections in this section, since some have no ' +
-' constraints. ' +
-' </div><div class="issue"> ' +
-' There is still some confusion about what the identifiers really denote. ' +
-' For instance, are they entity identifiers or entity record identifiers. ' +
-' This is <a href="http://www.w3.org/2011/prov/track/issues/183">ISSUE-183</a>. ' +
-' An example and questions appear in <a href="http://www.w3.org/2011/prov/track/issues/215">ISSUE-215</a>. A ' +
-' related issued is also raised in <a href="http://www.w3.org/2011/prov/track/issues/145">ISSUE-145</a>. ' +
-' </div><div class="issue"> ' +
-' The characterization interval of an entity record is currently implicit. ' +
-' Making it explicit would allow us to define alternateOf and ' +
-' specializationOf more precisely. Beginning and end of characterization ' +
-' interval could be expressed by attributes (similarly to activities). How ' +
-' do we define the end of an entity? This is <a href="http://www.w3.org/2011/prov/track/issues/204">ISSUE-204</a>. ' +
-' </div><div class="interpretation-forward"> ' +
-' For the interpretation of an activity, see <a href="#start-precedes-end">start-precedes-end</a>. ' +
-' </div><div class="issue"> ' +
-' Shouldn\'t we allow for entities (not agent) to be associated with an ' +
-' activity? Should we drop the inference association-agent? <a href="http://www.w3.org/2011/prov/track/issues/203">ISSUE-203</a>. ' +
-' <p> ' +
-' One can assert an agent record or alternatively, one can infer an agent ' +
-' record by its association with an activity. ' +
-' </p> ' +
-' <div class="inference" id="association-agent"> ' +
-' <span class="conditional">If</span> the records <span class="name">entity(e,attrs)</span> ' +
-' and <span class="name">wasAssociatedWith(a,e)</span> hold for some ' +
-' identifiers <span class="name">a</span>, <span class="name">e</span>, ' +
-' and attribute-values <span class="name">attrs</span>, then the record ' +
-' <span class="name">agent(e,attrs)</span> also holds. ' +
-' </div> ' +
-' </div><div class="inference" id="association-agent"> ' +
-' <span class="conditional">If</span> the records <span class="name">entity(e,attrs)</span> ' +
-' and <span class="name">wasAssociatedWith(a,e)</span> hold for some ' +
-' identifiers <span class="name">a</span>, <span class="name">e</span>, ' +
-' and attribute-values <span class="name">attrs</span>, then the record ' +
-' <span class="name">agent(e,attrs)</span> also holds. ' +
-' </div><div class="interpretation-forward"> ' +
-' For the interpretation of a generation, see <a href="#generation-within-activity">generation-within-activity</a>. ' +
-' </div><div class="structural-forward"> ' +
-' See <a href="#generation-uniqueness">generation-uniqueness</a> for a ' +
-' structural constraint on generations. ' +
-' </div><div class="interpretation-forward"> ' +
-' For the interpretation of a usage, see <a href="#generation-precedes-usage">generation-precedes-usage</a> ' +
-' and <a href="#usage-within-activity">usage-within-activity</a>. ' +
-' </div><div class="interpretation-forward"> ' +
-' For the interpretation of an activity association, see <a href="#wasAssociatedWith-ordering">wasAssociatedWith-ordering</a>. ' +
-' </div><div class="issue"> ' +
-' The activity association record does not allow for a plan to be asserted ' +
-' without an agent. This seems over-restrictive. Discussed in the context of ' +
-' <a href="http://www.w3.org/2011/prov/track/issues/203">ISSUE-203</a>. ' +
-' </div><div class="issue"> ' +
-' Agents should not be inferred. WasAssociatedWith should also work with ' +
-' entities. This is <a href="http://www.w3.org/2011/prov/track/issues/206">ISSUE-206</a>. ' +
-' </div><div class="issue"> ' +
-' Should we define start/end records as representation of activity start/end ' +
-' events. Should time be associated with these events rather than with ' +
-' activities. This will be similar to what we do for entities. This is issue ' +
-' <a href="http://www.w3.org/2011/prov/track/issues/207">ISSUE-207</a>. ' +
-' </div><div class="inference" id="derivation-implications"> ' +
-' Given two entities denoted by <span class="name">e1</span> and <span class="name">e2</span>, <span class="conditional">if</span> the assertion ' +
-' <span class="name">wasDerivedFrom(e2, e1, a, g2, u1, attrs)</span> holds ' +
-' for some generation identified by <span class="name">g2</span>, and usage ' +
-' identified by <span class="name">u1</span>, then <span class="name">wasDerivedFrom(e2,e1,[prov:steps="single"] ' +
-' cup; attrs)</span> also holds.<br /> Given two entities denoted by <span class="name">e1</span> and <span class="name">e2</span>, <span class="conditional">if</span> the assertion <span class="name">wasDerivedFrom(e2, ' +
-' e1, [prov:steps="single"] cup; attrs)</span> holds, then <span class="name">wasDerivedFrom(e2,e1,attrs)</span> also holds.<br /> ' +
-' </div><div class="interpretation-forward"> ' +
-' For the interpretation of a derivation, see <a href="#derivation-usage-generation-ordering">derivation-usage-generation-ordering</a> ' +
-' and <a href="#derivation-generation-generation-ordering">derivation-generation-generation-ordering</a> ' +
-' </div><div class="inference" id="activity-introduction"> ' +
-' <span class="conditional">If</span> <span class="name">wasDerivedFrom(e2,e1)</span> ' +
-' holds, <span class="conditional">then</span> there exist an activity, with ' +
-' identifier <span class="name">a</span>, a usage identified by <span class="name">u</span>, and a generation identified by <span class="name">g</span> ' +
-' such that: ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-'activity(a,aAttrs) ' +
-'wasGeneratedBy(g,e2,a,gAttrs) ' +
-'used(u,a,e1,uAttrs) ' +
-'</pre> ' +
-' for sets of attribute-value pairs <span class="name">gAttrs</span>, <span class="name">uAttrs</span>, and <span class="name">aAttrs</span>. ' +
-' </div><div class="inference" id="derivation-time-elimination"> ' +
-' <span class="conditional">If</span> <span class="name">wasDerivedFrom(e2,e1,t,attrs)</span> ' +
-' holds, <span class="conditional">then</span> the following expressions ' +
-' also hold: <span class="name">wasDerivedFrom(e2,e1,attrs)</span> and <span class="name">wasGeneratedBy(e2,t)</span>. ' +
-' </div><div class="structural-forward"> ' +
-' See <a href="#derivation-use">derivation-use</a> for a structural ' +
-' constraint on derivations. ' +
-' </div><div class="issue"> ' +
-' Several points were raised about the attribute steps. Its name, its ' +
-' default value <a href="http://www.w3.org/2011/prov/track/issues/180">ISSUE-180</a>. ' +
-' <a href="http://www.w3.org/2011/prov/track/issues/179">ISSUE-179</a>. ' +
-' </div><div class="issue"> ' +
-' Emphasize the notion of \'affected by\' <a href="http://www.w3.org/2011/prov/track/issues/133">ISSUE-133</a>. ' +
-' </div><div class="issue"> ' +
-' Simplify derivation <a href="http://www.w3.org/2011/prov/track/issues/249">ISSUE-249</a>. ' +
-' </div><div class="note"> ' +
-' In order to further convey the intended meaning, the following properties ' +
-' are associated to these two relations. ' +
-' <ul> ' +
-' <li> ' +
-' <span class="name">specializationOf(e2,e1)</span> is <strong>transitive</strong>: ' +
-' <span class="name">specializationOf(e3,e2)</span> and <span class="name">specializationOf(e2,e1)</span> implies <span class="name">specializationOf(e3,e1)</span>. ' +
-' </li> ' +
-' <li> ' +
-' <span class="name">specializationOf(e2,e1)</span> is <strong>anti-symmetric</strong>: ' +
-' <span class="name">specializationOf(e2,e1)</span> implies that <span class="name">specializationOf(e1,e2)</span> does not hold. ' +
-' </li> ' +
-' <li> ' +
-' <span class="name">alternateOf(e2,e1)</span> is <strong>symmetric</strong>: ' +
-' <span class="name">alternateOf(e2,e1)</span> implies <span class="name">alternateOf(e1,e2)</span>. ' +
-' </li> ' +
-' </ul> ' +
-' There are proposals to make alternateOf a transitive property. This is ' +
-' still under discussion and the default is for alternateOf <strong>not</strong> ' +
-' to be transitive, and this is what the current text reflects. ' +
-' </div><div class="issue"> ' +
-' A discussion on alternative definition of these relations has not reached ' +
-' a satisfactory conclusion yet. This is <a href="http://www.w3.org/2011/prov/track/issues/29">ISSUE-29</a>. Also <a href="http://www.w3.org/2011/prov/track/issues/96">ISSUE-96</a>. ' +
-' </div><div class="inference" id="traceability-inference"> ' +
-' Given two identifiers <span class="name">e2</span> and <span class="name">e1</span> ' +
-' for entities, the following statements hold: ' +
-' <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">wasGeneratedBy(e2,a,gAttr) ' +
-' and wasAssociatedWith(a,e1)</span> hold, for some <span class="name">a</span> ' +
-' and <span class="name">gAttr</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">wasGeneratedBy(e2,a,gAttr)</span>, ' +
-' <span class="name">wasAssociatedWith(a,e)</span> and <span class="name">actedOnBehalfOf(e,e1)</span> ' +
-' hold, for some <span class="name">a</span>, <span class="name">e</span>, ' +
-' and <span class="name">gAttr</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">wasGeneratedBy(e2,a,gAttr) ' +
-' and wasStartedBy(a,e1,sAttr)</span> hold, for some <span class="name">a</span>, ' +
-' <span class="name">e</span>, and <span class="name">gAttr</span>, and ' +
-' <span class="name">sAttr</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">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="constraint" id="traceability-assertion"> ' +
-' <span class="conditional">If</span> <span class="name">tracedTo(r2,r1,attrs)</span> ' +
-' holds for two identifiers <span class="name">r2</span> and <span class="name">r1</span> identifying entities, and attribute-value pairs ' +
-' <span class="name">attrs</span>, <span class="conditional">then</span> ' +
-' there exist <span class="name">e<sup>0</sup></span>, <span class="name">e<sup>1</sup></span>, ' +
-' ..., <span class="name">e<sup>n</sup></span> for <span class="name">nge;1</span>, ' +
-' with <span class="name">e<sup>0</sup></span>=<span class="name">r2</span> ' +
-' and <span class="name">e<sup>n</sup></span>=<span class="name">r1</span>, ' +
-' and for any i such that <span class="name">0le;ile;n-1</span>, at least ' +
-' of the following statements holds: ' +
-' <ul> ' +
-' <li> ' +
-' <span class="name">wasDerivedFrom(e<sup>i</sup>,e<sup>i+1</sup>,a,g2,u1)</span> ' +
-' holds, for some <span class="name">a</span>, <span class="name">g2</span>, ' +
-' <span class="name">u1</span>, or ' +
-' </li> ' +
-' <li> ' +
-' <span class="name">wasDerivedFrom(e<sup>i</sup>,e<sup>i+1</sup>)</span> ' +
-' holds, or ' +
-' </li> ' +
-' <li> ' +
-' <span class="name">wasBasedOn(e<sup>i</sup>,e<sup>i+1</sup>)</span> ' +
-' holds, or ' +
-' </li> ' +
-' <li> ' +
-' <span class="name">wasGeneratedBy(e<sup>i</sup>,a,gAttr) and ' +
-' wasAssociatedWith(a,e<sup>i+1</sup>)</span> hold, for some <span class="name">a</span> and <span class="name">gAttr</span>, or ' +
-' </li> ' +
-' <li> ' +
-' <span class="name">wasGeneratedBy(e<sup>i</sup>,a,gAttr)</span>, <span class="name">wasAssociatedWith(a,e)</span> and <span class="name">actedOnBehalfOf(e,e<sup>i+1</sup>)</span> ' +
-' hold, for some <span class="name">a</span>, <span class="name">e</span> ' +
-' and <span class="name">gAttr</span>, or ' +
-' </li> ' +
-' <li> ' +
-' <span class="name">wasGeneratedBy(e<sup>i</sup>,a,gAttr) and ' +
-' wasStartedBy(a,e<sup>i+1</sup>,sAttr)</span> hold, for some <span class="name">a</span>, <span class="name">e</span>, and <span class="name">gAttr</span>, and <span class="name">sAttr</span>. ' +
-' </li> ' +
-' </ul> ' +
-' </div><div class="constraint" id="wasInformedBy-Definition"> ' +
-' 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> and some sets of ' +
-' attribute-value pairs <span class="name">attrs1</span> and <span class="name">attrs2</span>, such that <span class="name">wasGeneratedBy(e,a1,attrs1)</span> ' +
-' and <span class="name">used(a2,e,attrs2)</span> hold. ' +
-' </div><div class="interpretation-forward"> ' +
-' For the interpretation of an information flow ordering, see <a href="#wasInformedBy-ordering">wasInformedBy-ordering</a>. ' +
-' </div><div class="constraint" id="wasStartedBy"> ' +
-' Given two activities with identifiers <span class="name">a1</span> and ' +
-' <span class="name">a2</span>, <span class="name">wasStartedBy(a2,a1)</span> ' +
-' holds <span class="conditional">if and only if</span> there exist an ' +
-' entity with some identifier <span class="name">e</span> and some ' +
-' attributes <span class="name">gAttr</span> and <span class="name">sAttr</span>, ' +
-' such that <span class="name">wasGeneratedBy(e,a1,gAttr)</span> and <span class="name">wasStartedBy(a2,e,sAttr)</span> hold. ' +
-' </div><div class="interpretation-forward"> ' +
-' For the interpretation of a control flow ordering, see <a href="#wasStartedBy-ordering">wasStartedBy-ordering</a>. ' +
-' </div><div class="inference" id="wasRevision"> ' +
-' Given two identifiers <span class="name">old</span> and <span class="name">new</span> ' +
-' identifying two entities, and an identifier <span class="name">ag</span> ' +
-' identifying an agent, <span class="conditional">if</span> <span class="name">wasRevisionOf(new,old,ag)</span> holds, <span class="conditional">then</span> there exists an entity with some ' +
-' identifier <span class="name">e</span> and some attribute-values <span class="name">eAttrs</span>, <span class="name">dAttrs</span>, such that ' +
-' the following hold: ' +
-' <ul> ' +
-' <li> ' +
-' <span class="name">wasDerivedFrom(new,old,dAttrs)</span>; ' +
-' </li> ' +
-' <li> ' +
-' <span class="name">entity(e,eAttrs)</span>; ' +
-' </li> ' +
-' <li> ' +
-' <span class="name">specializationOf(new,e)</span>; ' +
-' </li> ' +
-' <li> ' +
-' <span class="name">specializationOf(old,e)</span>. ' +
-' </li> ' +
-' </ul> ' +
-' The derivation may be imprecise-1 or imprecise-n. ' +
-' </div><div class="inference" id="attribution-implication"> ' +
-' <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: ' +
-'<pre xml:space="preserve"> ' +
-'activity(a,t1,t2,attr1) ' +
-'wasGenerateBy(e,a) ' +
-'wasAssociatedWith(a,ag,attr2) ' +
-'</pre> ' +
-' for some sets of attribute-value pairs <span class="name">attr1</span> and ' +
-' <span class="name">attr2</span>, time <span class="name">t1</span>, and ' +
-' <span class="name">t2</span>. ' +
-' </div><div class="inference" id="quotation-implication"> ' +
-' <span class="conditional">If</span> <span class="name">wasQuotedFrom(e2,e1,ag2,ag1,attrs)</span> ' +
-' holds for some identifiers <span class="name">e2</span>, <span class="name">e1</span>, ' +
-' <span class="name">ag2</span>, <span class="name">ag1</span>, <span class="conditional">then</span> the following hold: ' +
-'<pre xml:space="preserve"> ' +
-'wasDerivedFrom(e2,e1) ' +
-'wasAttributedTo(e2,ag2) ' +
-'wasAttributedTo(e1,ag1) ' +
-'</pre> ' +
-' </div><div class="issue"> ' +
-' Drop this relation <a href="http://www.w3.org/2011/prov/track/issues/220">ISSUE-220</a>. ' +
-' </div><div class="anexample" id="example-two-entities-one-id"> ' +
-' <p> ' +
-' Let us consider two descriptions of a same entity, which we have taken ' +
-' from two different contexts (see example). 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" %% xsd:QName ]) ' +
-'</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 descriptions are about the same entity identified by <span class="name">tr:WD-prov-dm-20111215</span>, but they contain different ' +
-' attributes, reflecting the context in which they occur. ' +
-' </p> ' +
-' </div><div class="constraint" id="unique-description-in-account"> ' +
-' <p> ' +
-' Given an entity identifier <span class="name">e</span>, there is at most ' +
-' one description <span class="name">entity(e,av)</span> occurring in a ' +
-' given account, where <span class="name">av</span> is some set of ' +
-' attribute-values. Other descriptions of the same entity can exist in ' +
-' different accounts. ' +
-' </p> ' +
-' <p> ' +
-' This constraint similarly applies to all other types of identifiable ' +
-' entities and relations. ' +
-' </p> ' +
-' </div><div class="structural-forward"> ' +
-' See Section <a href="#structural-constraints">structural-constraints</a> ' +
-' for a structural constraint on accounts ' +
-' </div><div class="anexample" id="merge-with-rename"> ' +
-' <p> ' +
-' We now reconsider the same two descriptions 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" %% xsd:QName ]) ' +
-'entity(ex:alternate-20111215, [ prov:type="document", ex:version="2" ]) ' +
-'alternateOf(tr:WD-prov-dm-20111215,ex:alternate-20111215) ' +
-'alternateOf(ex:alternate-20111215,tr:WD-prov-dm-20111215) ' +
-'</pre> ' +
-' </div><div class="interpretation" id="start-precedes-end"> ' +
-' The following ordering constraint holds for any activity: the <a title="activity start event">start event</a> <a>precedes</a> the <a title="activity end event">end event</a>. ' +
-' </div><div class="interpretation" id="generation-precedes-usage"> ' +
-' For any entity, the following ordering constraint holds: the <a title="entity generation event">generation</a> of an entity always <a>precedes</a> ' +
-' any of its <a title="entity usage event">usages</a>. ' +
-' </div><div class="interpretation" id="usage-within-activity"> ' +
-' Given an activity with identifier <span class="name">a</span>, an entity ' +
-' with identifier <span class="name">e</span>, a set of attribute-value ' +
-' pairs <span class="name">attrs</span>, and optional time <span class="name">t</span>, ' +
-' <span class="conditional">if</span> assertion <span class="name">used(a,e,attrs)</span> ' +
-' or <span class="name">used(a,e,attrs,t)</span> holds, <span class="conditional">then</span> the following ordering constraint holds: ' +
-' the <a title="entity usage event">usage</a> of the entity denoted by <span class="name">e</span> <a>precedes</a> the <a title="activity end event">end</a> ' +
-' of activity denoted by <span class="name">a</span> and <a>follows</a> its ' +
-' <a title="activity start event">start</a>. ' +
-' </div><div class="interpretation" id="generation-within-activity"> ' +
-' Given an activity with identifier <span class="name">a</span>, an entity ' +
-' with identifier <span class="name">e</span>, a set of attribute-value ' +
-' pairs <span class="name">attrs</span>, and optional time <span class="name">t</span>, ' +
-' <span class="conditional">if</span> <span class="name">wasGeneratedBy(e,a,attrs)</span> ' +
-' or <span class="name">wasGeneratedBy(e,a,attrs,t)</span> holds, <span class="conditional">then</span> the following ordering constraint also ' +
-' holds: the <a title="entity generation event">generation</a> of the entity ' +
-' denoted by <span class="name">e</span> <a>precedes</a> the <a title="activity end event">end</a> of activity <span class="name">a</span> ' +
-' and <a>follows</a> the <a title="activity start event">start</a> of <span class="name">a</span>. ' +
-' </div><div class="interpretation" id="derivation-usage-generation-ordering"> ' +
-' Given an activity with identifier <span class="name">a</span>, entities ' +
-' with identifier <span class="name">e1</span> and <span class="name">e2</span>, ' +
-' a generation identified by <span class="name">g2</span>, and a usage ' +
-' identified by <span class="name">u1</span>, <span class="conditional">if</span> ' +
-' <span class="name">wasDerivedFrom(e2,e1,a,g2,u1,attrs)</span> or <span class="name">wasDerivedFrom(e2,e1,[prov:steps="single"] cup; attrs)</span> ' +
-' holds, <span class="conditional">then</span> the following ordering ' +
-' constraint holds: the <a title="entity usage event">usage</a> of entity ' +
-' denoted by <span class="name">e1</span> <a>precedes</a> the <a title="entity generation event">generation</a> of the entity denoted by ' +
-' <span class="name">e2</span>. ' +
-' </div><div class="interpretation" id="derivation-generation-generation-ordering"> ' +
-' Given two 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,[prov:steps="any"] cup; attrs)</span> ' +
-' holds, <span class="conditional">then</span> the following ordering ' +
-' constraint holds: the <a title="entity generation event">generation event</a> ' +
-' of the entity denoted by <span class="name">e1</span> <a>precedes</a> the ' +
-' <a title="entity generation event">generation event</a> of the entity ' +
-' denoted by <span class="name">e2</span>. ' +
-' </div><div class="interpretation" id="wasInformedBy-ordering"> ' +
-' Given two activities denoted by <span class="name">a1</span> and <span class="name">a2</span>, <span class="conditional">if</span> <span class="name">wasInformedBy(a2,a1)</span> holds, <span class="conditional">then</span> ' +
-' the following ordering constraint holds: the <a title="activity start event">start event</a> of the activity denoted by ' +
-' <span class="name">a1</span> <a>precedes</a> the <a title="activity end event">end event</a> of the activity denoted by <span class="name">a2</span>. ' +
-' </div><div class="interpretation" id="wasStartedBy-ordering"> ' +
-' Given two activities denoted by <span class="name">a1</span> and <span class="name">a2</span>, <span class="conditional">if</span> <span class="name">wasStartedBy(a2,a1)</span> holds, <span class="conditional">then</span> ' +
-' the following ordering constraint holds: the <a title="activity start event">start</a> event of the activity denoted by ' +
-' <span class="name">a1</span> <a>precedes</a> the <a title="activity start event">start event</a> of the activity denoted by ' +
-' <span class="name">a2</span>. ' +
-' </div><div class="issue"> ' +
-' In the following, we assume that we can talk about the end of an entity ' +
-' (or agent) For this, we use the term \'destruction\' This is <a href="http://www.w3.org/2011/prov/track/issues/204">ISSUE-204</a>. ' +
-' </div><div class="interpretation" id="wasStartedByAgent-ordering"> ' +
-' Given an activity denoted by <span class="name">a</span> and an agent ' +
-' denoted by <span class="name">ag</span>, <span class="conditional">if</span> ' +
-' <span class="name">wasStartedBy(a,ag)</span> holds, <span class="conditional">then</span> the following ordering constraints hold: ' +
-' the <a title="activity start event">start</a> event of the activity ' +
-' denoted by <span class="name">a</span> <a>follows</a> the <a title="entity generation event">generation event</a> for agent denoted by ' +
-' <span class="name">ag</span>, and <a>precedes</a> the destruction event of ' +
-' the same agent. ' +
-' </div><div class="interpretation" id="wasAssociatedWith-ordering"> ' +
-' Given an activity denoted by <span class="name">a</span> and an agent ' +
-' denoted by <span class="name">ag</span>, <span class="conditional">if</span> ' +
-' <span class="name">wasAssociatedWith(a,ag)</span> holds, <span class="conditional">then</span> the following ordering constraints hold: ' +
-' the <a title="activity start event">start</a> event of the activity ' +
-' denoted by <span class="name">a</span> precedes the destruction event of ' +
-' the agent denoted by <span class="name">ag</span>, and the <a title="entity generation event">generation event</a> for agent denoted by ' +
-' <span class="name">ag</span> <a>precedes</a> the activity <a title="activity end event">end</a> event. ' +
-' </div><div class="issue"> ' +
-' For completeness, we should define ordering constraint for ' +
-' wasAssociatedWith and actedOnBehalfOf. For wasAssociatedWith(a,ag), it ' +
-' feels that ag must have some overlap with a. For ' +
-' actedOnBehalfOf(ag1,ag2,a), it seem that ag2 should have existed before ' +
-' the overlap between ag1 and a. This is <a href="http://www.w3.org/2011/prov/track/issues/221">ISSUE-221</a>. ' +
-' </div><div class="issue"> ' +
-' It is suggested that a stronger name for wasAssociatedWith should be ' +
-' adopted. This is <a href="http://www.w3.org/2011/prov/track/issues/182">ISSUE-182</a>. ' +
-' </div><div class="anexample"> ' +
-' <p> ' +
-' In the following assertions, 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 assertions 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="constraint" id="generation-uniqueness"> ' +
-' 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>, ' +
-' 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,attrs1)</span> and <span class="name">wasGeneratedBy(id2,e,a2,attrs2)</span> exist in the scope of ' +
-' a given account, <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> ' +
-' and <span class="name">attrs1</span>=<span class="name">attrs2</span>. ' +
-' </div><div class="inference" id="derivation-use"> ' +
-' <p> ' +
-' Given an activity with identifier <span class="name">a</span>, entities ' +
-' denoted by <span class="name">e1</span> and <span class="name">e2</span>, ' +
-' and a set of attribute-value pairs <span class="name">attrs2</span>, ' +
-' <span class="conditional">if</span> <span class="name">wasDerivedFrom(e2,e1, ' +
-' [prov:steps="single"])</span> and <span class="name">wasGeneratedBy(e2,a,attrs2)</span> ' +
-' hold, <span class="conditional">then</span> <span class="name">used(a,e1,attrs1)</span> ' +
-' also holds for some set of attribute-value pairs <span class="name">attrs1</span>. ' +
-' </p> ' +
-' </div><div class="note"> ' +
-' Can the semantics characterize better what can be achieved with ' +
-' structurally well-formed accounts? ' +
-' </div><div class="note" id="note-related-to-issue-105"> ' +
-' Satya discussed the example of a sculpture, whose hand and leg are ' +
-' sculpted independently by two different sculptors. He suggested that the ' +
-' sculpture is generated by two distinct activities. This section explains ' +
-' that it is not the case. The example can be formulated as follows. ' +
-' <p> ' +
-' <a href="examples/sculpture.prov-asn">Sculpture example in ASN</a> ' +
-' </p> ' +
-' <p> ' +
-' <a href="examples/sculpture.png">Sculpture example image</a> ' +
-' </p> ' +
-' <p> ' +
-' We see that ex:s_3 (the sculpture in its final state) was derived from ' +
-' ex:l_2 (containment) which was generated by ex:a2. However, ex:s_3 is ' +
-' not directly generated by ex:a2. We may want to consider an abbreviation ' +
-' for this: wasGeneratedBy*(ex:s_3,ex:a2). ' +
-' </p> ' +
-' </div><div class="note"> ' +
-' Raw material taken from prov-dm3. Some further text required. ' +
-' </div><div class="constraint" id="collection-parallel-insertions"> ' +
-' <p> ' +
-' One can have multiple assertions regarding the state of a collection ' +
-' following a <em>set</em> of insertions, for example: ' +
-' </p> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-'CollectionAfterInsertion(c2, c1, k1, v1) ' +
-'CollectionAfterInsertion(c2, c1, k2, v2) ' +
-'... ' +
-'</pre> ' +
-' <p> ' +
-' This is interpreted as <em>" <span class="name">c2</span> is the state ' +
-' that results from inserting <span class="name">(k1, v1)</span>, <span class="name">(k2, v2)</span> etc. into <span class="name">c1</span>"</em> ' +
-' </p> ' +
-' </div><div class="note"> ' +
-' Shouldn\'t we have the same for deletion, and combination of insertion and ' +
-' deletion? ' +
-' </div><div class="constraint" id="collection-branching-derivations"> ' +
-' It is possible to have multiple derivations from a single root collection, ' +
-' as shown in the following example. ' +
-' <div class="anexample"> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-' entity(c, [prov:type="EmptyCollection"]) // e is an empty collection ' +
-' entity(v1) ' +
-' entity(v2) ' +
-' entity(v3) ' +
-' entity(c1, [prov:type="Collection"]) ' +
-' entity(c2, [prov:type="Collection"]) ' +
-' entity(c3, [prov:type="Collection"]) ' +
-' ' +
-' CollectionAfterInsertion(c1, c, k1, v1) // c1 = { (k1,v1) } ' +
-' CollectionAfterInsertion(c2, c, k2, v2) // c2 = { (k2 v2) } ' +
-' CollectionAfterInsertion(c3, c1, k3,v3) // c3 = { (k1,v1), (k3,v3) } ' +
-'</pre> ' +
-' </div> ' +
-' </div><div class="anexample"> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-' entity(c, [prov:type="EmptyCollection"]) // e is an empty collection ' +
-' entity(v1) ' +
-' entity(v2) ' +
-' entity(v3) ' +
-' entity(c1, [prov:type="Collection"]) ' +
-' entity(c2, [prov:type="Collection"]) ' +
-' entity(c3, [prov:type="Collection"]) ' +
-' ' +
-' CollectionAfterInsertion(c1, c, k1, v1) // c1 = { (k1,v1) } ' +
-' CollectionAfterInsertion(c2, c, k2, v2) // c2 = { (k2 v2) } ' +
-' CollectionAfterInsertion(c3, c1, k3,v3) // c3 = { (k1,v1), (k3,v3) } ' +
-'</pre> ' +
-' </div><div class="constraint" id="collection-unique-ancestor"> ' +
-' Given the pair of assertions: ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-'CollectionAfterInsertion(c, c1, k1, v1) ' +
-'CollectionAfterInsertion(c, c2, k2, v2) ' +
-'</pre> ' +
-' it follows that <span class="name">c1==c2</span>. ' +
-' </div><div class="note"> ' +
-' Original text stated it follows that <span class="name">c1==c2, k1==k2, ' +
-' v1==v2</span>, because one cannot have two different derivations for the ' +
-' same final collection state. This is incompatible with parallel insertion ' +
-' constraint. ' +
-' </div><div class="note"> ' +
-' Shouldn\'t we have the same for deletion, and combination of insertion and ' +
-' deletion? ' +
-' </div><div class="constraint" id="collection-unique-value-for-key"> ' +
-' Given the following set of insertions: ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-'CollectionAfterInsertion(c1, c, k, v1) ' +
-'CollectionAfterInsertion(c1, c, k, v2) ' +
-'</pre> ' +
-' it follows that <span class="name">v1==v2</span>. ' +
-' </div><div class="anexample"> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-' entity(c, [prov:type="collection"]) // e is a collection, possibly not empty ' +
-' entity(v1) ' +
-' entity(v2, [prov:type="collection"]) // v2 is a collection ' +
-' ' +
-' CollectionAfterInsertion(c1, c, k1, v1) // c1 <em>includes</em> { (k1,v1) } but may contain additional unknown pairs ' +
-' CollectionAfterInsertion(c2, c1, k2, v2) // c2 includes { (k1,v1), (k2 v2) } where v2 is a collection with unknown state ' +
-'</pre> ' +
-' </div><div class="anexample"> ' +
-'<pre class="codeexample" xml:space="preserve"> ' +
-' entity(c, [prov:type="emptyCollection"]) // e is an empty collection ' +
-' entity(v1) ' +
-' entity(v2) ' +
-' ' +
-' CollectionAfterInsertion(c1, c, k1, v1) // c1 = { (k1,v1) } ' +
-' wasDerivedFrom(c2, c1) // the asserted knows that c2 is somehow derived from c1, but cannot assert the precise sequence of updates ' +
-' CollectionAfterInsertion(c3, c2, k2, v2) ' +
-'</pre> ' +
-' <p> ' +
-' Here <span class="name">c3</span> includes <span class="name">{ (k2 v2) ' +
-' }</span> but the earlier "gap" leaves uncertainty regarding <span class="name">(k1,v1)</span> (it may have been removed) or any other pair ' +
-' that may have been added as part of the derivation activities. ' +
-' </p> ' +
-' </div><div class="note"> ' +
-' Purely tentative ' +
-' </div><div class="note"> ' +
-' What is the meaning here? Is it any different? Are stating anything ' +
-' about newer version of tr:prov-dm that occur after ' +
-' 2011-12-15T12:00:00? ' +
-' </div><div class="note"> ' +
-' What is the meaning here? that only the version that was created by ' +
-' this event is attributed to ex:Simon, but not previous ones. This ' +
-' means that it is not specfied whether he was an author in anterior ' +
-' versions. ' +
-' </div><div class="note"> ' +
-' Speculative, since we have not defined the destruction event (yet?. ' +
-' What is the meaning here? that only the versions that existed during ' +
-' this characterization interval were attributed to ex:Simon. ' +
-' </div><span class="glossary" id="glossary-account"> An <dfn>account</dfn> is a ' +
-' named bundle of provenance descriptions. </span><span class="glossary" id="glossary-entity"> <dfn id="concept-accountEntity">AccountEntity</dfn> is the category of entities ' +
-' that are accounts, i.e. named bundles of provenance descriptions. </span><span class="conditional">If</span><span class="name">entity(e,attrs)</span><span class="name">wasAssociatedWith(a,e)</span><span class="name">a</span><span class="name">e</span><span class="name">attrs</span><span class="name">agent(e,attrs)</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">if</span><span class="name">wasDerivedFrom(e2, e1, a, g2, u1, attrs)</span><span class="name">g2</span><span class="name">u1</span><span class="name">wasDerivedFrom(e2,e1,[prov:steps="single"] ' +
-' cup; attrs)</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">if</span><span class="name">wasDerivedFrom(e2, ' +
-' e1, [prov:steps="single"] cup; attrs)</span><span class="name">wasDerivedFrom(e2,e1,attrs)</span><span class="conditional">If</span><span class="name">wasDerivedFrom(e2,e1)</span><span class="conditional">then</span><span class="name">a</span><span class="name">u</span><span class="name">g</span><span class="name">gAttrs</span><span class="name">uAttrs</span><span class="name">aAttrs</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="conditional">If</span><span class="name">wasDerivedFrom(e2,e1,t,attrs)</span><span class="conditional">then</span><span class="name">wasDerivedFrom(e2,e1,attrs)</span><span class="name">wasGeneratedBy(e2,t)</span><span class="name">specializationOf(e2,e1)</span><span class="name">specializationOf(e3,e2)</span><span class="name">specializationOf(e2,e1)</span><span class="name">specializationOf(e3,e1)</span><span class="name">specializationOf(e2,e1)</span><span class="name">specializationOf(e2,e1)</span><span class="name">specializationOf(e1,e2)</span><span class="name">alternateOf(e2,e1)</span><span class="name">alternateOf(e2,e1)</span><span class="name">alternateOf(e1,e2)</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">wasGeneratedBy(e2,a,gAttr) ' +
-' and wasAssociatedWith(a,e1)</span><span class="name">a</span><span class="name">gAttr</span><span class="conditional">then</span><span class="name">tracedTo(e2,e1)</span><span class="conditional">If</span><span class="name">wasGeneratedBy(e2,a,gAttr)</span><span class="name">wasAssociatedWith(a,e)</span><span class="name">actedOnBehalfOf(e,e1)</span><span class="name">a</span><span class="name">e</span><span class="name">gAttr</span><span class="conditional">then</span><span class="name">tracedTo(e2,e1)</span><span class="conditional">If</span><span class="name">wasGeneratedBy(e2,a,gAttr) ' +
-' and wasStartedBy(a,e1,sAttr)</span><span class="name">a</span><span class="name">e</span><span class="name">gAttr</span><span class="name">sAttr</span><span class="conditional">then</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="conditional">If</span><span class="name">tracedTo(r2,r1,attrs)</span><span class="name">r2</span><span class="name">r1</span><span class="name">attrs</span><span class="conditional">then</span><span class="name">e<sup>0</sup></span><span class="name">e<sup>1</sup></span><span class="name">e<sup>n</sup></span><span class="name">nge;1</span><span class="name">e<sup>0</sup></span><span class="name">r2</span><span class="name">e<sup>n</sup></span><span class="name">r1</span><span class="name">0le;ile;n-1</span><span class="name">wasDerivedFrom(e<sup>i</sup>,e<sup>i+1</sup>,a,g2,u1)</span><span class="name">a</span><span class="name">g2</span><span class="name">u1</span><span class="name">wasDerivedFrom(e<sup>i</sup>,e<sup>i+1</sup>)</span><span class="name">wasBasedOn(e<sup>i</sup>,e<sup>i+1</sup>)</span><span class="name">wasGeneratedBy(e<sup>i</sup>,a,gAttr) and ' +
-' wasAssociatedWith(a,e<sup>i+1</sup>)</span><span class="name">a</span><span class="name">gAttr</span><span class="name">wasGeneratedBy(e<sup>i</sup>,a,gAttr)</span><span class="name">wasAssociatedWith(a,e)</span><span class="name">actedOnBehalfOf(e,e<sup>i+1</sup>)</span><span class="name">a</span><span class="name">e</span><span class="name">gAttr</span><span class="name">wasGeneratedBy(e<sup>i</sup>,a,gAttr) and ' +
-' wasStartedBy(a,e<sup>i+1</sup>,sAttr)</span><span class="name">a</span><span class="name">e</span><span class="name">gAttr</span><span class="name">sAttr</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">attrs1</span><span class="name">attrs2</span><span class="name">wasGeneratedBy(e,a1,attrs1)</span><span class="name">used(a2,e,attrs2)</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">a1</span><span class="name">a1</span><span class="name">a2</span><span class="name">wasStartedBy(a2,a1)</span><span class="conditional">if and only if</span><span class="name">e</span><span class="name">gAttr</span><span class="name">sAttr</span><span class="name">wasGeneratedBy(e,a1,gAttr)</span><span class="name">wasStartedBy(a2,e,sAttr)</span><span class="name">wasStartedBy</span><span class="name">wasStartedBy</span><span class="name">wasStartedBy</span><span class="name">old</span><span class="name">new</span><span class="name">ag</span><span class="conditional">if</span><span class="name">wasRevisionOf(new,old,ag)</span><span class="conditional">then</span><span class="name">e</span><span class="name">eAttrs</span><span class="name">dAttrs</span><span class="name">wasDerivedFrom(new,old,dAttrs)</span><span class="name">entity(e,eAttrs)</span><span class="name">specializationOf(new,e)</span><span class="name">specializationOf(old,e)</span><span class="name">wasRevisionOf</span><span class="name">wasDerivedFrom</span><span class="name">e2</span><span class="name">e1</span><span class="name">wasDerivedFrom(e2,e1)</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">attr1</span><span class="name">attr2</span><span class="name">t1</span><span class="name">t2</span><span class="conditional">If</span><span class="name">wasQuotedFrom(e2,e1,ag2,ag1,attrs)</span><span class="name">e2</span><span class="name">e1</span><span class="name">ag2</span><span class="name">ag1</span><span class="conditional">then</span><span class="name">w3:Consortium</span><span class="name">tr:WD-prov-dm-20111215</span><span class="name">e</span><span class="name">entity(e,av)</span><span class="name">av</span><span class="name">alternateOf</span><span class="name">a</span><span class="name">e</span><span class="name">attrs</span><span class="name">t</span><span class="conditional">if</span><span class="name">used(a,e,attrs)</span><span class="name">used(a,e,attrs,t)</span><span class="conditional">then</span><span class="name">e</span><span class="name">a</span><span class="name">a</span><span class="name">e</span><span class="name">attrs</span><span class="name">t</span><span class="conditional">if</span><span class="name">wasGeneratedBy(e,a,attrs)</span><span class="name">wasGeneratedBy(e,a,attrs,t)</span><span class="conditional">then</span><span class="name">e</span><span class="name">a</span><span class="name">a</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="name">a</span><span class="name">e1</span><span class="name">e2</span><span class="name">g2</span><span class="name">u1</span><span class="conditional">if</span><span class="name">wasDerivedFrom(e2,e1,a,g2,u1,attrs)</span><span class="name">wasDerivedFrom(e2,e1,[prov:steps="single"] cup; attrs)</span><span class="conditional">then</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:steps="any"] cup; attrs)</span><span class="conditional">then</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">a1</span><span class="name">a2</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="conditional">then</span><span class="name">a1</span><span class="name">a2</span><span class="name">a1</span><span class="name">a2</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">wasStartedBy(a2,a1)</span><span class="conditional">then</span><span class="name">a1</span><span class="name">a2</span><span class="name">a</span><span class="name">ag</span><span class="conditional">if</span><span class="name">wasStartedBy(a,ag)</span><span class="conditional">then</span><span class="name">a</span><span class="name">ag</span><span class="name">a</span><span class="name">ag</span><span class="conditional">if</span><span class="name">wasAssociatedWith(a,ag)</span><span class="conditional">then</span><span class="name">a</span><span class="name">ag</span><span class="name">ag</span><span class="name">g1</span><span class="name">g2</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">e</span><span class="name">a1</span><span class="name">a2</span><span class="name">attrs1</span><span class="name">attrs2</span><span class="conditional">if</span><span class="name">wasGeneratedBy(id1,e,a1,attrs1)</span><span class="name">wasGeneratedBy(id2,e,a2,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">attrs1</span><span class="name">attrs2</span><span class="name">a</span><span class="name">e1</span><span class="name">e2</span><span class="name">attrs2</span><span class="conditional">if</span><span class="name">wasDerivedFrom(e2,e1, ' +
-' [prov:steps="single"])</span><span class="name">wasGeneratedBy(e2,a,attrs2)</span><span class="conditional">then</span><span class="name">used(a,e1,attrs1)</span><span class="name">attrs1</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,attrs2)</span><span class="name">e1</span><span class="name">e2</span><span class="name">c2</span><span class="name">(k1, v1)</span><span class="name">(k2, v2)</span><span class="name">c1</span><span class="name">c1==c2</span><span class="name">c1==c2, k1==k2, ' +
-' v1==v2</span><span class="name">v1==v2</span><span class="name">c2</span><span class="name">c3</span><span class="name">{ (k2 v2) ' +
-' }</span><span class="name">(k1,v1)</span><span class="name">tr:prov-dm</span><span class="name">tr:prov-dm</span><span class="name">tr:WD-prov-dm-20111215</span><span class="name">tr:WD-prov-dm-20111018</span><span class="name">w3:Consortium</span><span class="name">tr:prov-dm</span><span class="name">w3:Consortium</span><span class="name">ex:acc1</span><span class="name">ex:acc1</span><span class="name">tr:prov-dm</span><span class="name">tr:prov-dm</span></html> ' +
+'<html> \n' +
+'<div class="note"> \n' +
+' TO EDIT \n' +
+' </div><div class="note"> \n' +
+' TO EDIT \n' +
+' </div><div class="buttonpanel"> \n' +
+' <form action="#"> \n' +
+' <p> \n' +
+' <input id="hide-asn" onclick="set_display_by_class(\'div\',\'withAsn\',\'none\');set_display_by_class(\'span\',\'withAsn\',\'none\'); set_display_by_id(\'hide-asn\',\'none\'); set_display_by_id(\'show-asn\',\'\');" type="button" value="Hide ASN" /> <input id="show-asn" onclick="set_display_by_class(\'div\',\'withAsn\',\'\'); set_display_by_class(\'span\',\'withAsn\',\'\'); set_display_by_id(\'hide-asn\',\'\'); set_display_by_id(\'show-asn\',\'none\');" style="display: none" type="button" value="Show ASN" /> \n' +
+' </p> \n' +
+' </form> \n' +
+' </div><div class="issue"> \n' +
+' There is a desire to use a single namespace that all specifications of the \n' +
+' PROV family can share to refer to common provenance terms. This is <a href="http://www.w3.org/2011/prov/track/issues/224">ISSUE-224</a>. \n' +
+' </div><div class="glossary-ref"> \n' +
+' </div><div class="anexample" id="entity-example"> \n' +
+' <p> \n' +
+' An entity may be the document at URI <a href="http://www.w3.org/TR/prov-dm/">http://www.w3.org/TR/prov-dm/</a>, \n' +
+' a file in a file system, a car or an idea. \n' +
+' </p> \n' +
+' </div><div class="anexample" 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, or driving a \n' +
+' car 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, and editing a file. \n' +
+' </p> \n' +
+' </div><div class="anexample" 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, and at the same time one \n' +
+' can describe its provenance, including for instance the vendor and the \n' +
+' version history. \n' +
+' </p> \n' +
+' </div><div class="glossary-ref"> \n' +
+' </div><div class="glossary-ref"> \n' +
+' </div><div class="anexample" id="generation-example"> \n' +
+' Examples of generation are the completed creation of a file by a program, \n' +
+' the completed creation of a linked data set, and the completed publication \n' +
+' of a new version of a document. \n' +
+' </div><div class="anexample" id="usage-example"> \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 a \n' +
+' configuration file, or the point at which an ingredient, such as eggs, is \n' +
+' being added in a baking activity. Usage may entirely consume an entity \n' +
+' (e.g. eggs are no longer available after being added to the mix); \n' +
+' alternatively, a 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' +
+' </div><div class="anexample" 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" id="plan-example"> \n' +
+' <p> \n' +
+' A plan can be a blog post tutorial for how to set up a web server, a \n' +
+' list of instructions for a micro-processor execution, a cook\'s written \n' +
+' recipe for a chocolate cake, or a workflow for a scientific experiment. \n' +
+' </p> \n' +
+' </div><div class="anexample" 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 class="anexample" id="account-example"> \n' +
+' <p> \n' +
+' Having found a resource, a user may want to retrieve its provenance. For \n' +
+' users to decide whether they can place their trust in that resource, \n' +
+' they may want to analyze its provenance, but also determine who the \n' +
+' provenance is attributed to, and when it was generated. Hence, from the \n' +
+' PROV-DM data model, the provenance is regarded as an entity, an \n' +
+' AccountEntity, for which provenance can be sought. \n' +
+' </p> \n' +
+' </div><div class="anexample" id="software-agents-example"> \n' +
+' <p> \n' +
+' Even software agents can be assigned some responsibility for the effects \n' +
+' they have in the world, so for example if one is using a Text Editor and \n' +
+' one\'s laptop crashes, then one would say that the Text Editor was \n' +
+' responsible for crashing the laptop. If one invokes a service to buy a \n' +
+' book, that service can be considered responsible for drawing funds from \n' +
+' one\'s bank to make the purchase (the company that runs the service and \n' +
+' the web site would also be responsible, but the point here is that we \n' +
+' assign some measure of responsibility to software as well). \n' +
+' </p> \n' +
+' </div><div class="anexample" id="association-example"> \n' +
+' <p> \n' +
+' Examples of association between an activity and 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' +
+' <li> \n' +
+' an XSLT transform initiated by a user; \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="anexample" id="responsibilityChain-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, and it may not matter which student published a web \n' +
+' page but it matters a lot that the department told the student to put up \n' +
+' the web page. \n' +
+' </p> \n' +
+' </div><div class="note"> \n' +
+' TODO: short text required to explain the overview diagram \n' +
+' </div><div class="note"> \n' +
+' Illustration to be hand crafted instead of being generated automatically. \n' +
+' It\'s important to adopt a common style for all illustrations across all \n' +
+' PROV documents. \n' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-entity"> \n' +
+' An entity<span class="withAsn">, written <span class="name">entity(id, [ \n' +
+' attr1=val1, ...])</span> in PROV-ASN, </span> contains: \n' +
+' <ul> \n' +
+' <li> \n' +
+' <em>id</em>: an identifier identifying an entity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>attributes</em>: an OPTIONAL set of attribute-value pairs \n' +
+' representing this entity\'s situation in the world. \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="anexample"> \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 attributes <span class="name">ex:version</span> \n' +
+' is application specific, whereas the attribute <span class="name">type</span> \n' +
+' is reserved in the PROV-DM namespace. \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-DM \n' +
+' namespace. --> \n' +
+' </div><div class="issue"> \n' +
+' The characterization interval of an entity is currently implicit. Making \n' +
+' it explicit would allow us to define wasComplementOf more precisely. \n' +
+' Beginning and end of characterization interval could be expressed by \n' +
+' attributes (similarly to activities). How do we define the end of an \n' +
+' entity? This is <a href="http://www.w3.org/2011/prov/track/issues/204">ISSUE-204</a>. \n' +
+' </div><div class="issue"> \n' +
+' There is still some confusion about what the identifiers really denote. \n' +
+' For instance, are they entity identifiers or entity record identifiers. \n' +
+' This is <a href="http://www.w3.org/2011/prov/track/issues/183">ISSUE-183</a>. \n' +
+' An example and questions appear in <a href="http://www.w3.org/2011/prov/track/issues/215">ISSUE-215</a>. A \n' +
+' related issued is also raised in <a href="http://www.w3.org/2011/prov/track/issues/145">ISSUE-145</a>. \n' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-activity"> \n' +
+' An activity<span class="withAsn">, written <span class="name">activity(id, \n' +
+' st, et, [ attr1=val1, ...])</span> in PROV-ASN,</span> contains: \n' +
+' <ul> \n' +
+' <li> \n' +
+' <em>id</em>: an identifier identifying an activity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>startTime</em>: an OPTIONAL time for the start of the activity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>endTime</em>: an OPTIONAL time for the end of the activity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>attributes</em>: an OPTIONAL set of attribute-value pairs for this \n' +
+' activity. \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="anexample"> \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" %% xsd:QName]) \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. \n' +
+' </p> \n' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-agent"> \n' +
+' An agent<span class="withAsn">, noted <span class="name">agent(id, [ \n' +
+' attr1=val1, ...])</span> in PROV-ASN,</span> contains: \n' +
+' <ul> \n' +
+' <li> \n' +
+' <em>id</em>: an identifier identifying an agent; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>attributes</em>: a set of attribute-value pairs representing this \n' +
+' agent\'s situation in the world. \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><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:Human" %% xsd:QName]) \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="issue"> \n' +
+' Shouldn\'t we allow for entities (not agent) to be associated with an \n' +
+' activity? Should we drop the inference association-agent? <a href="http://www.w3.org/2011/prov/track/issues/203">ISSUE-203</a>. \n' +
+' </div><div class="attributes" id="attributes-note"> \n' +
+' A <dfn title="dfn-note">note</dfn><span class="withAsn">, noted <span class="name">note(id, [ attr1=val1, ...])</span> in PROV-ASN,</span> \n' +
+' contains: \n' +
+' <ul> \n' +
+' <li> \n' +
+' <em>id</em>: an identifier identifying the note; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>attributes</em>: a set of attribute-value pairs, whose meaning is \n' +
+' application specific. \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="anexample" id="anexample-note1"> \n' +
+' <p> \n' +
+' The following note consists of a set of application-specific \n' +
+' attribute-value pairs, intended to help the rendering of what it is \n' +
+' associated with, by specifying its color and its position on the screen. \n' +
+' </p> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+'note(ex2:n1,[ex2:color="blue", ex2:screenX=20, ex2:screenY=30]) \n' +
+'hasAnnotation(tr:WD-prov-dm-20111215,ex2:n1) \n' +
+'</pre> \n' +
+' <p> \n' +
+' The note is associated with the entity <span class="name">tr:WD-prov-dm-20111215</span> \n' +
+' previously introduced (<a title="annotation">hasAnnotation</a> is \n' +
+' discussed in Section <a href="#term-annotation">Annotation</a>). The \n' +
+' note\'s identifier and attributes are declares in a separate namespace \n' +
+' denoted by prefix <span class="name">ex2</span>. \n' +
+' </p> \n' +
+' </div><div class="anexample" id="anexample-note2"> \n' +
+' <p> \n' +
+' Alternatively, a reputation service may enrich a provenance record with \n' +
+' notes providing reputation ratings about agents. In the following \n' +
+' fragment, both agents <span class="name">ex:Simon</span> and <span class="name">ex:Paolo</span> are rated "excellent". \n' +
+' </p> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+'note(ex3:n2,[ex3:reputation="excellent"]) \n' +
+'hasAnnotation(ex:Simon,ex3:n2) \n' +
+'hasAnnotation(ex:Paolo,ex3:n2) \n' +
+'</pre> \n' +
+' <p> \n' +
+' The note\'s identifier and attributes are declares in a separate \n' +
+' namespace denoted by prefix <span class="name">ex3</span>. \n' +
+' </p> \n' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-generation"> \n' +
+' <dfn title="dfn-Generation">Generation</dfn><span class="withAsn">, \n' +
+' written <span class="name">wasGeneratedBy(id,e,a,t,attrs)</span> in \n' +
+' PROV-ASN,</span> has the following components: \n' +
+' <ul> \n' +
+' <li> \n' +
+' <em>id</em>: an OPTIONAL identifier identifying a generation; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>entity</em>: an identifier identifying a created entity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>activity</em>: an OPTIONAL identifier identifying the activity \n' +
+' that creates the entity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>time</em>: an OPTIONAL "generation time", the time at which the \n' +
+' entity was completely created; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>attributes</em>: an OPTIONAL set of attribute-value pairs that \n' +
+' describes the modalities of generation of this entity by this \n' +
+' activity. \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="anexample"> \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", ex:order=1]) \n' +
+' wasGeneratedBy(e2,a1, 2001-10-26T10:00:00, [ex:port="p1", ex:order=2]) \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 as the first \n' +
+' value on port p1, whereas the other is the second value on port p1. The \n' +
+' semantics of <span class="name">port</span> and <span class="name">order</span> \n' +
+' are application specific. \n' +
+' </p> \n' +
+' </div><div class="anexample"> \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 component 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="dfn-Usage">Usage</dfn><span class="withAsn">, written <span class="name">used(id,a,e,t,attrs)</span> in PROV-ASN,</span> has the \n' +
+' following constituents: \n' +
+' <ul> \n' +
+' <li> \n' +
+' <em>id</em>: an OPTIONAL identifier identifying a usage; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>activity</em>: an identifier for the consuming activity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>entity</em>: an identifier for the consumed entity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>time</em>: an OPTIONAL "usage time", the time at which the entity \n' +
+' started to be used; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>attributes</em>: an OPTIONAL set of attribute-value pairs that \n' +
+' describe the modalities of usage of this entity by this activity. \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="anexample"> \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> \n' +
+' consumed two entities identified by <span class="name">e1</span> and \n' +
+' <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="note"> \n' +
+' <p> \n' +
+' A usage record\'s id is OPTIONAL. It MUST be present when annotating \n' +
+' usage records (see Section <a href="#term-annotation">Annotation Record</a>) \n' +
+' or when defining precise-1 derivations (see <a href="#Derivation-Relation">Derivation</a>). \n' +
+' </p> \n' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-activity-association"> \n' +
+' An <dfn title="dfn-activity-association">activity association</dfn><span class="withAsn">, written <span class="name">wasAssociatedWith(id,a,ag,pl,attrs)</span> \n' +
+' in PROV-ASN,</span> has the following constituents: \n' +
+' <ul> \n' +
+' <li> \n' +
+' <em>id</em>: an OPTIONAL identifier for the association between an \n' +
+' activity and an agent; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>activity</em>: an identifier for the activity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>agent</em>: an identifier for the agent associated with the \n' +
+' activity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>plan</em>: an OPTIONAL identifier for the plan adopted by the \n' +
+' agent in the context of this activity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>attributes</em>: an OPTIONAL set of attribute-value pairs that \n' +
+' describe the modalities of association of this activity with this \n' +
+' agent. \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="anexample"> \n' +
+' In the following example, a designer and an operator agents are associated \n' +
+' with an activity. The designer\'s goals are achieved by a workflow <span class="name">ex:wf</span>. \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"%% xsd:QName, 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="issue"> \n' +
+' The activity association record does not allow for a plan to be asserted \n' +
+' without an agent. This seems over-restrictive. Discussed in the context of \n' +
+' <a href="http://www.w3.org/2011/prov/track/issues/203">ISSUE-203</a>. \n' +
+' </div><div class="issue"> \n' +
+' Agents should not be inferred. WasAssociatedWith should also work with \n' +
+' entities. This is <a href="http://www.w3.org/2011/prov/track/issues/206">ISSUE-206</a>. \n' +
+' </div><div class="anexample"> \n' +
+' <p> \n' +
+' In the following example, \n' +
+' </p> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+'wasStartedBy(a,ag,[ex:mode="manual"]) \n' +
+'wasEndedby(a,ag,[ex:mode="manual"]) \n' +
+'</pre> \n' +
+' <p> \n' +
+' there is an activity denoted by <span class="name">a</span> that was \n' +
+' started and ended by an agent denoted by <span class="name">ag</span>, \n' +
+' in "manual" mode, an application specific characterization of these \n' +
+' relations. \n' +
+' </p> \n' +
+' </div><div class="issue"> \n' +
+' Should we define start/end records as representation of activity start/end \n' +
+' events. Should time be associated with these events rather than with \n' +
+' activities. This will be similar to what we do for entities. This is issue \n' +
+' <a href="http://www.w3.org/2011/prov/track/issues/207">ISSUE-207</a>. \n' +
+' </div><div class="glossary-ref" /><div class="attributes" id="attributes-responsibility-chain"> \n' +
+' A <dfn title="dfn-responsibility-chain">responsibility chain</dfn><span class="withAsn">, written <span class="name">actedOnBehalfOf(id,ag2,ag1,a,attrs)</span> \n' +
+' in PROV-ASN,</span> has the following constituents: \n' +
+' <ul> \n' +
+' <li> \n' +
+' <em>id</em>: an OPTIONAL identifier identifying the responsibility \n' +
+' chain; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>subordinate</em>: an identifier for the agent associated with an \n' +
+' activity, acting on behalf of the responsible agent; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>responsible</em>: an identifier for the agent, on behalf of which \n' +
+' the subordinate agent acted; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>activity</em>: an OPTIONAL identifier of an activity for which the \n' +
+' responsibility chain holds; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>attributes</em>: an OPTIONAL set of attribute-value pairs that \n' +
+' describe the modalities of this relation. \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="anexample"> \n' +
+' In the following example, a programmer, a researcher and a funder agents \n' +
+' are described. The programmer and researcher are associated with a \n' +
+' workflow activity. The programmer acts on behalf of the researcher \n' +
+' (delegation) encoding the commands specified by the researcher; the \n' +
+' researcher acts on behalf of the funder, who has an contractual agreement \n' +
+' with the researcher. The terms \'delegation\' and \'contact\' used in this \n' +
+' example are domain specific. \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' +
+'actedOnBehalfOf(ag1,ag2,a,[prov:type="delegation"]) \n' +
+'actedOnBehalfOf(ag2,ag3,a,[prov:type="contract"]) \n' +
+'</pre> \n' +
+' </div><div class="glossary-ref" /><div class="note"> \n' +
+' This text was not edited much. It keeps on referring to \n' +
+' asserter/assertion. Before editing this section, we would like to have <a href="http://www.w3.org/2011/prov/track/issues/249">ISSUE-249</a> \n' +
+' resolved. \n' +
+' </div><div class="attributes" id="attributes-derivation"> \n' +
+' A <dfn>precise-1 derivation</dfn><span class="withAsn">, written <span class="name">wasDerivedFrom(id, e2, e1, a, g2, u1, attrs)</span> in \n' +
+' PROV-ASN,</span> contains: \n' +
+' <ul> \n' +
+' <li> \n' +
+' <em>id</em>: an OPTIONAL identifier identifying the derivation; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>generatedEntity</em>: the identifier of the generation entity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>usedEntity</em>: the identifier of the used entity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>activity</em>: the identifier of the activity using and generating \n' +
+' the above entities; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>generation</em>: the identifier the generation for the generated \n' +
+' entity and activity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>usage</em>: the identifier of the usage for the used entity and \n' +
+' activity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>attributes</em>: an OPTIONAL set of attribute-value pairs that \n' +
+' describe the modalities of this derivation, optionally including the \n' +
+' attribute-value pair <span class="name">prov:steps="single"</span>. \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="anexample"> \n' +
+' <p> \n' +
+' The following descriptions state the existence of derivations. \n' +
+' </p> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+'wasDerivedFrom(e5,e3,a4,g2,u2) \n' +
+'wasDerivedFrom(e5,e3,a4,g2,u2,[prov:steps="single"]) \n' +
+' \n' +
+'wasDerivedFrom(e3,e2,[prov:steps="single"]) \n' +
+' \n' +
+'wasDerivedFrom(e2,e1,[]) \n' +
+'wasDerivedFrom(e2,e1,[prov:steps="any"]) \n' +
+' \n' +
+'wasDerivedFrom(e2,e1,2012-01-18T16:00:00, [prov:steps="any"]) \n' +
+'</pre> \n' +
+' <p> \n' +
+' The first two are precise-1 derivations expressing that the activity \n' +
+' identified by <span class="name">a4</span>, by using the entity denoted \n' +
+' by <span class="name">e3</span> according to usage <span class="name">u2</span> \n' +
+' derived the entity denoted by <span class="name">e5</span> and generated \n' +
+' it according to generation <span class="name">g2</span>. \n' +
+' </p> \n' +
+' <p> \n' +
+' The third line describes an imprecise-1 derivation, which is similar for \n' +
+' <span class="name">e3</span> and <span class="name">e2</span>, but it \n' +
+' leaves the activity and associated attributes implicit. The fourth and \n' +
+' fifth lines are about imprecise-n derivations between <span class="name">e2</span> \n' +
+' and <span class="name">e1</span>, but no information is provided as to \n' +
+' the number and identity of activities underpinning the derivation. The \n' +
+' sixth derivation extends the fifth with the derivation time of <span class="name">e2</span>. \n' +
+' </p> \n' +
+' </div><div class="issue"> \n' +
+' Several points were raised about the attribute steps. Its name, its \n' +
+' default value <a href="http://www.w3.org/2011/prov/track/issues/180">ISSUE-180</a>. \n' +
+' <a href="http://www.w3.org/2011/prov/track/issues/179">ISSUE-179</a>. \n' +
+' </div><div class="issue"> \n' +
+' Emphasize the notion of \'affected by\' <a href="http://www.w3.org/2011/prov/track/issues/133">ISSUE-133</a>. \n' +
+' </div><div class="issue"> \n' +
+' Is imprecise-1 derivation necessary? Can we just use precise-1 and \n' +
+' imprecise-n? <a href="http://www.w3.org/2011/prov/track/issues/249">ISSUE-249</a>. \n' +
+' </div><div class="attributes" id="attributes-alternate"> \n' +
+' An <dfn title="dfn-Alternate">alternate relation</dfn><span class="withAsn">, \n' +
+' written <span class="name">alternateOf(id, alt1, alt2, attrs)</span> in \n' +
+' PROV-ASN,</span> addresses case (1). It has the following constituents: \n' +
+' <ul> \n' +
+' <li> \n' +
+' <em>id</em>: an OPTIONAL identifier for the association between the \n' +
+' two alternates; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>firstAlternate</em>: an identifier of the first of the two \n' +
+' entities; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>secondAlternate</em>: an identifier of the second of the two \n' +
+' entities; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>attributes</em>: an OPTIONAL set of attribute-value pairs to \n' +
+' further describe this relation. \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="anexample" id="anexample-alternate"> \n' +
+' <p> \n' +
+' The following expressions describe two persons, respectively holder of a \n' +
+' Facebook account and a Twitter account, and their relation as alternate. \n' +
+' </p> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+'entity(facebook:ABC, [ prov:type="person with Facebook account " ]) \n' +
+'entity(twitter:XYZ, [ prov:type="person with Twitter account" ]) \n' +
+'alternateOf(facebook:ABC, twitter:XYZ) \n' +
+'</pre> \n' +
+' </div><div class="attributes" id="attributes-specialization"> \n' +
+' A <dfn title="dfn-Specialization">specialization relation</dfn><span class="withAsn">, written <span class="name">specializationOf(id, sub, \n' +
+' super, attrs)</span> in PROV-ASN,</span> addresses case (2). It has the \n' +
+' following constituents: \n' +
+' <ul> \n' +
+' <li> \n' +
+' <em>id</em>: an OPTIONAL identifier for the association between the \n' +
+' two entities; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>specializedEntity</em>: an identifier of the specialized entity; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>generalEntity</em>: an identifier of the entity that is being \n' +
+' specialized; \n' +
+' </li> \n' +
+' <li> \n' +
+' <em>attributes</em>: an OPTIONAL set of attribute-value pairs to \n' +
+' further describe this relation. \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="anexample" id="anexample-specialization"> \n' +
+' <p> \n' +
+' The following expressions describe two persons, the second of which is \n' +
+' holder of a Twitter account. The second entity is a specialization of \n' +
+' the first. \n' +
+' </p> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+'entity(ex:Bob, [ prov:type="person", ex:name="Bob" ]) \n' +
+'entity(twitter:XYZ, [ prov:type="person with Twitter account" ]) \n' +
+'specializationOf(twitter:XYZ, ex:Bob) \n' +
+'</pre> \n' +
+' </div><div class="issue"> \n' +
+' A discussion on alternative definition of these relations has not yet \n' +
+' reached a satisfactory conclusion. This is <a href="http://www.w3.org/2011/prov/track/issues/29">ISSUE-29</a>. Also <a href="http://www.w3.org/2011/prov/track/issues/96">ISSUE-96</a>. \n' +
+' </div><div class="glossary" id="glossary-annotation"> \n' +
+' An <dfn title="concept-annotation">annotation</dfn> is a link between \n' +
+' something that is identifiable and a note referred to by its identifier. \n' +
+' </div><div class="anexample"> \n' +
+' <p> \n' +
+' The following expressions \n' +
+' </p> \n' +
+'<pre class="codexample" xml:space="preserve"> \n' +
+'entity(e1,[prov:type="document"]) \n' +
+'entity(e2,[prov:type="document"]) \n' +
+'activity(a,t1,t2) \n' +
+'used(u1,a,e1,[ex:file="stdin"]) \n' +
+'wasGeneratedBy(e2, a, [ex:file="stdout"]) \n' +
+' \n' +
+'note(n1,[ex:icon="doc.png"]) \n' +
+'hasAnnotation(e1,n1) \n' +
+'hasAnnotation(e2,n1) \n' +
+' \n' +
+'note(n2,[ex:style="dotted"]) \n' +
+'hasAnnotation(u1,n2) \n' +
+'</pre> \n' +
+' <p> \n' +
+' describe two documents (attribute-value pair: <span class="name">prov:type="document"</span>) \n' +
+' identified by <span class="name">e1</span> and <span class="name">e2</span>, \n' +
+' and their annotation with a note indicating that the icon (an \n' +
+' application specific way of rendering provenance) is <span class="name">doc.png</span>. \n' +
+' The example also includes an activity, its usage of the first entity, \n' +
+' and its generation of the second entity. The <a title="dfn-usage">usage</a> \n' +
+' is annotated with a style (an application specific way of rendering this \n' +
+' edge graphically). To be able to express this annotation, the usage was \n' +
+' provided with an identifier <span class="name">u1</span>, which was then \n' +
+' referred to in <span class="name">hasAnnotation(u1,n2)</span>. \n' +
+' </p> \n' +
+' </div><div class="anexample"> \n' +
+' <p> \n' +
+' The following activity start describes the role of the agent identified \n' +
+' by <span class="name">ag</span> in this start relation with activity \n' +
+' <span class="name">a</span>. \n' +
+' </p> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+' wasStartedBy(a,ag, [prov:role="program-operator"]) \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:ComputingSystem" %% xsd:QName]) \n' +
+'</pre> \n' +
+' </div><div class="anexample"> \n' +
+' <p> \n' +
+' The following expression declares an imprecise-1 derivation, which is \n' +
+' known to involve one activity, though its identity, usage details of \n' +
+' <span class="name">ex:e1</span>, and generation details of <span class="name">ex:e2</span> are not explicit. \n' +
+' </p> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+' wasDerivedFrom(ex:e2, ex:e1, [prov:steps="single"]) \n' +
+'</pre> \n' +
+' </div><div class="issue"> \n' +
+' This is <a href="http://www.w3.org/2011/prov/track/issues/219">ISSUE-219</a>. \n' +
+' </div><div class="anexample"> \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' +
+' </div><div class="note"> \n' +
+' Usually, in programming languages, Literal are a notation for values. So, \n' +
+' Literals should probably be moved to the serialization. Here, instead, we \n' +
+' should define the types of values. Thoughts? \n' +
+' </div><div class="anexample"> \n' +
+' <p> \n' +
+' The following examples respectively are the string "abc", the string \n' +
+' "abc", the integer number 1, and the IRI "http://example.org/foo". \n' +
+' </p> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+' "abc" \n' +
+' 1 \n' +
+' "http://example.org/foo" %% xsd:anyURI \n' +
+'</pre> \n' +
+' <p> \n' +
+' The following example shows a literal of type <span class="name">xsd:QName</span> \n' +
+' (see <a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#QName">QName</a> \n' +
+' [[!XMLSCHEMA-2]]). The prefix <span class="name">ex</span> MUST be bound \n' +
+' to a <a>namespace</a> declared in a <a>namespace declaration</a>. \n' +
+' </p> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+' "ex:value" %% xsd:QName \n' +
+'</pre> \n' +
+' </div><div class="note"> \n' +
+' It\'s a legacy of the charter that time is a top level section. Time is a \n' +
+' specific kind of value, and should be folded into the "value" section. \n' +
+' </div><div class="anexample"> \n' +
+' <p> \n' +
+' Revisiting the example of <a href="#section-example-a">Section 3.1</a>, \n' +
+' we can now state that the report <span class="name">tr:WD-prov-dm-20111215</span> \n' +
+' is a revision of the report <span class="name">tr:WD-prov-dm-20111018</span>, \n' +
+' approved by agent <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" %% xsd:QName ]) \n' +
+'entity(tr:WD-prov-dm-20111018, [ prov:type="pr:RecsWD" %% xsd:QName ]) \n' +
+'wasRevisionOf(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, w3:Consortium) \n' +
+'</pre> \n' +
+' </div><div class="anexample"> \n' +
+' <p> \n' +
+' Revisiting the example of <a href="#section-example-b">Section 3.2</a>, \n' +
+' we can ascribe <span class="name">tr:WD-prov-dm-20111215</span> to some \n' +
+' agents without having to make an activity explicit. \n' +
+' </p> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+'agent(ex:Paolo, [ prov:type="Human" ]) \n' +
+'agent(ex:Simon, [ prov:type="Human" ]) \n' +
+'entity(tr:WD-prov-dm-20111215, [ prov:type="pr:RecsWD" %% xsd:QName ]) \n' +
+'wasAttributedTo(tr:WD-prov-dm-20111215, ex:Paolo, [prov:role="editor"]) \n' +
+'wasAttributedTo(tr:WD-prov-dm-20111215, ex:Simon, [prov:role="contributor"]) \n' +
+'</pre> \n' +
+' </div><div class="anexample"> \n' +
+' <p> \n' +
+' Consider two long running services, which we represent by activities \n' +
+' <span class="name">s1</span> and <span class="name">s2</span>. \n' +
+' </p> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+'activity(s1,,,[prov:type="service"]) \n' +
+'activity(s2,,,[prov:type="service"]) \n' +
+'wasInformedBy(s2,s1) \n' +
+'</pre> \n' +
+' The last line indicates that some entity was generated by <span class="name">s1</span> and used by <span class="name">s2</span>. \n' +
+' </div><div class="anexample"> \n' +
+' <p> \n' +
+' Suppose activities <span class="name">a1</span> and <span class="name">a2</span> \n' +
+' are computer processes that are executed on different hosts, and that \n' +
+' <span class="name">a1</span> started <span class="name">a2</span>. This \n' +
+' can be expressed as in the following fragment: \n' +
+' </p> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+'activity(a1,t1,t2,[ex:host="server1.example.org",prov:type="workflow"]) \n' +
+'activity(a2,t3,t4,[ex:host="server2.example.org",prov:type="subworkflow"]) \n' +
+'wasStartedBy(a2,a1) \n' +
+'</pre> \n' +
+' </div><div class="anexample"> \n' +
+' <p> \n' +
+' We refer to the example of <a href="#section-example-a">Section 3.1</a>, \n' +
+' and specifically to <a href="#prov-tech-report">Figure prov-tech-report</a>. \n' +
+' We can see that there is a path from <span class="name">tr:WD-prov-dm-20111215</span> \n' +
+' to <span class="name">w3:Consortium</span> or to <span class="name">pr: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,pr:rec-advance) \n' +
+'</pre> \n' +
+' </div><div class="note"> \n' +
+' I propose to delete the following, given that this document does not \n' +
+' mention inferences. [LM] \n' +
+' <p> \n' +
+' Further considerations: \n' +
+' </p> \n' +
+' <ul> \n' +
+' <li> \n' +
+' Traceability is more general than <a href="#Derivation-Relation">Derivation</a>. \n' +
+' This means that an assertion of the form: <span class="name">tracedTo(...,e2,e1,...)</span> \n' +
+' can be inferred from an assertion of the form: <span class="name">wasDerivedFrom(e2,e1,..)</span>. \n' +
+' The precise inference rules are specified in [REF]. \n' +
+' </li> \n' +
+' <li> \n' +
+' Traceability is related to responsibility by way of inference rules \n' +
+' that involve <a href="#term-responsibility">responsibility chain</a> \n' +
+' and <a href="#term-Generation">generation</a> relations. These rules \n' +
+' are specified in [REF] \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="note"> \n' +
+' looking at the definition, there is something wrong. It\'s not true that e2 \n' +
+' was neceaary for e1 (in the transitive case) and that e1 bears \n' +
+' responsibility. [LM] \n' +
+' </div><div class="note"> \n' +
+' I find that quotation is really a misnomer. This expands into derivation \n' +
+' with attribution, in what sense is the derived entity a "quote" of the \n' +
+' original? . The agent that is quoted is particularly obscure. It does not \n' +
+' seem to be involved in the quoting at all. Why isn\'t quoting an activity \n' +
+' with the quoting agent associated with it? [PM] \n' +
+' </div><div class="note"> \n' +
+' Omitted as this is likely to be removed [PM] \n' +
+' </div><div class="issue"> \n' +
+' Drop this relation <a href="http://www.w3.org/2011/prov/track/issues/220">ISSUE-220</a>. \n' +
+' </div><div class="note"> \n' +
+' I find this relation confusing. Please add an example. I wouldn\'t really \n' +
+' know when to use this. [PM] \n' +
+' </div><div class="anexample"> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+' entity(c, [prov:type="EmptyCollection"]) // e is an empty collection \n' +
+' entity(v1) \n' +
+' entity(v2) \n' +
+' entity(c1, [prov:type="Collection"]) \n' +
+' entity(c2, [prov:type="Collection"]) \n' +
+' \n' +
+' CollectionAfterInsertion(c1, c, "k1", v1) // c1 = { ("k1",v1) } \n' +
+' CollectionAfterInsertion(c2, c1, "k2", v2) // c2 = { ("k1",v1), ("k2", v2) } \n' +
+' CollectionAfterRemoval(c3, c2, k1) // c3 = { ("k2",v2) } \n' +
+'</pre> \n' +
+' </div><div class="note"> \n' +
+' I propose to call them afterInsertion instead of CollectionAfterInsertion \n' +
+' (likewise, for deletion). What about attributes and optional Id? \n' +
+' </div><div class="note"> \n' +
+' Deleted further items. Some of them are constraints which belong to part \n' +
+' 2. \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' +
+' TO EDIT \n' +
+' </div><div class="note"> \n' +
+' TO EDIT \n' +
+' </div><div class="buttonpanel"> \n' +
+' <form action="#"> \n' +
+' <p> \n' +
+' <input id="hide-bnf" onclick="set_display_by_class(\'div\',\'grammar\',\'none\'); set_display_by_id(\'hide-bnf\',\'none\'); set_display_by_id(\'show-bnf\',\'\');" type="button" value="Hide Grammar" /> <input id="show-bnf" onclick="set_display_by_class(\'div\',\'grammar\',\'\'); set_display_by_id(\'hide-bnf\',\'\'); set_display_by_id(\'show-bnf\',\'none\');" style="display: none" type="button" value="Show Grammar" /> <input id="hide-examples" onclick="set_display_by_class(\'div\',\'anexample\',\'none\'); set_display_by_id(\'hide-examples\',\'none\'); set_display_by_id(\'show-examples\',\'\');" type="button" value="Hide Examples" /> <input id="show-examples" onclick="set_display_by_class(\'div\',\'anexample\',\'\'); set_display_by_id(\'hide-examples\',\'\'); set_display_by_id(\'show-examples\',\'none\');" style="display: none" type="button" value="Show Examples" /> \n' +
+' </p> \n' +
+' </form> \n' +
+' </div><div class="note"> \n' +
+' TODO \n' +
+' </div><div class="note"> \n' +
+' Tentative definition of destruction! \n' +
+' </div><div class="anexample" id="a-report-example"> \n' +
+' Different users may take different perspectives on a resource with a URL. \n' +
+' For each perspective, an entity may be expressed: \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' +
+' </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="issue"> \n' +
+' We need to refine the definition of entity and activity, and all the \n' +
+' concepts in general. This is <a href="http://www.w3.org/2011/prov/track/issues/223">ISSUE-223</a>. \n' +
+' </div><div class="note"> \n' +
+' The last point is important and needs to be discussed by the Working \n' +
+' Group. It indicates that within an account: \n' +
+' <ul> \n' +
+' <li> \n' +
+' It is always possible to add new provenance descriptions, e.g. stating \n' +
+' that a given entity was used by an activity. This is very much an open \n' +
+' world assumption. \n' +
+' </li> \n' +
+' <li> \n' +
+' It is not permitted to add new attributes to a given entity (a form of \n' +
+' closed world assumption from the attributes point of view), though it \n' +
+' is always permitted to create a new description for an entity, which \n' +
+' is a "copy" of the original description extended with novel attributes \n' +
+' (cf Example <a href="#merge-with-rename">merge-with-rename</a>). \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="note"> \n' +
+' <p> \n' +
+' Overview the kind of constraints \n' +
+' </p> \n' +
+' <ul> \n' +
+' <li> \n' +
+' Definitional constraints (<a href="#definitional-constraints">Section \n' +
+' 4</a>) \n' +
+' </li> \n' +
+' <li> \n' +
+' Account constraints (<a href="#account-constraints">Section 5</a>) \n' +
+' </li> \n' +
+' <li> \n' +
+' Event ordering constraints (<a href="#interpretation">Section 6</a>) \n' +
+' </li> \n' +
+' <li> \n' +
+' Structural constraints (<a href="#structural-constraints">Section 7</a>) \n' +
+' </li> \n' +
+' <li> \n' +
+' Collection constraints (<a href="#collection-constraints">Section 8</a>) \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="note"> \n' +
+' Proposing to remove the subsections in this section, since some have no \n' +
+' constraints. \n' +
+' </div><div class="issue"> \n' +
+' There is still some confusion about what the identifiers really denote. \n' +
+' For instance, are they entity identifiers or entity record identifiers. \n' +
+' This is <a href="http://www.w3.org/2011/prov/track/issues/183">ISSUE-183</a>. \n' +
+' An example and questions appear in <a href="http://www.w3.org/2011/prov/track/issues/215">ISSUE-215</a>. A \n' +
+' related issued is also raised in <a href="http://www.w3.org/2011/prov/track/issues/145">ISSUE-145</a>. \n' +
+' </div><div class="issue"> \n' +
+' The characterization interval of an entity record is currently implicit. \n' +
+' Making it explicit would allow us to define alternateOf and \n' +
+' specializationOf more precisely. Beginning and end of characterization \n' +
+' interval could be expressed by attributes (similarly to activities). How \n' +
+' do we define the end of an entity? This is <a href="http://www.w3.org/2011/prov/track/issues/204">ISSUE-204</a>. \n' +
+' </div><div class="interpretation-forward"> \n' +
+' For the interpretation of an activity, see <a href="#start-precedes-end">start-precedes-end</a>. \n' +
+' </div><div class="issue"> \n' +
+' Shouldn\'t we allow for entities (not agent) to be associated with an \n' +
+' activity? Should we drop the inference association-agent? <a href="http://www.w3.org/2011/prov/track/issues/203">ISSUE-203</a>. \n' +
+' <p> \n' +
+' One can assert an agent record or alternatively, one can infer an agent \n' +
+' record by its association with an activity. \n' +
+' </p> \n' +
+' <div class="inference" id="association-agent"> \n' +
+' <span class="conditional">If</span> the records <span class="name">entity(e,attrs)</span> \n' +
+' and <span class="name">wasAssociatedWith(a,e)</span> hold for some \n' +
+' identifiers <span class="name">a</span>, <span class="name">e</span>, \n' +
+' and attribute-values <span class="name">attrs</span>, then the record \n' +
+' <span class="name">agent(e,attrs)</span> also holds. \n' +
+' </div> \n' +
+' </div><div class="inference" id="association-agent"> \n' +
+' <span class="conditional">If</span> the records <span class="name">entity(e,attrs)</span> \n' +
+' and <span class="name">wasAssociatedWith(a,e)</span> hold for some \n' +
+' identifiers <span class="name">a</span>, <span class="name">e</span>, \n' +
+' and attribute-values <span class="name">attrs</span>, then the record \n' +
+' <span class="name">agent(e,attrs)</span> also holds. \n' +
+' </div><div class="interpretation-forward"> \n' +
+' For the interpretation of a generation, see <a href="#generation-within-activity">generation-within-activity</a>. \n' +
+' </div><div class="structural-forward"> \n' +
+' See <a href="#generation-uniqueness">generation-uniqueness</a> for a \n' +
+' structural constraint on generations. \n' +
+' </div><div class="interpretation-forward"> \n' +
+' For the interpretation of a usage, see <a href="#generation-precedes-usage">generation-precedes-usage</a> \n' +
+' and <a href="#usage-within-activity">usage-within-activity</a>. \n' +
+' </div><div class="interpretation-forward"> \n' +
+' For the interpretation of an activity association, see <a href="#wasAssociatedWith-ordering">wasAssociatedWith-ordering</a>. \n' +
+' </div><div class="issue"> \n' +
+' The activity association record does not allow for a plan to be asserted \n' +
+' without an agent. This seems over-restrictive. Discussed in the context of \n' +
+' <a href="http://www.w3.org/2011/prov/track/issues/203">ISSUE-203</a>. \n' +
+' </div><div class="issue"> \n' +
+' Agents should not be inferred. WasAssociatedWith should also work with \n' +
+' entities. This is <a href="http://www.w3.org/2011/prov/track/issues/206">ISSUE-206</a>. \n' +
+' </div><div class="issue"> \n' +
+' Should we define start/end records as representation of activity start/end \n' +
+' events. Should time be associated with these events rather than with \n' +
+' activities. This will be similar to what we do for entities. This is issue \n' +
+' <a href="http://www.w3.org/2011/prov/track/issues/207">ISSUE-207</a>. \n' +
+' </div><div class="inference" id="derivation-implications"> \n' +
+' Given two entities denoted by <span class="name">e1</span> and <span class="name">e2</span>, <span class="conditional">if</span> the assertion \n' +
+' <span class="name">wasDerivedFrom(e2, e1, a, g2, u1, attrs)</span> holds \n' +
+' for some generation identified by <span class="name">g2</span>, and usage \n' +
+' identified by <span class="name">u1</span>, then <span class="name">wasDerivedFrom(e2,e1,[prov:steps="single"] \n' +
+' cup; attrs)</span> also holds.<br /> Given two entities denoted by <span class="name">e1</span> and <span class="name">e2</span>, <span class="conditional">if</span> the assertion <span class="name">wasDerivedFrom(e2, \n' +
+' e1, [prov:steps="single"] cup; attrs)</span> holds, then <span class="name">wasDerivedFrom(e2,e1,attrs)</span> also holds.<br /> \n' +
+' </div><div class="interpretation-forward"> \n' +
+' For the interpretation of a derivation, see <a href="#derivation-usage-generation-ordering">derivation-usage-generation-ordering</a> \n' +
+' and <a href="#derivation-generation-generation-ordering">derivation-generation-generation-ordering</a> \n' +
+' </div><div class="inference" id="activity-introduction"> \n' +
+' <span class="conditional">If</span> <span class="name">wasDerivedFrom(e2,e1)</span> \n' +
+' holds, <span class="conditional">then</span> there exist an activity, with \n' +
+' identifier <span class="name">a</span>, a usage identified by <span class="name">u</span>, and a generation identified by <span class="name">g</span> \n' +
+' such that: \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+'activity(a,aAttrs) \n' +
+'wasGeneratedBy(g,e2,a,gAttrs) \n' +
+'used(u,a,e1,uAttrs) \n' +
+'</pre> \n' +
+' for sets of attribute-value pairs <span class="name">gAttrs</span>, <span class="name">uAttrs</span>, and <span class="name">aAttrs</span>. \n' +
+' </div><div class="inference" id="derivation-time-elimination"> \n' +
+' <span class="conditional">If</span> <span class="name">wasDerivedFrom(e2,e1,t,attrs)</span> \n' +
+' holds, <span class="conditional">then</span> the following expressions \n' +
+' also hold: <span class="name">wasDerivedFrom(e2,e1,attrs)</span> and <span class="name">wasGeneratedBy(e2,t)</span>. \n' +
+' </div><div class="structural-forward"> \n' +
+' See <a href="#derivation-use">derivation-use</a> for a structural \n' +
+' constraint on derivations. \n' +
+' </div><div class="issue"> \n' +
+' Several points were raised about the attribute steps. Its name, its \n' +
+' default value <a href="http://www.w3.org/2011/prov/track/issues/180">ISSUE-180</a>. \n' +
+' <a href="http://www.w3.org/2011/prov/track/issues/179">ISSUE-179</a>. \n' +
+' </div><div class="issue"> \n' +
+' Emphasize the notion of \'affected by\' <a href="http://www.w3.org/2011/prov/track/issues/133">ISSUE-133</a>. \n' +
+' </div><div class="issue"> \n' +
+' Simplify derivation <a href="http://www.w3.org/2011/prov/track/issues/249">ISSUE-249</a>. \n' +
+' </div><div class="note"> \n' +
+' In order to further convey the intended meaning, the following properties \n' +
+' are associated to these two relations. \n' +
+' <ul> \n' +
+' <li> \n' +
+' <span class="name">specializationOf(e2,e1)</span> is <strong>transitive</strong>: \n' +
+' <span class="name">specializationOf(e3,e2)</span> and <span class="name">specializationOf(e2,e1)</span> implies <span class="name">specializationOf(e3,e1)</span>. \n' +
+' </li> \n' +
+' <li> \n' +
+' <span class="name">specializationOf(e2,e1)</span> is <strong>anti-symmetric</strong>: \n' +
+' <span class="name">specializationOf(e2,e1)</span> implies that <span class="name">specializationOf(e1,e2)</span> does not hold. \n' +
+' </li> \n' +
+' <li> \n' +
+' <span class="name">alternateOf(e2,e1)</span> is <strong>symmetric</strong>: \n' +
+' <span class="name">alternateOf(e2,e1)</span> implies <span class="name">alternateOf(e1,e2)</span>. \n' +
+' </li> \n' +
+' </ul> \n' +
+' There are proposals to make alternateOf a transitive property. This is \n' +
+' still under discussion and the default is for alternateOf <strong>not</strong> \n' +
+' to be transitive, and this is what the current text reflects. \n' +
+' </div><div class="issue"> \n' +
+' A discussion on alternative definition of these relations has not reached \n' +
+' a satisfactory conclusion yet. This is <a href="http://www.w3.org/2011/prov/track/issues/29">ISSUE-29</a>. Also <a href="http://www.w3.org/2011/prov/track/issues/96">ISSUE-96</a>. \n' +
+' </div><div class="inference" id="traceability-inference"> \n' +
+' Given two identifiers <span class="name">e2</span> and <span class="name">e1</span> \n' +
+' for entities, the following statements hold: \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">wasGeneratedBy(e2,a,gAttr) \n' +
+' and wasAssociatedWith(a,e1)</span> hold, for some <span class="name">a</span> \n' +
+' and <span class="name">gAttr</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">wasGeneratedBy(e2,a,gAttr)</span>, \n' +
+' <span class="name">wasAssociatedWith(a,e)</span> and <span class="name">actedOnBehalfOf(e,e1)</span> \n' +
+' hold, for some <span class="name">a</span>, <span class="name">e</span>, \n' +
+' and <span class="name">gAttr</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">wasGeneratedBy(e2,a,gAttr) \n' +
+' and wasStartedBy(a,e1,sAttr)</span> hold, for some <span class="name">a</span>, \n' +
+' <span class="name">e</span>, and <span class="name">gAttr</span>, and \n' +
+' <span class="name">sAttr</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">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="constraint" id="traceability-assertion"> \n' +
+' <span class="conditional">If</span> <span class="name">tracedTo(r2,r1,attrs)</span> \n' +
+' holds for two identifiers <span class="name">r2</span> and <span class="name">r1</span> identifying entities, and attribute-value pairs \n' +
+' <span class="name">attrs</span>, <span class="conditional">then</span> \n' +
+' there exist <span class="name">e<sup>0</sup></span>, <span class="name">e<sup>1</sup></span>, \n' +
+' ..., <span class="name">e<sup>n</sup></span> for <span class="name">nge;1</span>, \n' +
+' with <span class="name">e<sup>0</sup></span>=<span class="name">r2</span> \n' +
+' and <span class="name">e<sup>n</sup></span>=<span class="name">r1</span>, \n' +
+' and for any i such that <span class="name">0le;ile;n-1</span>, at least \n' +
+' of the following statements holds: \n' +
+' <ul> \n' +
+' <li> \n' +
+' <span class="name">wasDerivedFrom(e<sup>i</sup>,e<sup>i+1</sup>,a,g2,u1)</span> \n' +
+' holds, for some <span class="name">a</span>, <span class="name">g2</span>, \n' +
+' <span class="name">u1</span>, or \n' +
+' </li> \n' +
+' <li> \n' +
+' <span class="name">wasDerivedFrom(e<sup>i</sup>,e<sup>i+1</sup>)</span> \n' +
+' holds, or \n' +
+' </li> \n' +
+' <li> \n' +
+' <span class="name">wasBasedOn(e<sup>i</sup>,e<sup>i+1</sup>)</span> \n' +
+' holds, or \n' +
+' </li> \n' +
+' <li> \n' +
+' <span class="name">wasGeneratedBy(e<sup>i</sup>,a,gAttr) and \n' +
+' wasAssociatedWith(a,e<sup>i+1</sup>)</span> hold, for some <span class="name">a</span> and <span class="name">gAttr</span>, or \n' +
+' </li> \n' +
+' <li> \n' +
+' <span class="name">wasGeneratedBy(e<sup>i</sup>,a,gAttr)</span>, <span class="name">wasAssociatedWith(a,e)</span> and <span class="name">actedOnBehalfOf(e,e<sup>i+1</sup>)</span> \n' +
+' hold, for some <span class="name">a</span>, <span class="name">e</span> \n' +
+' and <span class="name">gAttr</span>, or \n' +
+' </li> \n' +
+' <li> \n' +
+' <span class="name">wasGeneratedBy(e<sup>i</sup>,a,gAttr) and \n' +
+' wasStartedBy(a,e<sup>i+1</sup>,sAttr)</span> hold, for some <span class="name">a</span>, <span class="name">e</span>, and <span class="name">gAttr</span>, and <span class="name">sAttr</span>. \n' +
+' </li> \n' +
+' </ul> \n' +
+' </div><div class="constraint" id="wasInformedBy-Definition"> \n' +
+' Given two activities identified by <span class="name">a1</span> and <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> and some sets of \n' +
+' attribute-value pairs <span class="name">attrs1</span> and <span class="name">attrs2</span>, such that <span class="name">wasGeneratedBy(e,a1,attrs1)</span> \n' +
+' and <span class="name">used(a2,e,attrs2)</span> hold. \n' +
+' </div><div class="interpretation-forward"> \n' +
+' For the interpretation of an information flow ordering, see <a href="#wasInformedBy-ordering">wasInformedBy-ordering</a>. \n' +
+' </div><div class="constraint" id="wasStartedBy"> \n' +
+' Given two activities with identifiers <span class="name">a1</span> and \n' +
+' <span class="name">a2</span>, <span class="name">wasStartedBy(a2,a1)</span> \n' +
+' holds <span class="conditional">if and only if</span> there exist an \n' +
+' entity with some identifier <span class="name">e</span> and some \n' +
+' attributes <span class="name">gAttr</span> and <span class="name">sAttr</span>, \n' +
+' such that <span class="name">wasGeneratedBy(e,a1,gAttr)</span> and <span class="name">wasStartedBy(a2,e,sAttr)</span> hold. \n' +
+' </div><div class="interpretation-forward"> \n' +
+' For the interpretation of a control flow ordering, see <a href="#wasStartedBy-ordering">wasStartedBy-ordering</a>. \n' +
+' </div><div class="inference" id="wasRevision"> \n' +
+' Given two identifiers <span class="name">old</span> and <span class="name">new</span> \n' +
+' identifying two entities, and an identifier <span class="name">ag</span> \n' +
+' identifying an agent, <span class="conditional">if</span> <span class="name">wasRevisionOf(new,old,ag)</span> holds, <span class="conditional">then</span> there exists an entity with some \n' +
+' identifier <span class="name">e</span> and some attribute-values <span class="name">eAttrs</span>, <span class="name">dAttrs</span>, such that \n' +
+' the following hold: \n' +
+' <ul> \n' +
+' <li> \n' +
+' <span class="name">wasDerivedFrom(new,old,dAttrs)</span>; \n' +
+' </li> \n' +
+' <li> \n' +
+' <span class="name">entity(e,eAttrs)</span>; \n' +
+' </li> \n' +
+' <li> \n' +
+' <span class="name">specializationOf(new,e)</span>; \n' +
+' </li> \n' +
+' <li> \n' +
+' <span class="name">specializationOf(old,e)</span>. \n' +
+' </li> \n' +
+' </ul> \n' +
+' The derivation may be imprecise-1 or imprecise-n. \n' +
+' </div><div class="inference" id="attribution-implication"> \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' +
+'<pre xml:space="preserve"> \n' +
+'activity(a,t1,t2,attr1) \n' +
+'wasGenerateBy(e,a) \n' +
+'wasAssociatedWith(a,ag,attr2) \n' +
+'</pre> \n' +
+' for some sets of attribute-value pairs <span class="name">attr1</span> and \n' +
+' <span class="name">attr2</span>, time <span class="name">t1</span>, and \n' +
+' <span class="name">t2</span>. \n' +
+' </div><div class="inference" id="quotation-implication"> \n' +
+' <span class="conditional">If</span> <span class="name">wasQuotedFrom(e2,e1,ag2,ag1,attrs)</span> \n' +
+' holds for some identifiers <span class="name">e2</span>, <span class="name">e1</span>, \n' +
+' <span class="name">ag2</span>, <span class="name">ag1</span>, <span class="conditional">then</span> the following hold: \n' +
+'<pre xml:space="preserve"> \n' +
+'wasDerivedFrom(e2,e1) \n' +
+'wasAttributedTo(e2,ag2) \n' +
+'wasAttributedTo(e1,ag1) \n' +
+'</pre> \n' +
+' </div><div class="issue"> \n' +
+' Drop this relation <a href="http://www.w3.org/2011/prov/track/issues/220">ISSUE-220</a>. \n' +
+' </div><div class="anexample" id="example-two-entities-one-id"> \n' +
+' <p> \n' +
+' Let us consider two descriptions of a same entity, which we have taken \n' +
+' from two different contexts (see example). A working draft published by \n' +
+' the <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" %% xsd:QName ]) \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 descriptions are about the same entity identified by <span class="name">tr:WD-prov-dm-20111215</span>, but they contain different \n' +
+' attributes, reflecting the context in which they occur. \n' +
+' </p> \n' +
+' </div><div class="constraint" id="unique-description-in-account"> \n' +
+' <p> \n' +
+' Given an entity identifier <span class="name">e</span>, there is at most \n' +
+' one description <span class="name">entity(e,av)</span> occurring in a \n' +
+' given account, where <span class="name">av</span> is some set of \n' +
+' attribute-values. Other descriptions of the same entity can exist in \n' +
+' different accounts. \n' +
+' </p> \n' +
+' <p> \n' +
+' This constraint similarly applies to all other types of identifiable \n' +
+' entities and relations. \n' +
+' </p> \n' +
+' </div><div class="structural-forward"> \n' +
+' See Section <a href="#structural-constraints">structural-constraints</a> \n' +
+' for a structural constraint on accounts \n' +
+' </div><div class="anexample" id="merge-with-rename"> \n' +
+' <p> \n' +
+' We now reconsider the same two descriptions 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" %% xsd:QName ]) \n' +
+'entity(ex:alternate-20111215, [ prov:type="document", ex:version="2" ]) \n' +
+'alternateOf(tr:WD-prov-dm-20111215,ex:alternate-20111215) \n' +
+'alternateOf(ex:alternate-20111215,tr:WD-prov-dm-20111215) \n' +
+'</pre> \n' +
+' </div><div class="interpretation" id="start-precedes-end"> \n' +
+' The following ordering constraint holds for any activity: the <a title="activity start event">start event</a> <a>precedes</a> the <a title="activity end event">end event</a>. \n' +
+' </div><div class="interpretation" id="generation-precedes-usage"> \n' +
+' For any entity, the following ordering constraint holds: the <a title="entity generation event">generation</a> of an entity always <a>precedes</a> \n' +
+' any of its <a title="entity usage event">usages</a>. \n' +
+' </div><div class="interpretation" id="usage-within-activity"> \n' +
+' Given an activity with identifier <span class="name">a</span>, an entity \n' +
+' with identifier <span class="name">e</span>, a set of attribute-value \n' +
+' pairs <span class="name">attrs</span>, and optional time <span class="name">t</span>, \n' +
+' <span class="conditional">if</span> assertion <span class="name">used(a,e,attrs)</span> \n' +
+' or <span class="name">used(a,e,attrs,t)</span> holds, <span class="conditional">then</span> the following ordering constraint holds: \n' +
+' the <a title="entity usage event">usage</a> of the entity denoted by <span class="name">e</span> <a>precedes</a> the <a title="activity end event">end</a> \n' +
+' of activity denoted by <span class="name">a</span> and <a>follows</a> its \n' +
+' <a title="activity start event">start</a>. \n' +
+' </div><div class="interpretation" id="generation-within-activity"> \n' +
+' Given an activity with identifier <span class="name">a</span>, an entity \n' +
+' with identifier <span class="name">e</span>, a set of attribute-value \n' +
+' pairs <span class="name">attrs</span>, and optional time <span class="name">t</span>, \n' +
+' <span class="conditional">if</span> <span class="name">wasGeneratedBy(e,a,attrs)</span> \n' +
+' or <span class="name">wasGeneratedBy(e,a,attrs,t)</span> holds, <span class="conditional">then</span> the following ordering constraint also \n' +
+' holds: the <a title="entity generation event">generation</a> of the entity \n' +
+' denoted by <span class="name">e</span> <a>precedes</a> the <a title="activity end event">end</a> of activity <span class="name">a</span> \n' +
+' and <a>follows</a> the <a title="activity start event">start</a> of <span class="name">a</span>. \n' +
+' </div><div class="interpretation" id="derivation-usage-generation-ordering"> \n' +
+' Given an activity with identifier <span class="name">a</span>, entities \n' +
+' with identifier <span class="name">e1</span> and <span class="name">e2</span>, \n' +
+' a generation identified by <span class="name">g2</span>, and a usage \n' +
+' identified by <span class="name">u1</span>, <span class="conditional">if</span> \n' +
+' <span class="name">wasDerivedFrom(e2,e1,a,g2,u1,attrs)</span> or <span class="name">wasDerivedFrom(e2,e1,[prov:steps="single"] cup; attrs)</span> \n' +
+' holds, <span class="conditional">then</span> the following ordering \n' +
+' constraint holds: the <a title="entity usage event">usage</a> of entity \n' +
+' denoted by <span class="name">e1</span> <a>precedes</a> the <a title="entity generation event">generation</a> of the entity denoted by \n' +
+' <span class="name">e2</span>. \n' +
+' </div><div class="interpretation" id="derivation-generation-generation-ordering"> \n' +
+' Given two 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,[prov:steps="any"] cup; attrs)</span> \n' +
+' holds, <span class="conditional">then</span> the following ordering \n' +
+' constraint holds: the <a title="entity generation event">generation event</a> \n' +
+' of the entity denoted by <span class="name">e1</span> <a>precedes</a> the \n' +
+' <a title="entity generation event">generation event</a> of the entity \n' +
+' denoted by <span class="name">e2</span>. \n' +
+' </div><div class="interpretation" id="wasInformedBy-ordering"> \n' +
+' Given two activities denoted by <span class="name">a1</span> and <span class="name">a2</span>, <span class="conditional">if</span> <span class="name">wasInformedBy(a2,a1)</span> holds, <span class="conditional">then</span> \n' +
+' the following ordering constraint holds: the <a title="activity start event">start event</a> of the activity denoted by \n' +
+' <span class="name">a1</span> <a>precedes</a> the <a title="activity end event">end event</a> of the activity denoted by <span class="name">a2</span>. \n' +
+' </div><div class="interpretation" id="wasStartedBy-ordering"> \n' +
+' Given two activities denoted by <span class="name">a1</span> and <span class="name">a2</span>, <span class="conditional">if</span> <span class="name">wasStartedBy(a2,a1)</span> holds, <span class="conditional">then</span> \n' +
+' the following ordering constraint holds: the <a title="activity start event">start</a> event of the activity denoted by \n' +
+' <span class="name">a1</span> <a>precedes</a> the <a title="activity start event">start event</a> of the activity denoted by \n' +
+' <span class="name">a2</span>. \n' +
+' </div><div class="issue"> \n' +
+' In the following, we assume that we can talk about the end of an entity \n' +
+' (or agent) For this, we use the term \'destruction\' This is <a href="http://www.w3.org/2011/prov/track/issues/204">ISSUE-204</a>. \n' +
+' </div><div class="interpretation" id="wasStartedByAgent-ordering"> \n' +
+' Given an activity denoted by <span class="name">a</span> and an agent \n' +
+' denoted by <span class="name">ag</span>, <span class="conditional">if</span> \n' +
+' <span class="name">wasStartedBy(a,ag)</span> holds, <span class="conditional">then</span> the following ordering constraints hold: \n' +
+' the <a title="activity start event">start</a> event of the activity \n' +
+' denoted by <span class="name">a</span> <a>follows</a> the <a title="entity generation event">generation event</a> for agent denoted by \n' +
+' <span class="name">ag</span>, and <a>precedes</a> the destruction event of \n' +
+' the same agent. \n' +
+' </div><div class="interpretation" id="wasAssociatedWith-ordering"> \n' +
+' Given an activity denoted by <span class="name">a</span> and an agent \n' +
+' denoted by <span class="name">ag</span>, <span class="conditional">if</span> \n' +
+' <span class="name">wasAssociatedWith(a,ag)</span> holds, <span class="conditional">then</span> the following ordering constraints hold: \n' +
+' the <a title="activity start event">start</a> event of the activity \n' +
+' denoted by <span class="name">a</span> precedes the destruction event of \n' +
+' the agent denoted by <span class="name">ag</span>, and the <a title="entity generation event">generation event</a> for agent denoted by \n' +
+' <span class="name">ag</span> <a>precedes</a> the activity <a title="activity end event">end</a> event. \n' +
+' </div><div class="issue"> \n' +
+' For completeness, we should define ordering constraint for \n' +
+' wasAssociatedWith and actedOnBehalfOf. For wasAssociatedWith(a,ag), it \n' +
+' feels that ag must have some overlap with a. For \n' +
+' actedOnBehalfOf(ag1,ag2,a), it seem that ag2 should have existed before \n' +
+' the overlap between ag1 and a. This is <a href="http://www.w3.org/2011/prov/track/issues/221">ISSUE-221</a>. \n' +
+' </div><div class="issue"> \n' +
+' It is suggested that a stronger name for wasAssociatedWith should be \n' +
+' adopted. This is <a href="http://www.w3.org/2011/prov/track/issues/182">ISSUE-182</a>. \n' +
+' </div><div class="anexample"> \n' +
+' <p> \n' +
+' In the following assertions, 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 assertions 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="constraint" id="generation-uniqueness"> \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' +
+' and two sets of attribute-value pairs <span class="name">attrs1</span> and \n' +
+' <span class="name">attrs2</span>, <span class="conditional">if</span> \n' +
+' <span class="name">wasGeneratedBy(id1,e,a1,attrs1)</span> and <span class="name">wasGeneratedBy(id2,e,a2,attrs2)</span> exist in the scope of \n' +
+' a given account, <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' +
+' and <span class="name">attrs1</span>=<span class="name">attrs2</span>. \n' +
+' </div><div class="inference" id="derivation-use"> \n' +
+' <p> \n' +
+' Given an activity with identifier <span class="name">a</span>, entities \n' +
+' denoted by <span class="name">e1</span> and <span class="name">e2</span>, \n' +
+' and a set of attribute-value pairs <span class="name">attrs2</span>, \n' +
+' <span class="conditional">if</span> <span class="name">wasDerivedFrom(e2,e1, \n' +
+' [prov:steps="single"])</span> and <span class="name">wasGeneratedBy(e2,a,attrs2)</span> \n' +
+' hold, <span class="conditional">then</span> <span class="name">used(a,e1,attrs1)</span> \n' +
+' also holds for some set of attribute-value pairs <span class="name">attrs1</span>. \n' +
+' </p> \n' +
+' </div><div class="note"> \n' +
+' Can the semantics characterize better what can be achieved with \n' +
+' structurally well-formed accounts? \n' +
+' </div><div class="note" id="note-related-to-issue-105"> \n' +
+' Satya discussed the example of a sculpture, whose hand and leg are \n' +
+' sculpted independently by two different sculptors. He suggested that the \n' +
+' sculpture is generated by two distinct activities. This section explains \n' +
+' that it is not the case. The example can be formulated as follows. \n' +
+' <p> \n' +
+' <a href="examples/sculpture.prov-asn">Sculpture example in ASN</a> \n' +
+' </p> \n' +
+' <p> \n' +
+' <a href="examples/sculpture.png">Sculpture example image</a> \n' +
+' </p> \n' +
+' <p> \n' +
+' We see that ex:s_3 (the sculpture in its final state) was derived from \n' +
+' ex:l_2 (containment) which was generated by ex:a2. However, ex:s_3 is \n' +
+' not directly generated by ex:a2. We may want to consider an abbreviation \n' +
+' for this: wasGeneratedBy*(ex:s_3,ex:a2). \n' +
+' </p> \n' +
+' </div><div class="note"> \n' +
+' Raw material taken from prov-dm3. Some further text required. \n' +
+' </div><div class="constraint" id="collection-parallel-insertions"> \n' +
+' <p> \n' +
+' One can have multiple assertions regarding the state of a collection \n' +
+' following a <em>set</em> of insertions, for example: \n' +
+' </p> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+'CollectionAfterInsertion(c2, c1, k1, v1) \n' +
+'CollectionAfterInsertion(c2, c1, k2, v2) \n' +
+'... \n' +
+'</pre> \n' +
+' <p> \n' +
+' This is interpreted as <em>" <span class="name">c2</span> is the state \n' +
+' that results from inserting <span class="name">(k1, v1)</span>, <span class="name">(k2, v2)</span> etc. into <span class="name">c1</span>"</em> \n' +
+' </p> \n' +
+' </div><div class="note"> \n' +
+' Shouldn\'t we have the same for deletion, and combination of insertion and \n' +
+' deletion? \n' +
+' </div><div class="constraint" id="collection-branching-derivations"> \n' +
+' It is possible to have multiple derivations from a single root collection, \n' +
+' as shown in the following example. \n' +
+' <div class="anexample"> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+' entity(c, [prov:type="EmptyCollection"]) // e is an empty collection \n' +
+' entity(v1) \n' +
+' entity(v2) \n' +
+' entity(v3) \n' +
+' entity(c1, [prov:type="Collection"]) \n' +
+' entity(c2, [prov:type="Collection"]) \n' +
+' entity(c3, [prov:type="Collection"]) \n' +
+' \n' +
+' CollectionAfterInsertion(c1, c, k1, v1) // c1 = { (k1,v1) } \n' +
+' CollectionAfterInsertion(c2, c, k2, v2) // c2 = { (k2 v2) } \n' +
+' CollectionAfterInsertion(c3, c1, k3,v3) // c3 = { (k1,v1), (k3,v3) } \n' +
+'</pre> \n' +
+' </div> \n' +
+' </div><div class="anexample"> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+' entity(c, [prov:type="EmptyCollection"]) // e is an empty collection \n' +
+' entity(v1) \n' +
+' entity(v2) \n' +
+' entity(v3) \n' +
+' entity(c1, [prov:type="Collection"]) \n' +
+' entity(c2, [prov:type="Collection"]) \n' +
+' entity(c3, [prov:type="Collection"]) \n' +
+' \n' +
+' CollectionAfterInsertion(c1, c, k1, v1) // c1 = { (k1,v1) } \n' +
+' CollectionAfterInsertion(c2, c, k2, v2) // c2 = { (k2 v2) } \n' +
+' CollectionAfterInsertion(c3, c1, k3,v3) // c3 = { (k1,v1), (k3,v3) } \n' +
+'</pre> \n' +
+' </div><div class="constraint" id="collection-unique-ancestor"> \n' +
+' Given the pair of assertions: \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+'CollectionAfterInsertion(c, c1, k1, v1) \n' +
+'CollectionAfterInsertion(c, c2, k2, v2) \n' +
+'</pre> \n' +
+' it follows that <span class="name">c1==c2</span>. \n' +
+' </div><div class="note"> \n' +
+' Original text stated it follows that <span class="name">c1==c2, k1==k2, \n' +
+' v1==v2</span>, because one cannot have two different derivations for the \n' +
+' same final collection state. This is incompatible with parallel insertion \n' +
+' constraint. \n' +
+' </div><div class="note"> \n' +
+' Shouldn\'t we have the same for deletion, and combination of insertion and \n' +
+' deletion? \n' +
+' </div><div class="constraint" id="collection-unique-value-for-key"> \n' +
+' Given the following set of insertions: \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+'CollectionAfterInsertion(c1, c, k, v1) \n' +
+'CollectionAfterInsertion(c1, c, k, v2) \n' +
+'</pre> \n' +
+' it follows that <span class="name">v1==v2</span>. \n' +
+' </div><div class="anexample"> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+' entity(c, [prov:type="collection"]) // e is a collection, possibly not empty \n' +
+' entity(v1) \n' +
+' entity(v2, [prov:type="collection"]) // v2 is a collection \n' +
+' \n' +
+' CollectionAfterInsertion(c1, c, k1, v1) // c1 <em>includes</em> { (k1,v1) } but may contain additional unknown pairs \n' +
+' CollectionAfterInsertion(c2, c1, k2, v2) // c2 includes { (k1,v1), (k2 v2) } where v2 is a collection with unknown state \n' +
+'</pre> \n' +
+' </div><div class="anexample"> \n' +
+'<pre class="codeexample" xml:space="preserve"> \n' +
+' entity(c, [prov:type="emptyCollection"]) // e is an empty collection \n' +
+' entity(v1) \n' +
+' entity(v2) \n' +
+' \n' +
+' CollectionAfterInsertion(c1, c, k1, v1) // c1 = { (k1,v1) } \n' +
+' wasDerivedFrom(c2, c1) // the asserted knows that c2 is somehow derived from c1, but cannot assert the precise sequence of updates \n' +
+' CollectionAfterInsertion(c3, c2, k2, v2) \n' +
+'</pre> \n' +
+' <p> \n' +
+' Here <span class="name">c3</span> includes <span class="name">{ (k2 v2) \n' +
+' }</span> but the earlier "gap" leaves uncertainty regarding <span class="name">(k1,v1)</span> (it may have been removed) or any other pair \n' +
+' that may have been added as part of the derivation activities. \n' +
+' </p> \n' +
+' </div><div class="note"> \n' +
+' Purely tentative \n' +
+' </div><div class="note"> \n' +
+' What is the meaning here? Is it any different? Are stating anything \n' +
+' about newer version of tr:prov-dm that occur after \n' +
+' 2011-12-15T12:00:00? \n' +
+' </div><div class="note"> \n' +
+' What is the meaning here? that only the version that was created by \n' +
+' this event is attributed to ex:Simon, but not previous ones. This \n' +
+' means that it is not specfied whether he was an author in anterior \n' +
+' versions. \n' +
+' </div><div class="note"> \n' +
+' Speculative, since we have not defined the destruction event (yet?. \n' +
+' What is the meaning here? that only the versions that existed during \n' +
+' this characterization interval were attributed to ex:Simon. \n' +
+' </div><span class="glossary" id="glossary-account"> An <dfn>account</dfn> is a \n' +
+' named bundle of provenance descriptions. </span><span class="glossary" id="glossary-entity"> <dfn id="concept-accountEntity">AccountEntity</dfn> is the category of entities \n' +
+' that are accounts, i.e. named bundles of provenance descriptions. </span><span class="conditional">If</span><span class="name">entity(e,attrs)</span><span class="name">wasAssociatedWith(a,e)</span><span class="name">a</span><span class="name">e</span><span class="name">attrs</span><span class="name">agent(e,attrs)</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">if</span><span class="name">wasDerivedFrom(e2, e1, a, g2, u1, attrs)</span><span class="name">g2</span><span class="name">u1</span><span class="name">wasDerivedFrom(e2,e1,[prov:steps="single"] \n' +
+' cup; attrs)</span><span class="name">e1</span><span class="name">e2</span><span class="conditional">if</span><span class="name">wasDerivedFrom(e2, \n' +
+' e1, [prov:steps="single"] cup; attrs)</span><span class="name">wasDerivedFrom(e2,e1,attrs)</span><span class="conditional">If</span><span class="name">wasDerivedFrom(e2,e1)</span><span class="conditional">then</span><span class="name">a</span><span class="name">u</span><span class="name">g</span><span class="name">gAttrs</span><span class="name">uAttrs</span><span class="name">aAttrs</span><span class="name">wasGeneratedBy(g, \n' +
+' e2, a, attrs2)</span><span class="name">used(u, a, e1, \n' +
+' 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, \n' +
+' 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="conditional">If</span><span class="name">wasDerivedFrom(e2,e1,t,attrs)</span><span class="conditional">then</span><span class="name">wasDerivedFrom(e2,e1,attrs)</span><span class="name">wasGeneratedBy(e2,t)</span><span class="name">specializationOf(e2,e1)</span><span class="name">specializationOf(e3,e2)</span><span class="name">specializationOf(e2,e1)</span><span class="name">specializationOf(e3,e1)</span><span class="name">specializationOf(e2,e1)</span><span class="name">specializationOf(e2,e1)</span><span class="name">specializationOf(e1,e2)</span><span class="name">alternateOf(e2,e1)</span><span class="name">alternateOf(e2,e1)</span><span class="name">alternateOf(e1,e2)</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">wasGeneratedBy(e2,a,gAttr) \n' +
+' and wasAssociatedWith(a,e1)</span><span class="name">a</span><span class="name">gAttr</span><span class="conditional">then</span><span class="name">tracedTo(e2,e1)</span><span class="conditional">If</span><span class="name">wasGeneratedBy(e2,a,gAttr)</span><span class="name">wasAssociatedWith(a,e)</span><span class="name">actedOnBehalfOf(e,e1)</span><span class="name">a</span><span class="name">e</span><span class="name">gAttr</span><span class="conditional">then</span><span class="name">tracedTo(e2,e1)</span><span class="conditional">If</span><span class="name">wasGeneratedBy(e2,a,gAttr) \n' +
+' and wasStartedBy(a,e1,sAttr)</span><span class="name">a</span><span class="name">e</span><span class="name">gAttr</span><span class="name">sAttr</span><span class="conditional">then</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="conditional">If</span><span class="name">tracedTo(r2,r1,attrs)</span><span class="name">r2</span><span class="name">r1</span><span class="name">attrs</span><span class="conditional">then</span><span class="name">e<sup>0</sup></span><span class="name">e<sup>1</sup></span><span class="name">e<sup>n</sup></span><span class="name">nge;1</span><span class="name">e<sup>0</sup></span><span class="name">r2</span><span class="name">e<sup>n</sup></span><span class="name">r1</span><span class="name">0le;ile;n-1</span><span class="name">wasDerivedFrom(e<sup>i</sup>,e<sup>i+1</sup>,a,g2,u1)</span><span class="name">a</span><span class="name">g2</span><span class="name">u1</span><span class="name">wasDerivedFrom(e<sup>i</sup>,e<sup>i+1</sup>)</span><span class="name">wasBasedOn(e<sup>i</sup>,e<sup>i+1</sup>)</span><span class="name">wasGeneratedBy(e<sup>i</sup>,a,gAttr) and \n' +
+' wasAssociatedWith(a,e<sup>i+1</sup>)</span><span class="name">a</span><span class="name">gAttr</span><span class="name">wasGeneratedBy(e<sup>i</sup>,a,gAttr)</span><span class="name">wasAssociatedWith(a,e)</span><span class="name">actedOnBehalfOf(e,e<sup>i+1</sup>)</span><span class="name">a</span><span class="name">e</span><span class="name">gAttr</span><span class="name">wasGeneratedBy(e<sup>i</sup>,a,gAttr) and \n' +
+' wasStartedBy(a,e<sup>i+1</sup>,sAttr)</span><span class="name">a</span><span class="name">e</span><span class="name">gAttr</span><span class="name">sAttr</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">attrs1</span><span class="name">attrs2</span><span class="name">wasGeneratedBy(e,a1,attrs1)</span><span class="name">used(a2,e,attrs2)</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">a1</span><span class="name">a1</span><span class="name">a2</span><span class="name">wasStartedBy(a2,a1)</span><span class="conditional">if and only if</span><span class="name">e</span><span class="name">gAttr</span><span class="name">sAttr</span><span class="name">wasGeneratedBy(e,a1,gAttr)</span><span class="name">wasStartedBy(a2,e,sAttr)</span><span class="name">wasStartedBy</span><span class="name">wasStartedBy</span><span class="name">wasStartedBy</span><span class="name">old</span><span class="name">new</span><span class="name">ag</span><span class="conditional">if</span><span class="name">wasRevisionOf(new,old,ag)</span><span class="conditional">then</span><span class="name">e</span><span class="name">eAttrs</span><span class="name">dAttrs</span><span class="name">wasDerivedFrom(new,old,dAttrs)</span><span class="name">entity(e,eAttrs)</span><span class="name">specializationOf(new,e)</span><span class="name">specializationOf(old,e)</span><span class="name">wasRevisionOf</span><span class="name">wasDerivedFrom</span><span class="name">e2</span><span class="name">e1</span><span class="name">wasDerivedFrom(e2,e1)</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">attr1</span><span class="name">attr2</span><span class="name">t1</span><span class="name">t2</span><span class="conditional">If</span><span class="name">wasQuotedFrom(e2,e1,ag2,ag1,attrs)</span><span class="name">e2</span><span class="name">e1</span><span class="name">ag2</span><span class="name">ag1</span><span class="conditional">then</span><span class="name">w3:Consortium</span><span class="name">tr:WD-prov-dm-20111215</span><span class="name">e</span><span class="name">entity(e,av)</span><span class="name">av</span><span class="name">alternateOf</span><span class="name">a</span><span class="name">e</span><span class="name">attrs</span><span class="name">t</span><span class="conditional">if</span><span class="name">used(a,e,attrs)</span><span class="name">used(a,e,attrs,t)</span><span class="conditional">then</span><span class="name">e</span><span class="name">a</span><span class="name">a</span><span class="name">e</span><span class="name">attrs</span><span class="name">t</span><span class="conditional">if</span><span class="name">wasGeneratedBy(e,a,attrs)</span><span class="name">wasGeneratedBy(e,a,attrs,t)</span><span class="conditional">then</span><span class="name">e</span><span class="name">a</span><span class="name">a</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="name">a</span><span class="name">e1</span><span class="name">e2</span><span class="name">g2</span><span class="name">u1</span><span class="conditional">if</span><span class="name">wasDerivedFrom(e2,e1,a,g2,u1,attrs)</span><span class="name">wasDerivedFrom(e2,e1,[prov:steps="single"] cup; attrs)</span><span class="conditional">then</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:steps="any"] cup; attrs)</span><span class="conditional">then</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">a1</span><span class="name">a2</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="conditional">then</span><span class="name">a1</span><span class="name">a2</span><span class="name">a1</span><span class="name">a2</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">wasStartedBy(a2,a1)</span><span class="conditional">then</span><span class="name">a1</span><span class="name">a2</span><span class="name">a</span><span class="name">ag</span><span class="conditional">if</span><span class="name">wasStartedBy(a,ag)</span><span class="conditional">then</span><span class="name">a</span><span class="name">ag</span><span class="name">a</span><span class="name">ag</span><span class="conditional">if</span><span class="name">wasAssociatedWith(a,ag)</span><span class="conditional">then</span><span class="name">a</span><span class="name">ag</span><span class="name">ag</span><span class="name">g1</span><span class="name">g2</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">e</span><span class="name">a1</span><span class="name">a2</span><span class="name">attrs1</span><span class="name">attrs2</span><span class="conditional">if</span><span class="name">wasGeneratedBy(id1,e,a1,attrs1)</span><span class="name">wasGeneratedBy(id2,e,a2,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">attrs1</span><span class="name">attrs2</span><span class="name">a</span><span class="name">e1</span><span class="name">e2</span><span class="name">attrs2</span><span class="conditional">if</span><span class="name">wasDerivedFrom(e2,e1, \n' +
+' [prov:steps="single"])</span><span class="name">wasGeneratedBy(e2,a,attrs2)</span><span class="conditional">then</span><span class="name">used(a,e1,attrs1)</span><span class="name">attrs1</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,attrs2)</span><span class="name">e1</span><span class="name">e2</span><span class="name">c2</span><span class="name">(k1, v1)</span><span class="name">(k2, v2)</span><span class="name">c1</span><span class="name">c1==c2</span><span class="name">c1==c2, k1==k2, \n' +
+' v1==v2</span><span class="name">v1==v2</span><span class="name">c2</span><span class="name">c3</span><span class="name">{ (k2 v2) \n' +
+' }</span><span class="name">(k1,v1)</span><span class="name">tr:prov-dm</span><span class="name">tr:prov-dm</span><span class="name">tr:WD-prov-dm-20111215</span><span class="name">tr:WD-prov-dm-20111018</span><span class="name">w3:Consortium</span><span class="name">tr:prov-dm</span><span class="name">w3:Consortium</span><span class="name">ex:acc1</span><span class="name">ex:acc1</span><span class="name">tr:prov-dm</span><span class="name">tr:prov-dm</span></html> \n' +
' ' ;