prov-xml
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Tue, 03 Apr 2012 20:07:34 +0100
changeset 2236 36b655ae0494
parent 2213 c35f41c4b638
child 2237 8483376b2a73
prov-xml
xml/extra.css
xml/prov-xml.html
xml/schema/prov-20120110.xsd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/extra.css	Tue Apr 03 20:07:34 2012 +0100
@@ -0,0 +1,370 @@
+
+/* --- EDITORIAL NOTES --- */
+.pending {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #BFEFFF;
+}
+
+.pending::before {
+    content:    "Pending Review";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+
+.resolved {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #9BCD9B;
+}
+
+.resolved::before {
+    content:    "Resolved";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+
+.inference {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #fff;
+}
+
+.inference[id]::before {
+    content:    "Inference: " attr(id);
+    width:  380px;  /* How can we compute the length of "Constraint: " attr(id) */
+}
+
+
+.inference::before {
+    content:    "Inference";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+.syntax {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #fff;
+}
+
+.syntax[id]::before {
+    content:    "Syntax: " attr(id);
+    width:  380px;  /* How can we compute the length of "Constraint: " attr(id) */
+}
+
+
+.syntax::before {
+    content:    "Syntax";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+.unamedconstraint {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #00f;
+    background: #fff;
+}
+
+
+.unamedconstraint::before {
+    content:    "Constraint";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #00f;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+
+
+.constraint {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #00f;
+    background: #fff;
+}
+
+.constraint[id]::before {
+    content:    "Constraint: " attr(id);
+    width:  380px;  /* How can we compute the length of "Constraint: " attr(id) */
+}
+
+
+.constraint::before {
+    content:    "Constraint";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #00f;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+
+
+.interpretation {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #00f;
+    background: #fff;
+}
+
+.interpretation[id]::before {
+    content:    "Interpretation: " attr(id);
+    width:  380px;  /* How can we compute the length of "Interpretation: " attr(id) */
+}
+
+
+.interpretation::before {
+    content:    "Interpretation";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #00f;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+
+.deprecatedconstraint {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #00f;
+    background: #fff;
+}
+
+.deprecatedconstraint[id]::before {
+    content:    "Deprecated: " attr(id);
+    width:  380px;  /* How can we compute the length of "Deprecatedconstraint: " attr(id) */
+}
+
+
+.deprecatedconstraint::before {
+    content:    "Deprecated";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #00f;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+.glossary-ref {
+    font-style:    italic;
+}
+
+.dfn {
+    font-weight:    bold;
+}
+
+
+.attribute {
+    font-style: italic;
+}
+
+
+.conditional {
+    color: blue;
+}
+
+.grammar {
+    margin-top: 1ex;
+    margin-bottom: 1ex;
+    padding-left: 1ex;
+    padding-right: 1ex;
+    padding-top: 1ex;
+    padding-bottom: 0.6ex;
+    border: 1px dashed #2f6fab;
+}
+.nonterminal {
+    font-weight: bold;
+    font-family: sans-serif;
+    font-size: 95%;
+}
+
+.name {
+    font-family: monospace;
+}
+
+
+.xmpl {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #fff;
+}
+
+.xmpl::before {
+    content:    "Example";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+.anexample:before {
+    content: "Example:";
+    font-family: sans-serif;
+    font-size: 1.6ex;
+    font-weight: bold;
+}
+.anexample {
+    margin-top: 1ex;
+    margin-bottom: 1ex;
+    padding-left: 1ex;
+    padding-right: 1ex;
+    padding-top: 1ex;
+    padding-bottom: 0.6ex;
+    border: 1px dashed #2f6fab;
+    background-color: #f9f9f9;
+}
+.anexample table {
+    background-color: #f9f9f9;
+}
+
+.pnExpression {
+    font-weight: normal;
+    font-size:120%;
+    font-family: monospace;
+}
+
+
+div[class="grammar"] span[class="name"]:before {
+    content: "'";
+}
+
+div[class="grammar"] span[class="name"]:after {
+    content: "'";
+}
+
+
+div[class="grammar"] span[class="optional"]:before {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: "(";
+}
+
+div[class="grammar"] span[class="optional"]:after {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: ")?";
+}
+
+
+div[class="grammar"] span[class="plus"]:before {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: "(";
+}
+
+div[class="grammar"] span[class="plus"]:after {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: ")+";
+}
+
+
+div[class="grammar"] span[class="star"]:before {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: "(";
+}
+
+div[class="grammar"] span[class="star"]:after {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: ")*";
+}
+
+div[class="grammar"] span[class="group"]:before {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: "(";
+}
+
+div[class="grammar"] span[class="group"]:after {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: ")";
+}
+
+table {
+    background-color: #f9f9f9;
+}
+
+.component1-color {
+ background-color: rgba(255,42,42,0.2);
+}
+
+.component2-color {
+ background-color: rgba(0,68,170,0.2);
+}
+
+.component3-color {
+ background-color: rgba(0,170,0,0.2);
+}
+.component4-color {
+ background-color: rgba(204,255,0,0.2);
+}
+
+.component5-color {
+ background-color: rgba(11,40,40,0.2);
+}
+
+.component6-color {
+ background-color: rgba(244,105,14,0.2);
+}
+
+.interpretation-forward::before {
+    content:    "Interpretation: ";
+    font-weight:    bold;
+}
+
+.structural-forward::before {
+    content:    "Structural constraint: ";
+    font-weight:    bold;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/prov-xml.html	Tue Apr 03 20:07:34 2012 +0100
@@ -0,0 +1,706 @@
+<!DOCTYPE html
+>
+
+<html><head> 
+    <title>PROV-DM: The PROV Data Model</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 }
+     </style>
+
+    <script src="http://dev.w3.org/2009/dap/ReSpec.js/js/respec.js" class="remove"></script> 
+    <script src="http://www.w3.org/2007/OWL/toggles.js" class="remove"></script> 
+    <script 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>
+
+    <script class="remove">
+
+function htmlEncode(value){
+  return $('<div/>').text(value).html();
+}
+
+function insertSchemaDefinition(doc, content) {
+	// perform transformations to make it render and prettier
+
+	// NB - this is hardcoded to entity at present. The respec js doesn't appear
+	// to pass in the element that it's working with - just the entire doc,
+	// and the respec object.
+
+	var xml=$.parseXML(content);
+	var segment = $(xml).find('complexType[name~="Entity"]')[0];
+	return doc._esc((new XMLSerializer()).serializeToString(segment));
+}
+      function 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));
+          $(this).attr('prov:hadOriginalSource',glossary_hg);
+          if (span) {
+            $(this).children('dfn').replaceWith(function(){return $('<span>').addClass('dfn').append($(this).contents())});
+          }
+        });
+      }
+      $(document).ready(function(){
+        // if glossary is in a string:
+        $('#glossary_div').html(glossary_string)
+        updateGlossaryRefs();
+      });
+
+    </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>. "+
+          "2011, Working Draft. "+
+          "URL: <a href=\"http://www.w3.org/TR/prov-primer/\">http://www.w3.org/TR/prov-primer/</a>",
+
+        "PROV-O":
+          "Satya Sahoo and Deborah McGuinness (eds.) Khalid Belhajjame, James Cheney, Daniel Garijo, Timothy Lebo, Stian Soiland-Reyes, and Stephan Zednik "+
+          "<a href=\"http://www.w3.org/TR/prov-o/\"><cite>Provenance Formal Model</cite></a>. "+
+          "2011, 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>. "+
+          "2011, Working Draft. "+
+          "URL: <a href=\"http://www.w3.org/TR/prov-dm/\">http://www.w3.org/TR/prov-dm/</a>",
+
+
+        "PROV-DM-CONSTRAINTS":
+          "Luc Moreau and Paolo Missier (eds.) ... "+
+          "<a href=\"http://www.w3.org/TR/prov-dm-constraints/\"><cite>PROV-DM Constraints</cite></a>. "+
+          "2011, Working Draft. "+
+          "URL: <a href=\"http://www.w3.org/TR/prov-dm-constraints/\">http://www.w3.org/TR/prov-dm-constraints/</a>",
+
+        "PROV-N":
+          "Luc Moreau and Paolo Missier (eds.) ... "+
+          "<a href=\"http://www.w3.org/TR/prov-n/\"><cite>PROV-N ....</cite></a>. "+
+          "2011, 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>. "+
+          "2011, Working Draft. "+
+          "URL: <a href=\"http://www.w3.org/TR/prov-aq/\">http://www.w3.org/TR/prov-aq/</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-dm",
+ 
+          // if your specification has a subtitle that goes below the main
+          // formal title, define it here
+          subtitle   :  "WD5 for internal review",
+
+ 
+          // 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/model/prov-dm.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"],
+ 
+          // editors, add as many as you like
+          // only "name" is required
+          editors:  [
+                { name: "TBD" },
+//              { name: "Luc Moreau", url: "http://www.ecs.soton.ac.uk/~lavm/",
+//                company: "University of Southampton" },
+
+          ],
+ 
+          // 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 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-wg",
+          
+          // 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],
+      };
+    </script> 
+  </head> 
+  <body> 
+
+    <section id="abstract">
+<p>
+PROV-DM, the PROV data model, is a data model for provenance that describes
+the entities, people and activities involved in
+producing a piece of data or thing. 
+PROV-DM is structured in six components, dealing with: 
+(1) entities and activities, and the time at which they were created, used, or ended;
+(2) agents bearing responsibility for entities that were generated and actities that happened;
+(3) derivations between entities;
+(4) properties to link entities that refer to a same thing;
+(5) collections of entities, whose provenance can itself be tracked;
+(6) a simple annotation mechanism.
+</p>
+
+<p>This document introduces an XML schema for the PROV data model,
+allowing instances of the PROV data model to be serialized in
+XML. </p>
+    </section> 
+
+<section id="sotd">
+<h4>PROV Family of Specifications</h4>
+This document is part of the PROV family of specifications, a set of specifications aiming to define the 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 as follows.
+<ul>
+<li> PROV-DM, the PROV data model for provenance,</li>
+<li> PROV-DM-CONSTRAINTS, a set of constraints applying to the PROV data model,</li>
+<li> PROV-N, a notation for provenance aimed at human consumption,</li>
+<li> PROV-O, the PROV ontology, an OWL-RL ontology allowing the mapping of PROV to RDF;</li>
+<li> PROV-AQ, the mechanisms for accessing and querying provenance; </li>
+<li> PROV-PRIMER, a primer for the PROV data model,</li>
+<li> PROV-SEM, a formal semantics for the PROV data model.</li>
+<li> PROV-XML, 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 a pedagogical presentation of 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 OWL-RL ontology. For further details, PROV-DM and PROV-DM-CONSTRAINTS specify the constraints applicable to the data model, and its interpretation. PROV-SEM provides a mathematical semantics.</li>
+<li>The XML community should focus on PROV-XML 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 of PROV-AQ.</li>
+<li>Readers seeking to implement other PROV serializations
+should focus on PROV-DM and PROV-DM-CONSTRAINTS.  PROV-O, PROV-N, PROV-XML offer examples of mapping to RDF, text, and XML, respectively.</li>
+</ul>
+
+
+</section>
+
+
+
+
+<!-- <div class="buttonpanel"> 
+<form action="#"><p> 
+<input id="hide-asn" onclick="set_display_by_class('div','withAsn','none');set_display_by_class('span','withAsn','none'); set_display_by_id('hide-asn','none'); set_display_by_id('show-asn','');" type="button"
+value="Hide ASN" /> 
+<input id="show-asn" onclick="set_display_by_class('div','withAsn',''); set_display_by_class('span','withAsn','');  set_display_by_id('hide-asn',''); set_display_by_id('show-asn','none');" style="display: none"
+type="button" value="Show ASN" /> 
+</p> 
+</form> 
+</div>     
+-->
+
+
+
+
+
+    <section id="introduction"> 
+      <h2>Introduction<br>
+</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>A set of specifications, referred to as the PROV family of specifications, define the various aspects
+that are necessary to achieve this vision in an interoperable
+way:</p>
+<ul>
+<li>A data model for provenance, which is presented in three documents:
+<ul>
+<li> PROV-DM (part I): the provenance data model itself, expressed in natural language (this document);
+<li> PROV-DM-CONSTRAINTS (part II): constraints underpinning the data model [[PROV-DM-CONSTRAINTS]];
+<li> PROV-N (part III): a notation to express instances of that data model for human consumption [[PROV-N]];
+</ul> 
+</li>
+<li>PROV-O: the PROV ontology, an OWL-RL ontology allowing the mapping of PROV to RDF [[PROV-O]];</li>
+<li>PROV-AQ: the mechanisms for accessing and querying provenance [[PROV-AQ]];</li>
+<li>PROV-PRIMER: a primer for the PROV approach [[PROV-PRIMER]];</li>
+<li>PROV-SEM: semantics of the PROV-DM data model [[PROV-SEM]];</li>
+<li>PROV-XML: an XML schema for the PROV data model.</li>
+</ul>
+
+
+<p>
+  PROV-DM is a domain-agnostic model, but with clear extensibility points allowing further domain-specific and
+application-specific extensions to be defined.
+The PROV data model is structured according to six components covering various aspects of provenance:</p>
+<ol>
+<li> component 1: entities and activities, and the time at which they were created, used, or ended;
+<li> component 2: agents bearing responsibility for entities that were generated and actities that happened;
+<li> component 3: derivations between entities;
+<li> component 4: properties to link entities that refer to a same thing;
+<li> component 5: collections of entities, whose provenance can itself be tracked;
+<li> component 6: a simple annotation mechanism.
+</ol>
+
+
+
+
+    <section id="structure-of-this-document"> 
+<h3>Structure of this Document</h3>
+
+
+    </section> 
+
+<section id="prov-dm-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>
+
+
+    <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> 
+
+</section> 
+
+
+
+
+<section id="data-model-components"> 
+
+<h2>PROV XML Schema</h2>
+
+<p>PROV-DM concepts are structured according to six components that are introduced in this section.
+Components and their dependencies are illustrated in Figure <a href="#prov-dm-components">prov-dm-components</a>. A component that relies on concepts defined in another also sits above it in this figure.
+PROV-DM consists of the following components.</p>
+
+<ol>
+<li><b>Component 1: entities and activities.</b> The first component consists of entities, activities, and all 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: agents and responsibility.</b> The second component consists of agents and concepts ascribing responsibility to agents.</li>
+<li><b>Component 3: derivations.</b>  The third component is formed with derivations and its derivation subtypes.</li>
+<li><b>Component 4: alternate.</b> The fourth component consists of relations linking entities somehow referring to a same thing. </li>
+<li><b>Component 5: collections.</b> The fifth component is comprised of collections and operations related to collections. </li>
+<li><b>Component 6: annotations.</b> The sixth component is concerned with annotations to PROV-DM  concepts.</li>
+</ol>
+
+
+<div style="text-align: center;">
+<figure style="max-width: 90%; ">
+<img  usemap="#componentMap" src="../model/images/components.png" alt="PROV-DM Components"  style="max-width: 90%; " />
+<map id="componentMap" name="componentMap">
+<area title="collections" href="#component5" coords="220,0,440,70"  alt="collections" shape="rect"/>
+<area title="alternate"   href="#component4" coords="450,0,510,140" alt="alternate"   shape="rect"/>
+<area title="annotations" href="#component6" coords="530,0,590,220" alt="annotations" shape="rect"/>
+<area title="activities/entities" href="#component1" coords="80,150,510,220" alt="activities/entities" shape="rect"/>
+<area title="derivations" href="#component3" coords="80,0,210,70"   alt="derivations" shape="rect"/>
+<area title="agents/responsibility" href="#component2" coords="0,0,70,220"   alt="agents/responsibility" shape="rect"/>
+</map>
+<figcaption id="prov-dm-components">PROV-DM Components</figcaption>
+</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>
+
+
+<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' data-name='entity' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaDefinition'  ></pre> 
+
+
+</section> 
+
+
+<section id="term-Activity"> 
+      
+<h3>Activity</h3>
+
+<div class="glossary-ref" data-ref="glossary-activity"></div>
+
+</section>
+
+
+
+<section id="term-Generation">
+<h4>Generation</h4>
+
+<div class="glossary-ref" data-ref="glossary-generation"></div>
+
+
+
+</section>
+
+
+<section id="term-Usage">
+<h3>Usage</h3>
+
+<div class="glossary-ref" data-ref="glossary-usage"></div>
+
+
+</section>
+
+
+<section id="term-Start">
+<h4>Start</h4>
+
+<div class="glossary-ref" data-ref="glossary-start"></div>
+
+
+</section>
+
+<section id="term-End">
+<h4>End</h4>
+
+<div class="glossary-ref" data-ref="glossary-end"></div>
+
+
+</section>
+
+<section id="term-wasInformedBy">
+<h3>Communication</h3>
+
+<div class="glossary-ref" data-ref="glossary-communication"></div>
+
+
+</section>
+
+<section id="term-wasStartedByActivity">
+<h3>Start by Activity</h3>
+
+<div class="glossary-ref" data-ref="glossary-startByActivity"></div>
+
+
+</section>
+
+
+</section>
+
+<section id="component2"> 
+<h3>Component 2: Agents and Responsibility</h3>
+
+<p>The second component of PROV-DM is concerned with <a title="agent">agents</a> and the notions of
+<a>Attribution</a>, <a>Association</a>, <a>Responsibility</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>
+
+
+
+
+</section>
+
+<section id="term-attribution">
+<h3>Attribution</h3> 
+
+<div class="glossary-ref" data-ref="glossary-attribution"></div>
+
+
+</section>  <!-- end attribution -->
+
+
+<section id="term-ActivityAssociation">
+<h4>Association</h4>
+
+<div class="glossary-ref" data-ref="glossary-activityAssociation"></div>
+
+
+</section>  <!-- end wasAssociatedWith -->
+
+<section id="term-responsibility">
+
+<h4>Responsibility</h4>
+
+<div class="glossary-ref" data-ref="glossary-responsibility"></div>
+
+
+</section>
+
+
+
+</section>
+
+<section id="component3"> 
+<h3>Component 3: Derivations</h3>
+
+
+
+<p>The third component of PROV-DM is concerned with <a title="derivation">derivations</a> between <a title="entity">entities</a>, and subtypes of derivations <a>Revision</a>, <a>Quotation</a>, <a>Original Source</a>, and <a>Traceability</a>.
+</p>
+
+
+
+<section id="Derivation-Relation">
+<h4>Derivation</h4>
+
+
+
+
+
+<div class="glossary-ref" data-ref="glossary-derivation"></div>
+
+
+</section>
+
+<section id="term-Revision">
+<h3>Revision</h3>
+
+<p><span class="glossary-ref" data-ref="glossary-revision"></span></p>
+
+</section>  <!-- end revision -->
+
+<section id="term-quotation">
+<h3>Quotation</h3>
+
+<p> 
+<span class="glossary-ref" data-ref="glossary-quotation"></span>
+</p>
+
+</section>  <!-- end quotation -->
+
+
+<section id="term-original-source">
+<h3>Original Source</h3>
+
+<p>
+<span class="glossary-ref" data-ref="glossary-original-source"></span>
+</p>
+
+</section>  <!-- end original source -->
+
+<section id="term-traceability">
+<h3>Traceability</h3>
+
+<p>
+<span class="glossary-ref" data-ref="glossary-traceability"></span>
+</p>
+
+
+</section>
+
+</section>
+
+<section id="component4"> 
+<h3>Component 4: Alternate Entities</h3>
+
+
+<p>The fourth component of PROV-DM is concerned with
+relations <a>specialization</a> and <a>alternate</a> between entities.
+</p>
+
+
+<section id="term-specialization">
+
+<h4>Specialization</h4>
+
+
+<span class="glossary-ref" data-ref="glossary-specialization"></span> 
+
+
+</section>
+
+<section id="term-alternate">
+
+<h4>Alternate</h4>
+
+
+<span class="glossary-ref" data-ref="glossary-alternate"></span>
+
+
+  
+</section>
+
+</section>
+
+
+<section id="component5"> 
+<h3>Component 5: Collections</h3>
+
+<p>The fifth 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. In many applications, it is also of interest to be able to express the provenance of the collection  itself: e.g. who maintains the collection, which member it contains at which point in time, and how it was assembled. The purpose of Component 5 is to define the types and relations that are useful to express the provenance of collections. </p>
+
+
+<section id="term-collection">
+<h3>Collection</h3>
+
+<span class="glossary-ref" data-ref="glossary-collection"></span>
+
+
+
+</section>  <!-- end of collection-types -->
+
+
+<section id="term-collection-insertion">
+<h3>Insertion</h3>
+
+<span class="glossary-ref" data-ref="glossary-insertion"></span>
+
+</section>  <!-- insertion -->
+
+
+<section id="term-collection-removal">
+<h3>Removal</h3>
+
+<span class="glossary-ref" data-ref="glossary-removal"></span>
+
+
+</section>  <!-- removal -->
+
+
+<section id="term-collection-membership">
+<h3>Membership</h3>
+
+
+<span class="glossary-ref" data-ref="glossary-membership"></span>
+
+
+</section>  <!-- Membership -->
+
+
+</section>   <!-- end collections-->
+
+
+<section id="component6"> 
+<h3>Component 6: Annotations</h3>
+
+<p>The sixth component of PROV-DM is concerned with <a title="note">notes</a> and <a title="annotation">annotations</a>.
+</p>
+
+   <section id="term-note"> 
+      
+<h4>Note</h4>
+
+   </section> 
+
+<section id="term-annotation">
+<h4>Annotation</h4>
+
+
+
+<span class="glossary-ref" data-ref="glossary-annotation"></span>
+
+
+</section>
+
+
+</section>
+
+
+
+
+
+
+<!-- end sec. 5 -->
+
+
+
+<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>
--- a/xml/schema/prov-20120110.xsd	Mon Apr 02 17:03:42 2012 +0100
+++ b/xml/schema/prov-20120110.xsd	Tue Apr 03 20:07:34 2012 +0100
@@ -1,30 +1,47 @@
 <?xml version="1.0" encoding="utf-8"?>
 
-<!-- 
-
-
-     In this schema, all ids are encoded as QNames. 
+<!-- authors: luc moreau
 
-     The lexical restrictions over QNames are too strict, and we may want to use CURIEs instead.
-     Downside is that tools won't recognize them.
+     *warning*
+     transformation of the opm opmx schema into prov compatible.
+     purely tentative at this stage. still some opmx legacy.
 
-     Note that if AccountRecord are to disappear from PROV-DM, they
-     should probably also disappear from here.
+     prov-dm not fully encoded yet.
+     only work in progress.
 
+     In this schema, all ids are encoded as qnames. The ProvToolbox
+     implementation uses these schema in non-validating mode, so that
+     CURIEs are represented as java QName, and the xml tool properly
+     manages the prefixes occurring in the CURIEs.
   -->
 
 
-<xs:schema targetNamespace="http://www.w3.org/ns/prov-xml#"
+<xs:schema targetNamespace="http://openprovenance.org/prov-xml#"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
-           xmlns:prov="http://www.w3.org/ns/prov-xml#"
+           xmlns:prov="http://openprovenance.org/prov-xml#"
+           xmlns:cu="http://www.w3.org/1999/xhtml/datatypes/"
            elementFormDefault="qualified"
            attributeFormDefault="unqualified">
 
 
 
+  <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" />
+
+
+  <!-- Component 1 -->
+  
+  <xs:element name="entity" type="prov:Entity"/>
+  <xs:complexType name="Entity">
+    <xs:sequence>
+      <xs:element ref="prov:label" minOccurs="0"/> 
+      <xs:element ref="prov:type"  minOccurs="0" maxOccurs="unbounded"/>
+ 
+      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+  </xs:complexType>  
 
   <xs:element name="activity" type="prov:Activity"/>
-
   <xs:complexType name="Activity">
     <xs:sequence>
       <xs:element name="startTime"    type="xs:dateTime" minOccurs="0"/> 
@@ -37,39 +54,7 @@
     <xs:attribute ref="prov:id"/>
   </xs:complexType>
   
-  
-  <xs:element name="entity" type="prov:Entity"/>
-  <xs:complexType name="Entity">
-    <xs:sequence>
-      <xs:element ref="prov:label" minOccurs="0"/> 
-      <xs:element ref="prov:type"  minOccurs="0" maxOccurs="unbounded"/>
- 
-      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-    <xs:attribute ref="prov:id"/>
-  </xs:complexType>
-
 
-  
-  <xs:element name="agent" type="prov:Agent"/>
-  <xs:complexType name="Agent">
-    <xs:sequence>
-      <xs:element ref="prov:label" minOccurs="0"/> 
-      <xs:element ref="prov:type"  minOccurs="0" maxOccurs="unbounded"/>
-      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-    <xs:attribute ref="prov:id"/>
-  </xs:complexType>
-  
-  <xs:element name="note" type="prov:Note"/>
-  <xs:complexType name="Note">
-    <xs:sequence>
-      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-    <xs:attribute ref="prov:id"/>
-  </xs:complexType>
-  
-  
   <xs:complexType name="Used">
     <xs:sequence>
       <xs:element name="time"     type="xs:dateTime" minOccurs="0"/>
@@ -95,6 +80,65 @@
     <xs:attribute ref="prov:id"/>
   </xs:complexType>
 
+  <xs:complexType name="WasStartedBy">
+    <xs:sequence>
+      <xs:element name="time"     type="xs:dateTime" minOccurs="0"/>
+      <xs:element name="activity" type="prov:ActivityRef"/>
+      <xs:element name="trigger"  type="prov:EntityRef"  minOccurs="0"/>
+      <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element ref="prov:role"  minOccurs="0" maxOccurs="unbounded"/> 
+      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+  </xs:complexType>
+
+  <xs:complexType name="WasEndedBy">
+    <xs:sequence>
+      <xs:element name="time"     type="xs:dateTime" minOccurs="0"/>
+      <xs:element name="activity" type="prov:ActivityRef"/>
+      <xs:element name="trigger"  type="prov:EntityRef"  minOccurs="0"/>
+      <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element ref="prov:role"  minOccurs="0" maxOccurs="unbounded"/> 
+      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+  </xs:complexType>
+
+  <xs:complexType name="WasInformedBy">
+    <xs:sequence>
+      <xs:element name="time"    type="xs:dateTime" minOccurs="0"/>
+      <xs:element name="effect"  type="prov:ActivityRef"/>
+      <xs:element name="cause"   type="prov:ActivityRef"/>
+      <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/> 
+      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+  </xs:complexType>
+
+  <xs:complexType name="WasStartedByActivity">
+    <xs:sequence>
+      <xs:element name="started" type="prov:ActivityRef"/>
+      <xs:element name="starter" type="prov:ActivityRef"/>
+      <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element ref="prov:role"  minOccurs="0" maxOccurs="unbounded"/> 
+      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+  </xs:complexType>
+
+
+  <!-- Component 2 -->
+  
+  <xs:element name="agent" type="prov:Agent"/>
+  <xs:complexType name="Agent">
+    <xs:sequence>
+      <xs:element ref="prov:label" minOccurs="0"/> 
+      <xs:element ref="prov:type"  minOccurs="0" maxOccurs="unbounded"/>
+      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+  </xs:complexType>
 
   <xs:complexType name="WasAssociatedWith">
     <xs:sequence>
@@ -108,6 +152,18 @@
     <xs:attribute ref="prov:id"/>
   </xs:complexType>
 
+
+  <xs:complexType name="WasAttributedTo">
+    <xs:sequence>
+      <xs:element name="entity" type="prov:EntityRef"/>
+      <xs:element name="agent"    type="prov:AgentRef"/>
+      <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element ref="prov:role"  minOccurs="0" maxOccurs="unbounded"/> 
+      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+  </xs:complexType>
+
   <xs:complexType name="ActedOnBehalfOf">
     <xs:sequence>
       <xs:element name="subordinate" type="prov:AgentRef"/>
@@ -121,39 +177,16 @@
   </xs:complexType>
 
 
-  <xs:complexType name="WasControlledBy">
-    <xs:sequence>
-      <xs:element name="startTime"   type="xs:dateTime" minOccurs="0"/>
-      <xs:element name="endTime"     type="xs:dateTime" minOccurs="0"/>
-      <xs:element name="effect"      type="prov:ActivityRef"/>
-      <xs:element name="cause"       type="prov:AgentRef"/>
-      <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element ref="prov:role"  minOccurs="0" maxOccurs="unbounded"/> 
-      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-    <xs:attribute ref="prov:id"/>
-  </xs:complexType>
+  <!-- Component 3 -->
+
   
   <xs:complexType name="WasDerivedFrom">
     <xs:sequence>
-      <xs:element name="generation" type="prov:DependencyRef" minOccurs="0"/>
-      <xs:element name="usage"      type="prov:DependencyRef" minOccurs="0"/>
-      <xs:element name="activity"   type="prov:ActivityRef" minOccurs="0"/>
-      <xs:element name="time"       type="xs:dateTime" minOccurs="0"/> <!-- for imprecise only -->
-      <xs:element name="effect"  type="prov:EntityRef"/>
-      <xs:element name="cause"   type="prov:EntityRef"/>
-      <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/> 
-      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-    <xs:attribute ref="prov:id"/>
-  </xs:complexType>
-  
-  <xs:complexType name="WasInformedBy">
-    <xs:sequence>
-      <xs:element name="time"    type="xs:dateTime" minOccurs="0"/>
-      <xs:element name="effect"  type="prov:ActivityRef"/>
-      <xs:element name="cause"   type="prov:ActivityRef"/>
+      <xs:element name="generation"       type="prov:DependencyRef" minOccurs="0"/>
+      <xs:element name="usage"            type="prov:DependencyRef" minOccurs="0"/>
+      <xs:element name="activity"         type="prov:ActivityRef" minOccurs="0"/>
+      <xs:element name="generatedEntity"  type="prov:EntityRef"/>
+      <xs:element name="usedEntity"       type="prov:EntityRef"/>
       <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
       <xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/> 
       <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
@@ -161,23 +194,73 @@
     <xs:attribute ref="prov:id"/>
   </xs:complexType>
 
-  <xs:complexType name="AlternateOf">
+  <xs:complexType name="WasRevisionOf">
     <xs:sequence>
-      <xs:element name="entity2"   type="prov:EntityRef"/>
-      <xs:element name="entity1"   type="prov:EntityRef"/>
+      <xs:element name="newer"           type="prov:EntityRef"/>
+      <xs:element name="older"           type="prov:EntityRef"/>
+      <xs:element name="responsibility"  type="prov:AgentRef" minOccurs="0"/>
       <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element ref="prov:role"  minOccurs="0" maxOccurs="unbounded"/> 
       <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attribute ref="prov:id"/>
   </xs:complexType>
 
-  <xs:complexType name="SpecializationOf">
+  <xs:complexType name="WasQuotedFrom">
+    <xs:sequence>
+      <xs:element name="quote"        type="prov:EntityRef"/>
+      <xs:element name="original"     type="prov:EntityRef"/>
+      <xs:element name="quoterAgent"  type="prov:AgentRef" minOccurs="0"/>
+      <xs:element name="quotedAgent"  type="prov:AgentRef" minOccurs="0"/>
+      <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+  </xs:complexType>
+
+  <xs:complexType name="HadOriginalSource">
+    <xs:sequence>
+      <xs:element name="derived"     type="prov:EntityRef"/>
+      <xs:element name="source"      type="prov:EntityRef"/>
+      <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+  </xs:complexType>
+
+  <xs:complexType name="TracedTo">
+    <xs:sequence>
+      <xs:element name="entity"      type="prov:EntityRef"/>
+      <xs:element name="ancestor"    type="prov:EntityRef"/>
+      <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+  </xs:complexType>
+
+  <!-- Component 4 -->
+
+  <xs:complexType name="AlternateOf">
     <xs:sequence>
       <xs:element name="entity2"   type="prov:EntityRef"/>
       <xs:element name="entity1"   type="prov:EntityRef"/>
-      <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element ref="prov:role"  minOccurs="0" maxOccurs="unbounded"/> 
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="SpecializationOf">
+    <xs:sequence>
+      <xs:element name="specializedEntity"   type="prov:EntityRef"/>
+      <xs:element name="generalEntity"   type="prov:EntityRef"/>
+    </xs:sequence>
+  </xs:complexType>
+  
+  <!-- Component 5 -->
+
+
+  <!-- Component 6 -->
+  
+  <xs:element name="note" type="prov:Note"/>
+  <xs:complexType name="Note">
+    <xs:sequence>
       <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attribute ref="prov:id"/>
@@ -226,16 +309,28 @@
   <xs:complexType name="Dependencies">
     <xs:sequence>
       <xs:choice minOccurs="0" maxOccurs="unbounded">
-	<xs:element name="used"               type="prov:Used"/>
-	<xs:element name="wasGeneratedBy"     type="prov:WasGeneratedBy"/>
-	<xs:element name="wasInformedBy"      type="prov:WasInformedBy"/>
-	<xs:element name="wasDerivedFrom"     type="prov:WasDerivedFrom"/>
-	<xs:element name="wasControlledBy"    type="prov:WasControlledBy"/>
-	<xs:element name="wasAssociatedWith"  type="prov:WasAssociatedWith"/>
-	<xs:element name="actedOnBehalfOf"    type="prov:ActedOnBehalfOf"/>
-	<xs:element name="alternateOf"        type="prov:AlternateOf"/>
-	<xs:element name="specializationOf"   type="prov:SpecializationOf"/>
-	<xs:element name="hasAnnotation"      type="prov:HasAnnotation"/>
+
+            <xs:element name="used"                 type="prov:Used"/>
+            <xs:element name="wasGeneratedBy"       type="prov:WasGeneratedBy"/>
+            <xs:element name="wasStartedBy"         type="prov:WasStartedBy"/>
+            <xs:element name="wasEndedBy"           type="prov:WasEndedBy"/>
+            <xs:element name="wasInformedBy"        type="prov:WasInformedBy"/>
+            <xs:element name="wasStartedByActivity" type="prov:WasStartedByActivity"/>
+
+            <xs:element name="wasAttributedTo"      type="prov:WasAttributedTo"/>
+            <xs:element name="wasAssociatedWith"    type="prov:WasAssociatedWith"/>
+            <xs:element name="actedOnBehalfOf"      type="prov:ActedOnBehalfOf"/>
+
+            <xs:element name="wasDerivedFrom"       type="prov:WasDerivedFrom"/>
+            <xs:element name="wasRevisionOf"        type="prov:WasRevisionOf"/>
+            <xs:element name="wasQuotedFrom"        type="prov:WasQuotedFrom"/>
+            <xs:element name="hadOriginalSource"    type="prov:HadOriginalSource"/>
+            <xs:element name="tracedTo"             type="prov:TracedTo"/>
+
+            <xs:element name="alternateOf"          type="prov:AlternateOf"/>
+            <xs:element name="specializationOf"     type="prov:SpecializationOf"/>
+
+            <xs:element name="hasAnnotation"        type="prov:HasAnnotation"/>
       </xs:choice>
     </xs:sequence>
   </xs:complexType>