--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/prov-xml.html Fri Nov 09 07:08:15 2012 -0800
@@ -0,0 +1,2310 @@
+<!DOCTYPE html
+>
+
+<html><head>
+ <title>PROV-XML: The PROV XML Schema</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <!--
+ === NOTA BENE ===
+ For the three scripts below, if your spec resides on dev.w3 you can check them
+ out in the same tree and use relative links so that they'll work offline,
+ -->
+<!-- PM -->
+ <style type="text/css">
+
+ .note { font-size:small; margin-left:50px }
+
+ table.thinborder {
+ border-width: 1px;
+ border-spacing: 0px;
+ border-style: none;
+ border-color: gray;
+ border-collapse: collapse;
+ }
+
+ table.thinborder th {
+ border-width: 1px;
+ padding: 0px;
+ border-style: solid;
+ border-color: gray;
+ -moz-border-radius: ;
+ }
+
+ table.thinborder td {
+ border-width: 1px;
+ padding: 2px;
+ border-style: solid;
+ border-color: gray;
+ -moz-border-radius: ;
+ }
+
+ </style>
+
+ <!-- TODO, pull down respec.js and fix status=0 bug -->
+ <!--<script type="text/javascript" src="ReSpec.js/js/respec.js" class="remove"></script>-->
+ <script src="http://dev.w3.org/2009/dap/ReSpec.js/js/respec.js" class="remove"></script>
+
+ <script src="http://www.w3.org/2007/OWL/toggles.js" class="remove"></script>
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" class="remove"></script>
+
+ <script src="../model/glossary.js" class="remove"></script>
+
+ <!-- This is a test to see if the respec data-oninclude is working -->
+ <!--
+ <script>
+ function insertSchemaComplexType(doc, content, name) {
+ var xml = $.parseXML(content);
+ var segment = $(xml).find('complexType[name~="' + name + '"]')[0];
+ return "<pre>"+doc._esc((new XMLSerializer()).serializeToString(segment))+"</pre>";
+ }
+
+ function insertSchemaElement(doc, content, name) {
+ var xml = $.parseXML(content);
+ var segment = $(xml).find('element[name~="' + name + '"]').not('[type*="Ref"]')[0];
+ return "<pre>"+doc._esc((new XMLSerializer()).serializeToString(segment))+"</pre>";
+ }
+
+ function formatExample(doc, content) {
+ var xml = $.parseXML(content);
+ return "<pre>"+doc._esc((new XMLSerializer()).serializeToString(xml))+"</pre>";
+ }
+
+ function insertSchema_Entity(doc, content) { return insertSchemaComplexType(doc, content, "Entity"); }
+ function insertSchema_entity(doc, content) { return insertSchemaElement(doc, content, "entity"); }
+
+ function insertSchema_Activity(doc, content) { return insertSchemaComplexType(doc, content, "Activity"); }
+ function insertSchema_activity(doc, content) { return insertSchemaElement(doc, content, "activity"); }
+
+ function insertSchema_Agent(doc, content) { return insertSchemaComplexType(doc, content, "Agent"); }
+ function insertSchema_agent(doc, content) { return insertSchemaElement(doc, content, "agent"); }
+
+ function insertSchema_Generation(doc, content) { return insertSchemaComplexType(doc, content, "Generation"); }
+ function insertSchema_wasGeneratedBy(doc, content) { return insertSchemaElement(doc, content, "wasGeneratedBy"); }
+
+ function insertSchema_Usage(doc, content) { return insertSchemaComplexType(doc, content, "Usage"); }
+ function insertSchema_used(doc, content) { return insertSchemaElement(doc, content, "used"); }
+
+ function insertSchema_Communication(doc, content) { return insertSchemaComplexType(doc, content, "Communication"); }
+ function insertSchema_wasInformedBy(doc, content) { return insertSchemaElement(doc, content, "wasInformedBy"); }
+
+ function insertSchema_Start(doc, content) { return insertSchemaComplexType(doc, content, "Start"); }
+ function insertSchema_wasStartedBy(doc, content) { return insertSchemaElement(doc, content, "wasStartedBy"); }
+
+ function insertSchema_End(doc, content) { return insertSchemaComplexType(doc, content, "End"); }
+ function insertSchema_wasEndedBy(doc, content) { return insertSchemaElement(doc, content, "wasEndedBy"); }
+
+ function insertSchema_Invalidation(doc, content) { return insertSchemaComplexType(doc, content, "Invalidation"); }
+ function insertSchema_wasInvalidatedBy(doc, content) { return insertSchemaElement(doc, content, "wasInvalidatedBy"); }
+
+ function insertSchema_Derivation(doc, content) { return insertSchemaComplexType(doc, content, "Derivation"); }
+ function insertSchema_wasDerivedFrom(doc, content) { return insertSchemaElement(doc, content, "wasDerivedFrom"); }
+
+ function insertSchema_Attribution(doc, content) { return insertSchemaComplexType(doc, content, "Attribution"); }
+ function insertSchema_wasAttributedTo(doc, content) { return insertSchemaElement(doc, content, "wasAttributedTo"); }
+
+ function insertSchema_Association(doc, content) { return insertSchemaComplexType(doc, content, "Association"); }
+ function insertSchema_wasAssociatedWith(doc, content) { return insertSchemaElement(doc, content, "wasAssociatedWith"); }
+
+ function insertSchema_Delegation(doc, content) { return insertSchemaComplexType(doc, content, "Delegation"); }
+ function insertSchema_actedOnBehalfOf(doc, content) { return insertSchemaElement(doc, content, "actedOnBehalfOf"); }
+
+ function insertSchema_Influence(doc, content) { return insertSchemaComplexType(doc, content, "Influence"); }
+ function insertSchema_wasInfluencedBy(doc, content) { return insertSchemaElement(doc, content, "wasInfluencedBy"); }
+
+ function insertSchema_Specialization(doc, content) { return insertSchemaComplexType(doc, content, "Specialization"); }
+ function insertSchema_specializationOf(doc, content) { return insertSchemaElement(doc, content, "specializationOf"); }
+
+ function insertSchema_Alternate(doc, content) { return insertSchemaComplexType(doc, content, "Alternate"); }
+ function insertSchema_alternateOf(doc, content) { return insertSchemaElement(doc, content, "alternateOf"); }
+
+ function insertSchema_Mention(doc, content) { return insertSchemaComplexType(doc, content, "Mention"); }
+ function insertSchema_mentionOf(doc, content) { return insertSchemaElement(doc, content, "mentionOf"); }
+
+ function insertSchema_Membership(doc, content) { return insertSchemaComplexType(doc, content, "Membership"); }
+ function insertSchema_hadMember(doc, content) { return insertSchemaElement(doc, content, "hadMember"); }
+
+ function insertSchema_label(doc, content) { return insertSchemaElement(doc, content, "label"); }
+ function insertSchema_role(doc, content) { return insertSchemaElement(doc, content, "role"); }
+ function insertSchema_type(doc, content) { return insertSchemaElement(doc, content, "type"); }
+ function insertSchema_location(doc, content) { return insertSchemaElement(doc, content, "location"); }
+ function insertSchema_value(doc, content) { return insertSchemaElement(doc, content, "value"); }
+
+ </script>
+ -->
+
+ <script>
+ $(function() {
+ $("pre.schema-type").before("<p>Type definition in XML Schema:</p>");
+ $("pre.schema-usage").before("<p>Usage in XML:</p>");
+ });
+ </script>
+
+ <script class="remove">
+ $(function(){
+ // if glossary is in a string:
+ $('#glossary_div').html(glossary_string).hide()
+ //updateGlossaryRefs();
+
+ $('.glossary-ref').each(function(index) {
+ var ref=$(this).attr('data-ref');
+ var span=$(this).attr('data-withspan');
+ $(this).removeAttr('data-withspan');
+ $(this).removeAttr('data-ref');
+
+ $('#'+ref+'.glossary').contents().clone().appendTo($(this));
+ if (span) {
+ $(this).children('dfn').replaceWith(function(){return $('<span>').addClass('dfn').append($(this).contents())});
+ }
+ });
+ });
+ </script>
+
+ <script class="remove">
+ var addExtraReferences = function() {
+ for (var k in extraReferences)
+ berjon.biblio[k] = extraReferences[k];
+ };
+ var extraReferences = {
+
+ "CLOCK":
+ "Lamport, L. "+
+ "<a href=\"http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf\"><cite>Time, clocks, and the ordering of events in a distributed system</cite></a>."+
+ "Communications of the ACM 21 (7): 558–565. 1978. "+
+ "URL: <a href=\"http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf\">http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf</a> " +
+ "DOI: doi:10.1145/359545.359563.",
+
+ "CSP":
+ "Hoare, C. A. R. "+
+ "<a href=\"http://www.usingcsp.com/cspbook.pdf\"><cite>Communicating Sequential Processes</cite></a>."+
+ "Prentice-Hall. 1985"+
+ "URL: <a href=\"http://www.usingcsp.com/cspbook.pdf\">http://www.usingcsp.com/cspbook.pdf</a>",
+
+ "Logic":
+ "W. E. Johnson"+
+ "<a href=\"http://www.ditext.com/johnson/intro-3.html\"><cite>Logic: Part III</cite></a>."+
+ "1924. "+
+ "URL: <a href=\"http://www.ditext.com/johnson/intro-3.html\">http://www.ditext.com/johnson/intro-3.html</a>",
+
+ "PROV-SEM":
+ "James Cheney "+
+ "<a href=\"http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman\"><cite>Formal Semantics Strawman</cite></a>. "+
+ "2011, Work in progress. "+
+ "URL: <a href=\"http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman\">http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman</a>",
+
+ "PROV-PRIMER":
+ "Yolanda Gil and Simon Miles (eds.) Khalid Belhajjame, Helena Deus, Daniel Garijo, Graham Klyne, Paolo Missier, Stian Soiland-Reyes, and Stephan Zednik "+
+ "<a href=\"http://www.w3.org/TR/prov-primer/\"><cite>Prov Model Primer</cite></a>. "+
+ "2012, Working Draft. "+
+ "URL: <a href=\"http://www.w3.org/TR/prov-primer/\">http://www.w3.org/TR/prov-primer/</a>",
+
+ "PROV-O":
+ "Timothy Lebo, Satya Sahoo and Deborah McGuinness (eds.) Khalid Belhajjame, James Cheney, David Corsar, Daniel Garijo, Stian Soiland-Reyes, and Stephan Zednik "+
+ "<a href=\"http://www.w3.org/TR/prov-o/\"><cite>Provenance Formal Model</cite></a>. "+
+ "2012, Working Draft. "+
+ "URL: <a href=\"http://www.w3.org/TR/prov-o/\">http://www.w3.org/TR/prov-o/</a>",
+
+
+ "PROV-DM":
+ "Luc Moreau and Paolo Missier (eds.) ... "+
+ "<a href=\"http://www.w3.org/TR/prov-dm/\"><cite>PART 1: PROV-DM ...</cite></a>. "+
+ "2012, Working Draft. "+
+ "URL: <a href=\"http://www.w3.org/TR/prov-dm/\">http://www.w3.org/TR/prov-dm/</a>",
+
+
+ "PROV-CONSTRAINTS":
+ "James Cheney, Paolo Missier, and Luc Moreau (eds.) "+
+ "<a href=\"http://www.w3.org/TR/prov-constraints/\"><cite>Constraints of the PROV Data Model</cite></a>. "+
+ "2012, Working Draft. "+
+ "URL: <a href=\"http://www.w3.org/TR/prov-constraints/\">http://www.w3.org/TR/prov-constraints/</a>",
+
+ "PROV-N":
+ "Luc Moreau and Paolo Missier (eds.) James Cheney, Stian Soiland-Reyes "+
+ "<a href=\"http://www.w3.org/TR/prov-n/\"><cite>PROV-N: The Provenance Notation</cite></a>. "+
+ "2012, Working Draft. "+
+ "URL: <a href=\"http://www.w3.org/TR/prov-n/\">http://www.w3.org/TR/prov-n/</a>",
+
+ "PROV-AQ":
+ "Graham Klyne and Paul Groth (eds.) Luc Moreau, Olaf Hartig, Yogesh Simmhan, James Meyers, Timothy Lebo, Khalid Belhajjame, and Simon Miles "+
+ "<a href=\"http://www.w3.org/TR/prov-aq/\"><cite>Provenance Access and Query</cite></a>. "+
+ "2012, Working Draft. "+
+ "URL: <a href=\"http://www.w3.org/TR/prov-aq/\">http://www.w3.org/TR/prov-aq/</a>",
+
+ "Mappings":
+ "Satya Sahoo and Paul Groth and Olaf Hartig and Simon Miles and Sam Coppens and James Myers and Yolanda Gil and Luc Moreau and Jun Zhao and Michael Panzer and Daniel Garijo "+
+ "<a href=\"http://www.w3.org/2005/Incubator/prov/wiki/Provenance_Vocabulary_Mappings\"><cite>Provenance Vocabulary Mappings</cite></a>. "+
+ "August 2010 "+
+ "URL: <a href=\"http://www.w3.org/2005/Incubator/prov/wiki/Provenance_Vocabulary_Mappings\">http://www.w3.org/2005/Incubator/prov/wiki/Provenance_Vocabulary_Mappings</a>",
+ };
+ var respecConfig = {
+ // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
+ specStatus: "ED",
+
+ // the specification's short name, as in http://www.w3.org/TR/short-name/
+ shortName: "prov-xml",
+
+ // if your specification has a subtitle that goes below the main
+ // formal title, define it here
+ subtitle : "initial ideas for PROV XML schema",
+
+
+ // if you wish the publication date to be other than today, set this
+ // publishDate: "2011-10-18",
+
+ // if the specification's copyright date is a range of years, specify
+ // the start date here:
+ // copyrightStart: "2005"
+
+ // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
+ // and its maturity status
+ //previousPublishDate: "2012-02-02",
+ //previousMaturity: "WD",
+
+ // if there a publicly available Editor's Draft, this is the link
+ edDraftURI: "http://dvcs.w3.org/hg/prov/raw-file/default/xml/prov-xml.html",
+
+ // if this is a LCWD, uncomment and set the end of its review period
+ // lcEnd: "2009-08-05",
+
+ // if you want to have extra CSS, append them to this list
+ // it is recommended that the respec.css stylesheet be kept
+ //extraCSS: ["http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css", "./extra.css"],
+ extraCSS: [ "http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css" ],
+
+ // editors, add as many as you like
+ // only "name" is required
+ editors: [
+ { name: "(In alphabetical order)" },
+ { name: "Hook Hua",
+ company: "Jet Propulsion Laboratory / California Institute of Technology" },
+ { name: "Curt Tilmes",
+ company: "National Aeronautics and Space Administration" },
+ { name: "Stephan Zednik",
+ url:"http://tw.rpi.edu/web/person/StephanZednik",
+ company: "Rensselaer Polytechnic Institute" },
+ ],
+
+ // authors, add as many as you like.
+ // This is optional, uncomment if you have authors as well as editors.
+ // only "name" is required. Same format as editors.
+
+ authors: [
+ { name: "Luc Moreau",
+ url: "http://www.ecs.soton.ac.uk/~lavm/",
+ company: "University of Southampton" },
+ ],
+
+ // name of the WG
+ wg: "Provenance Working Group",
+
+ // URI of the public WG page
+ wgURI: "http://www.w3.org/2011/prov/",
+
+ // name (with the @w3c.org) of the public mailing to which comments are due
+ wgPublicList: "public-prov-comments",
+
+ // URI of the patent status for this WG, for Rec-track documents
+ // !!!! IMPORTANT !!!!
+ // This is important for Rec-track documents, do not copy a patent URI from a random
+ // document unless you know what you're doing. If in doubt ask your friendly neighbourhood
+ // Team Contact.
+ wgPatentURI: "http://www.w3.org/2004/01/pp-impl/46974/status",
+
+ // Add extraReferences to bibliography database
+ preProcess: [addExtraReferences],
+
+ // will we have a postProcess?
+ };
+ </script>
+ </head>
+ <body>
+
+<section id="abstract">
+<p>
+Provenance is information about entities, activities, and people involved in producing a piece of data or thing, which can be used to form assessments about its quality, reliability or trustworthiness. PROV-DM is the conceptual data model that forms a basis for the W3C provenance (PROV) family of specifications. It defines a concepts for expressing provenance information enabling interchange. This document introduces an XML schema for the PROV data model (PROV-DM), allowing instances of the PROV data model to be serialized in XML.
+</p>
+</section> <!-- end abstract -->
+
+<section id="sotd">
+
+<h4>PROV Family of Specifications</h4>
+This document is part of the PROV family of specifications, a set of specifications defining various aspects that are necessary to achieve the vision of inter-operable
+interchange of provenance information in heterogeneous environments such as the Web. The specifications are:
+<ul>
+<li> <a href="http://www.w3.org/TR/prov-dm/">PROV-DM</a>, the PROV data model for provenance [[PROV-DM]];</li>
+<li> <a href="http://www.w3.org/TR/prov-constraints/">PROV-CONSTRAINTS</a>, a set of constraints applying to the PROV data model [[PROV-CONSTRAINTS]];</li>
+<li> <a href="http://www.w3.org/TR/prov-n/">PROV-N</a>, a notation for provenance aimed at human consumption [[PROV-N]];</li>
+<li> <a href="http://www.w3.org/TR/prov-o/">PROV-O</a>, the PROV ontology, an OWL2 ontology allowing the mapping of PROV to RDF [[PROV-O]];</li>
+<li> <a href="http://www.w3.org/TR/prov-aq/">PROV-AQ</a>, the mechanisms for accessing and querying provenance [[PROV-AQ]]; </li>
+<li> <a href="http://www.w3.org/TR/prov-primer/">PROV-PRIMER</a>, a primer for the PROV data model [[PROV-PRIMER]].</li>
+<li> <a href="http://www.w3.org/TR/prov-xml/">PROV-XML</a>, an XML schema for the PROV data model (this document).</li>
+</ul>
+<h4>How to read the PROV Family of Specifications</h4>
+<ul>
+<li>The primer is the entry point to PROV offering an introduction to the provenance model.</li>
+<li>The Linked Data and Semantic Web community should focus on PROV-O defining PROV classes and properties specified in an OWL2 ontology. For further details, PROV-DM and PROV-CONSTRAINTS specify the constraints applicable to the data model, and its interpretation. </li>
+<li>The XML community should focus on PROV-XML (this document) defining an XML schema for PROV-DM. Further details can also be found in PROV-DM, PROV-DM-CONSTRAINTS, and PROV-SEM.</li>
+<li>Developers seeking to retrieve or publish provenance should focus on PROV-AQ.</li>
+<li>Readers seeking to implement other PROV serializations
+should focus on PROV-DM and PROV-CONSTRAINTS. PROV-O, PROV-N, and PROV-XML offer examples of mapping to RDF, text, and XML, respectively.</li>
+</ul>
+</section> <!-- end sotd -->
+
+<section id="introduction">
+<h2>Introduction</h2>
+
+<p>
+For the purpose of this specification, <dfn>provenance</dfn> is defined as a record that describes the people, institutions, entities, and activities involved in producing, influencing, or delivering a piece of data or a thing. In particular, the provenance of information is crucial in deciding whether information is to be trusted, how it should be integrated with other diverse information sources, and how to give credit to its originators when reusing it. In an open and inclusive environment such as the Web, where users find information that is often contradictory or questionable, provenance can help those users to make trust judgements.
+</p>
+
+<p>
+The PROV data model, PROV-DM, presents a generic data model for provenance that allows domain and application specific representations of provenance to be translated into such a data model and <em>interchanged</em> between systems. Thus, heterogeneous systems can export their native provenance into such a core data model, and applications that need to make sense of provenance can then import it,
+process it, and reason over it.</p>
+
+<p>
+The PROV data model distinguishes <em>core structures</em> from <em>extended structures</em>: core structures form the essence of provenance information, and are commonly found in various domain-specific vocabularies that deal with provenance or similar kinds of information [[Mappings]]. Extended structures enhance and refine core structures with more expressive capabilities to cater for more advanced uses of provenance. The PROV data model, comprising both core and extended structures, is a domain-agnostic model, but with clear extensibility points allowing further domain-specific and application-specific extensions to be defined.
+</p>
+
+<p>
+The PROV data model has a modular design and is structured according to six components covering various facets of provenance:</p>
+<ul>
+<li> component 1: entities and activities, and the time at which they were created, used, or ended;
+<li> component 2: derivations of entities from others;
+<li> component 3: agents bearing responsibility for entities that were generated and activities that happened;
+<li> component 4: bundles, a mechanism to support provenance of provenance;
+<li> component 5: properties to link entities that refer to a same thing;
+<li> component 6: collections forming a logical structure for its members.
+</ul>
+
+<p>
+This specification goal is to provide a succinct definition of the XML form of PROV-DM, thus, we refer the reader to the PROV-DM to provide overall justification and context to the definitions presented here.
+</p>
+
+<!--
+<section id="structure-of-this-document">
+<h3>Structure of this Document</h3>
+<p><a href="#schema-components">Section 2</a> provides an overview of the PROV XML Schema elements and types</p>
+<p><a href="#prov-xml-schema">Appendix A</a> contains the full PROV-XML Schema</p>
+</section> <!-- end structure-of-this-document -->
+
+<section id="prov-namespace">
+<h3>PROV Namespace</h3>
+<p>The PROV namespace is <span class="name">http://www.w3.org/ns/prov#</span>.</p>
+<p> All the concepts, reserved names and attributes introduced in this specification belong to the PROV namespace.</p>
+</section> <!-- end prov-namespace -->
+
+<section id="conventions">
+<h3>Conventions</h3>
+
+<p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
+ NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in
+ [[!RFC2119]].</p>
+</section> <!-- end conventions -->
+
+</section> <!-- end introduction -->
+
+<!-- should we instead break the schema down into complex types and elements? -->
+<section id="schema-components">
+
+<h2>PROV XML Schema</h2>
+
+<p>Provenance concepts, expressed as PROV-DM types and relations, are organized according to six components that are defined in this section.</p>
+
+<div id="prov-dm-components-ul">
+<ul>
+<li><b>Component 1: entities and activities.</b> The first component consists of entities, activities, and concepts linking them, such as generation, usage, start, end. The first component is the only one comprising time-related concepts. </li>
+<li><b>Component 2: derivations.</b> The second component is formed with derivations and derivation subtypes.</li>
+<li><b>Component 3: agents, responsibility, and influence.</b> The third component consists of agents and concepts ascribing responsibility to agents.</li>
+<li><b>Component 4: bundles.</b> The fourth component is concerned with bundles, a mechanism to support provenance of provenance.</li>
+<li><b>Component 5: alternate.</b> The fifth component consists of relations linking entities referring to the same thing. </li>
+<li><b>Component 6: collections.</b> The sixth component is about collections. </li>
+</ul>
+</div>
+
+<div style="text-align: center;">
+<figure style="max-width: 95%; ">
+<img usemap="#componentMap" src="http://dvcs.w3.org/hg/prov/raw-file/default/model/images/dm/components-dependencies.png" alt="PROV-DM Components" style="max-width: 90%; " />
+<map id="componentMap" name="componentMap">
+<area title="agents/responsibility" href="#component3" coords="0,0,67,268" alt="agents/responsibility" shape="rect"/>
+<area title="agents/responsibility" href="#component3" coords="67,0,134,201" alt="agents/responsibility" shape="rect"/>
+<area title="agents/responsibility" href="#component3" coords="134,0,201,67" alt="agents/responsibility" shape="rect"/>
+<area title="derivations" href="#component2" coords="201,0,268,201" alt="derivations" shape="rect"/>
+<area title="derivations" href="#component2" coords="134,67,201,201" alt="derivations" shape="rect"/>
+<area title="alternate" href="#component5" coords="268,0,335,67" alt="alternate" shape="rect"/>
+<area title="alternate" href="#component5" coords="335,0,402,201" alt="alternate" shape="rect"/>
+<area title="collections" href="#component6" coords="402,0,469,201" alt="collections" shape="rect"/>
+<area title="activities/entities" href="#component1" coords="67,201,469,268" alt="activities/entities" shape="rect"/>
+<area title="bundles" href="#component4" coords="268,67,402,201" alt="bundles" shape="rect"/>
+</map>
+<br>
+<figcaption id="prov-dm-components">PROV-DM Components (Informative)</figcaption> <!-- Figure 4 -->
+</figure>
+</div>
+
+<!--
+<p>
+While not all PROV-DM relations are binary, they all involve two primary elements. Hence, Table <a href="#relations-at-a-glance">relations-at-a-glance</a> indexes all relations according to their two primary elements. The table adopts the same color scheme as Figure <a href="#prov-dm-components">prov-dm-components</a>, allowing components to be readily identified.
+Note that for simplicity, this table does not include collection-oriented relations.
+</p>
+-->
+
+<!-- TODO add mapping of PROV-DM relations to Schema-->
+
+<p><a href="#prov-schema-mapping">Table X</a></p>
+<div id="prov-schema-mapping" style="text-align: left;">
+<table class="thinborder" style="margin-left: auto; margin-right: auto;">
+<caption id="prov-dm-types-and-relations">PROV-DM Types and Relations to XML Schema Mapping</caption> <!-- Table X-->
+<tr><td><a><b>Type or Relation Name</b></a></td><td><b>XML Schema ComplexType or usage</b></td><td><b>Component</b></td></tr>
+<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 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 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>
+</tr>
+<tr class="component1-color">
+ <td class="essential"><a>Communication</a></td>
+ <td><a title="wasInformedBy"><span class="essential">prov:Communication</span></a></td>
+</tr>
+<tr class="component1-color">
+ <td><a>Start</a></td>
+ <td><a title="wasStartedBy">prov:Start</a></td>
+</tr>
+<tr class="component1-color">
+ <td><a>End</a></td>
+ <td><a title="wasEndedBy">prov:End</a></td>
+</tr>
+<tr class="component1-color">
+ <td><a>Invalidation</a></td>
+ <td><a title="wasInvalidatedBy">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 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>
+</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>
+</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>
+</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>
+</tr>
+<tr class="component3-color">
+ <td class="provType"><a>Plan</a></td>
+ <td><a title="plan"<pre>use <prov:type>prov:Plan</prov:type> in Entity</pre></a></td>
+</tr>
+<tr class="component3-color">
+ <td class="provType"><a>Person</a></td>
+ <td><a title="person">use <prov:type>prov:Person</prov:type> in Agent</a></td>
+</tr>
+<tr class="component3-color">
+ <td class="provType"><a>Organization</a></td>
+ <td><a title="organization">use <prov:type>prov:Organization</prov:type> in Agent</a></td>
+</tr>
+<tr class="component3-color">
+ <td class="provType"><a title="software-agent">SoftwareAgent</a></td>
+ <td><a title="software-agent">use <prov:type>prov:SoftwareAgent</prov:type> in Agent</a></td>
+</tr>
+<tr class="component3-color">
+ <td><a>Influence</a></td>
+ <td><a title="wasInfluencedBy">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>
+</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 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>
+</tr>
+<tr class="component5-color">
+ <td><a>Mention</a></td>
+ <td><a title="mentionOf">prov:Mention</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 rowspan="3"><a href="#component6">Component 6: Collections</a></td>
+</tr>
+<tr class="component6-color">
+ <td class="provType"><a title="empty collection">EmptyCollection</a></td>
+ <td><a title="empty collection">use <prov:type>prov:EmptyCollection</prov:type> in Entity</a></td>
+</tr>
+<tr class="component6-color">
+ <td><a>Membership</a></td>
+ <td><a title="hadMember">prov:Membership</a></td>
+</tr>
+<!-- add section for 'further elements' -->
+</table>
+</div>
+
+
+<p>In the rest of the section, each type is defined, in English initially, followed by its XML schema definition and some example.</p>
+
+<section id="component1">
+<h3>Component 1: Entities and Activities</h3>
+
+<p>The first component of PROV-DM is concerned with <a title="entity">entities</a> and <a title="activity">activities</a>, and their inter-relations: <a>Usage</a>, <a>Generation</a>, <a>Start</a>, <a>End</a>, <a>Communication</a>, and <a>Start by Activity</a>. </p>
+
+<section id="term-Entity">
+<h4>Entity</h4>
+<div class="glossary-ref" data-ref="glossary-entity"></div>
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" 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>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="entity" type="prov:Entity"/>
+</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#"
+ xmlns:tr="http://example.com/ns/tr#">
+
+ <b><prov:entity prov:id="tr:WD-prov-dm-20111215">
+ <prov:type xsi:type="xsd:QName">document</prov:type>
+ <ex:version>2</ex:version>
+ </prov:entity></b>
+
+</prov:document>
+</pre>
+</section> <!-- end term-Entity -->
+
+<section id="term-Activity">
+<h3>Activity</h3>
+<div class="glossary-ref" data-ref="glossary-activity"></div>
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" 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>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="activity" type="prov:Activity"/>
+</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:activity prov:id="a1">
+ <prov:startTime>2011-11-16T16:05:00</prov:startTime>
+ <prov:endTime>2011-11-16T16:06:00</prov:endTime>
+ <prov:type xsi:type="xsd:QName">ex:edit</prov:type>
+ <ex:host>server.example.org</ex:host>
+ </prov:activity></b>
+
+</prov:document>
+</pre>
+</section> <!-- end term-Activity -->
+
+<section id="term-Generation">
+<h4>Generation</h4>
+<div class="glossary-ref" data-ref="glossary-generation"></div>
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" 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>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasGeneratedBy" type="prov:Generation"/>
+</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="e1"/>
+
+ <prov:activity prov:id="a1"/>
+
+ <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></b>
+
+ <prov:entity prov:id="e2"/>
+
+ <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></b>
+
+</prov:document>
+</pre>
+</section> <!-- end term-Generation -->
+
+<section id="term-Usage">
+<h3>Usage</h3>
+<div class="glossary-ref" data-ref="glossary-usage"></div>
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" 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>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="used" type="prov:Usage"/>
+</pre>
+<pre class="example">
+<prov:document
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:ex="http://example.com/ns/ex#">
+
+ <prov:activity prov:id="a1"/>
+
+ <prov:entity prov:id="e1"/>
+
+ <prov:entity prov:id="e2"/>
+
+ <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></b>
+
+ <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></b>
+
+</prov:document>
+</pre>
+</section> <!-- end term-Usage -->
+
+<section id="term-Communication">
+<h3>Communication</h3>
+<div class="glossary-ref" data-ref="glossary-communication"></div>
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" 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>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasInformedBy" type="prov:Communication"/>
+</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#">
+
+ <prov:activity prov:id="a1">
+ <prov:type xsi:type="xsd:string">traffic regulations enforcing<prov:type>
+ </prov:activity>
+
+ <prov:activity prov:id="a2">
+ <prov:type xsi:type="xsd:string">fine paying, check writing, and mailing</prov:type>
+ </prov:activity>
+
+ <b><prov:wasInformedBy>
+ <prov:informed prov:ref="a2"/>
+ <prov:informant prov:ref="a1"/>
+ </prov:wasInformedBy></b>
+
+</prov:document>
+</pre>
+</section> <!-- end term-Communication -->
+
+<section id="term-Start">
+<h4>Start</h4>
+<div class="glossary-ref" data-ref="glossary-start"></div>
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" 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>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasStartedBy" type="prov:Start"/>
+</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:entity prov:id="e1">
+ <prov:type xsi:type="xsd:string">email message</prov:type>
+ </prov:entity>
+
+ <prov:activity prov:id="a1">
+ <prov:type xsi:type="xsd:QName">Discuss</prov:type>
+ </prov:activity>
+
+ <b><prov:wasStartedBy>
+ <prov:activity prov:ref="a1"/>
+ <prov:trigger prov:ref="e1"/>
+ <prov:time>2011-11-16T16:05:00</prov:time>
+ </prov:wasStartedBy></b>
+
+ <prov:used>
+ <prov:activity prov:ref="a1"/>
+ <prov:entity prov:ref="e1"/>
+ </prov:used>
+
+ <prov:activity prov:id="a0">
+ <prov:type xsi:type="xsd:QName">Write</prov:type>
+ </prov:activity>
+
+ <prov:wasGeneratedBy>
+ <prov:entity prov:ref="e1"/>
+ <prov:activity prov:ref="a0"/>
+ </prov:wasGeneratedBy>
+
+ <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></b>
+
+ <b><prov:wasStartedBy>
+ <prov:activity prov:ref="a1"/>
+ <prov:starter prov:ref="a0"/>
+ <prov:time>2011-11-16T16:05:00</prov:time>
+ </prov:wasStartedBy></b>
+
+</prov:document>
+</pre>
+</section> <!-- end term-Start -->
+
+<section id="term-End">
+<h4>End</h4>
+<div class="glossary-ref" data-ref="glossary-end"></div>
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" 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>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasEndedBy" ype="prov:End"/>
+</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:entity prov:id="e1">
+ <prov:type xsi:type="xsd:string">approval document</prov:type>
+ </prov:entity>
+
+ <prov:activity prov:id="a1">
+ <prov:type xsi:type="xsd:QName">Editing</prov:type>
+ </prov:activity>
+
+ <b><prov:wasEndedBy>
+ <prov:activity prov:ref="a1"/>
+ <prov:trigger prov:ref="e1"/>
+ </prov:wasEndedBy></b>
+
+</prov:document>
+</pre>
+</section> <!-- end term-End -->
+
+<section id="term-Invalidation">
+<h3>Invalidation</h3>
+<div class="glossary-ref" data-ref="glossary-invalidation"></div>
+<pre class="schema-type">
+<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" 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>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="wasInvalidatedBy" type="prov:Invalidation"/>
+</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/news/">
+
+ <prov:entity prov:id="ex:The-Painter"/>
+
+ <prov:agent prov:id="ex:Picasso"/>
+
+ <prov:wasAttributedTo>
+ <prov:entity prov:ref="ex:The-Painter" />
+ <prov:agent prov:ref="ex:Picasso" />
+ </prov:wasAttributedTo>
+
+ <prov:activity prov:id="ex:crash"/>
+
+ <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></b>
+
+</prov:document>
+</pre>
+</section> <!-- end term-Invalidation -->
+
+</section> <!-- end component1 -->
+
+<section id="component2">
+<h3>Component 2: Derivations</h3>
+
+<p>The second component of PROV-DM is concerned with: <a title="derivation">derivations</a> of <a title="entity">entities</a> from other entities and derivation subtypes WasRevisionOf (<a>Revision</a>), WasQuotedFrom (<a>Quotation</a>), and HasPrimarySource (<a>Primary Source</a>).</p>
+
+<section id="term-Derivation">
+<h4>Derivation</h4>
+<div class="glossary-ref" data-ref="glossary-derivation"></div>
+<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:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ 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 xsi:type="xsd:string">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>
+<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: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: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 xsi:type="xsd:QName">rec54:WD</prov:type>
+ </prov:entity>
+
+ <prov:entity prov:id="tr:WD-prov-dm-20111018">
+ <prov:type xsi:type="xsd:QName">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 xsi:type="xsd:QName">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>
+<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: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: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 xsi:type="xsd:QName">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>
+<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: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:entity prov:id="ex:la-campagne-de-Russie-1812-1813">
+ <prov:type xsi:type="xsd:QName">map</prov:type>
+ </prov:entity>
+
+ <prov:entity prov:id="ex:revue-d-Histoire-de-la-Pharmacie-t-XVIII">
+ <prov:type xsi:type="xsd:QName">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 xsi:type="xsd:QName">prov:PrimarySource</prov:type></b>
+ </prov:wasDerivedFrom>
+
+</prov:document>
+</pre>
+</section> <!-- end term-Primary-Source -->
+
+</section> <!-- end component2 -->
+
+<section id="component3">
+<h3>Component 3: Agents, Responsibility, and Influence</h3>
+
+<p>The third component of PROV-DM, depicted in <a href="#figure-component3">Figure 7</a>, is concerned with <a title="agent">agents</a> and the relations WasAttributedTo
+(<a>Attribution</a>), WasAssociatedWith (<a>Association</a>), ActedOnBehalfOf (<a>Delegation</a>), relating agents to entities, activities, and agents, respectively.</p>
+
+<section id="term-Agent">
+<h3>Agent</h3>
+<div class="glossary-ref" data-ref="glossary-agent"></div>
+<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: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:agent prov:id="e1">
+ <prov:type xsi:type="xsd:QName">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>
+<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: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#"
+ xmlns:tr="http://example.com/ns/tr#"
+ xmlns:rec54="http://example.com/ns/rec54#">
+
+ <prov:agent prov:id="ex:Paolo">
+ <prov:typexsi:type="xsd:QName">prov:Person</prov:type>
+ </prov:agent>
+
+ <prov:agent prov:id="ex:Simon">
+ <prov:type xsi:type="xsd:QName">prov:Person</prov:type>
+ </prov:agent>
+
+ <prov:entity prov:id="tr:WD-prov-dm-20111215">
+ <prov:type xsi:type="xsd:QName">rec54:WD</prov:type>
+ </prov:entity>
+
+ <b><prov:wasAttributedTo>
+ <prov:entity prov:ref="rec54:WD"/>
+ <prov:agent prov:ref="ex:Paolo"/>
+ <prov:type xsi:type="xsd:QName">editorship</prov:type>
+ </prov:wasAttributedTo></b>
+
+ <b><prov:wasAttributedTo>
+ <prov:entity prov:ref="rec54:WD"/>
+ <prov:agent prov:ref="ex:Simon"/>
+ <prov:type xsi:type="xsd:QName">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>
+<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: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>
+
+ <b><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></b>
+
+ <b><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:entity prov:id="ex:wf">
+ <prov:type xsi:type="xsd:QName">prov:Plan</prov:type>
+ <ex:label>Workflow 1</ex:label>
+ <prov:location xsi:type="xsd:anyURI">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>
+<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:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:prov="http://www.w3.org/ns/prov#">
+
+ <prov:activity prov:id="a">
+ <prov:type xsi:type="xsd:QName">workflow</prov:type>
+ </prov:activity>
+
+ <prov:agent prov:id="ag1">
+ <prov:type xsi:type="xsd:QName">programmer</prov:type>
+ </prov:agent>
+
+ <prov:agent prov:id="ag2">
+ <prov:type xsi:type="xsd:QName">researcher</prov:type>
+ </prov:agent>
+
+ <prov:agent prov:id="ag3">
+ <prov:type xsi:type="xsd:QName">funder</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>
+ </prov:wasAssociatedWith>
+
+ <prov:wasAssociatedWith>
+ <prov:activity prov:ref="a"/>
+ <prov:agent prov:ref="ag2"/>
+ </prov:wasAssociatedWith>
+
+ <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 xsi:type="xsd:QName">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 xsi:type="xsd:QName">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>
+<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 -->
+
+<section id="component4">
+<h3>Component 4: Bundles</h3>
+<p>The fourth component is concerned with bundles, a mechanism to support provenance of provenance.</p>
+
+</section> <!-- end component4 -->
+
+<section id="component5">
+<h3>Component 5: Alternate Entities</h3>
+<p>The fifth component of PROV-DM is concerned with
+relations SpecializationOf (<a>specialization</a>), AlternateOf (<a>alternate</a>), and MentionOf (<a>mention</a>) between entities.</p>
+
+<section id="term-Specialization">
+<h4>Specialization</h4>
+<div class="glossary-ref" data-ref="glossary-specialization"></div>
+<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>
+<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: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">
+
+ <prov:entity prov:id="bbc:science-environment-17526723">
+ <prov:type xsi:type="xsd:string">a news item for desktop</prov:type>
+ </prov:entity>
+
+ <prov:entity prov:id="bbcmobile:science-environment-17526723">
+ <prov:type xsi:type="xsd:string">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>
+<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: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#"
+ 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 xsi:type="xsd:QName">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 xsi:type="xsd:QName">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 -->
+
+
+<section id="component6">
+<h3>Component 6: Collections</h3>
+<p>The sixth component of PROV-DM is concerned with the notion of collections.
+A collection is an entity that has some members. The members are themselves entities, and therefore their provenance can be expressed. Some applications need to be able to express the provenance of the collection itself: e.g. who maintains the collection (attribution), which members it contains as it evolves, and how it was assembled. The purpose of Component 6 is to define the types and relations that are useful to express the provenance of collections. </p>
+
+<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">
+<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#">
+
+ <!-- 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>
+
+</prov:document>
+</pre>
+</section> <!-- end term-Collection -->
+
+<section id="term-Membership">
+<h3>Membership</h3>
+<div class="glossary-ref" data-ref="glossary-membership"></div>
+<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="entity" type="prov:EntityRef" maxOccurs="unbounded"/>
+ </xs:sequence>
+</xs:complexType>
+</pre>
+<pre class="schema-usage">
+<xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="hadMember" type="prov:Membership"/>
+</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#">
+
+ <prov:entity prov:id="e0"/>
+ <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>
+
+ <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></b>
+
+</prov:document>
+</pre>
+</section> <!-- end term-Membership -->
+
+</section> <!-- end component6 -->
+
+<section id="further-elements">
+<h3>Further Elements of PROV</h3>
+
+<p>This section introduces further elements of PROV.</p>
+
+<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: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#"
+ xmlns:tr="http://example.com/ns/tr#">
+
+ <prov:entity <b>prov:id="tr:WD-prov-dm-20111215"</b>>
+ <prov:type xsi:type="xsd:Qname">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>
+<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>
+<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: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:entity prov:id="ex:MonaLisa">
+ <prov:type xsi:type="xsd:QName">StillImage</prov:type>
+ <b><prov:location xsi:type="xsd:string">Le Louvre, Paris</prov:location></b>
+ </prov:entity>
+
+ <prov:entity prov:id="ex:cell">
+ <b><prov:location xsi:type="xsd:string">(5,5)</prov:location></b>
+ <prov:value xsi:type="xsd:integer">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>
+<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: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:wasAssociatedWith>
+ <prov:activity prov:ref="a"/>
+ <prov:agent prov:ref="ag1"/>
+ <b><prov:role xsi:type="xsd:QName">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 xsi:type="xsd:QName">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>
+<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: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#"
+ xmlns:tr="http://example.com/ns/tr#">
+
+ <prov:entity prov:id="tr:WD-prov-dm-20111215">
+ <b><prov:type xsi:type="xsd:QName">document</prov:type></b>
+ <ex:version>2</ex:version>
+ </prov:entity>
+
+ <prov:agent prov:id="e1">
+ <b><prov:type xsi:type="xsd:QName">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 xsi:type="xsd:QName">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>
+<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: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:entity prov:id="ex:in">
+ <b><prov:value xsi:type="xsd:string">abcd</prov:value></b>
+ </prov:entity>
+
+ <prov:entity prov:id="ex:out">
+ <b><prov:value xsi:type="xsd:integer">4</prov:value></b>
+ </prov:entity>
+
+</prov:document>
+</pre>
+</section> <!-- end element-Value -->
+
+</section> <!-- end further-elements -->
+
+</section> <!-- end -->
+
+
+
+
+
+
+<!-- end sec. 5 -->
+
+
+<section id="media-type">
+<h3>Media Type</h3>
+
+<p>
+The internet media type / MIME type for PROV-XML is "<code style="color: black">application/provenance+xml</code>".
+</p>
+
+<div class="note">
+<p>
+See <a href="http://www.w3.org/2002/06/registering-mediatype">http://www.w3.org/2002/06/registering-mediatype</a> for Register an Internet Media Type for a W3C Spec.</p>
+</div>
+
+<p>
+It is recommended that PROV-XML files have the extension "<code style="color: black">.provx</code>" (all lowercase) on all platforms.
+</p>
+
+<p>
+It is recommended that PROV-XML files stored on Machintosh HFS file systems be given a file type of "<code style="color: black">provx</code>" (all lowercase).
+</p>
+
+<div class="note">
+<p>
+Can Machintosh file types have 5 characters? All examples I found are 4 characters.
+</p>
+</div>
+
+</section>
+
+
+
+
+
+<!-- Should this be folded or hid in some way until the user asks to see it? -->
+<section class="appendix" id="prov-xml-schema">
+ <h2>Full XML Schema</h2>
+ <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">
+ <h2>Acknowledgements</h2>
+ <p>
+ WG membership to be listed here.
+ </p>
+ </section>
+
+
+<div id="glossary_div" class="remove">
+<!-- glossary loaded from glossary.js will be hooked up here,
+ class remove, will remove this element from the final output.
+-->
+</div>
+
+
+ </body>
+</html>