renamed annotation into note
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Thu, 17 Nov 2011 11:29:09 +0000
changeset 937 ebb01cc469df
parent 936 6a0618c0e1dd
child 938 765c50d667c9
renamed annotation into note
model/ProvenanceModel.html
--- a/model/ProvenanceModel.html	Thu Nov 17 09:51:15 2011 +0000
+++ b/model/ProvenanceModel.html	Thu Nov 17 11:29:09 2011 +0000
@@ -14,6 +14,7 @@
      </style>
 
     <script src="http://dev.w3.org/2009/dap/ReSpec.js/js/respec.js" class="remove"></script> 
+    <script src="http://www.w3.org/2007/OWL/toggles.js" class="remove"></script> 
 
     <script class="remove"> 
       var addExtraReferences = function() {
@@ -81,7 +82,7 @@
  
           // if you want to have extra CSS, append them to this list
           // it is recommended that the respec.css stylesheet be kept
-          extraCSS:             ["http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css", "./extra.css", "http://www.w3.org/2007/OWL/toggles.js"],
+          extraCSS:             ["http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css", "./extra.css"],
  
           // editors, add as many as you like
           // only "name" is required
@@ -160,23 +161,17 @@
 the mechanisms for accessing and querying provenance.
 </section>
 
-<!-- DOESN@T WORK
+
 <div class="buttonpanel"> 
 <form action=""><p> 
-<input id="show-sd" onclick="set_display_by_class('div','image','none'); set_display_by_id('hide-sd',''); set_display_by_id('show-sd','none');" type="button" value="Hide Diagrams" /> 
-<input id="hide-sd" onclick="set_display_by_class('div','image',''); set_display_by_id('hide-sd','none'); set_display_by_id('show-sd','');" style="display: none" type="button" value="Show Diagrams" /> 
 <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" /> 
-<input id="hide-fss" onclick="show_syntaxes(false,bRDFVisible); set_display_by_id('hide-fss','none'); set_display_by_id('show-fss','');" type="button" value="Hide FSS in Examples" /> 
-<input id="show-fss" onclick="show_syntaxes(true,bRDFVisible); set_display_by_id('hide-fss',''); set_display_by_id('show-fss','none');" style="display: none" type="button" value="Show FSS in Examples" /> 
-<input id="hide-rdf" onclick="show_syntaxes(bFSSVisible,false); set_display_by_id('hide-rdf','none'); set_display_by_id('show-rdf','');" style="display: none" type="button" value="Hide RDF in Examples" /> 
-<input id="show-rdf" onclick="show_syntaxes(bFSSVisible,true); set_display_by_id('hide-rdf',''); set_display_by_id('show-rdf','none');" type="button" value="Show RDF in Examples" /> 
 </p> 
 </form> 
 </div>     
--->
+
 
     <section> 
       <h2>Introduction<br>
@@ -449,7 +444,7 @@
 </p>
 
 <p>
-The model includes a further additional elements: <strong>annotations</strong>. These are also structured as sets of attribute-value pairs.  Annotations are used to provide additional, "free-form" information regarding <strong>any</strong> identifiable construct of the model, with no prescribed meaning. The difference between attributes in  annotation attributes and the other attributes is further clarified <a href="#record-annotation">here</a>. 
+The model includes a further additional elements: <strong>notes</strong>. These are also structured as sets of attribute-value pairs.  Notes are used to provide additional, "free-form" information regarding <strong>any</strong> identifiable construct of the model, with no prescribed meaning. The difference between attributes in notes attributes and the other attributes is further clarified <a href="#record-note">here</a>. 
 </p>
    
 <p> 
@@ -576,7 +571,7 @@
 
 
 <p>
-Records of type <strong>Usage Records</strong> (described in <a href="#record-Usage">Section Usage</a>) represent the event by which a file is read by an activity. 
+Usage Records (described in <a href="#record-Usage">Section Usage</a>) represent the event by which a file is read by an activity. 
 
 Likewise, attributes describe the modalities according to which the various entities are used by activities.  Illustrations of such attributes are: 
 <span class="name">e1</span> is used in the context of  <span class="name">pe1</span>'s <span class="name">load</span> functionality; <span class="name">e2</span> is used by <span class="name">pe2</span> in the context of its attach functionality; <span class="name">e3</span> is used on the standard input by <span class="name">pe5</span>. </p>
@@ -614,32 +609,27 @@
 <p>
 Agent Records (described at <a href="#record-Agent">Section Agent</a>): the various users are represented as agents, themselves being a type of entity.</p>
 <pre>
-entity(a1, [ prov:type="Person", ex:name="Alice" ])
-agent(a1)
-
-entity(a2, [ prov:type="Person", ex:name="Bob" ])
-agent(a2)
-
-entity(a3, [ prov:type="Person", ex:name="Charles" ])
-agent(a3)
-
-entity(a4, [ prov:type="Person", ex:name="David" ])
-agent(a4)
-
-entity(a5, [ prov:type="Person", ex:name="Edith" ])
-agent(a5)
+agent(a1, [ prov:type="prov:Person", ex:name="Alice" ])
+
+agent(a2, [ prov:type="prov:Person", ex:name="Bob" ])
+
+agent(a3, [ prov:type="prov:Person", ex:name="Charles" ])
+
+agent(a4, [ prov:type="prov:Person", ex:name="David" ])
+
+agent(a5, [ prov:type="prov:Person", ex:name="Edith" ])
 </pre>
 
 
 
 <p>
-Control Records (described in <a href="#record-Control">Section Control</a>): the influence of an agent over an activity is expressed as control, and the nature of this influence is described by attributes.  Illustrations of such attributes include the role of the participating agent, as creator, author and communicator (role is a reserved attribute in PROV-DM).</p>
+Activity Assocation Records (described in <a href="#record-ActivityAssociation">Section Activity Association</a>): the association of an agent with an activity is expressed with , and the nature of this association is described by attributes.  Illustrations of such attributes include the role of the participating agent, as creator, author and communicator (role is a reserved attribute in PROV-DM).</p>
 <pre>
-wasControlledBy(pe0,a1, [prov:role="creator"])
-wasControlledBy(pe1,a2, [prov:role="author"])
-wasControlledBy(pe2,a3, [prov:role="communicator"])
-wasControlledBy(pe3,a4, [prov:role="author"])
-wasControlledBy(pe4,a5, [prov:role="communicator"])
+wasAssociatedWith(pe0,a1, [prov:role="creator"])
+wasAssociatedWith(pe1,a2, [prov:role="author"])
+wasAssociatedWith(pe2,a3, [prov:role="communicator"])
+wasAssociatedWith(pe3,a4, [prov:role="author"])
+wasAssociatedWith(pe4,a5, [prov:role="communicator"])
 </pre>
 </section> 
 
@@ -693,19 +683,19 @@
 <span class="nonterminal">entityRecord</span> 
 | <span class="nonterminal">activityRecord</span> 
 | <span class="nonterminal">agentRecord</span>
-| <span class="nonterminal">annotationRecord</span> <br/>
+| <span class="nonterminal">noteRecord</span> <br/>
 <!-- -->
 <br/>
 <span class="nonterminal">relationRecord</span>&nbsp;:=  
 <span class="nonterminal">generationRecord</span> 
 | <span class="nonterminal">usageRecord</span> 
 | <span class="nonterminal">derivationRecord</span> 
-| <span class="nonterminal">controlRecord</span> 
+| <span class="nonterminal">activityAssociationRecord</span> 
+| <span class="nonterminal">responsibilityRecord</span> 
+| <span class="nonterminal">startRecord</span> 
+| <span class="nonterminal">endRecord</span> 
 | <span class="nonterminal">complementRecord</span> 
-| <span class="nonterminal">peOrderingRecord</span> 
-| <span class="nonterminal">revisionRecord</span> 
-| <span class="nonterminal">participationRecord</span>
-| <span class="nonterminal">annotationAssociationRecord</span> 
+| <span class="nonterminal">annotationRecord</span> 
 </div>
 
 
@@ -933,29 +923,29 @@
 <p>the agent record identified by <span class="name">e1</span> is an explicit agent assertion that holds irrespective of activities it may be associated with. On the other hand, from the entity records identified  by <span class="name">e2</span> and <span class="name">e3</span>, one can infer agent records, as per the following inference.</p>
 </div>
 
-<div class='constraint' id='control-agent'>
+<div class='constraint' id='association-agent'>
 <span class='conditional'>If</span> the records <span class="name">entity(e,av)</span>
 and
-<span class="name">wasControlledBy(pe,e)</span> hold for some identifiers 
+<span class="name">wasAssociatedWith(pe,e)</span> hold for some identifiers 
 <span class="name">pe</span>, <span class="name">e</span>, and attribute-values <span class="name">av</span>, then
 the record <span class="name">agent(e)</span> also holds.
 </div>
-<div class="note">TO update with new relations.</div>
+
 </section>
 
-   <section id="record-annotation"> 
+   <section id="record-note"> 
       
-<h4>Annotation Record</h4>
-
-<p>An <dfn id="dfn-annotation">annotation record</dfn> is a set of attribute-value pairs, whose meaning is application specific. It may or may not be a representation of something in the world.</p> 
-
-<p>In PROV-ASN, an annotation record's text matches the <span class="nonterminal">annotationRecord</span> production of the grammar defined in this specification document.
+<h4>Note Record</h4>
+
+<p>An <dfn id="dfn-note">note record</dfn> is a set of attribute-value pairs, whose meaning is application specific. It may or may not be a representation of something in the world.</p> 
+
+<p>In PROV-ASN, a note record's text matches the <span class="nonterminal">noteRecord</span> production of the grammar defined in this specification document.
 </p>
 
 
 <div class='grammar'>
-<span class="nonterminal">annotationRecord</span>&nbsp;:= 
-<span class="name">annotation</span>
+<span class="nonterminal">noteRecord</span>&nbsp;:= 
+<span class="name">note</span>
 <span class="name">(</span>
 <span class="nonterminal">identifier</span>
 <span class="name">,</span>
@@ -964,15 +954,15 @@
 <!-- -->
 </div>
 
-<p>A separate PROV-DM record is used to associate an annotation with a record (see <a href="#record-annotationAssociation">Section on annotation association</a>). A given annotation may be associated with multiple records.
+<p>A separate PROV-DM record is used to associate a note with an identifiable record (see <a href="#record-annotation">Section on annotation</a>). A given note may be associated with multiple records.
 </p>
 
 
 <div class="anexample">
 <p>
-The following annotation record</p>
+The following note record</p>
 <pre class="codeexample">
-annotation(ann1,[ex:color="blue", ex:screenX="20" %% xsd:integer, ex:screenY="30" %% xsd:integer])
+note(ann1,[ex:color="blue", ex:screenX="20" %% xsd:integer, ex:screenY="30" %% xsd:integer])
 </pre>
 <p>consists of a set of application-specific attribute-value pairs, intended
 to help the rendering of the record it is associated with, by
@@ -983,7 +973,7 @@
 </div>
 
 <p>
-Attribute-value pairs occurring in annotations differ from attribute-value pairs occurring in entity records and activity records.  In entity and activity records, attribute-value pairs MUST be a representation of something in the world, which remain constant for the duration of the characterization interval (for entity record) or the activity duration (for activity records). In annotation records, it is OPTIONAL for attribute-value pairs to be representations  of something in the world. If they are a representation of something in the world, then it MAY change value for the corresponding duration. If attribute-value pairs of an annotation record are a representation of something in the world that does not change, they are not regarded as determining characteristics of an entity or activity, for the purpose of provenance. 
+Attribute-value pairs occurring in notes differ from attribute-value pairs occurring in entity records and activity records.  In entity and activity records, attribute-value pairs MUST be a representation of something in the world, which remain constant for the duration of the characterization interval (for entity record) or the activity duration (for activity records). In note records, it is OPTIONAL for attribute-value pairs to be representations  of something in the world. If they are a representation of something in the world, then it MAY change value for the corresponding duration. If attribute-value pairs of a note record are a representation of something in the world that does not change, they are not regarded as determining characteristics of an entity or activity, for the purpose of provenance. 
 </p>
 
 
@@ -1003,12 +993,12 @@
 
 <div class="table">
 <table border="1" align="center">
-<tr><td></td><td>Entity</td><td>Activity</td><td>Agent</td><td>Annotation</td></tr> 
+<tr><td></td><td>Entity</td><td>Activity</td><td>Agent</td><td>Note</td></tr> 
 <tr><td>Entity</td><td>wasComplementOf</td><td>wasGeneratedBy</td><td>-</td><td>hasAnnotation</td></tr>
 <tr><td>Activity</td><td>used</td><td>-</td><td>wasStartedBy<br>wasEndedBy<br>wasAssociatedWith</td><td>hasAnnotation</td></tr>
 <tr><td rowspan="2">Agent</td><td rowspan="2">-</td><td colspan="2">actedOnBehalfOf</td><td rowspan="2">hasAnnotation</td></tr>
 <tr><td>-</td><td>wasComplementOf</td></tr>
-<tr><td>Annotation</td><td>-</td><td>-</td><td>-</td><td>hasAnnotation</td></tr>
+<tr><td>Note</td><td>-</td><td>-</td><td>-</td><td>hasAnnotation</td></tr>
 <caption>PROV-DM Relation Summary</caption>
 </table>
 </div>
@@ -1058,7 +1048,7 @@
 
 
 <p>
-A generation record's id is OPTIONAL. It MUST be used when annotating generation records (see Section <a href="#record-annotationAssociation">Annotation Association Record</a>) or when defining derivations (see <a href="#pe-linked-derivationRecord"><span class='nonterminal'>pe-linked-derivationRecord</span></a>).
+A generation record's id is OPTIONAL. It MUST be used when annotating generation records (see Section <a href="#record-annotation">Annotation Record</a>) or when defining derivations (see <a href="#pe-linked-derivationRecord"><span class='nonterminal'>pe-linked-derivationRecord</span></a>).
 </p>
 
 
@@ -1137,7 +1127,7 @@
 
 
 <p>
-A usage record's id is OPTIONAL, but comes handy when annotating usage records (see Section <a href="#record-annotationAssociation">Annotation Association Record</a>) or when defining derivations (see <a href="#pe-linked-derivationRecord"><span class='nonterminal'>pe-linked-derivationRecord</span></a>).
+A usage record's id is OPTIONAL, but comes handy when annotating usage records (see Section <a href="#record-annotation">Annotation Record</a>) or when defining derivations (see <a href="#pe-linked-derivationRecord"><span class='nonterminal'>pe-linked-derivationRecord</span></a>).
 </p>
 
 
@@ -1179,9 +1169,355 @@
 </section>
 
 
+
+
+
+<section id="activity-agent-relation">
+<h3>Activity-Agent Relation</h3>
+
+<section id="record-ActivityAssociation">
+<h4>Activity Association Record</h4>
+
+<p>The key purpose of agents in PROV-DM is to assign responsibility
+for activities.  It is important to reflect that there is a degree in
+the responsibility of agents, and that is a major reason for
+distinguishing among all the agents that have some association with an
+activity and determine which ones are really the originators of the
+entity.  For example, a programmer and a researcher could both be
+associated with running a workflow, but it may not matter what
+programmer clicked the button to start the workflow while it would
+matter a lot what researcher told the programmer to do so.  Another
+example: 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 what
+student published a web page but it matters a lot that the department
+told the student to put up the web page.  So there is some notion of
+responsibility that needs to be captured. </p>
+
+<p>To this end, PROV-DM offers two kinds of records. The first, introduced in this section, represents an association between an agent and an activity; the second, introduced in <a href="#record-responsibility">Section Responsibility record</a>, represents the fact that an agent was acting on behalf of another, in the context of an activity. </p>
+
+<p>An activity association record, written <span class="name">wasAssociatedWith(a,ag2,attrs)</span> in PROV-ASN, has the following constituents:</p>
+<ul>
+<li><em>id</em>:  an OPTIONAL identifier  <span class="name">id</span> identifying the activity association record;</li> 
+<li><em>activity</em>: an identifier <span class="name">a</span> for an activity record;</li>
+<li><em>agent</em>: an identifier <span class="name">ag2</span> for an agent record, which represents the agent associated with the activity;</li>
+<li><em>attributes</em>: a set of attribute-value pairs <span class="name">attrs</span> that describe the modalities of usage of this entity by this activity.</li>
+</ul>
+
+<p>In PROV-ASN, an activity association record's text matches the <span class="nonterminal">activityAssociationRecord</span> productions of the grammar defined in this specification document.</p>
+
+<div class='grammar'>
+<span class="nonterminal">activityAssociationRecord</span>&nbsp;:= 
+<span class="name">wasAssociatedWith</span>
+<span class="name">(</span>
+[<span class="nonterminal">identifier</span>,]
+<span class="nonterminal">identifier</span>,
+<span class="nonterminal">identifiers</span>,
+<span class="nonterminal">attribute-values</span>
+<span class="name">)</span>
+</div>
+
+<div class="anexample">
+In the following example, a programmer and a researcher agents are asserted to be associated with an activity.
+<pre class="codeexample">
+activity(a,[prov:type="workflow"])
+agent(e1,[prov:type="programmer"]
+agent(e2,[prov:type="researcher"]
+wasAssociatedWith(a,e1,[prov:role="loggedInUser"])
+wasAssociatedWith(a,e1,[prov:role="designer"])
+</pre>
+</div>
+
+
+
+</section>
+
+<section id="record-Start-End">
+<h4>Start and End Records</h4>
+
+<p> A <dfn id="dfn-Start">start record</dfn> is a representation of an agent starting an activity.
+ An <dfn id="dfn-End">end record</dfn> is a representation of an agent ending an activity. Both relations contains attributes describing the modalities of acting/ending acitivities.</p>
+
+
+
+<p>A start record, written <span class="name">wasStartedBy(id,a,ag,attrs)</span> in PROV-ASN, contains:</p>
+<ul>
+<li><em>id</em>:  an OPTIONAL identifier  <span class="name">id</span> identifying the start record;</li> 
+<li><em>activity</em>: an identifier <span class="name">a</span> denoting an activity record, representing the started activity;
+<li><em>agent</em>: an identifier <span class="name">ag</span> for an agent record, representing the starting agent;
+<li><em>attributes</em>: contains a set of attribute-value pairs <span class="name">attrs</span>, describing modalities accorting to which the agent started the activity.
+</ul>
+
+<p>An end record, written <span class="name">wasEndedBy(id,a,ag,attrs)</span> in PROV-ASN, contains:</p>
+<ul>
+<li><em>id</em>:  an OPTIONAL identifier  <span class="name">id</span> identifying the end record;</li> 
+<li><em>activity</em>: an identifier <span class="name">a</span> denoting an activity record, representing the ended activity;
+<li><em>agent</em>: an identifier <span class="name">ag</span> for an agent record, representing the ending agent;
+<li><em>attributes</em>: contains a set of attribute-value pairs <span class="name">attrs</span>, describing modalities accorting to which the agent ended the activity.
+</ul>
+
+<p>In PROV-ASN, start and end record's texts match the <span class="nonterminal">startRecord</span> and <span class="nonterminal">endRecord</span> productions of the grammar defined in this specification document.
+</p>
+
+
+<div class='grammar'>
+<span class="nonterminal">startRecord</span>&nbsp;:= 
+<span class="name">wasStartedBy</span>
+<span class="name">(</span>
+[<span class="nonterminal">identifier</span>,]
+<span class="nonterminal">identifier</span>,
+<span class="nonterminal">identifier</span>,
+<span class="nonterminal">attribute-values</span>
+<span class="name">)</span><br/>
+<span class="nonterminal">endRecord</span>&nbsp;:= 
+<span class="name">wasEndedBy</span>
+<span class="name">(</span>
+[<span class="nonterminal">identifier</span>,]
+<span class="nonterminal">identifier</span>,
+<span class="nonterminal">identifier</span>,
+<span class="nonterminal">attribute-values</span>
+<span class="name">)</span>
+</div>
+
+
+<div class="anexample">
+<p>
+The following assertions</p>
+<pre class="codeexample">
+wasStartedBy(a,ag,[ex:mode="manual"])
+wasEndedby(a,ag,[ex:mode="manual"])
+</pre>
+<p>state that the activity, represented by the activity record denoted by <span class="name">a</span>
+was started and ended by an agent, represented by record denoted by  <span class="name">a</span>, in "manual" mode, an application specific characterization of these relations.
+</p>
+</div>
+</section>
+
+
+<!--
+<section id="record-Participation">
+<h4>Participation Record</h4>
+
+<p>A <dfn id="dfn-Participation">participation record</dfn> is a representation of the involvement of an entity in an activity. A participation record can be asserted or inferred.</p>
+
+
+<p>In PROV-ASN, a participation record's text matches the <span class="nonterminal">participationRecord</span> production of the grammar defined in this specification document.</p>
+
+
+<div class='grammar'>
+<span class="nonterminal">participationRecord</span>&nbsp;:= 
+<span class="name">hadParticipant</span>
+<span class="name">(</span>
+<span class="nonterminal">identifier</span>
+<span class="name">,</span>
+<span class="nonterminal">identifier</span>
+<span class="name">)</span>
+</div>
+
+
+
+<p> A participation record,
+written <span class="name">hadParticipant(pe,e)</span> in PROV-ASN:
+<ul> 
+<li> contains to identifier <span class="name">pe</span> identifying an activity record representing an activity;
+<li> contains an identifier  <span class="name">e</span>  identifying an entity record, which is 
+a representation of an entity involved in this activity.
+</ul>
+
+<p>An entity's participation in an activity can be by direct usage or direct control. But also, if an entity and situation are characterized in two complementary manners (and are represented by two entity records related by <span class="name">isComplementOf</span>), if one of them participates in an activity,  so does the other.  The following captures the definition of participation.</p>
+
+<div class='constraint' id='participation'>
+Given two identifiers <span class="name">pe</span> and  <span class="name">e</span>, respectively identifying  an activity record and an entity record, the record <span class="name">hadParticipant(pe,e)</span> holds <span class='conditional'>if and only if</span>:
+<ul> 
+<li> <span class="name">used(pe,e)</span> holds, or</li>
+<li> <span class="name">wasControlledBy(pe,e)</span> holds, or</li>
+<li>  <span class="name">wasComplementOf(e1,e)</span> holds for some entity record identified by <span class="name">e1</span>, and 
+ <span class="name">hadParticipant(pe,e1)</span> holds  some activity record  identified by <span class="name">pe</span>.</li>
+</ul>
+</div>
+
+
+<div class='pending'>Suggested definition for participation. This is <a href="http://www.w3.org/2011/prov/track/issues/49">ISSUE-49</a>.</div>
+
+</section>
+
+-->
+
+</section>
+
+<section id="entity-entity-agent-agent-relation">
+<h4>Entity-Entity or Agent-Agent Relation</h4>
+
+<section id="record-responsibility">
+
+<h4>Responsibility Record</h4>
+
+<p>To promote take-up, PROV-DM offers a mild version of responsibility
+in the form of a relation to represent when an agent acted on another
+agent's behalf.  So in the example of someone running a mail program,
+the program is an agent of that activity and the person is also an
+agent of the activity, but we would also add that the mail software
+agent is running on the person's behalf.  In the other example, the
+student acted on behalf of his supervisor, who acted on behalf of the
+department chair, who acts on behalf of the university, and all those
+agents are responsible in some way for the activity to take place but
+we don't say explicitly who bears responsibility and to what
+degree. </p>
+
+<p>We could also say that an agent can act on behalf of several other
+agents (a group of agents).  This would also make possible to
+indirectly reflect chains of responsibility.  This also indirectly
+reflects control without requiring that control is explicitly
+indicated.  In some contexts there will be a need to represent
+responsibility explicitly, for example to indicate legal
+responsibility, and that could be added as an extension to this core
+model.  Similarly with control, since in particular contexts there
+might be a need to define specific aspects of control that various
+agents exert over a given activity.</p>
+
+<p>Given an activity association record <span class="name">wasAssociatedWith(a,ag2,attrs)</span>,
+a responsibility record, written <span class="name">actedOnBehalfOf(id,ag2,ag1,a,attrs)</span> in PROV-ASN, has the following constituents:</p>
+<ul>
+<li><em>id</em>:  an OPTIONAL identifier  <span class="name">id</span> identifying the responsibility record;</li> 
+<li><em>subordinate</em>: an identifier <span class="name">ag2</span> for an agent record, which represents an agent associated with an activity, acting on behalf of the responsible agent;</li>
+<li><em>responsible</em>: an identifier <span class="name">ag1</span> for an agent record, which represents the agent on behalf of which the subordinate agent <span class="name">ag2</span> acts;</li>
+<li><em>activity</em>: an OPTIONAL identifier <span class="name">a</span> of an activity record for which the responsibility record holds;</li>
+<li><em>attributes</em>: a set of attribute-value pairs <span class="name">attrs</span> that describe the modalities of this relation.</li>
+</ul>
+
+
+<div class='grammar'>
+<span class="nonterminal">responsibilityRecord</span>&nbsp;:= 
+<span class="name">actedOnBehalfOf</span>
+<span class="name">(</span>
+[<span class="nonterminal">identifier</span>,]
+<span class="nonterminal">identifier</span>,
+<span class="nonterminal">identifiers</span>,
+[<span class="nonterminal">identifier</span>,]
+<span class="nonterminal">attribute-values</span>
+<span class="name">)</span>
+</div>
+
+<div class="anexample">
+In the following example, a programmer and a researcher agents are asserted.  The porgrammer is associated with a workflow activity, as the logged-in user.  The programmer acts on behalf of the research, encoding the commands specified by the researcher.
+<pre class="codeexample">
+activity(a,[prov:type="workflow"])
+agent(e1,[prov:type="programmer"]
+agent(e2,[prov:type="researcher"]
+wasAssociatedWith(a,e1,[prov:role="loggedInUser"])
+actedOnBehalfOf(e1,e2,a)
+</pre>
+</div>
+
+
+</section>
+
+<section id="record-complement-of">
+
+<h4>Complementarity Record</h4>
+
+
+<p>A <dfn id="complementOf">complementarity record</dfn> is a relationship between two entities stated to have compatible characterization over some continuous interval between two events.</p>
+
+
+<p>
+The rationale for introducing this relationship is that in general, at any given time, for an entity in the world, there may be multiple ways of characterizing it, and hence multiple representations can be asserted by different asserters. In the example that follows, suppose thing "Royal Society" is represented by two asserters, each using a different set of attributes. If the asserters agree that both representations refer to "The  Royal Society", the question of whether any correspondence can be established between the two representations arises naturally. This is particularly relevant when (a) the sets of attributes used by the two representations overlap partially, or (b) when one set is subsumed by the other. In both these cases, we have a situation where each of the two asserters has a partial view of "The  Royal Society", and establishing a correspondence between them on the shared attributes is beneficial, as in case (a) each of the two representation <em>complements</em> the other, and in case (b) one of the two (that with the additional attributes) complements the other.</p>
+
+<p>This intuition is made more precise by considering the entities that form the representations of entities at a certain point in time. 
+
+An entity record represents, by means of attribute-value pairs, a thing and its situation in the world, which remain constant over a characterization interval.
+As soon as the thing's situation changes, this marks the end of the characterization interval for the entity record representing it. The thing's novel situation is represented by an attribute with a new value, or an entirely different set of  attribute-value pairs, embodied in another entity record, with a new characterization interval. Thus, if we overlap the timelines (or, more generally, the sequences of value-changing events) for the two entities, we can hope to establish correspondences amongst the entity records that represent them at various points along that events line. The figure below illustrates this intuition.</p>
+
+<img src="complement-of.png" alt="illustration complementOf"/>
+
+<p>
+Relation <em>complement-of</em> between two entity records is intended to capture these correspondences, as follows. Suppose entity records A and B share a set P of attributes, and each of them has other attributes in addition to P. If the values assigned to each attribute in P are <em>compatible</em> between A and B, then we say that <em>A is-complement-of B</em>, and <em>B is-complement-of A</em>, in a symmetrical fashion. In the particular case where the set P of attributes of B is a strict superset of A's attributes, then we say that <em>B is-complement-of A</em>, but in this case the opposite does not hold. In this case, the relation is not symmetric.  (as a special case, A and B may not share any attributes at all, and yet the asserters may still stipulate that they are representing the same thing "Royal Society". The symmetric relation may hold trivially in this case).</p>
+
+<p>The term <em>compatible</em> used above means that a mapping can be established amongst the values of attributes in P and found in the two entity expession. This generalizes to the case where attribute sets P1 and P2 of A, and B, respectively, are not identical but they can be mapped to one another. The simplest case is the identity mapping, in which A and B share attribute set P, and furthermore the values assigned to attributes in P match exactly.</p>
+
+<p>It is important to note that the relation holds only for the characterization intervals of the entity expessions involved As soon as one attribute changes value in one of them, new correspondences need to be found amongst the new entities. Thus, the relation has a validity span that can be expressed in terms of the event lines of the entity.</p>
+
+<!--
+The "IVP of" relationship is designed to represent pairs of entities that correspond to each other. By their own nature, an entity remains valid only as long as all of its attributes do not change their value. It follows that the correspondence "B IVP of A" is only valid within the time interval during which such invariance attribute holds for both A and B. When any of the attribute values change in either A or B, those entities are replaced by new ones, and a new correspondence may be established. Thus, "IVP of" is defined relative to the intersection of the temporal intervals for which A and B are valid.
+-->
+
+
+
+<p>In PROV-ASN, a complementarity record's text matches the <span class="nonterminal">complementarityRecord</span> production of the grammar defined in this specification document.</p>
+
+<div class='grammar'>
+<span class="nonterminal">complementarityRecord</span>&nbsp;:=  
+<span class="name">wasComplementOf</span> 
+<span class="name">(</span> 
+<span class="nonterminal">identifier</span> 
+<span class="name">,</span> 
+<span class="nonterminal">identifier</span> 
+<span class="name">)</span> 
+</div>
+
+
+<div class="anexample">
+<p>A complementarity record is written <span class="name">wasComplementOf(e2,e1)</span>, where <span class="name">e1</span> and <span class="name">e2</span> are  two identifiers denoting entity records.</p>
+
+<pre class="codeexample">
+entity(rs,[ex:created="1870" %% xsd:integer])
+
+entity(rs_l1,[prov:location="loc2"])
+entity(rs_l2,[prov:location="The Mall"])
+
+entity(rs_m1,[ex:membership="250" %% xsd:integer, ex:year="1900" %% xsd:integer])
+entity(rs_m2,[ex:membership="300" %% xsd:integer, ex:year="1945" %% xsd:integer])
+entity(rs_m3,[ex:membership="270" %% xsd:integer, ex:year="2010" %% xsd:integer])
+
+wasComplementOf(rs_m3, rs_l2)
+wasComplementOf(rs_m2, rs_l1)
+wasComplementOf(rs_m2, rs_l2)
+wasComplementOf(rs_m1, rs_l1)
+
+wasComplementOf(rs_m3, rs)
+wasComplementOf(rs_m2, rs)
+wasComplementOf(rs_m1, rs)
+wasComplementOf(rs_l1, rs)
+wasComplementOf(rs_l2, rs)
+</pre>
+</div>
+
+
+<div class='constraint' id='wasComplementOf-necessary-cond'>
+An assertion "wasComplementOf(B,A)" holds over the temporal intersection of A and B, <span class='conditional'>only if</span>: 
+<ol>
+<li> if a mapping can be established from an attribute X of entity record identified by B to an attribute Y of entity record identified by A, then the values of A and B must be consistent with that mapping;</li>
+  <li>entity record identified by B has some attribute that entity record identified by A does not have.
+</li></ol>
+ </div>
+
+<p>The complementariy relation is not transitive. Let us consider identifiers <span class="name">e1</span>, <span class="name">e2</span>, and <span class="name">e3</span> identifying three entity records such that 
+ <span class="name">wasComplementOf(e3,e2)</span> and <span class="name">wasComplementOf(e2,e1)</span> hold.  The record <span class="name">wasComplementOf(e3,e1)</span> may not hold because the characterization intervals of the denoted entity records may not overlap.</p>
+
+
+<div class='note'>We will allow wasComplementOf to be asserted between entities identified by qualified identifiers. This will allow us to express   wasComplementOf between entities asserted in separate accounts (potentially, with the same identifiers).
+</div>
+
+<div class='note'>It is suggested that the name 'wasComplementOf' does not capture the meaning of this relation adequately. No concrete suggestion has been made so far.
+Furthermore, there is a suggestion that an alternative relation that is transitive may also be useful.
+This is raised in the following <a href="http://lists.w3.org/Archives/Public/public-prov-wg/2011Sep/0315.html">email</a>.</div>
+
+
+
+<div class='issue'>A discussion on alternative definition of wasComplementOf has not reached a satisfactory conclusion yet. This is <a href="http://www.w3.org/2011/prov/track/issues/29">ISSUE-29</a></div>
+
+
+
+<div class='pending'> Comments on ivpof in <a href="http://www.w3.org/2011/prov/track/issues/57">ISSUE-57</a>.</div>
+
+
+</section>
+</section>
+
 <section id="Derivation-Relation">
 <h3>Derivation Relation</h3>
 
+<div class="note">TO DO: to be moved as a subsection of entity-entiy relation section.</div>
 
 <p>In PROV-DM, a <dfn id="dfn-Derivation">derivation record</dfn> is a representation that some entity is transformed from, created from, or affected by another entity in the world.  </p>
 
@@ -1459,183 +1795,25 @@
 
 
 
-
-<section id="activity-agent-relation">
-<h3>Activity-Agent Relation</h3>
-
-<section id="record-ActivityAssociation">
-<h4>Activity Association Record</h4>
-
-<p>The key purpose of agents in prov-dm is to assign responsibility
-for activities.  It is important to reflect that there is a degree in
-the responsibility of agents, and that is a major reason for
-distinguishing among all the agents that have some association with an
-activity and determine which ones are really the originators of the
-entity.  For example, a programmer and a researcher could both be
-associated with running a workflow, but it may not matter what
-programmer clicked the button to start the workflow while it would
-matter a lot what researcher told the programmer to do so.  Another
-example: 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 what
-student published a web page but it matters a lot that the department
-told the student to put up the web page.  So there is some notion of
-responsibility that needs to be captured. </p>
-
-<p>To promote take-up, PROV-DM offers a mild version of responsibility
-in the form of a relation to represent when an agent acted on another
-agent's behalf.  So in the example of someone running a mail program,
-the program is an agent of that activity and the person is also an
-agent of the activity, but we would also add that the mail software
-agent is running on the person's behalf.  In the other example, the
-student acted on behalf of his supervisor, who acted on behalf of the
-department chair, who acts on behalf of the university, and all those
-agents are responsible in some way for the activity to take place but
-we don't say explicitly who bears responsibility and to what
-degree. </p>
-
-<p>We could also say that an agent can act on behalf of several other
-agents (a group of agents).  This would also make possible to
-indirectly reflect chains of responsibility.  This also indirectly
-reflects control without requiring that control is explicitly
-indicated.  In some contexts there will be a need to represent
-responsibility explicitly, for example to indicate legal
-responsibility, and that could be added as an extension to this core
-model.  Similarly with control, since in particular contexts there
-might be a need to define specific aspects of control that various
-agents exert over a given activity.</p>
-
-<p>An activity association record, written <span class="name">wasAssociatedWith(a,ag2,attrs)</span> in PROV-ASN, has the following constituents:</p>
+<section id="record-annotation">
+<h4>Annotation Record</h4>
+
+
+<p>An <dfn id="dfn-annotation">annotation record</dfn> establishes a link between an identifiable PROV-DM record and a note record referred to by its identifier.  Multiple note records can be associated with a given PROV-DM record; symmetrically, multiple PROV-DM records can be associated with a given note record.  Since note records have identifiers,  they can also be annotated. The annotation mechanism (with note record and the annotation record) forms a key aspect of the extensibility mechanism of PROV-DM (see <a href="#extensibility-section">extensibility section</a>).</p> 
+
+<p>An annotation record, written <span class="name">hasAnnotation(r,n)</span> in PROV-ASN, has the following constituents:</p>
 <ul>
-<li><em>id</em>:  an OPTIONAL identifier  <span class="name">id</span> identifying the activity association record;</li> 
-<li><em>activity</em>: an identifier <span class="name">a</span> for an activity record;</li>
-<li><em>agent</em>: an identifier <span class="name">ag2</span> for an agent record, which represents the agent associated with the activity;</li>
-<li><em>attributes</em>: a set of attribute-value pairs <span class="name">attrs</span> that describe the modalities of usage of this entity by this activity.</li>
+<li><em>record</em>: an identifier <span class="name">r</span> for a record being annnotated;</li>
+<li><em>note</em>: an identifier <span class="name">ag1</span> for a note record;</li>
 </ul>
 
-<p>Given an activity association record <span class="name">wasAssociatedWith(a,ag2,attrs)</span>,
-a responsibility record, written <span class="name">actedOnBehalfOf(id,ag2,ag1,a,attrs)</span> in PROV-ASN, has the following constituents:</p>
-<ul>
-<li><em>id</em>:  an OPTIONAL identifier  <span class="name">id</span> identifying the responsibility record;</li> 
-<li><em>subordinate</em>: an identifier <span class="name">ag2</span> for an agent record, which represents an agent associated with an activity, acting on behalf of the responsible agent;</li>
-<li><em>responsible</em>: an identifier <span class="name">ag1</span> for an agent record, which represents the agent on behalf of which the subordinate agent <span class="name">ag2</span> acts;</li>
-<li><em>activity</em>: an OPTIONAL identifier <span class="name">a</span> of an activity record for which the responsibility record holds;</li>
-<li><em>attributes</em>: a set of attribute-value pairs <span class="name">attrs</span> that describe the modalities of this relation.</li>
-</ul>
-
-
-<div class='grammar'>
-<span class="nonterminal">activityAssociationRecord</span>&nbsp;:= 
-<span class="name">wasAssociatedWith</span>
-<span class="name">(</span>
-[<span class="nonterminal">identifier</span>,]
-<span class="nonterminal">identifier</span>,
-<span class="nonterminal">identifiers</span>,
-<span class="nonterminal">attribute-values</span>
-<span class="name">)</span>
-</div>
+
+<p>In PROV-ASN, a note record's text matches the <span class="nonterminal">noteRecord</span> production of the grammar defined in this specification document.
+</p>
 
 <div class='grammar'>
-<span class="nonterminal">responsibilityRecord</span>&nbsp;:= 
-<span class="name">actedOnBehalfOf</span>
-<span class="name">(</span>
-[<span class="nonterminal">identifier</span>,]
-<span class="nonterminal">identifier</span>,
-<span class="nonterminal">identifiers</span>,
-[<span class="nonterminal">identifier</span>,]
-<span class="nonterminal">attribute-values</span>
-<span class="name">)</span>
-</div>
-
-<div class="anexample">
-In the following example, a programmer and a researcher agents are asserted.  The porgrammer is associated with a workflow activity, as the logged-in user.  The programmer acts on behalf of the research, encoding the commands specified by the researcher.
-<pre class="codeexample">
-activity(a,[prov:type="workflow"])
-agent(e1,[prov:type="programmer"]
-agent(e2,[prov:type="researcher"]
-wasAssociatedWith(a,e1,[prov:role="loggedInUser"])
-actedOnBehalfOf(e1,e2,a)
-</pre>
-</div>
-
-
-
-</section>
-
-<section id="record-Control">
-<h4>Start and End Records</h4>
-
-<p> A <dfn id="dfn-Start">start record</dfn> is a representation of an agent starting an activity.
- An <dfn id="dfn-End">end record</dfn> is a representation of an agent ending an activity. Both relations contains attributes describing the modalities of acting/ending acitivities.</p>
-
-
-
-<p>A start record, written <span class="name">wasStartedBy(id,a,ag,attrs)</span> in PROV-ASN, contains:</p>
-<ul>
-<li><em>id</em>:  an OPTIONAL identifier  <span class="name">id</span> identifying the start record;</li> 
-<li><em>activity</em>: an identifier <span class="name">a</span> denoting an activity record, representing the started activity;
-<li><em>agent</em>: an identifier <span class="name">ag</span> for an agent record, representing the starting agent;
-<li><em>attributes</em>: contains a set of attribute-value pairs <span class="name">attrs</span>, describing modalities accorting to which the agent started the activity.
-</ul>
-
-<p>An end record, written <span class="name">wasEndedBy(id,a,ag,attrs)</span> in PROV-ASN, contains:</p>
-<ul>
-<li><em>id</em>:  an OPTIONAL identifier  <span class="name">id</span> identifying the end record;</li> 
-<li><em>activity</em>: an identifier <span class="name">a</span> denoting an activity record, representing the ended activity;
-<li><em>agent</em>: an identifier <span class="name">ag</span> for an agent record, representing the ending agent;
-<li><em>attributes</em>: contains a set of attribute-value pairs <span class="name">attrs</span>, describing modalities accorting to which the agent ended the activity.
-</ul>
-
-<p>In PROV-ASN, start and end record's texts match the <span class="nonterminal">startRecord</span> and <span class="nonterminal">endRecord</span> productions of the grammar defined in this specification document.
-</p>
-
-
-<div class='grammar'>
-<span class="nonterminal">startRecord</span>&nbsp;:= 
-<span class="name">wasStartedBy</span>
-<span class="name">(</span>
-[<span class="nonterminal">identifier</span>,]
-<span class="nonterminal">identifier</span>,
-<span class="nonterminal">identifier</span>,
-<span class="nonterminal">attribute-values</span>
-<span class="name">)</span><br/>
-<span class="nonterminal">endRecord</span>&nbsp;:= 
-<span class="name">wasEndedBy</span>
-<span class="name">(</span>
-[<span class="nonterminal">identifier</span>,]
-<span class="nonterminal">identifier</span>,
-<span class="nonterminal">identifier</span>,
-<span class="nonterminal">attribute-values</span>
-<span class="name">)</span>
-</div>
-
-
-<div class="anexample">
-<p>
-The following assertions</p>
-<pre class="codeexample">
-wasStartedBy(a,ag,[ex:mode="manual"])
-wasEndedby(a,ag,[ex:mode="manual"])
-</pre>
-<p>state that the activity, represented by the activity record denoted by <span class="name">a</span>
-was started and ended by an agent, represented by record denoted by  <span class="name">a</span>, in "manual" mode, an application specific characterization of these relations.
-</p>
-</div>
-</section>
-
-
-<section id="record-Participation">
-<h4>Participation Record</h4>
-
-<p>A <dfn id="dfn-Participation">participation record</dfn> is a representation of the involvement of an entity in an activity. A participation record can be asserted or inferred.</p>
-
-
-<p>In PROV-ASN, a participation record's text matches the <span class="nonterminal">participationRecord</span> production of the grammar defined in this specification document.</p>
-
-
-<div class='grammar'>
-<span class="nonterminal">participationRecord</span>&nbsp;:= 
-<span class="name">hadParticipant</span>
+<span class="nonterminal">annotationRecord</span>&nbsp;:=  
+<span class="name">hasAnnotation</span>
 <span class="name">(</span>
 <span class="nonterminal">identifier</span>
 <span class="name">,</span>
@@ -1643,178 +1821,10 @@
 <span class="name">)</span>
 </div>
 
-
-
-<p> A participation record,
-written <span class="name">hadParticipant(pe,e)</span> in PROV-ASN:
-<ul> 
-<li> contains to identifier <span class="name">pe</span> identifying an activity record representing an activity;
-<li> contains an identifier  <span class="name">e</span>  identifying an entity record, which is 
-a representation of an entity involved in this activity.
-</ul>
-
-<p>An entity's participation in an activity can be by direct usage or direct control. But also, if an entity and situation are characterized in two complementary manners (and are represented by two entity records related by <span class="name">isComplementOf</span>), if one of them participates in an activity,  so does the other.  The following captures the definition of participation.</p>
-
-<div class='constraint' id='participation'>
-Given two identifiers <span class="name">pe</span> and  <span class="name">e</span>, respectively identifying  an activity record and an entity record, the record <span class="name">hadParticipant(pe,e)</span> holds <span class='conditional'>if and only if</span>:
-<ul> 
-<li> <span class="name">used(pe,e)</span> holds, or</li>
-<li> <span class="name">wasControlledBy(pe,e)</span> holds, or</li>
-<li>  <span class="name">wasComplementOf(e1,e)</span> holds for some entity record identified by <span class="name">e1</span>, and 
- <span class="name">hadParticipant(pe,e1)</span> holds  some activity record  identified by <span class="name">pe</span>.</li>
-</ul>
-</div>
-
-
-<div class='pending'>Suggested definition for participation. This is <a href="http://www.w3.org/2011/prov/track/issues/49">ISSUE-49</a>.</div>
-
-</section>
-</section>
-
-<section id="record-complement-of">
-
-<h3>Complementarity Record</h3>
-
-
-<p>A <dfn id="complementOf">complementarity record</dfn> is a relationship between two entities stated to have compatible characterization over some continuous interval between two events.</p>
-
-
-<p>
-The rationale for introducing this relationship is that in general, at any given time, for an entity in the world, there may be multiple ways of characterizing it, and hence multiple representations can be asserted by different asserters. In the example that follows, suppose thing "Royal Society" is represented by two asserters, each using a different set of attributes. If the asserters agree that both representations refer to "The  Royal Society", the question of whether any correspondence can be established between the two representations arises naturally. This is particularly relevant when (a) the sets of attributes used by the two representations overlap partially, or (b) when one set is subsumed by the other. In both these cases, we have a situation where each of the two asserters has a partial view of "The  Royal Society", and establishing a correspondence between them on the shared attributes is beneficial, as in case (a) each of the two representation <em>complements</em> the other, and in case (b) one of the two (that with the additional attributes) complements the other.</p>
-
-<p>This intuition is made more precise by considering the entities that form the representations of entities at a certain point in time. 
-
-An entity record represents, by means of attribute-value pairs, a thing and its situation in the world, which remain constant over a characterization interval.
-As soon as the thing's situation changes, this marks the end of the characterization interval for the entity record representing it. The thing's novel situation is represented by an attribute with a new value, or an entirely different set of  attribute-value pairs, embodied in another entity record, with a new characterization interval. Thus, if we overlap the timelines (or, more generally, the sequences of value-changing events) for the two entities, we can hope to establish correspondences amongst the entity records that represent them at various points along that events line. The figure below illustrates this intuition.</p>
-
-<img src="complement-of.png" alt="illustration complementOf"/>
-
-<p>
-Relation <em>complement-of</em> between two entity records is intended to capture these correspondences, as follows. Suppose entity records A and B share a set P of attributes, and each of them has other attributes in addition to P. If the values assigned to each attribute in P are <em>compatible</em> between A and B, then we say that <em>A is-complement-of B</em>, and <em>B is-complement-of A</em>, in a symmetrical fashion. In the particular case where the set P of attributes of B is a strict superset of A's attributes, then we say that <em>B is-complement-of A</em>, but in this case the opposite does not hold. In this case, the relation is not symmetric.  (as a special case, A and B may not share any attributes at all, and yet the asserters may still stipulate that they are representing the same thing "Royal Society". The symmetric relation may hold trivially in this case).</p>
-
-<p>The term <em>compatible</em> used above means that a mapping can be established amongst the values of attributes in P and found in the two entity expession. This generalizes to the case where attribute sets P1 and P2 of A, and B, respectively, are not identical but they can be mapped to one another. The simplest case is the identity mapping, in which A and B share attribute set P, and furthermore the values assigned to attributes in P match exactly.</p>
-
-<p>It is important to note that the relation holds only for the characterization intervals of the entity expessions involved As soon as one attribute changes value in one of them, new correspondences need to be found amongst the new entities. Thus, the relation has a validity span that can be expressed in terms of the event lines of the entity.</p>
-
-<!--
-The "IVP of" relationship is designed to represent pairs of entities that correspond to each other. By their own nature, an entity remains valid only as long as all of its attributes do not change their value. It follows that the correspondence "B IVP of A" is only valid within the time interval during which such invariance attribute holds for both A and B. When any of the attribute values change in either A or B, those entities are replaced by new ones, and a new correspondence may be established. Thus, "IVP of" is defined relative to the intersection of the temporal intervals for which A and B are valid.
--->
-
-
-
-<p>In PROV-ASN, a complementarity record's text matches the <span class="nonterminal">complementarityRecord</span> production of the grammar defined in this specification document.</p>
-
-<div class='grammar'>
-<span class="nonterminal">complementarityRecord</span>&nbsp;:=  
-<span class="name">wasComplementOf</span> 
-<span class="name">(</span> 
-<span class="nonterminal">identifier</span> 
-<span class="name">,</span> 
-<span class="nonterminal">identifier</span> 
-<span class="name">)</span> 
-</div>
-
-
-<div class="anexample">
-<p>A complementarity record is written <span class="name">wasComplementOf(e2,e1)</span>, where <span class="name">e1</span> and <span class="name">e2</span> are  two identifiers denoting entity records.</p>
-
-<pre class="codeexample">
-entity(rs,[ex:created="1870" %% xsd:integer])
-
-entity(rs_l1,[prov:location="loc2"])
-entity(rs_l2,[prov:location="The Mall"])
-
-entity(rs_m1,[ex:membership="250" %% xsd:integer, ex:year="1900" %% xsd:integer])
-entity(rs_m2,[ex:membership="300" %% xsd:integer, ex:year="1945" %% xsd:integer])
-entity(rs_m3,[ex:membership="270" %% xsd:integer, ex:year="2010" %% xsd:integer])
-
-wasComplementOf(rs_m3, rs_l2)
-wasComplementOf(rs_m2, rs_l1)
-wasComplementOf(rs_m2, rs_l2)
-wasComplementOf(rs_m1, rs_l1)
-
-wasComplementOf(rs_m3, rs)
-wasComplementOf(rs_m2, rs)
-wasComplementOf(rs_m1, rs)
-wasComplementOf(rs_l1, rs)
-wasComplementOf(rs_l2, rs)
-</pre>
-</div>
-
-
-<div class='constraint' id='wasComplementOf-necessary-cond'>
-An assertion "wasComplementOf(B,A)" holds over the temporal intersection of A and B, <span class='conditional'>only if</span>: 
-<ol>
-<li> if a mapping can be established from an attribute X of entity record identified by B to an attribute Y of entity record identified by A, then the values of A and B must be consistent with that mapping;</li>
-  <li>entity record identified by B has some attribute that entity record identified by A does not have.
-</li></ol>
- </div>
-
-<p>The complementariy relation is not transitive. Let us consider identifiers <span class="name">e1</span>, <span class="name">e2</span>, and <span class="name">e3</span> identifying three entity records such that 
- <span class="name">wasComplementOf(e3,e2)</span> and <span class="name">wasComplementOf(e2,e1)</span> hold.  The record <span class="name">wasComplementOf(e3,e1)</span> may not hold because the characterization intervals of the denoted entity records may not overlap.</p>
-
-
-<div class='note'>We will allow wasComplementOf to be asserted between entities identified by qualified identifiers. This will allow us to express   wasComplementOf between entities asserted in separate accounts (potentially, with the same identifiers).
-</div>
-
-<div class='note'>It is suggested that the name 'wasComplementOf' does not capture the meaning of this relation adequately. No concrete suggestion has been made so far.
-Furthermore, there is a suggestion that an alternative relation that is transitive may also be useful.
-This is raised in the following <a href="http://lists.w3.org/Archives/Public/public-prov-wg/2011Sep/0315.html">email</a>.</div>
-
-
-
-<div class='issue'>A discussion on alternative definition of wasComplementOf has not reached a satisfactory conclusion yet. This is <a href="http://www.w3.org/2011/prov/track/issues/29">ISSUE-29</a></div>
-
-
-
-<div class='pending'> Comments on ivpof in <a href="http://www.w3.org/2011/prov/track/issues/57">ISSUE-57</a>.</div>
-
-
-</section>
-
-
-
-<section id="record-annotationAssociation">
-<h4>Annotation Association Record</h4>
-
-
-<p>An <dfn id="dfn-annotationAssociation">annotation association record</dfn> establishes a link between an identifiable PROV-DM record and an annotation record referred to by its identifier.  Multiple annotation records can be associated with a given PROV-DM record; symmetrically, multiple PROV-DM records can be associated with a given annotation record.  Since annotation records have identifiers,  they can also be annotated. The annotation mechanism (with annotation record and the annotation association record) forms a key aspect of the extensibility mechanism of PROV-DM (see <a href="#extensibility-section">extensibility section</a>).</p> 
-
-<p>In PROV-ASN, an annotation record's text matches the <span class="nonterminal">annotationRecord</span> production of the grammar defined in this specification document.
-</p>
-
-<div class='grammar'>
-<span class="nonterminal">annotationAssociationRecord</span>&nbsp;:=  
-<span class="name">hasAnnotation</span>
-<span class="name">(</span>
-<span class="nonterminal">identifier</span>
-<span class="name">,</span>
-<span class="nonterminal">identifier</span>
-<span class="name">)</span> |
-<span class="name">hasAnnotation</span>
-<span class="name">(</span>
-<span class="nonterminal">relationIdentification</span>
-<span class="name">,</span>
-<span class="nonterminal">identifier</span>
-<span class="name">)</span><br/>
-<span class="nonterminal">relationIdentification</span>&nbsp;:=  
-<span class="name">relation</span>
-<span class="name">(</span>
-<span class="nonterminal">identifier</span>
-<span class="name">,</span>
-<span class="nonterminal">identifier</span>
-<span class="name">,</span>
-<span class="nonterminal">attribute-values</span>
-[<span class="name">,</span>
-<span class="nonterminal">attribute-values</span>
-]
-<span class="name">)</span>
-</div>
-
 <p>Since relations do not have identifiers but can be annotated, a  <span class="nonterminal">relationIdentification</span> mechanism is provided allowing the constituents of relations to be listed so as to identify relations.
 </p>
 
-<p>The interpretation of annotations is application-specific. See Section <a href="#record-annotation">Annotation</a> for a discussion of the difference between attributes and annotations. </p>
+<p>The interpretation of notes is application-specific. See Section <a href="#record-note">Note</a> for a discussion of the difference between note attributes and other records attributes. </p>
 
 <div class="anexample">
 <p>
@@ -1823,17 +1833,17 @@
 entity(e1,[prov:type="document"])
 entity(e2,[prov:type="document"])
 activity(a,transform,t1,t2,[])
-used(a,e1,[ex:file="stdin"])
+used(u1,a,e1,[ex:file="stdin"])
 wasGeneratedBy(e2, a, [ex:file="stdout"])
 
-annotation(ann1,[ex:icon="doc.png"])
-hasAnnotation(e1,ann1)
-hasAnnotation(e2,ann1)
-
-annotation(ann2,[ex:style="dotted"])
-hasAnnotation(relation(a,e1,[ex:file="stdin"]),ann2)
+note(n1,[ex:icon="doc.png"])
+hasAnnotation(e1,n1)
+hasAnnotation(e2,n1)
+
+note(n2,[ex:style="dotted"])
+hasAnnotation(u1,n2)
 </pre>
-<p>assert the existence of two  documents in the world  (attribute-value pair: <span class="name">prov:type="document"</span>) represented by entity records identified by <span class="name">e1</span> and <span class="name">e2</span>, and annotate these records with an annotation indicating that the icon (an application specific way of rendering provenance) is <span class="name">doc.png</span>. It also asserts an activity, its use of the first entity, and its generation of the second entity. The <span class="name">used</span> relation is annotated with a style (an application specific way of rendering this edge graphically).
+<p>assert the existence of two  documents in the world  (attribute-value pair: <span class="name">prov:type="document"</span>) represented by entity records identified by <span class="name">e1</span> and <span class="name">e2</span>, and annotate these records with a note indicating that the icon (an application specific way of rendering provenance) is <span class="name">doc.png</span>. It also asserts an activity, its use of the first entity, and its generation of the second entity. The <span class="name">usage</span> record is annotated with a style (an application specific way of rendering this edge graphically). To be able to express this annotation, the usage record 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>
 
@@ -1902,7 +1912,7 @@
           ...
           wasGeneratedBy(e0,pe0,[])     
           ...
-          wasControlledBy(pe4,a5, [prov:role="communicator"])  )
+          wasAssociatedWith(pe4,a5, [prov:role="communicator"])  )
 </pre>
 <p>contains the set of provenance records of section <a href="#example-prov-asn-encoding">example-prov-asn-encoding</a>, is asserted by agent <span class="name">http://example.org/asserter</span>, and is identified by identifier <span class="name">acc0</span>.
 </p>
@@ -2087,8 +2097,6 @@
 <p> To be able to annotate  usage  (resp. generation, control) records that refer to a given activity identifier, 
  any  attribute-value set occurring in usage records (resp. generation, control) with this identifier and a given entity record identifier MUST be unique.</p>
 
-<div class='note'>It may seem strange that we do not require usage records to have an identifier. Mandating the presence of identifiers in usage records would facilitate their annotation. However, this would make it difficult for usage records to be encoded as properties in OWL2.
-</div>
 
 <p>Attribute-value are used in determining the exact source and destination  of a <span class="nonterminal">pe-linked-derivationRecord</span>. Hence,
 if one wants to express a <span class="nonterminal">pe-linked-derivationRecord</span> referring to an entity record and an activity record, then:</p>
@@ -2737,7 +2745,7 @@
 <p>The <a href="#prov-dm-namespace">PROV-DM namespace</a> declares a reserved attribute: <span class="name">role</span>.</p></li>
 
 
-<li>Annotation records allow arbitrary metadata to be associated with identifiable records of PROV-DM. Annotation records consist of name-value pairs. Like attributes, names are qualified by a namespace.</li>
+<li>Note records allow arbitrary metadata to be associated with identifiable records of PROV-DM. Note records consist of name-value pairs. Like attributes, names are qualified by a namespace.</li>
 
 
 <li>Namespaces allow attributes and names to be qualified. </li>