--- a/xml/prov-xml.html Mon Oct 29 13:32:54 2012 +0000
+++ b/xml/prov-xml.html Mon Oct 29 20:53:32 2012 -0600
@@ -723,19 +723,15 @@
<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="entity" type="prov:Entity"/>
</pre>
<pre class="example">
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- based on Example 16 from http://www.w3.org/TR/prov-dm/#anexample-entity -->
-
<prov:document
xmlns:prov="http://www.w3.org/ns/prov#"
xmlns:ex="http://example.com/ns/ex#"
xmlns:tr="http://example.com/ns/tr#">
- <prov:entity prov:id="tr:WD-prov-dm-20111215">
+ <b><prov:entity prov:id="tr:WD-prov-dm-20111215">
<prov:type>document</prov:type>
<ex:version>2</ex:version>
- </prov:entity>
+ </prov:entity></b>
</prov:document>
</pre>
@@ -763,21 +759,16 @@
<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="activity" type="prov:Activity"/>
</pre>
<pre class="example">
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- based on PROV-DM's Example 17 from http://www.w3.org/TR/prov-dm/#anexample-activity
- see also http://www.w3.org/TR/prov-dm/#type_Activity -->
-
<prov:document
xmlns:prov="http://www.w3.org/ns/prov#"
xmlns:ex="http://example.com/ns/ex#">
- <prov:activity prov:id="a1">
+ <b><prov:activity prov:id="a1">
<prov:startTime>2011-11-16T16:05:00</prov:startTime>
<prov:endTime>2011-11-16T16:06:00</prov:endTime>
<prov:type>ex:edit</prov:type>
<ex:host>server.example.org</ex:host>
- </prov:activity>
+ </prov:activity></b>
</prov:document>
</pre>
@@ -807,10 +798,6 @@
<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasGeneratedBy" type="prov:Generation"/>
</pre>
<pre class="example">
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- Example 18 from http://www.w3.org/TR/prov-dm/#anexample-generation1 -->
-
<prov:document
xmlns:prov="http://www.w3.org/ns/prov#"
xmlns:ex="http://example.com/ns/ex#">
@@ -819,30 +806,21 @@
<prov:activity prov:id="a1"/>
- <prov:wasGeneratedBy>
+ <b><prov:wasGeneratedBy>
<prov:entity prov:ref="e1"/>
<prov:activity prov:ref="a1"/>
<prov:time>2001-10-26T21:32:52</prov:time>
<ex:port>p1</ex:port>
- </prov:wasGeneratedBy>
+ </prov:wasGeneratedBy></b>
<prov:entity prov:id="e2"/>
- <prov:wasGeneratedBy>
+ <b><prov:wasGeneratedBy>
<prov:entity prov:ref="e2"/>
<prov:activity prov:ref="a1"/>
<prov:time>2001-10-26T10:00:00</prov:time>
<ex:port>p2</ex:port>
- </prov:wasGeneratedBy>
-
- <!-- Example 19, http://www.w3.org/TR/prov-dm/#anexample-generation2 -->
-
- <prov:entity prov:id="e"/>
-
- <prov:wasGeneratedBy>
- <prov:entity prov:ref="e"/>
- <prov:time>2001-10-26T21:32:52</prov:time>
- </prov:wasGeneratedBy>
+ </prov:wasGeneratedBy></b>
</prov:document>
</pre>
@@ -872,10 +850,6 @@
<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="used" type="prov:Usage"/>
</pre>
<pre class="example">
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- based on Example 20 from http://www.w3.org/TR/prov-dm/#anexample-usage -->
-
<prov:document
xmlns:prov="http://www.w3.org/ns/prov#"
xmlns:ex="http://example.com/ns/ex#">
@@ -886,19 +860,19 @@
<prov:entity prov:id="e2"/>
- <prov:used>
+ <b><prov:used>
<prov:activity prov:ref="a1"/>
<prov:entity prov:ref="e1"/>
<prov:time≶2011-11-16T16:00:00</prov:time>
<ex:parameter>p1</ex:parameter>
- </prov:used>
+ </prov:used></b>
- <prov:used>
+ <b><prov:used>
<prov:activity prov:ref="a1"/>
<prov:entity prov:ref="e2"/>
<prov:time>2011-11-16T16:00:01</prov:time>
<ex:parameter>p2</ex:parameter>
- </prov:used>
+ </prov:used></b>
</prov:document>
</pre>
@@ -925,10 +899,6 @@
<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasInformedBy" type="prov:Communication"/>
</pre>
<pre class="example">
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- based on Example 21 from http://www.w3.org/TR/prov-dm/#anexample-communication -->
-
<prov:document xmlns:prov="http://www.w3.org/ns/prov#">
<prov:activity prov:id="a1">
@@ -939,10 +909,10 @@
<prov:type>fine paying, check writing, and mailing</prov:type>
</prov:activity>
- <prov:wasInformedBy>
+ <b><prov:wasInformedBy>
<prov:informed prov:ref="a2"/>
<prov:informant prov:ref="a1"/>
- </prov:wasInformedBy>
+ </prov:wasInformedBy></b>
</prov:document>
</pre>
@@ -973,11 +943,6 @@
<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasStartedBy" type="prov:Start"/>
</pre>
<pre class="example">
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- based on PROV-DM's Example 22 from http://www.w3.org/TR/prov-dm/#anexample-start1
- see also http://www.w3.org/TR/prov-dm/#type_WasStartedBy -->
-
<prov:document
xmlns:prov="http://www.w3.org/ns/prov#"
xmlns:ex="http://example.com/ns/ex#">
@@ -990,11 +955,11 @@
<prov:type>Discuss</prov:type>
</prov:activity>
- <prov:wasStartedBy>
+ <b><prov:wasStartedBy>
<prov:activity prov:ref="a1"/>
<prov:trigger prov:ref="e1"/>
<prov:time>2011-11-16T16:05:00</prov:time>
- </prov:wasStartedBy>
+ </prov:wasStartedBy></b>
<prov:used>
<prov:activity prov:ref="a1"/>
@@ -1010,18 +975,18 @@
<prov:activity prov:ref="a0"/>
</prov:wasGeneratedBy>
- <prov:wasStartedBy>
+ <b><prov:wasStartedBy>
<prov:activity prov:ref="a1"/>
<prov:trigger prov:ref="e1"/>
<prov:starter prov:ref="a0"/>
<prov:time>2011-11-16T16:05:00</prov:time>
- </prov:wasStartedBy>
+ </prov:wasStartedBy></b>
- <prov:wasStartedBy>
+ <b><prov:wasStartedBy>
<prov:activity prov:ref="a1"/>
<prov:starter prov:ref="a0"/>
<prov:time>2011-11-16T16:05:00</prov:time>
- </prov:wasStartedBy>
+ </prov:wasStartedBy></b>
</prov:document>
</pre>
@@ -1052,11 +1017,6 @@
<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasEndedBy" ype="prov:End"/>
</pre>
<pre class="example">
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- based on PROV-DM's Example 25 from http://www.w3.org/TR/prov-dm/#term-End
- see also http://www.w3.org/TR/prov-dm/#type_WasEndedBy -->
-
<prov:document
xmlns:prov="http://www.w3.org/ns/prov#"
xmlns:ex="http://example.com/ns/ex#">
@@ -1069,10 +1029,10 @@
<prov:type>Editing</prov:type>
</prov:activity>
- <prov:wasEndedBy>
+ <b><prov:wasEndedBy>
<prov:activity prov:ref="a1"/>
<prov:trigger prov:ref="e1"/>
- </prov:wasEndedBy>
+ </prov:wasEndedBy></b>
</prov:document>
</pre>
@@ -1099,14 +1059,9 @@
</xs:complexType>
</pre>
<pre class="schema-usage">
-<xs:element mlns:xs="http://www.w3.org/2001/XMLSchema" name="wasInvalidatedBy" type="prov:Invalidation"/>
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasInvalidatedBy" type="prov:Invalidation"/>
</pre>
<pre class="example">
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- based on PROV-DM's Example 26 from http://www.w3.org/TR/prov-dm/#anexample-invalidation1
- see also http://www.w3.org/TR/prov-dm/#type_WasInvalidatedBy -->
-
<prov:document
xmlns:prov="http://www.w3.org/ns/prov#"
xmlns:ex="http://example.com/ns/ex#"
@@ -1123,12 +1078,12 @@
<prov:activity prov:id="ex:crash"/>
- <prov:wasInvalidatedBy>
+ <b><prov:wasInvalidatedBy>
<prov:entity prov:ref="ex:The-Painter"/>
<prov:activity prov:ref="ex:crash"/>
<prov:time>1998-09-03T01:31:00</prov:time>
<ex:circumstances>plane accident</ex:circumstances>
- </prov:wasInvalidatedBy>
+ </prov:wasInvalidatedBy></b>
</prov:document>
</pre>
@@ -1144,27 +1099,140 @@
<section id="term-Derivation">
<h4>Derivation</h4>
<div class="glossary-ref" data-ref="glossary-derivation"></div>
-<div class="schema-type" data-name="prov:Derivation" data-include="schema/prov.xsd" data-oninclude="insertSchema_Derivation"></div>
-<div class="schema-usage" data-include="schema/prov.xsd" data-oninclude="insertSchema_wasDerivedFrom"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Derivation1.xml" data-oninclude="formatExample"></pre> -->
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" 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:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasDerivedFrom" type="prov:Derivation"/>
+</pre>
+<pre class="example">
+<prov:document xmlns:prov="http://www.w3.org/ns/prov#">
+
+ <prov:entity prov:id="e1"/>
+
+ <prov:entity prov:id="e2"/>
+
+ <b><prov:wasDerivedFrom>
+ <prov:generatedEntity prov:ref="e2"/>
+ <prov:usedEntity prov:ref="e1"/>
+ </prov:wasDerivedFrom></b>
+
+ <b><prov:wasDerivedFrom>
+ <prov:generatedEntity prov:ref="e2"/>
+ <prov:usedEntity prov:ref="e1"/>
+ <prov:type>physical transform</prov:type>
+ </prov:wasDerivedFrom></b>
+
+</prov:document>
+</pre>
</section> <!-- end term-Derivation -->
<section id="term-Revision">
<h3>Revision</h3>
<div class="glossary-ref" data-ref="glossary-revision"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Revision.xml" data-oninclude="formatExample"></pre> -->
+<p>To specialize a Derivation relationship as a Revision relationship, include a <code>prov:type</code> with the value "prov:Revision".</p>
+<pre class="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:rec54="http://www.w3.org/2001/02pd/rec54#"
+ xmlns:tr="http://example.com/ns/tr#">
+
+ <prov:entity prov:id="tr:WD-prov-dm-20111215">
+ <prov:type>rec54:WD</prov:type>
+ </prov:entity>
+
+ <prov:entity prov:id="tr:WD-prov-dm-20111018">
+ <prov:type>rec54:WD</prov:type>
+ </prov:entity>
+
+ <prov:wasDerivedFrom>
+ <prov:generatedEntity prov:ref="tr:WD-prov-dm-20111215"/>
+ <prov:usedEntity prov:ref="tr:WD-prov-dm-20111018"/>
+ <b><prov:type>prov:Revision</prov:type></b>
+ </prov:wasDerivedFrom>
+
+</prov:document>
+</pre>
</section> <!-- end term-Revision -->
<section id="term-Quotation">
<h3>Quotation</h3>
<div class="glossary-ref" data-ref="glossary-quotation"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Quotation.xml" data-oninclude="formatExample"></pre> -->
+<p>To specialize a Derivation relationship as a Quotation relationship, include a <code>prov:type</code> with the value "prov:Quotation".</p>
+<pre class="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:wp="http://thinklinks.wordpress.com/2012/03/07/"
+ xmlns:ex="http://example.com/ns/ex#"
+ xmlns:dm="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-dm.html#">
+
+ <prov:entity prov:id="wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop"/>
+
+ <prov:entity prov:id="dm:bl-dagstuhl"/>
+
+ <prov:agent prov:id="ex:Luc"/>
+
+ <prov:agent prov:id="ex:Paul"/>
+
+ <prov:wasDerivedFrom>
+ <prov:generatedEntity prov:ref="dm:gl-dagstuhl"/>
+ <prov:usedEntity prov:ref="wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop"/>
+ <b><prov:type>prov:Quotation</prov:type></b>
+ </prov:wasDerivedFrom>
+
+ <prov:wasAttributedTo>
+ <prov:entity prov:ref="dm:bl-dagstuhl"/>
+ <prov:agent prov:ref="ex:Luc"/>
+ </prov:wasAttributedTo>
+
+ <prov:wasAttributedTo>
+ <prov:entity prov:ref="wp:thoughts-from-the-dagstuhl-principles-of-provenance-workshop"/>
+ <prov:agent prov:ref="ex:Paul"/>
+ </prov:wasAttributedTo>
+
+</prov:document>
+</pre>
</section> <!-- end term-Quotation -->
<section id="term-Primary-Source">
<h3>Primary Source</h3>
<div class="glossary-ref" data-ref="glossary-primary-source"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/PrimarySource.xml" data-oninclude="formatExample"></pre> -->
+<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="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:ex="http://example.com/ns/ex#">
+
+ <prov:entity prov:id="ex:la-campagne-de-Russie-1812-1813">
+ <prov:type>map</prov:type>
+ </prov:entity>
+
+ <prov:entity prov:id="ex:revue-d-Histoire-de-la-Pharmacie-t-XVIII">
+ <prov:type>journal</prov:type>
+ </prov:entity>
+
+ <prov:wasDerivedFrom>
+ <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>prov:PrimarySource</prov:type></b>
+ </prov:wasDerivedFrom>
+
+</prov:document>
+</pre>
</section> <!-- end term-Primary-Source -->
</section> <!-- end component2 -->
@@ -1178,41 +1246,268 @@
<section id="term-Agent">
<h3>Agent</h3>
<div class="glossary-ref" data-ref="glossary-agent"></div>
-<div class="schema-type" data-name="prov:Agent" data-include="schema/prov.xsd" data-oninclude="insertSchema_Agent"></div>
-<div class="schema-usage" data-include="schema/prov.xsd" data-oninclude="insertSchema_agent"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Agent.xml" data-oninclude="formatExample"></pre> -->
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Agent">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="agent" type="prov:Agent"/>
+</pre>
+<pre class="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:ex="http://example.com/ns/ex#">
+
+ <b><prov:agent prov:id="e1">
+ <prov:type>prov:Person</prov:type>
+ <ex:name>Alice</ex:name>
+ <ex:employee>1234</ex:employee>
+ </prov:agent></b>
+
+</prov:document>
+</pre>
</section> <!-- end term-Agent -->
<section id="term-Attribution">
<h3>Attribution</h3>
<div class="glossary-ref" data-ref="glossary-attribution"></div>
-<div class="schema-type" data-name="prov:Attribution" data-include="schema/prov.xsd" data-oninclude="insertSchema_Attribution"></div>
-<div class="schema-usage" data-include="schema/prov.xsd" data-oninclude="insertSchema_wasAttributedTo"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Attribution.xml" data-oninclude="formatExample"></pre> -->
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Attribution">
+ <xs:sequence>
+ <xs:element name="entity" type="prov:EntityRef"/>
+ <xs:element name="agent" type="prov:AgentRef"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasAttributedTo" type="prov:Attribution"/>
+</pre>
+<pre class="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:ex="http://example.com/ns/ex#"
+ xmlns:tr="http://example.com/ns/tr#"
+ xmlns:rec54="http://example.com/ns/rec54#">
+
+ <prov:agent prov:id="ex:Paolo">
+ <prov:type>prov:Person</prov:type>
+ </prov:agent>
+
+ <prov:agent prov:id="ex:Simon">
+ <prov:type>prov:Person</prov:type>
+ </prov:agent>
+
+ <prov:entity prov:id="tr:WD-prov-dm-20111215">
+ <prov:type>rec54:WD</prov:type>
+ </prov:entity>
+
+ <b><prov:wasAttributedTo>
+ <prov:entity prov:ref="rec54:WD"/>
+ <prov:agent prov:ref="ex:Paolo"/>
+ <prov:type>editorship</prov:type>
+ </prov:wasAttributedTo></b>
+
+ <b><prov:wasAttributedTo>
+ <prov:entity prov:ref="rec54:WD"/>
+ <prov:agent prov:ref="ex:Simon"/>
+ <prov:type>authorship</prov:type>
+ </prov:wasAttributedTo></b>
+
+</prov:document>
+</pre>
</section> <!-- end term-Attribution -->
<section id="term-Association">
<h4>Association</h4>
<div class="glossary-ref" data-ref="glossary-activityAssociation"></div>
-<div class="schema-type" data-name="prov:Association" data-include="schema/prov.xsd" data-oninclude="insertSchema_Association"></div>
-<div class="schema-usage" data-include="schema/prov.xsd" data-oninclude="insertSchema_wasAssociatedWith"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Association.xml" data-oninclude="formatExample"></pre> -->
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" 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:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:role"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasAssociatedWith" type="prov:Association"/>
+</pre>
+<pre class="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ex="http://example.com/ns/ex#">
+
+ <prov:activity prov:id="a">
+ <prov:type>workflow execution</prov:type>
+ </prov:activity>
+
+ <prov:agent prov:id="ag1">
+ <prov:type>operator</prov:type>
+ </prov:agent>
+
+ <prov:agent prov:id="ag2">
+ <prov:type>designator</prov:type>
+ </prov:agent>
+
+ <b><prov:wasAssociatedWith>
+ <prov:activity prov:ref="a"/>
+ <prov:agent prov:ref="ag1"/>
+ <prov:role>loggedInUser</prov:role>
+ <ex:how>webapp</ex:how>
+ </prov:wasAssociatedWith></b>
+
+ <b><prov:wasAssociatedWith>
+ <prov:activity prov:ref="a"/>
+ <prov:agent prov:ref="ag2"/>
+ <prov:plan prov:ref="ex:wf"/>
+ <prov:role>designer</prov:role>
+ <ex:content>project1</ex:content>
+ </prov:wasAssociatedWith></b>
+
+ <prov:entity prov:id="ex:wf">
+ <prov:type>prov:Plan</prov:type>
+ <ex:label>Workflow 1</ex:label>
+ <prov:location>http://example.org/workflow1.bpel</prov:location>
+ </prov:entity>
+
+</prov:document>
+</pre>
</section> <!-- end term-Association -->
<section id="term-Delegation">
<h4>Delegation</h4>
<div class="glossary-ref" data-ref="glossary-delegation"></div>
-<div class="schema-type" data-name="prov:Delegation" data-include="schema/prov.xsd" data-oninclude="insertSchema_Delegation"></div>
-<div class="schema-usage" data-include="schema/prov.xsd" data-oninclude="insertSchema_actedOnBehalfOf"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Delegation.xml" data-oninclude="formatExample"></pre> -->
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Delegation">
+ <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:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="actedOnBehalfOf" type="prov:Delegation"/>
+</pre>
+<pre class="example">
+<prov:document xmlns:prov="http://www.w3.org/ns/prov#">
+
+ <prov:activity prov:id="a">
+ <prov:type>workflow</prov:type>
+ </prov:activity>
+
+ <prov:agent prov:id="ag1">
+ <prov:type>programmer</prov:type>
+ </prov:agent>
+
+ <prov:agent prov:id="ag2">
+ <prov:type>researcher</prov:type>
+ </prov:agent>
+
+ <prov:agent prov:id="ag3">
+ <prov:type>funder</prov:type>
+ </prov:agent>
+
+ <prov:wasAssociatedWith>
+ <prov:activity prov:ref="a"/>
+ <prov:agent prov:ref="ag1"/>
+ <prov:role>loggedInUser</prov:role>
+ </prov:wasAssociatedWith>
+
+ <prov:wasAssociatedWith>
+ <prov:activity prov:ref="a"/>
+ <prov:agent prov:ref="ag2"/>
+ </prov:wasAssociatedWithv
+
+ <prov:wasAssociatedWith>
+ <prov:activity prov:ref="a"/>
+ <prov:agent prov:ref="ag3"/>
+ </prov:wasAssociatedWith>
+
+ <b><prov:actedOnBehalfOf>
+ <prov:delegate prov:ref="ag1"/>
+ <prov:responsible prov:ref="ag2"/>
+ <prov:activity prov:ref="a"/>
+ <prov:type>line-management</prov:type>
+ </prov:actedOnBehalfOf></b>
+
+ <b><prov:actedOnBehalfOf>
+ <prov:delegate prov:ref="ag2"/>
+ <prov:responsible prov:ref="ag3"/>
+ <prov:activity prov:ref="a"/>
+ <prov:type>contract</prov:type>
+ </prov:actedOnBehalfOf></b>
+
+</prov:document>
+</pre>
</section> <!-- end term-Delegation -->
<section id="term-Influence">
<h4>Influence</h4>
<div class="glossary-ref" data-ref="glossary-influence"></div>
-<div class="schema-type" data-name="prov:Influence" data-include="schema/prov.xsd" data-oninclude="insertSchema_Influence"></div>
-<div class="schema-usage" data-include="schema/prov.xsd" data-oninclude="insertSchema_wasInfluencedBy"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Influence.xml" data-oninclude="formatExample"></pre> -->
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Influence">
+ <xs:sequence>
+ <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"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasInfluencedBy" type="prov:Influence"/>
+</pre>
+<pre class="example" id="example_38">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:tr="http://example.com/ns/tr#"
+ xmlns:w3="http://w3.org/">
+
+ <prov:entity prov:id="tr:WD-prov-dm-20111215"/>
+
+ <prov:agent prov:id="w3:Consortium"/>
+
+ <b><prov:wasInfluencedBy>
+ <prov:influencee prov:ref="tr:WD-prov-dm-20111215"/>
+ <prov:influencer prov:ref="w3:Consortium"/>
+ </prov:wasInfluencedBy></b>
+
+</prov:document>
+</pre>
</section> <!-- end term-influence -->
</section> <!-- end component3 -->
@@ -1228,25 +1523,145 @@
<section id="term-Specialization">
<h4>Specialization</h4>
<div class="glossary-ref" data-ref="glossary-specialization"></div>
-<div class="schema-type" data-name="prov:Specialization" data-include="schema/prov.xsd" data-oninclude="insertSchema_Specialization"></div>
-<div class="schema-usage" data-include="schema/prov.xsd" data-oninclude="insertSchema_specializationOf"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Specialization.xml" data-oninclude="formatExample"></pre> -->
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Specialization">
+ <xs:sequence>
+ <xs:element name="specificEntity" type="prov:EntityRef"/>
+ <xs:element name="generalEntity" type="prov:EntityRef"/>
+ </xs:sequence>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="specializationOf" type="prov:Specialization"/>
+</pre>
+<pre class="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:ex="http://example.com/ns/ex#"
+ xmlns:bbc="http://www.bbc.co.uk/">
+
+ <prov:entity prov:id="ex:bbcNews2012-03-23"/>
+
+ <prov:entity prov:id="bbc:news"/>
+
+ <b><prov:specializationOf>
+ <prov:specificEntity prov:ref="ex:bbcNews2012-03-23"/>
+ <prov:generalEntity prov:ref="bbc:news"/>
+ </prov:specializationOf></b>
+
+</prov:document>
+</pre>
</section> <!-- end term-Specialization -->
<section id="term-Alternate">
<h4>Alternate</h4>
<div class="glossary-ref" data-ref="glossary-alternate"></div>
-<div class="schema-type" data-name="prov:Alternate" data-include="schema/prov.xsd" data-oninclude="insertSchema_Alternate"></div>
-<div class="schema-usage" data-include="schema/prov.xsd" data-oninclude="insertSchema_alternateOf"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Alternate_43.xml" data-oninclude="formatExample"></pre> -->
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Alternate">
+ <xs:sequence>
+ <xs:element name="alternate1" type="prov:EntityRef"/>
+ <xs:element name="alternate2" type="prov:EntityRef"/>
+ </xs:sequence>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="alternateOf" type="prov:Alternate"/>
+</pre>
+<pre class="example">
+<prov:document
+ 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">
+
+ <prov:entity prov:id="bbc:science-environment-17526723">
+ <prov:type>a news item for desktop</prov:type>
+ </prov:entity>
+
+ <prov:entity prov:id="bbcmobile:science-environment-17526723">
+ <prov:type>a news item for mobile devices</prov:type>
+ </prov:entity>
+
+ <b><prov:alternateOf>
+ <prov:alternate1 prov:ref="bbcmobile:science-environment-17526723"/>
+ <prov:alternate2 prov:ref="bbc:science-environment-17526723"/>
+ </prov:alternateOf></b>
+
+</prov:document>
+</pre>
</section> <!-- end term-Alternate -->
<section id="term-Mention">
<h4>Mention</h4>
<div class="glossary-ref" data-ref="glossary-mention"></div>
-<div class="schema-type" data-name="prov:Mention" data-include="schema/prov.xsd" data-oninclude="insertSchema_Mention"></div>
-<div class="schema-usage" data-include="schema/prov.xsd" data-oninclude="insertSchema_mentionOf"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Mention_45.xml" data-oninclude="formatExample"></pre> -->
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Mention">
+ <xs:sequence>
+ <xs:element name="specificEntity" type="prov:EntityRef"/>
+ <xs:element name="generalEntity" type="prov:EntityRef"/>
+ <xs:element name="bundle" type="prov:EntityRef"/>
+ </xs:sequence>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="mentionOf" type="prov:Mention"/>
+</pre>
+<pre class="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:ex="http://example.com/ns/ex#"
+ xmlns:perf="http://example.com/ns/perf#"
+ xmlns:tool="http://example.com/ns/tool#">
+
+ <prov:bundle prov:id="ex:run1">
+ <prov:activity prov:id="ex:a1">
+ <prov:startTime>2011-11-16T16:00:00</prov:startTime>
+ <prov:endTime>2011-11-16T17:00:00</prov:endTime>
+ </prov:activity>
+
+ <prov:wasAssociatedWith>
+ <prov:activity prov:ref="ex:a1" />
+ <prov:agent prov:ref="ex:Bob" />
+ <prov:role>controller</prov:role>
+ </prov:wasAssociatedWith>
+ </prov:bundle>
+
+ <prov:bundle prov:id="ex:run2">
+ <prov:activity prov:id="ex:a2">
+ <prov:startTime>2011-11-17T10:00:00</prov:startTime>
+ <prov:endTime>2011-11-17T17:00:00</prov:endTime>
+ </prov:activity>
+
+ <prov:wasAssociatedWith>
+ <prov:activity prov:ref="ex:a2" />
+ <prov:agent prov:ref="ex:Bob" />
+ <prov:role>controller</prov:role>
+ </prov:wasAssociatedWith>
+ </prov:bundle>
+
+ <prov:bundle prov:id="tool:analysis01">
+ <prov:agent prov:id="tool:Bob-2011-11-16">
+ <ex:perfrating>good</ex:perfrating>
+ </prov:agent>
+
+ <b><prov:mentionOf>
+ <prov:specificEntity prov:ref="tool:Bob-2011-11-16" />
+ <prov:generalEntity prov:ref="ex:Bob" />
+ <prov:bundle prov:ref="ex:run1" />
+ </prov:mentionOf></b>
+
+ <prov:agent prov:id="tool:Bob-2011-11-17">
+ <ex:perfrating>bad</ex:perfrating>
+ </prov:agent>
+
+ <b><prov:mentionOf>
+ <prov:specificEntity prov:ref="tool:Bob-2011-11-17" />
+ <prov:generalEntity prov:ref="ex:Bob" />
+ <prov:bundle prov:ref="ex:run2" />
+ </prov:mentionOf></b>
+ </prov:bundle>
+
+</prov:document>
+</pre>
</section> <!-- end term-Mention -->
</section> <!-- end component5 -->
@@ -1260,26 +1675,22 @@
<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="example">
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- based on PROV-DM's Example 47 from http://www.w3.org/TR/prov-dm/#example_47 -->
-
<prov:document
xmlns:prov="http://www.w3.org/ns/prov#"
xmlns:ex="http://example.com/ns/ex#">
<!-- c0 is an empty collection -->
- <prov:entity prov:id="c0">
- <!-- prov:EmptyCollection denotes an empty collection. -->
+ <b><prov:entity prov:id="c0">
<prov:type>prov:EmptyCollection</prov:type>
- </prov:entity>
+ </prov:entity></b>
<!-- c1 is a collection, with unknown content -->
- <prov:entity prov:id="c1">
- <!-- prov:Collection denotes an entity of type Collection, i.e. an entity that can participate in relations amongst collections -->
+ <b><prov:entity prov:id="c1">
<prov:type>prov:Collection</prov:type>
- </prov:entity>
+ </prov:entity></b>
</prov:document>
</pre>
@@ -1289,7 +1700,7 @@
<h3>Membership</h3>
<div class="glossary-ref" data-ref="glossary-membership"></div>
<pre class="schema-type">
-<xs:complexType name="Membership">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Membership">
<xs:sequence>
<xs:element name="collection" type="prov:EntityRef"/>
<xs:element name="entity" type="prov:EntityRef" maxOccurs="unbounded"/>
@@ -1300,10 +1711,6 @@
<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="hadMember" type="prov:Membership"/>
</pre>
<pre class="example">
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- based on Example 48 from http://www.w3.org/TR/prov-dm/#example_48 -->
-
<prov:document
xmlns:prov="http://www.w3.org/ns/prov#">
@@ -1315,12 +1722,12 @@
<prov:type>prov:Collection</prov:type>
</prov:entity>
- <prov:hadMember>
+ <b><prov:hadMember>
<prov:collection prov:ref="c"/>
<prov:entity prov:ref="e0"/>
<prov:entity prov:ref="e1"/>
<prov:entity prov:ref="e2"/>
- </prov:hadMember>
+ </prov:hadMember></b>
</prov:document>
</pre>
@@ -1335,41 +1742,157 @@
<section id="attribute-Identifier">
<h4>Identifier</h4>
+<div class="glossary-ref" data-ref="glossary-identifier"></div>
+<p>The identifier attribute is used to identify instances of PROV types or relations.</p>
+<pre class="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:ex="http://example.com/ns/ex#">
+
+ <prov:entity <b>prov:id="tr:WD-prov-dm-20111215"</b>>
+ <prov:type>document</prov:type>
+ <ex:version>2</ex:version>
+ </prov:entity>
+
+</prov:document>
+</pre>
</section> <!-- end attribute-Identifier -->
<section id="element-Label">
<h4>Label</h4>
<div class="glossary-ref" data-ref="glossary-label"></div>
-<div class="schema-usage" data-include="schema/prov.xsd" data-oninclude="insertSchema_label"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Label.xml" data-oninclude="formatExample"></pre> -->
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="label" type="prov:InternationalizedString"/>
+</pre>
+<pre class="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:ex="http://example.com/ns/ex#">
+
+ <prov:entity prov:id="ex:e1">
+ <b><prov:label>This is a human-readable label</prov:label></b>
+ </prov:entity>
+
+ <prov:entity prov:id="ex:car01">
+ <b><prov:label xml:lang="fr">Voiture 01</prov:label>
+ <prov:label xml:lang="en">Car 01</prov:label></b>
+ </prov:entity>
+
+</prov:document>
+</pre>
</section> <!-- end element-Label -->
<section id="element-Location">
<h4>Location</h4>
<div class="glossary-ref" data-ref="glossary-location"></div>
-<div class="schema-usage" data-include="schema/prov.xsd" data-oninclude="insertSchema_location"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Location.xml" data-oninclude="formatExample"></pre> -->
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="location" type="xs:anySimpleType"/>
+</pre>
+<pre class="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:ex="http://example.com/ns/ex#">
+
+ <prov:entity prov:id="ex:MonaLisa">
+ <prov:type>StillImage</prov:type>
+ <b><prov:location>Le Louvre, Paris</prov:location></b>
+ </prov:entity>
+
+ <prov:entity prov:id="ex:cell">
+ <b><prov:location>(5,5)</prov:location></b>
+ <prov:value>10</prov:value>
+ </prov:entity>
+
+</prov:document>
+</pre>
</section> <!-- end element-Location -->
<section id="element-Role">
<h4>Role</h4>
<div class="glossary-ref" data-ref="glossary-role"></div>
-<div class="schema-usage" data-include="schema/prov.xsd" data-oninclude="insertSchema_role"></div>
-<!-- <pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Role.xml" data-oninclude="formatExample"></pre> -->
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="role" type="xs:anySimpleType"/>
+</pre>
+<pre class="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ex="http://example.com/ns/ex#">
+
+ <prov:wasAssociatedWith>
+ <prov:activity prov:ref="a"/>
+ <prov:agent prov:ref="ag1"/>
+ <b><prov:role>loggedInUser</prov:role></b>
+ <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"/>
+ <b><prov:role>designer</prov:role></b>
+ <ex:content>project1</ex:content>
+ </prov:wasAssociatedWith>
+
+</prov:document>
+</pre>
</section> <!-- end element-Role -->
<section id="element-Type">
<h4>Type</h4>
<div class="glossary-ref" data-ref="glossary-type"></div>
-<div class="schema-usage" data-include="schema/prov.xsd" data-oninclude="insertSchema_type"></div>
-<!--<pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Type.xml" data-oninclude="formatExample"></pre>-->
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="type" type="xs:anySimpleType"/>
+</pre>
+<pre class="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:ex="http://example.com/ns/ex#"
+ xmlns:tr="http://example.com/ns/tr#">
+
+ <prov:entity prov:id="tr:WD-prov-dm-20111215">
+ <b><prov:type>document</prov:type></b>
+ <ex:version>2</ex:version>
+ </prov:entity>
+
+ <prov:agent prov:id="e1">
+ <b><prov:type>prov:Person</prov:type></b>
+ <ex:name>Alice</ex:name>
+ <ex:employee>1234</ex:employee>
+ </prov:agent>
+
+ <prov:activity prov:id="a1">
+ <prov:startTime>2011-11-16T16:05:00</prov:startTime>
+ <prov:endTime>2011-11-16T16:06:00</prov:endTime>
+ <b><prov:type>ex:edit</prov:type></b>
+ <ex:host>server.example.org</ex:host>
+ </prov:activity>
+
+</prov:document>
+</pre>
</section> <!-- end element-Type -->
<section id="element-Value">
<h4>Value</h4>
<div class="glossary-ref" data-ref="glossary-value-attribute"></div>
-<div class="schema-usage" data-include="schema/prov.xsd" data-oninclude="insertSchema_value"></div>
-<!--<pre class="example" data-include="../examples/eg-40-xml-examples-by-term/xml/Value.xml" data-oninclude="formatExample"></pre>-->
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="value" type="xs:anySimpleType"/>
+</pre>
+<pre class="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:ex="http://example.com/ns/ex#">
+
+ <prov:entity prov:id="ex:in">
+ <b><prov:value>abcd</prov:value></b>
+ </prov:entity>
+
+ <prov:entity prov:id="ex:out">
+ <b><prov:value>4</prov:value></b>
+ </prov:entity>
+
+</prov:document>
+</pre>
</section> <!-- end element-Value -->
</section> <!-- end further-elements -->
@@ -1402,9 +1925,403 @@
+<!-- Should this be folded or hid in some way until the user asks to see it? -->
<section class="appendix">
<h2>Full XML Schema</h2>
- <p><!-- <pre class='schema' data-include='schema/prov.xsd' data-oninclude='insertSchema'></pre> --></p>
+ <pre class="full-schema">
+<?xml version="1.0" encoding="utf-8"?>
+
+<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#"
+ xmlns:cu="http://www.w3.org/1999/xhtml/datatypes/"
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified">
+
+
+
+ <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" />
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+ <!-- Component 1 -->
+
+ <xs:complexType name="Entity">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:value"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <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:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Generation">
+ <xs:sequence>
+ <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:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:role"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <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:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:role"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Communication">
+ <xs:sequence>
+ <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"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <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:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:role"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <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:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:role"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Invalidation">
+ <xs:sequence>
+ <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:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:role"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </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:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <!-- Component 3 -->
+
+ <xs:complexType name="Agent">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Attribution">
+ <xs:sequence>
+ <xs:element name="entity" type="prov:EntityRef"/>
+ <xs:element name="agent" type="prov:AgentRef"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <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:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:role"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Delegation">
+ <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:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Influence">
+ <xs:sequence>
+ <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"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <!-- Component 4 -->
+
+ <!-- Component 5 -->
+
+ <xs:complexType name="Specialization">
+ <xs:sequence>
+ <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:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Mention">
+ <xs:sequence>
+ <xs:element name="specificEntity" type="prov:EntityRef"/>
+ <xs:element name="generalEntity" type="prov:EntityRef"/>
+ <xs:element name="bundle" type="prov:EntityRef"/>
+ </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>
+
+ <xs:complexType name="InternationalizedString">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute ref="xml:lang" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+
+ <!--
+ Typed literals are encoded by means
+ 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="location" 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"/>
+ <xs:attribute name="ref" type="xs:QName"/>
+
+ <xs:complexType name="ActivityRef">
+ <xs:attribute ref="prov:ref" use="required" />
+ </xs:complexType>
+ <xs:complexType name="EntityRef">
+ <xs:attribute ref="prov:ref" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="AgentRef">
+ <xs:attribute ref="prov:ref" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="UsageRef">
+ <xs:attribute ref="prov:ref" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="GenerationRef">
+ <xs:attribute ref="prov:ref" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="AnyRef">
+ <xs:attribute ref="prov:ref" use="required"/>
+ </xs:complexType>
+
+ <!--
+ top-level definition of elements following the salami slice XSD design pattern
+ to encourage integration within existing non-prov XML documents.
+ -->
+
+ <!-- Component 1 elements -->
+
+ <xs:element name="entity" type="prov:Entity"/>
+ <xs:element name="activity" type="prov:Activity"/>
+ <xs:element name="wasGeneratedBy" type="prov:Generation"/>
+ <xs:element name="used" type="prov:Usage"/>
+ <xs:element name="wasInformedBy" type="prov:Communication"/>
+ <xs:element name="wasStartedBy" type="prov:Start"/>
+ <xs:element name="wasEndedBy" type="prov:End"/>
+ <xs:element name="wasInvalidatedBy" type="prov:Invalidation"/>
+
+ <!-- Component 2 elements -->
+
+ <xs:element name="wasDerivedFrom" type="prov:Derivation"/>
+
+ <!-- Component 3 elements -->
+
+ <xs:element name="agent" type="prov:Agent"/>
+ <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="specializationOf" type="prov:Specialization"/>
+ <xs:element name="alternateOf" type="prov:Alternate"/>
+ <xs:element name="mentionOf" type="prov:Mention"/>
+
+ <!-- Component 6 elements -->
+
+ <xs:element name="hadMember" type="prov:Membership"/>
+
+ <xs:group name="documentElements">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:entity"/>
+ <xs:element ref="prov:activity"/>
+ <xs:element ref="prov:wasGeneratedBy"/>
+ <xs:element ref="prov:used"/>
+ <xs:element ref="prov:wasInformedBy"/>
+ <xs:element ref="prov:wasStartedBy"/>
+ <xs:element ref="prov:wasEndedBy"/>
+ <xs:element ref="prov:wasInvalidatedBy"/>
+ <xs:element ref="prov:wasDerivedFrom"/>
+ <xs:element ref="prov:agent"/>
+ <xs:element ref="prov:wasAttributedTo"/>
+ <xs:element ref="prov:wasAssociatedWith"/>
+ <xs:element ref="prov:actedOnBehalfOf"/>
+ <xs:element ref="prov:wasInfluencedBy"/>
+ <xs:element ref="prov:specializationOf"/>
+ <xs:element ref="prov:alternateOf"/>
+ <xs:element ref="prov:mentionOf"/>
+ <xs:element ref="prov:hadMember"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+
+ <xs:element name="document" type="prov:Document" />
+ <xs:complexType 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:complexType name="Bundle">
+ <xs:sequence>
+ <xs:group ref="prov:documentElements"/>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+</xs:schema>
+ </pre>
</section>
<section class="appendix">