--- 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 <prov:type>prov:Revision</prov:type> 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 <prov:type>prov:Quotation</prov:type> 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 <prov:type>prov:PrimarySource</prov:type> 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 <prov:type>prov:Plan</prov:type> in Entity</td>
-</tr>
-<tr class="component3-color">
- <td class="provType">Person</td>
- <td>use <prov:type>prov:Person</prov:type> 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 <prov:type>prov:Organization</prov:type> 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 <prov:type>prov:SoftwareAgent</prov:type> 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 <prov:type>prov:Bundle</prov:type> 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 <prov:type>prov:Collection</prov:type> 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 <prov:type>prov:EmptyCollection</prov:type> 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">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Revision">
+ <xs:complexContent>
+ <xs:extension base="prov:Derivation">
+ </xs:extension>
+ </xs:complexContent>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasRevisionOf" type="prov:Revision"/>
+</pre>
<pre class="example">
<prov:document
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -1037,23 +1043,32 @@
<prov:type xsi:type="xsd:QName">rec54:WD</prov:type>
</prov:entity>
- <prov:wasDerivedFrom>
+ <b><prov:wasRevisionOf>
<prov:generatedEntity prov:ref="tr:WD-prov-dm-20111215"/>
<prov:usedEntity prov:ref="tr:WD-prov-dm-20111018"/>
- <b><prov:type xsi:type="xsd:QName">prov:Revision</prov:type></b>
- </prov:wasDerivedFrom>
+ </prov:wasRevisionOf></b>
</prov:document>
</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">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Quotation">
+ <xs:complexContent>
+ <xs:extension base="prov:Derivation">
+ </xs:extension>
+ </xs:complexContent>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasQuotedFrom" type="prov:Quotation"/>
+</pre>
<pre class="example">
<prov:document
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -1067,15 +1082,14 @@
<prov:entity prov:id="dm:bl-dagstuhl"/>
- <prov:agent prov:id="ex:Luc"/>
+ <prov:person prov:id="ex:Luc"/>
- <prov:agent prov:id="ex:Paul"/>
+ <prov:person prov:id="ex:Paul"/>
- <prov:wasDerivedFrom>
+ <b><prov:wasQuotedFrom>
<prov:generatedEntity prov:ref="dm:gl-dagstuhl"/>
<prov:usedEntity prov:ref="wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop"/>
- <b><prov:type xsi:type="xsd:QName">prov:Quotation</prov:type></b>
- </prov:wasDerivedFrom>
+ </prov:wasQuotedFrom></b>
<prov:wasAttributedTo>
<prov:entity prov:ref="dm:bl-dagstuhl"/>
@@ -1090,14 +1104,24 @@
</prov:document>
</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">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="PrimarySource">
+ <xs:complexContent>
+ <xs:extension base="prov:Derivation">
+ </xs:extension>
+ </xs:complexContent>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="hadPrimarySource" type="prov:PrimarySource"/>
+</pre>
<pre class="example">
<prov:document
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -1113,17 +1137,15 @@
<prov:type xsi:type="xsd:QName">journal</prov:type>
</prov:entity>
- <prov:wasDerivedFrom>
+ <b><prov:hadPrimarySource>
<prov:generatedEntity prov:ref="ex:la-campagne-de-Russie-1812-1813"/>
<prov:usedEntity prov:ref="ex:revue-d-Histoire-de-la-Pharmacie-t-XVIII"/>
- <b><prov:type xsi:type="xsd:QName">prov:PrimarySource</prov:type></b>
- </prov:wasDerivedFrom>
+ </prov:hadPrimarySource></b>
</prov:document>
</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 @@
</prov:document>
</pre>
+
+<section id="term-Person">
+<h4>Person</h4>
+<div class="glossary-ref" data-ref="glossary-person"></div>
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Person">
+ <xs:complexContent>
+ <xs:extension base="prov:Agent">
+ </xs:extension>
+ </xs:complexContent>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="person" type="prov:Person"/>
+</pre>
+<pre class="example">
+<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#">
+
+ <b><prov:person prov:id="ex:Paolo" /></b>
+
+</prov:document>
+</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">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Organization">
+ <xs:complexContent>
+ <xs:extension base="prov:Agent">
+ </xs:extension>
+ </xs:complexContent>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="organization" type="prov:Organization"/>
+</pre>
+<pre class="example">
+<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#">
+
+ <b><prov:organization prov:id="w3:Consortium" /></b>
+
+</prov:document>
+</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">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="SoftwareAgent">
+ <xs:complexContent>
+ <xs:extension base="prov:Agent">
+ </xs:extension>
+ </xs:complexContent>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="softwareAgent" type="prov:SoftwareAgent"/>
+</pre>
+<pre class="example">
+<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#">
+
+ <b><prov:softwareAgent prov:id="ag" /></b>
+
+</prov:document>
+</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 @@
<xs:sequence>
<xs:element name="activity" type="prov:ActivityRef"/>
<xs:element name="agent" type="prov:AgentRef" minOccurs="0"/>
- <xs:element name="plan" type="prov:EntityRef" minOccurs="0"/>
+ <xs:element name="plan" type="prov:PlanRef" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:role"/>
<xs:element ref="prov:label"/>
@@ -1283,14 +1396,73 @@
<ex:content>project1</ex:content>
</prov:wasAssociatedWith></b>
- <prov:entity prov:id="ex:wf">
- <prov:type xsi:type="xsd:QName">prov:Plan</prov:type>
+ <prov:plan prov:id="ex:wf">
<ex:label>Workflow 1</ex:label>
<prov:location xsi:type="xsd:anyURI">http://example.org/workflow1.bpel</prov:location>
- </prov:entity>
+ </prov:plan>
</prov:document>
</pre>
+
+<section id="term-Plan">
+<h4>Plan</h4>
+<div class="glossary-ref" data-ref="glossary-plan"></div>
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Plan">
+ <xs:complexContent>
+ <xs:extension base="prov:Entity">
+ </xs:extension>
+ </xs:complexContent>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="plan" type="prov:Plan"/>
+</pre>
+<pre class="example">
+<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#">
+
+ <prov:activity prov:id="a">
+ <prov:type xsi:type="xsd:string">workflow execution</prov:type>
+ </prov:activity>
+
+ <prov:agent prov:id="ag1">
+ <prov:type xsi:type="xsd:QName">operator</prov:type>
+ </prov:agent>
+
+ <prov:agent prov:id="ag2">
+ <prov:type xsi:type="xsd:QName">designator</prov:type>
+ </prov:agent>
+
+ <prov:wasAssociatedWith>
+ <prov:activity prov:ref="a"/>
+ <prov:agent prov:ref="ag1"/>
+ <prov:role xsi:type="xsd:QName">loggedInUser</prov:role>
+ <ex:how>webapp</ex:how>
+ </prov:wasAssociatedWith>
+
+ <prov:wasAssociatedWith>
+ <prov:activity prov:ref="a"/>
+ <prov:agent prov:ref="ag2"/>
+ <prov:plan prov:ref="ex:wf"/>
+ <prov:role xsi:type="xsd:QName">designer</prov:role>
+ <ex:content>project1</ex:content>
+ </prov:wasAssociatedWith>
+
+ <b><prov:plan prov:id="ex:wf">
+ <ex:label>Workflow 1</ex:label>
+ <prov:location xsi:type="xsd:anyURI">http://example.org/workflow1.bpel</prov:location>
+ </prov:plan></b>
+
+</prov:document>
+</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">
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Bundle">
- <xs:sequence>
- <xs:group ref="prov:documentElements"/>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
+ <xs:complexContent>
+ <xs:extension base="prov:Entity">
+ <xs:sequence>
+ <xs:group ref="prov:documentElements"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
</xs:complexType>
</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">
-<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="document" type="prov:Document" />
-<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Document">
- <xs:sequence>
- <xs:choice maxOccurs="unbounded">
- <xs:group ref="prov:documentElements"/>
- <xs:element name="bundle" type="prov:Bundle"/>
- </xs:choice>
- </xs:sequence>
-</xs:complexType>
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="bundle" type="prov:Bundle"/>
</pre>
<pre class="example">
<prov:document
@@ -1492,11 +1658,7 @@
<prov:generatedEntity prov:ref="ex:report2"/>
<prov:usedEntity prov:ref="ex:report1"/>
</prov:wasDerivedFrom>
- </prov:bundle></b>b>
-
- <b><prov:entity prov:id="bob:bundle1">
- <prov:type xsi:type="xsd:QName">prov:Bundle</prov:type>
- </prov:entity></b>
+ </prov:bundle></b>
<prov:wasGeneratedBy>
<prov:entity prov:ref="bob:bundle1"/>
@@ -1508,10 +1670,6 @@
<prov:agent prov:ref="ex:Bob"/>
</prov:wasAttributedTo>
- <b><prov:entity prov:id="alice:bundle2">
- <prov:type xsi:type="xsd:QName">prov:Bundle</prov:type>
- </prov:entity></b>
-
<prov:wasGeneratedBy>
<prov:entity prov:ref="alice:bundle2"/>
<prov:time>2012-05-25T11:15:00</prov:time>
@@ -1525,7 +1683,9 @@
</prov:document>
</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">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Collection">
+ <xs:complexContent>
+ <xs:extension base="prov:Entity">
+ </xs:extension>
+ </xs:complexContent>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="collection" type="prov:Collection"/>
+</pre>
<pre class="example">
<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#">
- <!-- c0 is an empty collection -->
- <b><prov:entity prov:id="c0">
- <prov:type xsi:type="xsd:QName">prov:EmptyCollection</prov:type>
- </prov:entity></b>
-
- <!-- c1 is a collection, with unknown content -->
- <b><prov:entity prov:id="c1">
- <prov:type xsi:type="xsd:QName">prov:Collection</prov:type>
- </prov:entity></b>
+ <b><prov:collection prov:id="c1" /></b>
</prov:document>
</pre>
+
+<section id="term-EmptyCollection">
+<h4>Empty Collection</h4>
+<div class="glossary-ref" data-ref="glossary-empty-collection"></div>
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="EmptyCollection">
+ <xs:complexContent>
+ <xs:extension base="prov:Collection">
+ </xs:extension>
+ </xs:complexContent>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="emptyCollection" type="prov:EmptyCollection"/>
+</pre>
+<pre class="example">
+<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">
+
+ <b><prov:emptyCollection prov:id="c0"/></b>
+
+</prov:document>
+</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">
<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Membership">
<xs:sequence>
- <xs:element name="collection" type="prov:EntityRef"/>
+ <xs:element name="collection" type="prov:CollectionRef"/>
<xs:element name="entity" type="prov:EntityRef" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
@@ -1666,9 +1855,7 @@
<prov:entity prov:id="e1"/>
<prov:entity prov:id="e2"/>
- <prov:entity prov:id="c">
- <prov:type xsi:type="xsd:QName">prov:Collection</prov:type>
- </prov:entity>
+ <prov:collection prov:id="c"/>
<b><prov:hadMember>
<prov:collection prov:ref="c"/>
@@ -1922,6 +2109,12 @@
<pre class="full-schema">
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ 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.
+ -->
+
+
<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"/>
<!-- Component 1 -->
-
+
<xs:complexType name="Entity">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
@@ -1953,8 +2146,8 @@
<xs:complexType name="Activity">
<xs:sequence>
- <xs:element name="startTime" type="xs:dateTime" minOccurs="0"/>
- <xs:element name="endTime" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="startTime" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="endTime" type="xs:dateTime" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:location"/>
<xs:element ref="prov:label"/>
@@ -1967,9 +2160,9 @@
<xs:complexType name="Generation">
<xs:sequence>
- <xs:element name="entity" type="prov:EntityRef"/>
+ <xs:element name="entity" type="prov:EntityRef"/>
<xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
- <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:location"/>
<xs:element ref="prov:role"/>
@@ -1984,8 +2177,8 @@
<xs:complexType name="Usage">
<xs:sequence>
<xs:element name="activity" type="prov:ActivityRef"/>
- <xs:element name="entity" type="prov:EntityRef" minOccurs="0"/>
- <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="entity" type="prov:EntityRef" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:location"/>
<xs:element ref="prov:role"/>
@@ -1999,7 +2192,7 @@
<xs:complexType name="Communication">
<xs:sequence>
- <xs:element name="informed" type="prov:ActivityRef"/>
+ <xs:element name="informed" type="prov:ActivityRef"/>
<xs:element name="informant" type="prov:ActivityRef"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:label"/>
@@ -2013,9 +2206,9 @@
<xs:complexType name="Start">
<xs:sequence>
<xs:element name="activity" type="prov:ActivityRef"/>
- <xs:element name="trigger" type="prov:EntityRef" minOccurs="0"/>
- <xs:element name="starter" type="prov:ActivityRef" minOccurs="0"/>
- <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="trigger" type="prov:EntityRef" minOccurs="0"/>
+ <xs:element name="starter" type="prov:ActivityRef" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:location"/>
<xs:element ref="prov:role"/>
@@ -2030,9 +2223,9 @@
<xs:complexType name="End">
<xs:sequence>
<xs:element name="activity" type="prov:ActivityRef"/>
- <xs:element name="trigger" type="prov:EntityRef" minOccurs="0"/>
- <xs:element name="ender" type="prov:ActivityRef" minOccurs="0"/>
- <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="trigger" type="prov:EntityRef" minOccurs="0"/>
+ <xs:element name="ender" type="prov:ActivityRef" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:location"/>
<xs:element ref="prov:role"/>
@@ -2046,9 +2239,9 @@
<xs:complexType name="Invalidation">
<xs:sequence>
- <xs:element name="entity" type="prov:EntityRef"/>
+ <xs:element name="entity" type="prov:EntityRef"/>
<xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
- <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:location"/>
<xs:element ref="prov:role"/>
@@ -2061,14 +2254,14 @@
</xs:complexType>
<!-- Component 2 -->
-
+
<xs:complexType name="Derivation">
<xs:sequence>
- <xs:element name="generatedEntity" type="prov:EntityRef"/>
- <xs:element name="usedEntity" type="prov:EntityRef"/>
- <xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
- <xs:element name="generation" type="prov:GenerationRef" minOccurs="0"/>
- <xs:element name="usage" type="prov:UsageRef" minOccurs="0"/>
+ <xs:element name="generatedEntity" type="prov:EntityRef"/>
+ <xs:element name="usedEntity" type="prov:EntityRef"/>
+ <xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
+ <xs:element name="generation" type="prov:GenerationRef" minOccurs="0"/>
+ <xs:element name="usage" type="prov:UsageRef" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:label"/>
<xs:element ref="prov:type"/>
@@ -2078,8 +2271,29 @@
<xs:attribute ref="prov:id"/>
</xs:complexType>
+ <xs:complexType name="Revision">
+ <xs:complexContent>
+ <xs:extension base="prov:Derivation">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="Quotation">
+ <xs:complexContent>
+ <xs:extension base="prov:Derivation">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="PrimarySource">
+ <xs:complexContent>
+ <xs:extension base="prov:Derivation">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
<!-- Component 3 -->
-
+
<xs:complexType name="Agent">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
@@ -2092,10 +2306,31 @@
<xs:attribute ref="prov:id"/>
</xs:complexType>
+ <xs:complexType name="Person">
+ <xs:complexContent>
+ <xs:extension base="prov:Agent">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="Organization">
+ <xs:complexContent>
+ <xs:extension base="prov:Agent">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="SoftwareAgent">
+ <xs:complexContent>
+ <xs:extension base="prov:Agent">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
<xs:complexType name="Attribution">
<xs:sequence>
<xs:element name="entity" type="prov:EntityRef"/>
- <xs:element name="agent" type="prov:AgentRef"/>
+ <xs:element name="agent" type="prov:AgentRef"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:label"/>
<xs:element ref="prov:type"/>
@@ -2108,8 +2343,8 @@
<xs:complexType name="Association">
<xs:sequence>
<xs:element name="activity" type="prov:ActivityRef"/>
- <xs:element name="agent" type="prov:AgentRef" minOccurs="0"/>
- <xs:element name="plan" type="prov:EntityRef" minOccurs="0"/>
+ <xs:element name="agent" type="prov:AgentRef" minOccurs="0"/>
+ <xs:element name="plan" type="prov:PlanRef" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:role"/>
<xs:element ref="prov:label"/>
@@ -2124,7 +2359,7 @@
<xs:sequence>
<xs:element name="delegate" type="prov:AgentRef"/>
<xs:element name="responsible" type="prov:AgentRef"/>
- <xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
+ <xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:label"/>
<xs:element ref="prov:type"/>
@@ -2136,8 +2371,8 @@
<xs:complexType name="Influence">
<xs:sequence>
- <xs:element name="influencee" type="prov:AnyRef"/>
- <xs:element name="influencer" type="prov:AnyRef"/>
+ <xs:element name="influencee" type="prov:AnyRef"/>
+ <xs:element name="influencer" type="prov:AnyRef"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:label"/>
<xs:element ref="prov:type"/>
@@ -2149,29 +2384,60 @@
<!-- Component 4 -->
+ <xs:complexType name="Bundle">
+ <xs:complexContent>
+ <xs:extension base="prov:Entity">
+ <xs:sequence>
+ <xs:group ref="prov:documentElements"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
<!-- Component 5 -->
<xs:complexType name="Specialization">
<xs:sequence>
- <xs:element name="specificEntity" type="prov:EntityRef"/>
- <xs:element name="generalEntity" type="prov:EntityRef"/>
+ <xs:element name="specificEntity" type="prov:EntityRef"/>
+ <xs:element name="generalEntity" type="prov:EntityRef"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Alternate">
<xs:sequence>
- <xs:element name="alternate1" type="prov:EntityRef"/>
- <xs:element name="alternate2" type="prov:EntityRef"/>
+ <xs:element name="alternate1" type="prov:EntityRef"/>
+ <xs:element name="alternate2" type="prov:EntityRef"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Component 6 -->
+
+ <xs:complexType name="Collection">
+ <xs:complexContent>
+ <xs:extension base="prov:Entity">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="EmptyCollection">
+ <xs:complexContent>
+ <xs:extension base="prov:Collection">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="Membership">
+ <xs:sequence>
+ <xs:element name="collection" type="prov:CollectionRef"/>
+ <xs:element name="entity" type="prov:EntityRef" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
- <!-- Component 6 -->
-
- <xs:complexType name="Membership">
- <xs:sequence>
- <xs:element name="collection" type="prov:EntityRef"/>
- <xs:element name="entity" type="prov:EntityRef" maxOccurs="unbounded"/>
- </xs:sequence>
+ <xs:complexType name="Plan">
+ <xs:complexContent>
+ <xs:extension base="prov:Entity">
+ </xs:extension>
+ </xs:complexContent>
</xs:complexType>
<xs:complexType name="InternationalizedString">
@@ -2188,18 +2454,24 @@
of xsi:type that represent the prov:datatype.
-->
-
- <xs:element name="label" type="prov:InternationalizedString"/>
- <xs:element name="role" type="xs:anySimpleType"/>
- <xs:element name="type" type="xs:anySimpleType"/>
+
+ <xs:element name="label" type="prov:InternationalizedString"/>
+ <xs:element name="role" type="xs:anySimpleType"/>
+ <xs:element name="type" type="xs:anySimpleType"/>
<xs:element name="location" type="xs:anySimpleType"/>
- <xs:element name="value" type="xs:anySimpleType"/>
+ <xs:element name="value" type="xs:anySimpleType"/>
<!-- See comment in preamble.
These should be prov:QualifiedName
but instead are xsd:QName for tools to process them -->
- <xs:attribute name="id" type="xs:QName"/>
+ <!-- Possible alternative, but may cause us
+ to lose benefit of existing XML tooling
+ <xs:attribute name="id" type="xs:anyURI"/>
+ <xs:attribute name="ref" type="xs:anyURI"/>
+ -->
+
+ <xs:attribute name="id" type="xs:QName"/>
<xs:attribute name="ref" type="xs:QName"/>
<xs:complexType name="ActivityRef">
@@ -2208,6 +2480,12 @@
<xs:complexType name="EntityRef">
<xs:attribute ref="prov:ref" use="required"/>
</xs:complexType>
+ <xs:complexType name="CollectionRef">
+ <xs:attribute ref="prov:ref" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="PlanRef">
+ <xs:attribute ref="prov:ref" use="required"/>
+ </xs:complexType>
<xs:complexType name="AgentRef">
<xs:attribute ref="prov:ref" use="required"/>
</xs:complexType>
@@ -2240,23 +2518,38 @@
<!-- Component 2 elements -->
<xs:element name="wasDerivedFrom" type="prov:Derivation"/>
+ <xs:element name="wasRevisionOf" type="prov:Revision"/>
+ <xs:element name="wasQuotedFrom" type="prov:Quotation"/>
+ <xs:element name="hadPrimarySource" type="prov:PrimarySource"/>
<!-- Component 3 elements -->
<xs:element name="agent" type="prov:Agent"/>
+ <xs:element name="person" type="prov:Person"/>
+ <xs:element name="organization" type="prov:Organization"/>
+ <xs:element name="softwareAgent" type="prov:SoftwareAgent"/>
<xs:element name="wasAttributedTo" type="prov:Attribution"/>
<xs:element name="wasAssociatedWith" type="prov:Association"/>
<xs:element name="actedOnBehalfOf" type="prov:Delegation"/>
<xs:element name="wasInfluencedBy" type="prov:Influence"/>
-
+
<!-- Component 5 elements -->
+ <xs:element name="bundle" type="prov:Bundle"/>
<xs:element name="specializationOf" type="prov:Specialization"/>
<xs:element name="alternateOf" type="prov:Alternate"/>
<!-- Component 6 elements -->
<xs:element name="hadMember" type="prov:Membership"/>
+ <xs:element name="collection" type="prov:Collection"/>
+ <xs:element name="emptyCollection" type="prov:EmptyCollection"/>
+
+ <!-- Component 7 elements -->
+
+ <xs:element name="plan" type="prov:Plan"/>
+
+ <!-- document elements -->
<xs:group name="documentElements">
<xs:sequence>
@@ -2270,14 +2563,24 @@
<xs:element ref="prov:wasEndedBy"/>
<xs:element ref="prov:wasInvalidatedBy"/>
<xs:element ref="prov:wasDerivedFrom"/>
+ <xs:element ref="prov:wasRevisionOf"/>
+ <xs:element ref="prov:wasQuotedFrom"/>
+ <xs:element ref="prov:hadPrimarySource"/>
<xs:element ref="prov:agent"/>
+ <xs:element ref="prov:person"/>
+ <xs:element ref="prov:organization"/>
+ <xs:element ref="prov:softwareAgent"/>
<xs:element ref="prov:wasAttributedTo"/>
<xs:element ref="prov:wasAssociatedWith"/>
<xs:element ref="prov:actedOnBehalfOf"/>
<xs:element ref="prov:wasInfluencedBy"/>
+ <xs:element ref="prov:bundle"/>
<xs:element ref="prov:specializationOf"/>
<xs:element ref="prov:alternateOf"/>
+ <xs:element ref="prov:collection"/>
+ <xs:element ref="prov:emptyCollection"/>
<xs:element ref="prov:hadMember"/>
+ <xs:element ref="prov:plan"/>
<xs:any namespace="##other"/>
</xs:choice>
</xs:sequence>
@@ -2288,19 +2591,13 @@
<xs:sequence>
<xs:choice maxOccurs="unbounded">
<xs:group ref="prov:documentElements"/>
- <xs:element name="bundle" type="prov:Bundle"/>
+ <xs:element ref="prov:bundle"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
- <xs:complexType name="Bundle">
- <xs:sequence>
- <xs:group ref="prov:documentElements"/>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
+</xs:schema>
-</xs:schema>
</pre>
</section>