updated note to reflect changes to Bundle, Collection, EmptyCollection, Plan, Person, Organization, SoftwareAgent, Quotation, Revision, and PrimarySource in schema.
authorStephan Zednik <zednis@rpi.edu>
Mon, 14 Jan 2013 18:40:30 -0700
changeset 5425 46e10eeaa3ef
parent 5424 33a576fb0b32
child 5426 65fcb3f7c34f
updated note to reflect changes to Bundle, Collection, EmptyCollection, Plan, Person, Organization, SoftwareAgent, Quotation, Revision, and PrimarySource in schema.
xml/prov-xml.html
--- a/xml/prov-xml.html	Mon Jan 14 13:44:21 2013 -0700
+++ b/xml/prov-xml.html	Mon Jan 14 18:40:30 2013 -0700
@@ -417,137 +417,133 @@
 <tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
 
 <tr class="component1-color">
-	<td class="essential"><a>Entity</a></td>
+	<td><a class="essential">Entity</a></td>
 	<td><a title="dfn-Entity" class="essential">prov:Entity</a></td>
 	<td rowspan="8"><a href="#component1">Component 1: Entities/Activities</a></td>
 </tr>
 <tr class="component1-color">
-	<td class="essential"><a>Activity</a></td>
+	<td><a class="essential">Activity</a></td>
 	<td><a title="dfn-Activity" class="essential">prov:Activity</a></td>
 </tr>
 <tr class="component1-color">
-	<td class="essential"><a>Generation</a></td>
-	<td><a title="wasGeneratedBy"><span class="essential">prov:Generation</a></td>
-</tr>
-<tr class="component1-color">
-	<td class="essential"><a>Usage</a></td>
-	<td><a title="used"><span class="essential">prov:Usage</span></a></td>
+	<td><a class="essential">Generation</a></td>
+	<td><a title="dfn-Generation" class="essential">prov:Generation</a></td>
 </tr>
 <tr class="component1-color">
-	<td class="essential"><a>Communication</a></td>
-	<td><a title="wasInformedBy"><span class="essential">prov:Communication</span></a></td>
+	<td><a class="essential">Usage</a></td>
+	<td><a title="defn-Usage" class="essential">prov:Usage</a></td>
 </tr>
 <tr class="component1-color">
-	<td><a>Start</a></td>
-	<td><a title="wasStartedBy">prov:Start</a></td>
+	<td><a class="essential">Communication</a></td>
+	<td><a title="dfn-Communication" class="essential">prov:Communication</a></td>
 </tr>
 <tr class="component1-color">
-	<td><a>End</a></td>
-	<td><a title="wasEndedBy">prov:End</a></td>
+	<td><a class="essential">Start</a></td>
+	<td><a title="dfn-Start">prov:Start</a></td>
 </tr>
 <tr class="component1-color">
-	<td><a>Invalidation</a></td>
-	<td><a title="wasInvalidatedBy">prov:Invalidation</a></td>
+	<td><a class="essential">End</a></td>
+	<td><a title="dfn-End">prov:End</a></td>
+</tr>
+<tr class="component1-color">
+	<td><a class="essential">Invalidation</a></td>
+	<td><a title="dfn-Invalidation">prov:Invalidation</a></td>
 </tr>
 <tr>
 	<td colspan="3" style="border-width: 0px; "></td>
 </tr>
 <tr class="component2-color">
-	<td class="essential"><a>Derivation</a></td>
-	<td><a title="wasDerivedFrom"><span class="essential">prov:Derivation</span></a></td>
+	<td><a class="essential">Derivation</a></td>
+	<td><a title="dfn-Derivation"><span class="essential">prov:Derivation</span></a></td>
 	<td  rowspan="4"><a href="#component2">Component 2: Derivations</a></td>
 </tr>
 <tr class="component2-color">
-	<td class="provType"><a>Revision</a></td>
-	<td><a title="dfn-revision">use &lt;prov:type&gt;prov:Revision&lt;/prov:type&gt; in Derivation</a></td>
+	<td><a class="essential">Revision</a></td>
+	<td><a title="dfn-Revision" class="essential">prov:Revision</a></td>
 </tr>
 <tr class="component2-color">
-	<td class="provType"><a>Quotation</a></td>
-	<td><a title="dfn-quotation">use &lt;prov:type&gt;prov:Quotation&lt;/prov:type&gt; in Derivation</a></td>
+	<td><a class="essential">Quotation</a></td>
+	<td><a title="dfn-Quotation">prov:Quotation</a></td>
 </tr>
 <tr class="component2-color">
-	<td class="provType"><a>Primary Source</a></td>
-	<td><a title="dfn-primary-source">use &lt;prov:type&gt;prov:PrimarySource&lt;/prov:type&gt; in Derivation</a></td>
+	<td><a class="essential">Primary Source</a></td>
+	<td><a title="dfn-PrimarySource">prov:PrimarySource</a></td>
 </tr>
 <tr>
 	<td colspan="3" style="border-width: 0px; "></td>
 </tr>
 <tr class="component3-color" style="border-collapse: collapse; ">
-	<td  class="essential"><a>Agent</a></td>
-	<td><a title="dfn-agent" class="essential">prov:Agent</a></td>
-	<td  rowspan="9"><a href="#component3">Component 3: Agents, Responsibility, Influence</a></td>
-</tr>
-<tr class="component3-color">
-	<td class="essential"><a>Attribution</a></td>
-	<td><a title="wasAttributedTo"><span class="essential">prov:Attribution</span></a></td>
-</tr>
-<tr class="component3-color">
-	<td class="essential"><a>Association</a></td>
-	<td><a title="wasAssociatedWith"><span class="essential">prov:Association</span></a></td>
-</tr>
-<tr class="component3-color">
-	<td class="essential"><a>Delegation</a></td>
-	<td><a title="actedOnBehalfOf"><span class="essential">prov:Delegation</span></a></td>
+	<td><a class="essential">Agent</a></td>
+	<td><a title="dfn-Agent" class="essential">prov:Agent</a></td>
+	<td rowspan="9"><a href="#component3">Component 3: Agents, Responsibility, Influence</a></td>
 </tr>
 <tr class="component3-color">
-	<td class="provType">Plan</td>
-	<td>use &lt;prov:type&gt;prov:Plan&lt;/prov:type&gt; in Entity</td>
-</tr>
-<tr class="component3-color">
-	<td class="provType">Person</td>
-	<td>use &lt;prov:type&gt;prov:Person&lt;/prov:type&gt; in Agent</td>
+	<td><a class="essential">Attribution</a></td>
+	<td><a title="dfn-Attribution" class="essential">prov:Attribution</a></td>
 </tr>
 <tr class="component3-color">
-	<td class="provType">Organization</td>
-	<td>use &lt;prov:type&gt;prov:Organization&lt;/prov:type&gt; in Agent</td>
+	<td><a class="essential">Association</a></td>
+	<td><a title="dfn-Association" class="essential">prov:Association</a></td>
 </tr>
 <tr class="component3-color">
-	<td class="provType">SoftwareAgent</td>
-	<td>use &lt;prov:type&gt;prov:SoftwareAgent&lt;/prov:type&gt; in Agent</td>
+	<td><a class="essential">Delegation</a></td>
+	<td><a title="dfn-Delegation" class="essential">prov:Delegation</a></td>
 </tr>
 <tr class="component3-color">
-	<td><a>Influence</a></td>
-	<td><a title="wasInfluencedBy">prov:Influence</a></td>
+	<td><a class="essential">Plan</td>
+	<td><a title="dfn-Plan">prov:Plan</a></td>
+</tr>
+<tr class="component3-color">
+	<td><a class="essential">Person</td>
+	<td><a title="dfn-Person">prov:Person</a></td>
+</tr>
+<tr class="component3-color">
+	<td><a class="essential">Organization</a></td>
+	<td><a title="dfn-Organization">prov:Organization</a></td>
+</tr>
+<tr class="component3-color">
+	<td><a class="essential">Software Agent</a></td>
+	<td><a title="dfn-SoftwareAgent">prov:SoftwareAgent</a></td>
+</tr>
+<tr class="component3-color">
+	<td><a class="essential">Influence</a></td>
+	<td><a title="dfn-Influence">prov:Influence</a></td>
 </tr>
 <tr>
 	<td colspan="3" style="border-width: 0px; "></td>
 </tr>
 <tr class="component4-color">
-	<td><a title="bundle">Bundle constructor</a></td>
-	<td><a title="dfn-bundle">???</a></td>
-	<td  rowspan="2"><a href="#component5">Component 4: Bundles</a></td>
-</tr>
-<tr class="component4-color">
-	<td class="provType"><a title="bundle">Bundle type</a></td>
-	<td><a title="bundle">use &lt;prov:type&gt;prov:Bundle&lt;/prov:type&gt; in Entity</a></td>
+	<td><a title="bundle">Bundle</a></td>
+	<td><a title="dfn-Bundle">prov:Bundle</a></td>
+	<td><a href="#component5">Component 4: Bundles</a></td>
 </tr>
 <tr>
 	<td colspan="3" style="border-width: 0px; "></td>
 </tr>
 <tr class="component5-color">
-	<td><a>Alternate</a></td>
-	<td><a title="alternateOf">prov:Alternate</a></td>
+	<td><a class="essential">Alternate</a></td>
+	<td><a title="dfn-Alternate">prov:Alternate</a></td>
 	<td  rowspan="3"><a href="#component4">Component 5: Alternate</a></td>
 </tr>
 <tr class="component5-color">
-	<td><a>Specialization</a></td>
-	<td><a title="specializationOf">prov:Specialization</a></td>
+	<td><a class="essential">Specialization</a></td>
+	<td><a title="dfn-Specialization">prov:Specialization</a></td>
 </tr>
 <tr>
 	<td colspan="3" style="border-width: 0px; "></td>
 </tr>
 <tr class="component6-color">
-	<td class="provType"><a>Collection</a></td>
-	<td><a title="collection">use &lt;prov:type&gt;prov:Collection&lt;/prov:type&gt; in Entity</a></td>
+	<td><a class="essential">Collection</a></td>
+	<td><a title="dfn-Collection">prov:Collection</a></td>
 	<td  rowspan="3"><a href="#component6">Component 6: Collections</a></td>
 </tr>
 <tr class="component6-color">
-	<td class="provType">EmptyCollection</td>
-	<td>use &lt;prov:type&gt;prov:EmptyCollection&lt;/prov:type&gt; in Entity</td>
+	<td><a class="essential">EmptyCollection</a></td>
+	<td><a title="dfn-EmptyCollection">prov:EmptyCollection</a></td>
 </tr>
 <tr class="component6-color">
 	<td><a>Membership</a></td>
-	<td><a title="hadMember">prov:Membership</a></td>
+	<td><a title="dfn-Membership">prov:Membership</a></td>
 </tr>
 <!--<caption id="prov-dm-types-and-relations">PROV-DM Types and Relations to XML Schema Mapping</caption>-->
 </table>
@@ -1020,7 +1016,17 @@
 <section id="term-Revision">
 <h3>Revision</h3>
 <div class="glossary-ref" data-ref="glossary-revision"></div>
-<p>To specialize a Derivation relationship as a Revision relationship, include a <code>prov:type</code> with the value "prov:Revision".</p>
+<pre class="schema-type">
+&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Revision"&gt;
+  &lt;xs:complexContent&gt;
+    &lt;xs:extension base="prov:Derivation"&gt;
+    &lt;/xs:extension&gt;
+  &lt;/xs:complexContent&gt;
+&lt;/xs:complexType&gt;
+</pre>
+<pre class="schema-usage">
+&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasRevisionOf" type="prov:Revision"/&gt;
+</pre>
 <pre class="example">
 &lt;prov:document
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -1037,23 +1043,32 @@
     &lt;prov:type xsi:type="xsd:QName"&gt;rec54:WD&lt;/prov:type&gt;
   &lt;/prov:entity&gt;
 
-  &lt;prov:wasDerivedFrom&gt;
+  <b>&lt;prov:wasRevisionOf&gt;
     &lt;prov:generatedEntity prov:ref="tr:WD-prov-dm-20111215"/&gt;
     &lt;prov:usedEntity prov:ref="tr:WD-prov-dm-20111018"/&gt;
-    <b>&lt;prov:type xsi:type="xsd:QName"&gt;prov:Revision&lt;/prov:type&gt;</b>
-  &lt;/prov:wasDerivedFrom&gt;
+  &lt;/prov:wasRevisionOf&gt;</b>
 
 &lt;/prov:document&gt;
 </pre>
 <div class="note">
-<p>The modeling of Revision is currently under discussion and is subject to change.</p>
+<p>The modeling of Revision has changed.  The complexType prov:Revision and xs:element prov:wasRevisionOf were added to the schema to replace the previous modeling that required users to use a Derivation with a <code>prov:type</code> value "prov:Revision".</p>
 </div>
 </section>  <!-- end term-Revision -->
 
 <section id="term-Quotation">
 <h3>Quotation</h3>
 <div class="glossary-ref" data-ref="glossary-quotation"></div>
-<p>To specialize a Derivation relationship as a Quotation relationship, include a <code>prov:type</code> with the value "prov:Quotation".</p>
+<pre class="schema-type">
+&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Quotation"&gt;
+  &lt;xs:complexContent&gt;
+    &lt;xs:extension base="prov:Derivation"&gt;
+    &lt;/xs:extension&gt;
+  &lt;/xs:complexContent&gt;
+&lt;/xs:complexType&gt;
+</pre>
+<pre class="schema-usage">
+&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasQuotedFrom" type="prov:Quotation"/&gt;
+</pre>
 <pre class="example">
 &lt;prov:document
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -1067,15 +1082,14 @@
 
   &lt;prov:entity prov:id="dm:bl-dagstuhl"/&gt;
 
-  &lt;prov:agent prov:id="ex:Luc"/&gt;
+  &lt;prov:person prov:id="ex:Luc"/&gt;
 
-  &lt;prov:agent prov:id="ex:Paul"/&gt;
+  &lt;prov:person prov:id="ex:Paul"/&gt;
 
-  &lt;prov:wasDerivedFrom&gt;
+  <b>&lt;prov:wasQuotedFrom&gt;
     &lt;prov:generatedEntity prov:ref="dm:gl-dagstuhl"/&gt;
     &lt;prov:usedEntity prov:ref="wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop"/&gt;
-    <b>&lt;prov:type xsi:type="xsd:QName"&gt;prov:Quotation&lt;/prov:type&gt;</b>
-  &lt;/prov:wasDerivedFrom&gt;
+  &lt;/prov:wasQuotedFrom&gt;</b>
 
   &lt;prov:wasAttributedTo&gt;
     &lt;prov:entity prov:ref="dm:bl-dagstuhl"/&gt;
@@ -1090,14 +1104,24 @@
 &lt;/prov:document&gt;
 </pre>
 <div class="note">
-<p>The modeling of Quotation is currently under discussion and is subject to change.</p>
+<p>The modeling of Quotation has changed.  The complexType prov:Quotation and xs:element prov:wasQuotedFrom were added to the schema to replace the previous modeling that required users to use a Derivation with a <code>prov:type</code> value "prov:Quotation".</p>
 </div>
 </section>  <!-- end term-Quotation -->
 
 <section id="term-Primary-Source">
 <h3>Primary Source</h3>
 <div class="glossary-ref" data-ref="glossary-primary-source"></div>
-<p>To specialize a Derivation relationship as a Primary Source relationship, include a <code>prov:type</code> with the value "prov:PrimarySource".</p>
+<pre class="schema-type">
+&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="PrimarySource"&gt;
+  &lt;xs:complexContent&gt;
+	&lt;xs:extension base="prov:Derivation"&gt;
+	&lt;/xs:extension&gt;
+  &lt;/xs:complexContent&gt;
+&lt;/xs:complexType&gt;
+</pre>
+<pre class="schema-usage">
+&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="hadPrimarySource" type="prov:PrimarySource"/&gt;
+</pre>
 <pre class="example">
 &lt;prov:document
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -1113,17 +1137,15 @@
     &lt;prov:type xsi:type="xsd:QName"&gt;journal&lt;/prov:type&gt;
   &lt;/prov:entity&gt;
 
-  &lt;prov:wasDerivedFrom&gt;
+  <b>&lt;prov:hadPrimarySource&gt;
     &lt;prov:generatedEntity prov:ref="ex:la-campagne-de-Russie-1812-1813"/&gt;
     &lt;prov:usedEntity prov:ref="ex:revue-d-Histoire-de-la-Pharmacie-t-XVIII"/&gt;
-    <b>&lt;prov:type xsi:type="xsd:QName"&gt;prov:PrimarySource&lt;/prov:type&gt;</b>
-  &lt;/prov:wasDerivedFrom&gt;
+  &lt;/prov:hadPrimarySource&gt;</b>
 
 &lt;/prov:document&gt;
 </pre>
 <div class="note">
-<p>The modeling of PrimarySource is currently under discussion and is subject to change.</p>
-</div>
+<p>The modeling of Primary Source has changed.  The complexType prov:PrimarySource and xs:element prov:hadPrimarySource were added to the schema to replace the previous modeling that required users to use a Derivation with a <code>prov:type</code> value "prov:PrimarySource".</p></div>
 </section>  <!-- end term-Primary-Source -->
 
 </section>  <!-- end component2 -->
@@ -1168,6 +1190,97 @@
 
 &lt;/prov:document&gt;
 </pre>
+
+<section id="term-Person">
+<h4>Person</h4>
+<div class="glossary-ref" data-ref="glossary-person"></div>
+<pre class="schema-type">
+&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Person"&gt;
+  &lt;xs:complexContent&gt;
+    &lt;xs:extension base="prov:Agent"&gt;
+    &lt;/xs:extension&gt;
+  &lt;/xs:complexContent&gt;
+&lt;/xs:complexType&gt;
+</pre>
+<pre class="schema-usage">
+&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="person" type="prov:Person"/&gt;
+</pre>
+<pre class="example">
+&lt;prov:document
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:prov="http://www.w3.org/ns/prov#"
+    xmlns:ex="http://example.com/ns/ex#"&gt;
+
+  <b>&lt;prov:person prov:id="ex:Paolo" /&gt;</b>
+
+&lt;/prov:document&gt;
+</pre>
+<div class="note">
+<p>The modeling of Person has changed.  The complexType prov:Person and xs:element prov:person were added to the schema to replace the previous modeling that required users to use an Agent with a <code>prov:type</code> value "prov:Person".</p>
+</div>
+</section> <!-- end term-Person -->
+
+<section id="term-Organization">
+<h4>Organization</h4>
+<div class="glossary-ref" data-ref="glossary-organization"></div>
+<pre class="schema-type">
+&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Organization"&gt;
+  &lt;xs:complexContent&gt;
+    &lt;xs:extension base="prov:Agent"&gt;
+    &lt;/xs:extension&gt;
+  &lt;/xs:complexContent&gt;
+&lt;/xs:complexType&gt;
+</pre>
+<pre class="schema-usage">
+&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="organization" type="prov:Organization"/&gt;
+</pre>
+<pre class="example">
+&lt;prov:document
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:prov="http://www.w3.org/ns/prov#"
+    xmlns:ex="http://example.com/ns/ex#"&gt;
+
+  <b>&lt;prov:organization prov:id="w3:Consortium" /&gt;</b>
+
+&lt;/prov:document&gt;
+</pre>
+<div class="note">
+<p>The modeling of Organization has changed.  The complexType prov:Organization and xs:element prov:organization were added to the schema to replace the previous modeling that required users to use an Agent with a <code>prov:type</code> value "prov:Organization".</p>
+</div>
+</section> <!-- end term-Organization -->
+
+<section id="term-SoftwareAgent">
+<h4>Software Agent</h4>
+<div class="glossary-ref" data-ref="glossary-software-agent"></div>
+<pre class="schema-type">
+&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="SoftwareAgent"&gt;
+  &lt;xs:complexContent&gt;
+    &lt;xs:extension base="prov:Agent"&gt;
+    &lt;/xs:extension&gt;
+  &lt;/xs:complexContent&gt;
+&lt;/xs:complexType&gt;
+</pre>
+<pre class="schema-usage">
+&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="softwareAgent" type="prov:SoftwareAgent"/&gt;
+</pre>
+<pre class="example">
+&lt;prov:document
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:prov="http://www.w3.org/ns/prov#"
+    xmlns:ex="http://example.com/ns/ex#"&gt;
+
+  <b>&lt;prov:softwareAgent prov:id="ag" /&gt;</b>
+
+&lt;/prov:document&gt;
+</pre>
+<div class="note">
+<p>The modeling of SoftwareAgent has changed.  The complexType prov:SoftwareAgent and xs:element prov:softwareAgent were added to the schema to replace the previous modeling that required users to use an Agent with a <code>prov:type</code> value "prov:SoftwareAgent".</p>
+</div>
+</section> <!-- end term-SoftwareAgent -->
+
 </section> <!-- end term-Agent -->
 
 <section id="term-Attribution">
@@ -1235,7 +1348,7 @@
   &lt;xs:sequence&gt;
     &lt;xs:element name="activity" type="prov:ActivityRef"/&gt;
     &lt;xs:element name="agent" type="prov:AgentRef" minOccurs="0"/&gt;
-    &lt;xs:element name="plan" type="prov:EntityRef" minOccurs="0"/&gt;
+    &lt;xs:element name="plan" type="prov:PlanRef" minOccurs="0"/&gt;
     &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
       &lt;xs:element ref="prov:role"/&gt;
       &lt;xs:element ref="prov:label"/&gt;
@@ -1283,14 +1396,73 @@
     &lt;ex:content&gt;project1&lt;/ex:content&gt;
   &lt;/prov:wasAssociatedWith&gt;</b>
 
-  &lt;prov:entity prov:id="ex:wf"&gt;
-    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Plan&lt;/prov:type&gt;
+  &lt;prov:plan prov:id="ex:wf"&gt;
     &lt;ex:label&gt;Workflow 1&lt;/ex:label&gt;
     &lt;prov:location xsi:type="xsd:anyURI"&gt;http://example.org/workflow1.bpel&lt;/prov:location&gt;
-  &lt;/prov:entity&gt;
+  &lt;/prov:plan&gt;
 
 &lt;/prov:document&gt;
 </pre>
+
+<section id="term-Plan">
+<h4>Plan</h4>
+<div class="glossary-ref" data-ref="glossary-plan"></div>
+<pre class="schema-type">
+&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Plan"&gt;
+  &lt;xs:complexContent&gt;
+    &lt;xs:extension base="prov:Entity"&gt;
+    &lt;/xs:extension&gt;
+  &lt;/xs:complexContent&gt;
+&lt;/xs:complexType&gt;
+</pre>
+<pre class="schema-usage">
+&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="plan" type="prov:Plan"/&gt;
+</pre>
+<pre class="example">
+&lt;prov:document
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:prov="http://www.w3.org/ns/prov#"
+    xmlns:ex="http://example.com/ns/ex#"&gt;
+
+  &lt;prov:activity prov:id="a"&gt;
+    &lt;prov:type xsi:type="xsd:string"&gt;workflow execution&lt;/prov:type&gt;
+  &lt;/prov:activity&gt;
+
+  &lt;prov:agent prov:id="ag1"&gt;
+    &lt;prov:type xsi:type="xsd:QName"&gt;operator&lt;/prov:type&gt;
+  &lt;/prov:agent&gt;
+
+  &lt;prov:agent prov:id="ag2"&gt;
+    &lt;prov:type xsi:type="xsd:QName"&gt;designator&lt;/prov:type&gt;
+  &lt;/prov:agent&gt;
+
+  &lt;prov:wasAssociatedWith&gt;
+    &lt;prov:activity prov:ref="a"/&gt;
+    &lt;prov:agent prov:ref="ag1"/&gt;
+    &lt;prov:role xsi:type="xsd:QName"&gt;loggedInUser&lt;/prov:role&gt;
+    &lt;ex:how&gt;webapp&lt;/ex:how&gt;
+  &lt;/prov:wasAssociatedWith&gt;
+
+  &lt;prov:wasAssociatedWith&gt;
+    &lt;prov:activity prov:ref="a"/&gt;
+    &lt;prov:agent prov:ref="ag2"/&gt;
+    &lt;prov:plan prov:ref="ex:wf"/&gt;
+    &lt;prov:role xsi:type="xsd:QName"&gt;designer&lt;/prov:role&gt;
+    &lt;ex:content&gt;project1&lt;/ex:content&gt;
+  &lt;/prov:wasAssociatedWith&gt;
+
+  <b>&lt;prov:plan prov:id="ex:wf"&gt;
+    &lt;ex:label&gt;Workflow 1&lt;/ex:label&gt;
+    &lt;prov:location xsi:type="xsd:anyURI"&gt;http://example.org/workflow1.bpel&lt;/prov:location&gt;
+  &lt;/prov:plan&gt;</b>
+
+&lt;/prov:document&gt;
+</pre>
+<div class="note">
+<p>The modeling of Plan has changed.  The complexType prov:Plan and xs:element prov:plan were added to the schema to replace the previous modeling that required users to use an Entity with a <code>prov:type</code> value "prov:Plan".</p>
+</div>
+</section> <!-- end term-Plan -->
 </section>  <!-- end term-Association -->
 
 <section id="term-Delegation">
@@ -1425,23 +1597,17 @@
 <p>A Bundle is an entity that can contain nested provenance statements.</p>
 <pre class="schema-type">
 &lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Bundle"&gt;
-  &lt;xs:sequence&gt;
-    &lt;xs:group ref="prov:documentElements"/&gt;
-  &lt;/xs:sequence&gt;
-  &lt;xs:attribute ref="prov:id"/&gt;
+  &lt;xs:complexContent&gt;
+    &lt;xs:extension base="prov:Entity"&gt;
+      &lt;xs:sequence&gt;
+        &lt;xs:group ref="prov:documentElements"/&gt;
+      &lt;/xs:sequence&gt;
+    &lt;/xs:extension&gt;
+  &lt;/xs:complexContent&gt;
 &lt;/xs:complexType&gt;
 </pre>
-<p>To specialize an Entity as a Bundle, include a <code>prov:type</code> with the value "prov:Bundle".  The bundle element with nested provenance statements is declared separately from the bundle's entity.</p>
 <pre class="schema-usage">
-&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="document" type="prov:Document" /&gt;
-&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Document"&gt;
-  &lt;xs:sequence&gt;
-    &lt;xs:choice maxOccurs="unbounded"&gt;
-      &lt;xs:group ref="prov:documentElements"/&gt;
-      &lt;xs:element name="bundle" type="prov:Bundle"/&gt;
-    &lt;/xs:choice&gt;
-  &lt;/xs:sequence&gt;
-&lt;/xs:complexType&gt;
+&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="bundle" type="prov:Bundle"/&gt;
 </pre>
 <pre class="example">
 &lt;prov:document
@@ -1492,11 +1658,7 @@
       &lt;prov:generatedEntity prov:ref="ex:report2"/&gt;
       &lt;prov:usedEntity prov:ref="ex:report1"/&gt;
     &lt;/prov:wasDerivedFrom&gt;
-  &lt;/prov:bundle&gt;</b>b>
-  
-  <b>&lt;prov:entity prov:id="bob:bundle1"&gt;
-    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Bundle&lt;/prov:type&gt;
-  &lt;/prov:entity&gt;</b>
+  &lt;/prov:bundle&gt;</b>
   
   &lt;prov:wasGeneratedBy&gt;
     &lt;prov:entity prov:ref="bob:bundle1"/&gt;
@@ -1508,10 +1670,6 @@
     &lt;prov:agent prov:ref="ex:Bob"/&gt;
   &lt;/prov:wasAttributedTo&gt;
   
-  <b>&lt;prov:entity prov:id="alice:bundle2"&gt;
-    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Bundle&lt;/prov:type&gt;
-  &lt;/prov:entity&gt;</b>
-  
   &lt;prov:wasGeneratedBy&gt;
     &lt;prov:entity prov:ref="alice:bundle2"/&gt;
     &lt;prov:time&gt;2012-05-25T11:15:00&lt;/prov:time&gt;
@@ -1525,7 +1683,9 @@
 &lt;/prov:document&gt;
 </pre>
 </section>
-
+<div class="note">
+<p>The modeling of Bundle has changed.  The complexType prov:Bundle and xs:element prov:bundle in the schema were revised to replace the previous modeling that required users to use a Entity record with a <code>prov:type</code> value "prov:Bundle" when defining the bundle entity.</p>
+</div>
 </section> <!-- end component4 -->
 
 <section id="component5"> 
@@ -1616,8 +1776,17 @@
 <section id="term-Collection">
 <h3>Collection</h3>
 <div class="glossary-ref" data-ref="glossary-collection"></div>
-<p>To specialize an Entity as a Collection, include a <code>prov:type</code> with the value "prov:Collection".</p>
-<p>An EmptyCollection is asserted with the <code>prov:type</code> "prov:EmptyCollection" and denotes a Collection with no members.</p>
+<pre class="schema-type">
+&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Collection"&gt;
+  &lt;xs:complexContent&gt;
+    &lt;xs:extension base="prov:Entity"&gt;
+    &lt;/xs:extension&gt;
+  &lt;/xs:complexContent&gt;
+&lt;/xs:complexType&gt;
+</pre>
+<pre class="schema-usage">
+&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="collection" type="prov:Collection"/&gt;
+</pre>
 <pre class="example">
 &lt;prov:document
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -1625,20 +1794,40 @@
     xmlns:prov="http://www.w3.org/ns/prov#"
     xmlns:ex="http://example.com/ns/ex#"&gt;
 
-  &lt;!-- c0 is an empty collection --&gt;
-  <b>&lt;prov:entity prov:id="c0"&gt;
-    &lt;prov:type xsi:type="xsd:QName"&gt;prov:EmptyCollection&lt;/prov:type&gt;
-  &lt;/prov:entity&gt;</b>
-
-  &lt;!-- c1 is a collection, with unknown content --&gt;
-  <b>&lt;prov:entity prov:id="c1"&gt;
-    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Collection&lt;/prov:type&gt;
-  &lt;/prov:entity&gt;</b>
+  <b>&lt;prov:collection prov:id="c1" /&gt;</b>
 
 &lt;/prov:document&gt;
 </pre>
+
+<section id="term-EmptyCollection">
+<h4>Empty Collection</h4>
+<div class="glossary-ref" data-ref="glossary-empty-collection"></div>
+<pre class="schema-type">
+&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="EmptyCollection"&gt;
+  &lt;xs:complexContent&gt;
+    &lt;xs:extension base="prov:Collection"&gt;
+    &lt;/xs:extension&gt;
+  &lt;/xs:complexContent&gt;
+&lt;/xs:complexType&gt;
+</pre>
+<pre class="schema-usage">
+&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="emptyCollection" type="prov:EmptyCollection"/&gt;
+</pre>
+<pre class="example">
+&lt;prov:document
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:prov="http://www.w3.org/ns/prov#"
+    xmlns:bbc="http://www.bbc.co.uk/news"
+    xmlns:bbcmobile="http://www.bbc.co.uk/news/mobile"&gt;
+    
+    <b>&lt;prov:emptyCollection prov:id="c0"/&gt;</b>
+
+&lt;/prov:document&gt;
+</pre>
+</section> <!-- end term-EmptyCollection -->
 <div class="note">
-<p>The modeling of Collection is currently under discussion and is subject to change.</p>
+<p>The modeling of Collection & EmptyCollection has changed.  The complexTypes prov:Collection and prov:EmptyCollection and xs:elements prov:collection and prov:emptyCollection were added to the schema to replace the previous modeling that required users to use an Entity record with a <code>prov:type</code> value of "prov:Collection" or "prov:EmptyCollection", respectively.</p>
 </div>
 </section>  <!-- end term-Collection -->
 
@@ -1648,7 +1837,7 @@
 <pre class="schema-type">
 &lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Membership"&gt;
   &lt;xs:sequence&gt;
-    &lt;xs:element name="collection"  type="prov:EntityRef"/&gt;
+    &lt;xs:element name="collection"  type="prov:CollectionRef"/&gt;
     &lt;xs:element name="entity"      type="prov:EntityRef" maxOccurs="unbounded"/&gt;
   &lt;/xs:sequence&gt;
 &lt;/xs:complexType&gt;
@@ -1666,9 +1855,7 @@
   &lt;prov:entity prov:id="e1"/&gt;
   &lt;prov:entity prov:id="e2"/&gt;
 
-  &lt;prov:entity prov:id="c"&gt;
-    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Collection&lt;/prov:type&gt;
-  &lt;/prov:entity&gt;
+  &lt;prov:collection prov:id="c"/&gt;
 
   <b>&lt;prov:hadMember&gt;
     &lt;prov:collection prov:ref="c"/&gt;
@@ -1922,6 +2109,12 @@
 		<pre class="full-schema">
 &lt;?xml version="1.0" encoding="utf-8"?&gt;
 
+&lt;!-- 
+     In PROV-DM, all ids are qualified names, specified as prov:QualifiedName in PROV-N.
+     In this schema, all ids are instead defined as xsd:QNames. 
+  --&gt;
+
+
 &lt;xs:schema targetNamespace="http://www.w3.org/ns/prov#"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:prov="http://www.w3.org/ns/prov#"
@@ -1937,7 +2130,7 @@
              schemaLocation="http://www.w3.org/2001/xml.xsd"/&gt;
 
   &lt;!-- Component 1 --&gt;
-
+  
   &lt;xs:complexType name="Entity"&gt;
     &lt;xs:sequence&gt;
       &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
@@ -1953,8 +2146,8 @@
 
   &lt;xs:complexType name="Activity"&gt;
     &lt;xs:sequence&gt;
-      &lt;xs:element name="startTime"    type="xs:dateTime" minOccurs="0"/&gt; 
-      &lt;xs:element name="endTime"      type="xs:dateTime" minOccurs="0"/&gt; 
+      &lt;xs:element name="startTime" type="xs:dateTime" minOccurs="0"/&gt; 
+      &lt;xs:element name="endTime" type="xs:dateTime" minOccurs="0"/&gt; 
       &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
         &lt;xs:element ref="prov:location"/&gt;
         &lt;xs:element ref="prov:label"/&gt;
@@ -1967,9 +2160,9 @@
 
   &lt;xs:complexType name="Generation"&gt;
     &lt;xs:sequence&gt;
-      &lt;xs:element name="entity"   type="prov:EntityRef"/&gt;
+      &lt;xs:element name="entity" type="prov:EntityRef"/&gt;
       &lt;xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/&gt;
-      &lt;xs:element name="time"     type="xs:dateTime" minOccurs="0"/&gt;
+      &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
       &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
         &lt;xs:element ref="prov:location"/&gt;
         &lt;xs:element ref="prov:role"/&gt;
@@ -1984,8 +2177,8 @@
   &lt;xs:complexType name="Usage"&gt;
     &lt;xs:sequence&gt;
       &lt;xs:element name="activity" type="prov:ActivityRef"/&gt;
-      &lt;xs:element name="entity"   type="prov:EntityRef" minOccurs="0"/&gt;
-      &lt;xs:element name="time"     type="xs:dateTime" minOccurs="0"/&gt;
+      &lt;xs:element name="entity" type="prov:EntityRef" minOccurs="0"/&gt;
+      &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
       &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
         &lt;xs:element ref="prov:location"/&gt;
         &lt;xs:element ref="prov:role"/&gt;
@@ -1999,7 +2192,7 @@
 
   &lt;xs:complexType name="Communication"&gt;
     &lt;xs:sequence&gt;
-      &lt;xs:element name="informed"  type="prov:ActivityRef"/&gt;
+      &lt;xs:element name="informed" type="prov:ActivityRef"/&gt;
       &lt;xs:element name="informant" type="prov:ActivityRef"/&gt;
       &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
         &lt;xs:element ref="prov:label"/&gt;
@@ -2013,9 +2206,9 @@
   &lt;xs:complexType name="Start"&gt;
     &lt;xs:sequence&gt;
       &lt;xs:element name="activity" type="prov:ActivityRef"/&gt;
-      &lt;xs:element name="trigger"  type="prov:EntityRef" minOccurs="0"/&gt;
-      &lt;xs:element name="starter"  type="prov:ActivityRef" minOccurs="0"/&gt;
-      &lt;xs:element name="time"     type="xs:dateTime" minOccurs="0"/&gt;
+      &lt;xs:element name="trigger" type="prov:EntityRef" minOccurs="0"/&gt;
+      &lt;xs:element name="starter" type="prov:ActivityRef" minOccurs="0"/&gt;
+      &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
       &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
         &lt;xs:element ref="prov:location"/&gt;
         &lt;xs:element ref="prov:role"/&gt;
@@ -2030,9 +2223,9 @@
   &lt;xs:complexType name="End"&gt;
     &lt;xs:sequence&gt;
       &lt;xs:element name="activity" type="prov:ActivityRef"/&gt;
-      &lt;xs:element name="trigger"  type="prov:EntityRef"  minOccurs="0"/&gt;
-      &lt;xs:element name="ender"    type="prov:ActivityRef" minOccurs="0"/&gt;
-      &lt;xs:element name="time"     type="xs:dateTime" minOccurs="0"/&gt;
+      &lt;xs:element name="trigger" type="prov:EntityRef"  minOccurs="0"/&gt;
+      &lt;xs:element name="ender" type="prov:ActivityRef" minOccurs="0"/&gt;
+      &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
       &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
         &lt;xs:element ref="prov:location"/&gt;
         &lt;xs:element ref="prov:role"/&gt;
@@ -2046,9 +2239,9 @@
 
   &lt;xs:complexType name="Invalidation"&gt;
     &lt;xs:sequence&gt;
-      &lt;xs:element name="entity"   type="prov:EntityRef"/&gt;
+      &lt;xs:element name="entity" type="prov:EntityRef"/&gt;
       &lt;xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/&gt;
-      &lt;xs:element name="time"     type="xs:dateTime" minOccurs="0"/&gt;
+      &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
       &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
         &lt;xs:element ref="prov:location"/&gt;
         &lt;xs:element ref="prov:role"/&gt;
@@ -2061,14 +2254,14 @@
   &lt;/xs:complexType&gt;
 
   &lt;!-- Component 2 --&gt;
-
+  
   &lt;xs:complexType name="Derivation"&gt;
     &lt;xs:sequence&gt;
-      &lt;xs:element name="generatedEntity"  type="prov:EntityRef"/&gt;
-      &lt;xs:element name="usedEntity"       type="prov:EntityRef"/&gt;
-      &lt;xs:element name="activity"         type="prov:ActivityRef" minOccurs="0"/&gt;
-      &lt;xs:element name="generation"       type="prov:GenerationRef" minOccurs="0"/&gt;
-      &lt;xs:element name="usage"            type="prov:UsageRef" minOccurs="0"/&gt;
+      &lt;xs:element name="generatedEntity" type="prov:EntityRef"/&gt;
+      &lt;xs:element name="usedEntity" type="prov:EntityRef"/&gt;
+      &lt;xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/&gt;
+      &lt;xs:element name="generation" type="prov:GenerationRef" minOccurs="0"/&gt;
+      &lt;xs:element name="usage" type="prov:UsageRef" minOccurs="0"/&gt;
       &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
         &lt;xs:element ref="prov:label"/&gt;
         &lt;xs:element ref="prov:type"/&gt;
@@ -2078,8 +2271,29 @@
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
 
+  &lt;xs:complexType name="Revision"&gt;
+	&lt;xs:complexContent&gt;
+      &lt;xs:extension base="prov:Derivation"&gt;
+	  &lt;/xs:extension&gt;
+	&lt;/xs:complexContent&gt;
+  &lt;/xs:complexType&gt;
+
+  &lt;xs:complexType name="Quotation"&gt;
+    &lt;xs:complexContent&gt;
+	  &lt;xs:extension base="prov:Derivation"&gt;
+	  &lt;/xs:extension&gt;
+	&lt;/xs:complexContent&gt;
+  &lt;/xs:complexType&gt;
+
+  &lt;xs:complexType name="PrimarySource"&gt;
+    &lt;xs:complexContent&gt;
+	  &lt;xs:extension base="prov:Derivation"&gt;
+	  &lt;/xs:extension&gt;
+	&lt;/xs:complexContent&gt;
+  &lt;/xs:complexType&gt;
+
   &lt;!-- Component 3 --&gt;
-
+  
   &lt;xs:complexType name="Agent"&gt;
     &lt;xs:sequence&gt;
       &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
@@ -2092,10 +2306,31 @@
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
 
+  &lt;xs:complexType name="Person"&gt;
+    &lt;xs:complexContent&gt;
+	  &lt;xs:extension base="prov:Agent"&gt;
+	  &lt;/xs:extension&gt;
+	&lt;/xs:complexContent&gt;
+  &lt;/xs:complexType&gt;
+
+  &lt;xs:complexType name="Organization"&gt;
+    &lt;xs:complexContent&gt;
+	  &lt;xs:extension base="prov:Agent"&gt;
+	  &lt;/xs:extension&gt;
+	&lt;/xs:complexContent&gt;
+  &lt;/xs:complexType&gt;
+
+  &lt;xs:complexType name="SoftwareAgent"&gt;
+    &lt;xs:complexContent&gt;
+	  &lt;xs:extension base="prov:Agent"&gt;
+	  &lt;/xs:extension&gt;
+	&lt;/xs:complexContent&gt;
+  &lt;/xs:complexType&gt;
+
   &lt;xs:complexType name="Attribution"&gt;
     &lt;xs:sequence&gt;
       &lt;xs:element name="entity" type="prov:EntityRef"/&gt;
-      &lt;xs:element name="agent"    type="prov:AgentRef"/&gt;
+      &lt;xs:element name="agent" type="prov:AgentRef"/&gt;
       &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
         &lt;xs:element ref="prov:label"/&gt;
         &lt;xs:element ref="prov:type"/&gt;
@@ -2108,8 +2343,8 @@
   &lt;xs:complexType name="Association"&gt;
     &lt;xs:sequence&gt;
       &lt;xs:element name="activity" type="prov:ActivityRef"/&gt;
-      &lt;xs:element name="agent"    type="prov:AgentRef" minOccurs="0"/&gt;
-      &lt;xs:element name="plan"     type="prov:EntityRef" minOccurs="0"/&gt;
+      &lt;xs:element name="agent" type="prov:AgentRef" minOccurs="0"/&gt;
+      &lt;xs:element name="plan" type="prov:PlanRef" minOccurs="0"/&gt;
       &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
         &lt;xs:element ref="prov:role"/&gt;
         &lt;xs:element ref="prov:label"/&gt;
@@ -2124,7 +2359,7 @@
     &lt;xs:sequence&gt;
       &lt;xs:element name="delegate" type="prov:AgentRef"/&gt;
       &lt;xs:element name="responsible" type="prov:AgentRef"/&gt;
-      &lt;xs:element name="activity"    type="prov:ActivityRef" minOccurs="0"/&gt;
+      &lt;xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/&gt;
       &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
         &lt;xs:element ref="prov:label"/&gt;
         &lt;xs:element ref="prov:type"/&gt;
@@ -2136,8 +2371,8 @@
 
   &lt;xs:complexType name="Influence"&gt;
     &lt;xs:sequence&gt;
-      &lt;xs:element name="influencee"     type="prov:AnyRef"/&gt;
-      &lt;xs:element name="influencer"     type="prov:AnyRef"/&gt;
+      &lt;xs:element name="influencee" type="prov:AnyRef"/&gt;
+      &lt;xs:element name="influencer" type="prov:AnyRef"/&gt;
       &lt;xs:choice minOccurs="0" maxOccurs="unbounded"&gt;
         &lt;xs:element ref="prov:label"/&gt;
         &lt;xs:element ref="prov:type"/&gt;
@@ -2149,29 +2384,60 @@
 
   &lt;!-- Component 4 --&gt;
 
+  &lt;xs:complexType name="Bundle"&gt;
+	&lt;xs:complexContent&gt;
+	  &lt;xs:extension base="prov:Entity"&gt;
+		&lt;xs:sequence&gt;
+	      &lt;xs:group ref="prov:documentElements"/&gt;
+	    &lt;/xs:sequence&gt;
+	  &lt;/xs:extension&gt;
+	&lt;/xs:complexContent&gt;
+  &lt;/xs:complexType&gt;
+
   &lt;!-- Component 5 --&gt;
 
   &lt;xs:complexType name="Specialization"&gt;
     &lt;xs:sequence&gt;
-      &lt;xs:element name="specificEntity"   type="prov:EntityRef"/&gt;
-      &lt;xs:element name="generalEntity"   type="prov:EntityRef"/&gt;
+      &lt;xs:element name="specificEntity" type="prov:EntityRef"/&gt;
+      &lt;xs:element name="generalEntity" type="prov:EntityRef"/&gt;
     &lt;/xs:sequence&gt;
   &lt;/xs:complexType&gt;
 
   &lt;xs:complexType name="Alternate"&gt;
     &lt;xs:sequence&gt;
-      &lt;xs:element name="alternate1"   type="prov:EntityRef"/&gt;
-      &lt;xs:element name="alternate2"   type="prov:EntityRef"/&gt;
+      &lt;xs:element name="alternate1" type="prov:EntityRef"/&gt;
+      &lt;xs:element name="alternate2" type="prov:EntityRef"/&gt;
+    &lt;/xs:sequence&gt;
+  &lt;/xs:complexType&gt;
+  
+  &lt;!-- Component 6 --&gt;
+
+  &lt;xs:complexType name="Collection"&gt;
+    &lt;xs:complexContent&gt;
+	  &lt;xs:extension base="prov:Entity"&gt;
+	  &lt;/xs:extension&gt;
+	&lt;/xs:complexContent&gt;
+  &lt;/xs:complexType&gt;
+
+  &lt;xs:complexType name="EmptyCollection"&gt;
+    &lt;xs:complexContent&gt;
+	  &lt;xs:extension base="prov:Collection"&gt;
+	  &lt;/xs:extension&gt;
+	&lt;/xs:complexContent&gt;
+  &lt;/xs:complexType&gt;
+
+  &lt;xs:complexType name="Membership"&gt;
+    &lt;xs:sequence&gt;
+      &lt;xs:element name="collection" type="prov:CollectionRef"/&gt;
+      &lt;xs:element name="entity" type="prov:EntityRef" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
   &lt;/xs:complexType&gt;
 
-  &lt;!-- Component 6 --&gt;
-
-  &lt;xs:complexType name="Membership"&gt;
-    &lt;xs:sequence&gt;
-      &lt;xs:element name="collection"          type="prov:EntityRef"/&gt;
-      &lt;xs:element name="entity"          type="prov:EntityRef" maxOccurs="unbounded"/&gt;
-    &lt;/xs:sequence&gt;
+  &lt;xs:complexType name="Plan"&gt;
+    &lt;xs:complexContent&gt;
+	  &lt;xs:extension base="prov:Entity"&gt;
+	  &lt;/xs:extension&gt;
+	&lt;/xs:complexContent&gt;
   &lt;/xs:complexType&gt;
 
   &lt;xs:complexType name="InternationalizedString"&gt;
@@ -2188,18 +2454,24 @@
        of xsi:type that represent the prov:datatype.
 
        --&gt;
-
-  &lt;xs:element name="label"    type="prov:InternationalizedString"/&gt;
-  &lt;xs:element name="role"     type="xs:anySimpleType"/&gt;
-  &lt;xs:element name="type"     type="xs:anySimpleType"/&gt;
+  
+  &lt;xs:element name="label" type="prov:InternationalizedString"/&gt;
+  &lt;xs:element name="role" type="xs:anySimpleType"/&gt;
+  &lt;xs:element name="type" type="xs:anySimpleType"/&gt;
   &lt;xs:element name="location" type="xs:anySimpleType"/&gt;
-  &lt;xs:element name="value"    type="xs:anySimpleType"/&gt;
+  &lt;xs:element name="value" type="xs:anySimpleType"/&gt;
 
   &lt;!-- See comment in preamble.
        These should be prov:QualifiedName
        but instead are xsd:QName for tools to process them --&gt;
 
-  &lt;xs:attribute name="id"  type="xs:QName"/&gt;
+  &lt;!--  Possible alternative, but may cause us 
+        to lose benefit of existing XML tooling
+  &lt;xs:attribute name="id"  type="xs:anyURI"/&gt;
+  &lt;xs:attribute name="ref" type="xs:anyURI"/&gt;
+  --&gt;
+
+  &lt;xs:attribute name="id" type="xs:QName"/&gt;
   &lt;xs:attribute name="ref" type="xs:QName"/&gt;
 
   &lt;xs:complexType name="ActivityRef"&gt;
@@ -2208,6 +2480,12 @@
   &lt;xs:complexType name="EntityRef"&gt;
     &lt;xs:attribute ref="prov:ref" use="required"/&gt;
   &lt;/xs:complexType&gt;
+  &lt;xs:complexType name="CollectionRef"&gt;
+    &lt;xs:attribute ref="prov:ref" use="required"/&gt;
+  &lt;/xs:complexType&gt;
+  &lt;xs:complexType name="PlanRef"&gt;
+	&lt;xs:attribute ref="prov:ref" use="required"/&gt;
+  &lt;/xs:complexType&gt;
   &lt;xs:complexType name="AgentRef"&gt;
     &lt;xs:attribute ref="prov:ref" use="required"/&gt;
   &lt;/xs:complexType&gt;
@@ -2240,23 +2518,38 @@
   &lt;!-- Component 2 elements --&gt;
 
   &lt;xs:element name="wasDerivedFrom"       type="prov:Derivation"/&gt;
+  &lt;xs:element name="wasRevisionOf"        type="prov:Revision"/&gt;
+  &lt;xs:element name="wasQuotedFrom"        type="prov:Quotation"/&gt;
+  &lt;xs:element name="hadPrimarySource"     type="prov:PrimarySource"/&gt;
 
   &lt;!-- Component 3 elements --&gt;
 
   &lt;xs:element name="agent"                type="prov:Agent"/&gt;
+  &lt;xs:element name="person"               type="prov:Person"/&gt;
+  &lt;xs:element name="organization"         type="prov:Organization"/&gt;
+  &lt;xs:element name="softwareAgent"        type="prov:SoftwareAgent"/&gt;
   &lt;xs:element name="wasAttributedTo"      type="prov:Attribution"/&gt;
   &lt;xs:element name="wasAssociatedWith"    type="prov:Association"/&gt;
   &lt;xs:element name="actedOnBehalfOf"      type="prov:Delegation"/&gt;
   &lt;xs:element name="wasInfluencedBy"      type="prov:Influence"/&gt;
-
+  
   &lt;!-- Component 5 elements --&gt;
 
+  &lt;xs:element name="bundle"               type="prov:Bundle"/&gt;
   &lt;xs:element name="specializationOf"     type="prov:Specialization"/&gt;
   &lt;xs:element name="alternateOf"          type="prov:Alternate"/&gt;
 
   &lt;!-- Component 6 elements --&gt;
 
   &lt;xs:element name="hadMember"            type="prov:Membership"/&gt;
+  &lt;xs:element name="collection"           type="prov:Collection"/&gt;
+  &lt;xs:element name="emptyCollection"      type="prov:EmptyCollection"/&gt;
+
+  &lt;!-- Component 7 elements --&gt;
+
+  &lt;xs:element name="plan"                 type="prov:Plan"/&gt;
+
+  &lt;!-- document elements --&gt;
 
   &lt;xs:group name="documentElements"&gt;
     &lt;xs:sequence&gt;
@@ -2270,14 +2563,24 @@
         &lt;xs:element ref="prov:wasEndedBy"/&gt;
         &lt;xs:element ref="prov:wasInvalidatedBy"/&gt;
         &lt;xs:element ref="prov:wasDerivedFrom"/&gt;
+        &lt;xs:element ref="prov:wasRevisionOf"/&gt;
+        &lt;xs:element ref="prov:wasQuotedFrom"/&gt;
+        &lt;xs:element ref="prov:hadPrimarySource"/&gt;
         &lt;xs:element ref="prov:agent"/&gt;
+        &lt;xs:element ref="prov:person"/&gt;
+        &lt;xs:element ref="prov:organization"/&gt;
+        &lt;xs:element ref="prov:softwareAgent"/&gt;
         &lt;xs:element ref="prov:wasAttributedTo"/&gt;
         &lt;xs:element ref="prov:wasAssociatedWith"/&gt;
         &lt;xs:element ref="prov:actedOnBehalfOf"/&gt;
         &lt;xs:element ref="prov:wasInfluencedBy"/&gt;
+        &lt;xs:element ref="prov:bundle"/&gt;
         &lt;xs:element ref="prov:specializationOf"/&gt;
         &lt;xs:element ref="prov:alternateOf"/&gt;
+	    &lt;xs:element ref="prov:collection"/&gt;
+	    &lt;xs:element ref="prov:emptyCollection"/&gt;
         &lt;xs:element ref="prov:hadMember"/&gt;
+        &lt;xs:element ref="prov:plan"/&gt;
 		&lt;xs:any namespace="##other"/&gt;
       &lt;/xs:choice&gt;
     &lt;/xs:sequence&gt;
@@ -2288,19 +2591,13 @@
     &lt;xs:sequence&gt;
       &lt;xs:choice maxOccurs="unbounded"&gt;
         &lt;xs:group ref="prov:documentElements"/&gt;
-        &lt;xs:element name="bundle" type="prov:Bundle"/&gt;
+        &lt;xs:element ref="prov:bundle"/&gt;
       &lt;/xs:choice&gt;
     &lt;/xs:sequence&gt;
   &lt;/xs:complexType&gt;
 
-  &lt;xs:complexType name="Bundle"&gt;
-    &lt;xs:sequence&gt;
-      &lt;xs:group ref="prov:documentElements"/&gt;
-    &lt;/xs:sequence&gt;
-    &lt;xs:attribute ref="prov:id"/&gt;
-  &lt;/xs:complexType&gt;
+&lt;/xs:schema&gt;
 
-&lt;/xs:schema&gt;
 		</pre>
     </section>