Rename to Overview.html
authorTom De Nies <tom.denies@ugent.be>
Fri, 08 Mar 2013 17:53:21 +0100
changeset 5934 91a1f9fba86d
parent 5933 1f557eb893ac
child 5935 f539d80fa169
Rename to Overview.html
dictionary/Overview.html
dictionary/prov-dictionary.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dictionary/Overview.html	Fri Mar 08 17:53:21 2013 +0100
@@ -0,0 +1,2784 @@
+<!DOCTYPE html
+>
+
+<html><head> 
+    <title>PROV Dictionary</title> 
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
+<link rel="http://www.w3.org/ns/prov#has_provenance" href="http://www.w3.org/2011/prov/provenance/prov-dictionary"/>
+
+<script src="../model/prov-magic.js" class="remove"></script>
+
+<script src="../model/grammar/ll.js" class="remove"></script>
+<script src="../model/provbib.js" class="remove"></script>
+<script src="../model/glossary.js" class="remove"></script>
+
+<script src="https://www.w3.org/Tools/respec/respec-w3c-common" class="remove" async></script> 
+
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" class="remove"></script>
+
+<style type="text/css">
+      .note { font-size:small; margin-left:50px }
+
+  .entity {
+          border: 1px solid navy;
+          margin:5px 0px 5px 0px;
+          padding: 5px;    
+      }
+
+    
+
+      .description {
+          border-top: 1px dashed gray;
+          border-bottom: 1px dashed gray;
+          background-color: rgb(242, 243, 244);
+          margin-top:5px;
+          padding-bottom:5px;
+      }
+
+      .description dl {
+          background-color: rgb(242, 243, 244);
+      }
+
+      .description ul {
+          padding-left: 12px;
+          margin-top: 0px;
+      }
+
+code {
+    color:  black !important;
+}
+
+.diamond {
+    font-weight: normal;
+    font-style: normal;
+    font-size:100%;
+    font-family: sans-serif;
+}
+
+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;
+}
+table.thinborder td {
+	border-width: 1px;
+	padding: 2px;
+	border-style: solid;
+	border-color: gray;
+}
+
+/* --- 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-example {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #fff;
+}
+
+.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-example {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #00f;
+    background: #fff;
+}
+
+
+.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;
+}
+
+.definition {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #777;
+    background: #fff;
+}
+
+.definition-example {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #777;
+    background: #fff;
+}
+
+.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;
+    font-size: 95%;
+}
+.nonterminal {
+    font-weight: bold;
+    font-family: sans-serif;
+    font-size: 95%;
+}
+
+.name {
+    font-family: monospace;
+}
+
+.math {
+    font-family: roman;
+    font-style:italic;
+}
+
+
+.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 {
+    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;
+}
+
+.conceptexample:before {
+    content: "Example:";
+    font-family: sans-serif;
+    font-size: 1.6ex;
+    font-weight: bold;
+}
+.conceptexample {
+    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;
+}
+
+.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="choice"]:before {
+    font-weight: normal;
+    font-size:130%;
+    font-family: monospace;
+    content: "(";
+}
+
+div[class="grammar"] span[class="choice"]: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;
+}
+
+
+code {
+    color:  black;
+}
+
+.ruleTitle {
+    font-family: sans-serif;
+    font-size: 1.6ex;
+    font-weight: bold;
+}
+
+
+
+
+
+.remark {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px dashed #000;
+    background: #F0F0F0;
+}
+
+.remark::before {
+    content:    "Remark";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #000;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+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;
+}
+table.thinborder td {
+	border-width: 1px;
+	padding: 2px;
+	border-style: solid;
+	border-color: gray;
+}
+
+
+</style>
+
+
+    <script type="text/javascript">
+/*
+	Written by Jonathan Snook, http://www.snook.ca/jonathan
+	Add-ons by Robert Nyman, http://www.robertnyman.com
+	Author says "The credit comment is all it takes, no license. Go crazy with it!"
+	From http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
+*/
+
+function getElementsByClassName(oElm, strTagName, oClassNames){
+	var arrElements = (! (! (strTagName == "*") || ! (oElm.all)))? oElm.all : oElm.getElementsByTagName(strTagName);
+	var arrReturnElements = new Array();
+	var arrRegExpClassNames = new Array();
+	if(typeof oClassNames == "object"){
+		for(var i=0; !(i>=oClassNames.length); i++){ /*>*/
+			arrRegExpClassNames.push(new RegExp("(^|\s)" + oClassNames[i].replace(/\-/g, "\-") + "(\s|$)"));
+		}
+	}
+	else{
+		arrRegExpClassNames.push(new RegExp("(^|\s)" + oClassNames.replace(/\-/g, "\-") + "(\s|$)"));
+	}
+	var oElement;
+	var bMatchesAll;
+	for(var j=0; !(j>=arrElements.length); j++){ /*>*/
+		oElement = arrElements[j];
+		bMatchesAll = true;
+		for(var k=0; !(k>=arrRegExpClassNames.length); k++){ /*>*/
+			if(!arrRegExpClassNames[k].test(oElement.className)){
+				bMatchesAll = false;
+				break;
+			}
+		}
+		if(bMatchesAll){
+			arrReturnElements.push(oElement);
+		}
+	}
+	return (arrReturnElements)
+}
+
+function set_display_by_class(el, cls, newValue) {
+   var e = getElementsByClassName(document, el, cls);
+   if (e != null) {
+      for (var i=0; !(i>=e.length); i++) {
+        e[i].style.display = newValue;
+      }
+   }
+}
+
+function set_display_by_id(id, newValue) {
+   var e = document.getElementById(id);
+   if (e != null) {
+     e.style.display = newValue;
+   }
+}
+</script> 
+
+
+    <script type="text/javascript" class="remove">
+
+
+      $(document).ready(function(){
+        // if glossary is in a string:
+        $('#glossary_div').html(glossary_string)
+        $('#grammar_div').html(grammar_string);
+        updateGlossaryRefs();
+        updateFigCaptions();
+        updateCaptions();
+        updateGrammarRefs();
+        updateExamples();
+        updateExamplesRefs();
+
+                      if (typeof String.prototype.startsWith != 'function') {
+                      String.prototype.startsWith = function (str){
+                      return this.indexOf(str) == 0;
+                      };
+                      }
+
+      });
+
+    </script>
+    <script class="remove">
+      function updateGrammarRefs() {
+        $('.grammar-ref').each(function(index) {
+          var ref=$(this).attr('data-ref');
+          console.log( "updating grammar for " + ref);
+//          $('#'+ref).parents("tbody").clone().appendTo($(this));
+
+
+          // $(this).replaceWith(function() {return $('#'+ref).parents("tbody").clone()});
+
+           $(this).replaceWith($('#'+ref).parents("tbody").clone());
+
+        });
+      }
+    </script>
+    <script class="remove"> 
+      var addExtraReferences = function() {
+          for (var k in extraReferences)
+              berjon.biblio[k] = extraReferences[k];
+      };
+      var extraReferences = {
+
+      };
+      var respecConfig = {
+          // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
+          specStatus:           "WD-NOTE", //FPWD-NOTE
+          
+          // the specification's short name, as in http://www.w3.org/TR/short-name/
+          shortName:            "prov-dictionary",
+ 
+          // if your specification has a subtitle that goes below the main
+          // formal title, define it here
+          //subtitle   :  "A single document for prov-mention related material",
+
+ 
+          // if you wish the publication date to be other than today, set this
+          publishDate:  "2013-03-12",
+ 
+          // if the specification's copyright date is a range of years, specify
+          // the start date here:
+          //copyrightStart: "2011",
+ 
+          // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
+          // and its maturity status
+          //previousPublishDate:  "2012-07-24",
+          //previousMaturity:  "ED",
+ 
+          // if there a publicly available Editor's Draft, this is the link
+          edDraftURI:           "http://dvcs.w3.org/hg/prov/raw-file/default/dictionary/prov-dictionary.html",
+ 
+          // if this is a LCWD, uncomment and set the end of its review period
+          //lcEnd: "2012-09-18",
+ 
+          // if you want to have extra CSS, append them to this list
+          // it is recommended that the respec.css stylesheet be kept
+          extraCSS:             ["https://dev.w3.org/2009/dap/ReSpec.js/css/respec.css"],
+ 
+          // editors, add as many as you like
+          // only "name" is required
+          editors:  [
+              { name: "Tom De Nies", url: "http://users.ugent.be/~tdenies/",
+                company: "iMinds - Ghent University" },
+              { name: "Sam Coppens",
+                company: "iMinds - Ghent University" },
+          ],
+ 
+          // 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: "Paolo Missier", url: "http://www.cs.ncl.ac.uk/people/Paolo.Missier",
+                company: "Newcastle University" },
+		       { name: "Luc Moreau", url: "http://www.ecs.soton.ac.uk/~lavm/",
+                company: "University of Southampton" },
+		       { name: "James Cheney", url: "http://homepages.inf.ed.ac.uk/jcheney/",
+                company: "University of Edinburgh" },
+		       { name: "Timothy Lebo", url: "http://tw.rpi.edu/instances/TimLebo",
+                company: "Rensselaer Polytechnic Institute" },
+		       { name: "Stian Soiland-Reyes", url: "http://soiland-reyes.com/stian/",
+                company: "University of Manchester" },
+          ],
+          
+          // 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, addProvReferences],
+
+          postProcess: [updateSectionRefs, updateDfn, updateFigures],
+      };
+    </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. This document describes extensions to PROV to facilitate the modeling of provenance for dictionary data structures. [[PROV-DM]] specifies a <a href="http://www.w3.org/TR/2013/PR-prov-dm-20130312/Overview.html#component6">Collection</a> as an entity that provides a structure to some constituents, which are themselves entities. However, some applications may need a mechanism to specify more structure to a Collection, in order to accurately describe its provenance. 
+Therefore, in this document, we introduce Dictionary, a specific type of Collection with a logical structure consisting of key-value pairs.
+</p>
+
+<p>The  <a href="http://www.w3.org/TR/2013/WD-prov-overview-20130312/">PROV Document Overview</a> describes the overall state of PROV, and should be read before other PROV documents.</p>
+
+    </section> 
+
+<section id="sotd">
+<h4>PROV Family of Documents</h4>
+This document is part of the PROV family of documents, a set of documents defining various aspects that are necessary to achieve the vision of inter-operable
+interchange of provenance information in heterogeneous environments such as the Web.  These documents are listed below. Please consult the [[PROV-OVERVIEW]] for a guide to reading these documents. 
+<ul>
+<li> <a href="http://www.w3.org/TR/2013/WD-prov-overview-20130312/">PROV-OVERVIEW</a> (To be published as Note), an overview of the PROV family of documents [[PROV-OVERVIEW]];</li>
+<li> <a href="http://www.w3.org/TR/2013/WD-prov-primer-20130312/">PROV-PRIMER</a> (To be published as Note), a primer for the PROV data model [[PROV-PRIMER]];</li>
+<li> <a href="http://www.w3.org/TR/2013/PR-prov-o-20130312/">PROV-O</a> (Proposed Recommendation), the PROV ontology, an OWL2 ontology allowing the mapping of PROV to RDF [[PROV-O]];</li>
+<li> <a href="http://www.w3.org/TR/2013/PR-prov-dm-20130312/">PROV-DM</a> (Proposed Recommendation), the PROV data model for provenance [[PROV-DM]];</li>
+<li> <a href="http://www.w3.org/TR/2013/PR-prov-n-20130312/">PROV-N</a> (Proposed Recommendation), a notation for provenance aimed at human consumption [[PROV-N]];</li>
+<li> <a href="http://www.w3.org/TR/2013/PR-prov-constraints-20130312/">PROV-CONSTRAINTS</a> (Proposed Recommendation), a set of constraints applying to the PROV data model [[PROV-CONSTRAINTS]];</li>
+<li> <a href="http://www.w3.org/TR/2013/WD-prov-xml-20130312/">PROV-XML</a> (To be published as Note),  an XML schema for the PROV data model [[PROV-XML]];</li>
+<li> <a href="http://www.w3.org/TR/2013/WD-prov-aq-20130312/">PROV-AQ</a> (To be published as Note), the mechanisms for accessing and querying provenance [[PROV-AQ]]; </li>
+<li> <a href="http://www.w3.org/TR/2013/WD-prov-dictionary-20130312/">PROV-DICTIONARY</a> (To be published as Note) introduces a specific type of collection, consisting of key-entity pairs [[PROV-DICTIONARY]];</li>
+<li> <a href="http://www.w3.org/TR/2013/WD-prov-dc-20130312/">PROV-DC</a> (To be published as Note) provides a mapping between PROV and Dublic Core Terms [[PROV-DC]];</li>
+<li> <a href="http://www.w3.org/TR/2013/WD-prov-sem-20130312/">PROV-SEM</a> (To be published as Note), a declarative specification in terms of first-order logic of the PROV data model [[PROV-SEM]];</li>
+<li> <a href="http://www.w3.org/TR/2013/WD-prov-links-20130312/">PROV-LINKS</a> (To be published as Note) introduces a mechanism to link across bundles (this document).</li>
+</ul>
+
+</section>
+
+
+
+
+
+
+
+
+
+
+    <section id="introduction"> 
+<h2>Introduction</h2> 
+
+<p>
+<a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/">Provenance</a>
+is a record that describes the people, institutions, entities, and
+activities involved in producing, influencing, or delivering a piece
+of data or a thing. The specifications [[PROV-O]], [[PROV-DM]],
+[[PROV-N]], and [[PROV-XML]] have respectively defined the PROV
+ontology, the PROV conceptual model, the PROV notation, and the PROV
+XML schema, allowing provenance descriptions to be expressed,
+represented in various representations, and interchanged between systems across the Web. 
+</p>
+<p>[[PROV-DM]] specifies Collection as an entity that provides a structure to some constituents, which are themselves entities. However, some applications may need a mechanism to specify more structure to a Collection, in order to accurately describe its provenance.</p>
+
+<p>Therefore, this document introduces a new concept, <a>Dictionary</a>, that has a logical structure consisting of key-entity pairs.</p>
+</section>
+
+
+
+<section id="dictionary-conceptual-definition"> 
+<h2>Conceptual Definition of Dictionary</h2>
+<p>In this section a specific type of collection, as specified in [[PROV-DM]], is introduced. This new type of collection, Dictionary, is specified as follows.</p>
+
+
+<span class="glossary-ref" data-ref="glossary-dictionary"></span>
+
+<p>Conceptually, a dictionary has a logical structure consisting of key-value pairs. This structure is often referred to as a <em>map</em>, and is a generic indexing mechanism that can abstract commonly used data structures, including associative lists, relational tables, ordered lists, and more.
+	This document provides a mechanism to assert the provenance for these types of data structures, in the most general way, as a collection of key-value pairs, modified through insertions and deletions. Any more specialized structures can be modeled to some extent in terms of these key-value pairs. 
+	Here, we will discuss the provenance of dictionaries structured in terms of key-value pairs. However, how this key-value pair structure is translated to more specialized data structures, is beyond the scope of this document.</p>
+
+<p>In this document, a dictionary is viewed as a snapshot of a data structure with key-value pairs, following a sequence of state-changing insertion and removal operations. These  operations result in new snapshots, each snapshot forming a distinct and identifiable dictionary entity. Thus, when the structure of a dictionary changes (through insertions or removals), a new dictionary entity is defined, whereas the older dictionary entity remains the same.</p>
+
+<!--
+<span class="glossary-ref" data-ref="glossary-empty-dictionary"></span>
+-->
+
+
+<p>Following the earlier definitions for generic collections,  PROV-Dictionary defines the following types related to dictionaries:</p>
+
+<ul>
+  <li> <span class="name">prov:Dictionary</span> is a subtype of <span class="name">prov:Collection</span>. It denotes an entity of type dictionary, i.e. an entity that can participate in relations that involve dictionaries and their member entities;</li>
+
+  <li><span class="name">prov:EmptyDictionary</span> is a subtype of both <span class="name">prov:EmptyCollection</span> and <span class="name">prov:Dictionary</span>. It denotes an empty dictionary.</li>
+</ul>
+
+<p>Note that the complete content of a dictionary is unknown unless it can be traced back to an empty dictionary through a series of insertions and removals. If an asserter wants to explicitly state that a dictionary is empty, it is recommended that the <span class="name">prov:type</span> <span class="name">prov:EmptyCollection</span> is used.
+
+<div class="anexample">
+<pre class="codeexample">
+entity(d0, [prov:type='prov:EmptyDictionary' ])  // d0 is an empty dictionary
+entity(d1, [prov:type='prov:Dictionary'  ])      // d1 is a dictionary, with (so far) unknown content
+</pre>
+</div>
+
+
+<section id="term-dictionary-membership">
+<h3>Dictionary Membership</h3>
+
+<span class="glossary-ref" data-ref="glossary-dictionary-membership"></span>
+
+<p>Similar to the <a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/#term-membership">collection membership</a> relation, the <strong>dictionary  membership</strong> allows stating the members of a Dictionary. However, it provides additional structure.
+	Note that <a href="#term-dictionary-membership">dictionary  membership</a> implies <a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/#term-membership">collection membership</a>, but not vice versa. This implication is formalized in <a href="#dmembership-cmembership-inference">Inference D1</a>.
+	</p>
+
+<div class="attributes" id="attributes-hadMember-d">
+ A <dfn title="hadMember-d">dictionary membership</dfn> relation, written <span class="pnExpression">hadDictionaryMember(d, e_1, key_1)</span>, has:
+<ul>
+<li><span class='attribute' id="membership-d.dictionary">dictionary</span>: an identifier (<span class="name">d</span>) for the dictionary whose members are asserted; </li>
+<li><span class='attribute' id="membership-d.entity">entity</span>: an entity <span class="name">e_1</span> that is associated with the key and is a member of the dictionary;</li>
+<li><span class='attribute' id="membership-d.key">key</span>: a key <span class="name">key_1</span> that is associated with the specified entity. <span class="name">key_1</span> is a <a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/#term-value">value</a> ;</li>
+</ul>
+<p>Keys cannot be repeated in the same dictionary. However, a dictionary can contain the same entity more than once, as long as it is associated with different keys.</p>
+<p>Note that the <a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/#term-membership">collection membership</a> relation, written <span class="name">hadMember(c, e)</span>, can be used when <span class="name">c</span> has <span class="name">prov:type = 'prov:Collection'</span> or <span class="name">prov:type = 'prov:Dictionary'</span>. However, the <a href="#term-dictionary-membership">dictionary  membership</a>, written <span class="name">hadDictionaryMember(d, e, "k")</span>, can only be used when <span class="name">d</span> has <span class="name">prov:type = 'prov:Dictionary'</span>. </p>
+	
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+entity(d, [prov:type='prov:Dictionary' ])    // d1 is a dictionary, with (so far) unknown content
+
+entity(e1)
+entity(e2)
+
+hadDictionaryMember(d, e1, "k1")  
+hadDictionaryMember(d, e2, "k2")  
+
+</pre>
+From these descriptions, we conclude:
+<ul>
+<li> <span class="name">d</span>  had  the following key-entity pairs as members: <span class="name">("k1", e1), ("k2", e2)</span>, and may have contained others.</li>
+</ul>
+<p> Thus, the membership of <span class="name">d</span> is only partially known, unless it was derived through insertions and removals from an empty dictionary (See <a href="#insertion-removal-membership-inference_text">Completeness constraints</a>).</p>
+</div>
+
+</section> <!-- end membership -->
+
+
+<section id="term-dictionary-insertion">
+<h3>Dictionary Insertion</h3>
+
+<span class="glossary-ref" data-ref="glossary-insertion"></span>
+
+<div class="attributes" id="attributes-derivedByInsertionFrom">
+<p>An <dfn title="derivedByInsertionFrom">Insertion</dfn> relation<span class="withPn">, written <span class="pnExpression">derivedByInsertionFrom(id; d2, d1, {(key_1, e_1), ..., (key_n, e_n)}, attrs)</span>,</span> has:</p>
+<ul>
+<li><span class='attribute' id="insertion.id">id</span>:  an OPTIONAL identifier identifying the relation;</li>
+<li><span class='attribute' id="insertion.after">after</span>: an identifier (<span class="name">d2</span>) for the dictionary <em>after</em> insertion; </li>
+<li><span class='attribute' id="insertion.before">before</span>: an identifier (<span class="name">d1</span>) for the dictionary <em>before</em> insertion;</li>
+<li><span class='attribute' id="insertion.key-entity-set">key-entity-set</span>: all inserted key-entity pairs <span class="name">(key_1, e_1)</span>, ..., <span class="name">(key_n, e_n)</span>. Here, each <span class="name">key_i</span> is a <a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/#term-value">value</a>, and <span class="name">e_i</span> is an identifier  for the entity that has been inserted with the key;
+ each <span class="name">key_i</span> is expected to be unique for the key-entity-set, as formalized in <a href="#key-single-entity-inference">Inference D2</a>;
+</li>
+<li><span class='attribute' id="insertion.attributes">attributes</span>: an OPTIONAL set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this relation.</li>
+</ul>
+</div>
+
+<p>
+An Insertion relation <span class="name">derivedByInsertionFrom(id; d2, d1,  {(key_1, e_1), ..., (key_n, e_n)})</span> states that  <span class="name">d2</span> is the dictionary
+following the insertion of pairs <span class="name">(key_1, e_1)</span>, ..., <span class="name">(key_n, e_n)</span> into dictionary  <span class="name">d1</span>. 
+Note that insertion and the specified key-entity-set are considered to be complete. This means that we assume that no unknown keys were inserted in or removed from a dictionary after an insertion. This is formalized in <a href="#insertion-removal-membership-inference">Inference D7</a>.</p>
+
+
+
+<div class="anexample">
+<pre class="codeexample">
+entity(d0, [prov:type='prov:EmptyDictionary' ])    // d0 is an empty dictionary
+entity(e1)
+entity(e2)
+entity(e3)
+entity(d1, [prov:type='prov:Dictionary' ])
+entity(d2, [prov:type='prov:Dictionary' ])
+
+derivedByInsertionFrom(d1, d0, {("k1", e1), ("k2", e2)})       
+derivedByInsertionFrom(d2, d1, {("k3", e3)}, [ dcterms:description ="A second insertion" ])    //an insertion with optional attribute dcterms:description  
+</pre>
+From this set of descriptions, we conclude:
+<ul>
+<li>   <span class="name">d0</span> was the dictionary <span class="name">{  }</span> </li>
+<li>   <span class="name">d1</span> was the dictionary <span class="name">{ ("k1", e1), ("k2", e2) }</span> </li>
+<li>   <span class="name">d2</span> was the dictionary <span class="name">{ ("k1", e1), ("k2", e2), ("k3", e3) }</span> </li>
+</ul>
+</div>
+<p>Futhermore, insertion provides an "update semantics" for the keys that are already present in a dictionary,
+since a new pair replaces an existing pair with the same key in the new dictionary. This is illustrated by the following example.</p>
+
+<div class="anexample">
+<pre class="codeexample">
+entity(d0, [prov:type='prov:EmptyDictionary' ])    // d0 is an empty dictionary
+entity(e1)
+entity(e2)
+entity(e3)
+entity(d1, [prov:type='prov:Dictionary' ])
+entity(d2, [prov:type='prov:Dictionary' ])
+
+derivedByInsertionFrom(d1, d0, {("k1", e1), ("k2", e2)})       
+derivedByInsertionFrom(d2, d1, {("k1", e3)})
+</pre>
+   This is a case of <em>update</em> of <span class="name">e1</span> to <span class="name">e3</span> for the same key, <span class="name">"k1"</span>. <br/>
+  From this set of descriptions, we conclude:
+<ul>
+<li>   <span class="name">d0</span> was the dictionary <span class="name">{  }</span> </li>
+<li>   <span class="name">d1</span> was the dictionary <span class="name">{ ("k1", e1), ("k2", e2) }</span> </li>
+<li>   <span class="name">d2</span> was the dictionary <span class="name">{ ("k1", e3), ("k2", e2) }</span> </li>
+</ul>
+</div>
+
+</section>  <!-- end insertion -->
+
+
+<section id="term-dictionary-removal">
+<h3>Dictionary Removal</h3>
+
+<span class="glossary-ref" data-ref="glossary-removal"></span>
+
+
+<div class="attributes" id="attributes-derivedByRemovalFrom">
+<p> A <dfn title="derivedByRemovalFrom">Removal</dfn> relation, written <span class="pnExpression">derivedByRemovalFrom(id; d2, d1, {key_1, ... key_n}, attrs)</span>, has:</p>
+<ul>
+<li><span class='attribute' id="removal.id">id</span>:  an OPTIONAL identifier identifying the relation;</li>
+<li><span class='attribute' id="removal.after">after</span>: an identifier (<span class="name">d2</span>) for the dictionary  <em>after</em> the deletion; </li>
+<li><span class='attribute' id="removal.before">before</span>: an identifier (<span class="name">d1</span>)  for the dictionary <em>before</em> the deletion;</li>
+<li><span class='attribute' id="removal.key-set">key-set</span>: the set of deleted keys  <span class="name">key_1</span>, ..., <span class="name">key_n</span>. Here, each <span class="name">key_i</span> is a <a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/#term-value">value</a>;</li>
+<li><span class='attribute' id="removal.attributes">attributes</span>: an OPTIONAL set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this relation.</li>
+</ul>
+</div>
+
+<p>A Removal relation <span class="name">derivedByRemovalFrom(id; d2,d1, {key_1, ..., key_n})</span> states that  <span class="name">d2</span> is  the  dictionary following the removal of the set of pairs corresponding to keys  <span class="name">key_1...key_n</span> from  <span class="name">d1</span>. If a key that is not present in the dictionary is removed, the dictionary remains unchanged.
+  Note that removal and the specified key-set are considered to be complete. This means that we assume that no unknown keys were inserted in or removed from a dictionary after a removal. This is formalized in <a href="#insertion-removal-membership-inference">Inference D7</a>.
+</p>
+
+<div class="anexample">
+<pre class="codeexample">
+entity(d0, [prov:type="prov:EmptyDictionary"])    // d0 is an empty dictionary
+entity(e1)
+entity(e2)
+entity(e3)
+entity(d1, [prov:type="prov:Dictionary"])
+entity(d2, [prov:type="prov:Dictionary"])
+entity(d3, [prov:type="prov:Dictionary"])
+entity(d4, [prov:type="prov:Dictionary"])
+
+derivedByInsertionFrom(d1, d0, {("k1", e1), ("k2",e2)})       
+derivedByInsertionFrom(d2, d1, {("k3", e3)})
+derivedByRemovalFrom(d3, d2, {"k1", "k3"})   
+derivedByRemovalFrom(d4, d3, {"k1"})   
+</pre>
+From this set of descriptions, we conclude:
+<ul>
+<li><span class="name">d0</span> was the dictionary <span class="name">{  }</span> </li>
+<li><span class="name">d1</span> was the dictionary <span class="name">{ ("k1", e1), ("k2", e2)  }</span> </li>
+<li><span class="name">d2</span> was the dictionary <span class="name">{ ("k1", e1), ("k2", e2), ("k3", e3) }</span> </li>
+<li><span class="name">d3</span> was the dictionary <span class="name">{ ("k2", e2) }</span> </li>
+<li><span class="name">d4</span> was the dictionary <span class="name">{ ("k2", e2) }</span> </li>
+</ul>
+Note that "k1" was not present in d3, and thus its removal to obtain d4 did not change the contents of the dictionary.
+</div>
+
+</section>  <!-- end removal -->
+
+</section> <!-- end conceptual definition dictionary -->
+
+<section id="dictionary-notation"> 
+<h2>PROV-N Notation of Dictionary Concepts</h2>
+The notation used for dictionaries in this document extends the standard PROV-N according to the principles described in <a href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#extensibility">the PROV-N extensibility chapter</a>.
+However, because dictionaries are defined in the same namespace as the rest of PROV-N, the terms in this document do not have a non-empty prefix. For the remainder of this document, we will assume that the default namespace http://www.w3.org/ns/prov# is used, and thus, no prefix is specified for the terms associated with dictionaries.
+<div class="note">Note that the use of a non-empty prefix for extensions of PROV-N is technically not valid. The terms used in this document can be made valid by the addition of a prefix "prov:" to all PROV-Dictionary terms. However, this would greatly reduce the readability of this document.
+  The Working Group is currently discussing how to address this issue before the next Working Draft of this document.</div>
+The [<a href="http://dvcs.w3.org/hg/prov/raw-file/default/dictionary/prov-dictionary-grammar.txt">Grammar for PROV-Dictionary</a>] is available for download.
+
+<section id="expression-dictionary">
+  <h3>Dictionary and EmptyDictionary Expression</h3>
+    PROV-Dictionary provides no dedicated syntax for Collection and EmptyCollection. Dictionaries are declared in <a href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#expression-collection">the same way</a> as Collections. A Dictionary or an EmptyDictionary MUST be expressed as an
+<code class="content"><a class="grammarRef" href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-entityExpression">entityExpression</a></code> with attribute 
+<span  id="provn-type-Dictionary"><code>prov:type='prov:Dictionary'</code></span>, or
+<span  id="provn-type-EmptyDictionary"><code>prov:type='prov:EmptyDictionary'</code></span>, respectively.
+<div class="anexample">
+<p>The  following two expressions are about a dictionary and an empty dictionary, respectively.
+<pre class="codeexample">
+  entity(ex:d1,   [ prov:type='prov:Dictionary' ])
+  entity(ex:d2,   [ prov:type='prov:EmptyDictionary' ])
+</pre>
+</div>
+</section>
+<section id="expression-dictionary-membership">
+<h3>Membership</h3>
+
+<div class="grammar">
+ <span class="nonterminal">membershipExpression</span>&nbsp;::=  
+<span class="name">hadDictionaryMember</span> 
+ <span class="name">(</span>
+<span class="nonterminal">dIdentifier</span>
+ <span class="name">,</span>
+  <span class="nonterminal">eIdentifier</span>
+ <span class="name">,</span>
+  <span class="nonterminal">key</span>
+  <span class="name">)</span>
+  <br>
+</div>
+
+<p>The following table summarizes how each constituent of a PROV-DM Membership maps to a non-terminal.</p>
+
+<div style="text-align: left; ">
+<table class="thinborder" style="margin-left: auto; margin-right: auto;">
+<tr><td><b>Dictionary Membership</b></td><td><b>Non-Terminal</b></td></tr>
+<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
+
+<tr><td><a href="#term-dictionary-membership"><span class='attribute' id="provn-membership-d.dictionary">dictionary</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-dIdentifier">dIdentifier</a></code></td></tr>
+
+<tr><td><a href="#term-dictionary-membership"><span class='attribute' id="provn-membership-d.entity">entity</span></a></td><td><code class="content"><a class="grammarRef" href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-eIdentifier">eIdentifier</a></code></td></tr>
+
+<tr><td><a href="#term-dictionary-membership"><span class='attribute' id="provn-membership-d.key">key</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-key">key</a></code></td></tr>
+
+</table>
+</div>
+
+
+
+<div class="anexample">
+	<p>In this example, d is a dictionary known to have <span class="name">e0</span> as member, and may have other members.</p>
+<pre class="codeexample">
+entity(e0)
+
+entity(d, [prov:type='prov:Dictionary'  ]) 
+hadDictionaryMember(d, e0, "k0")
+</pre>
+</div>
+
+</section> <!-- membership -->
+<section id="expression-dictionary-insertion">
+<h3>Insertion</h3>
+<div class="grammar">
+	<span class="nonterminal">derivationByInsertionFromExpression</span>&nbsp;::=  
+<span class="name">derivedByInsertionFrom</span> 
+ <span class="name">(</span>
+ <span class="optional"><span class="nonterminal">optionalIdentifier</span>
+ <span class="name">;</span></span>
+<span class="nonterminal">dIdentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">dIdentifier</span>
+ <span class="name">,</span>
+  <span class="name">{</span>
+  <span class="nonterminal">keyValuePairs</span>
+   <span class="name">}</span>
+ <span class="name">,</span>
+<span class="nonterminal">optionalAttributeValuePairs</span>
+  <span class="name">)</span>
+</div>
+
+
+<p>The following table summarizes how each constituent of a PROV-Dictionary Insertion maps to a non-terminal.</p>
+<div style="text-align: left; ">
+<table class="thinborder" style="margin-left: auto; margin-right: auto;">
+<tr><td><b>Insertion</b></td><td><b>Non-Terminal</b></td></tr>
+<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
+
+<tr><td><a href="#term-dictionary-insertion"><span class='attribute' id="provn-insertion.id">id</span></a></td><td><code class="content"><a class="grammarRef" href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-optionalIdentifier">optionalIdentifier</a></code></td></tr>
+
+<tr><td><a href="#term-dictionary-insertion"><span class='attribute' id="provn-insertion.after">after</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-dIdentifier">dIdentifier</a></code></td></tr>
+
+<tr><td><a href="#term-dictionary-insertion"><span class='attribute' id="provn-insertion.before">before</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-dIdentifier">dIdentifier</a></code></td></tr>
+
+
+<tr><td><a href="#term-dictionary-insertion"><span class='attribute' id="provn-insertion.key-value-pairs">key-value-pairs</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-keyValuePairs">keyValuePairs</a></code></td></tr>
+
+<tr><td><a href="#term-dictionary-insertion"><span class='attribute' id="provn-insertion.attributes">attributes</span></a></td><td><code class="content"><a class="grammarRef" href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></code></td></tr>
+</table>
+</div>
+
+
+<div class="anexample">
+    <pre class="codeexample">
+ derivedByInsertionFrom(id; d1, d, {("k1", e1), ("k2", e2)}, [])  
+  </pre>
+<p>  Here
+    <span class="name">id</span> is the optional insertion identifier,
+  <span class="name">d1</span> is the  identifier for the dictionary after the insertion,
+  <span class="name">d</span> is the  identifier for the dictionary before the insertion,
+  <span class="name"> {("k1", e1), ("k2", e2)}</span> is the set of key-entity pairs that have been inserted in
+  <span class="name">d</span>,
+    and <span class="name">[]</span> is the optional (empty) set of attributes. </p>
+The remaining examples show cases where some of the optionals are omitted.
+
+  <pre class="codeexample">
+ derivedByInsertionFrom(d1, d, {("k1", e1), ("k2", e2)})  
+ derivedByInsertionFrom(d1, d, {("k1", e1)})  
+ derivedByInsertionFrom(d1, d, {("k1", e1), ("k2", e2)}, [])
+</pre>
+</div>
+
+
+</section> <!-- Insertion -->
+<section id="expression-dictionary-removal">
+	<h3>Removal</h3>
+<div class="grammar">
+ <span class="nonterminal">derivationByRemovalFromExpression</span>&nbsp;::=  
+<span class="name">derivedByRemovalFrom</span> 
+ <span class="name">(</span>
+ <span class="optional"><span class="nonterminal">optionalIdentifier</span>
+ <span class="name">;</span></span>
+<span class="nonterminal">dIdentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">dIdentifier</span>
+ <span class="name">,</span>
+  <span class="name">{</span>
+  <span class="nonterminal">keySet</span>
+   <span class="name">}</span>
+ <span class="name">,</span>
+<span class="nonterminal">optionalAttributeValuePairs</span>
+  <span class="name">)</span>
+  <br>
+</div>
+
+<p>The following table summarizes how each constituent of a PROV-Dictionary Removal maps to a non-terminal.</p>
+<div style="text-align: left; ">
+<table class="thinborder" style="margin-left: auto; margin-right: auto;">
+<tr><td><b>Removal</b></td><td><b>Non-Terminal</b></td></tr>
+<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
+
+<tr><td><a href="#term-dictionary-removal"><span class='attribute' id="provn-removal.id">id</span></a></td><td><code class="content"><a class="grammarRef" href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-optionalIdentifier">optionalIdentifier</a></code></td></tr>
+
+<tr><td><a href="#term-dictionary-removal"><span class='attribute' id="provn-removal.after">after</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-dIdentifier">dIdentifier</a></code></td></tr>
+
+<tr><td><a href="#term-dictionary-removal"><span class='attribute' id="provn-removal.before">before</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-dIdentifier">dIdentifier</a></code></td></tr>
+
+
+<tr><td><a href="#term-dictionary-removal"><span class='attribute' id="provn-removal.key-set">key-set</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-keySet">keySet</a></code></td></tr>
+
+<tr><td><a href="#term-dictionary-removal"><span class='attribute' id="provn-removal.attributes">attributes</span></a></td><td><code class="content"><a class="grammarRef" href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></code></td></tr>
+</table>
+</div>
+
+
+
+
+<div class="anexample">
+    <pre class="codeexample">
+ derivedByRemovalFrom(id; d3, d, {"k1", "k2"}, [])  
+  </pre>
+<p>  Here
+    <span class="name">id</span> is the optional removal identifier,
+  <span class="name">d1</span> is the  identifier for the collection after the removal,
+  <span class="name">d</span> is the  identifier for the collection before the removal,
+  <span class="name"> {"k1", "k2"}</span> is the set of keys that have been removed from
+  <span class="name">d</span>,
+    and <span class="name">[]</span> is the optional (empty) set of attributes. </p>
+  The remaining examples show cases where some of the optionals are omitted.
+
+  <pre class="codeexample">
+   derivedByRemovalFrom(d2, d, {"k1", "k2"})               
+   derivedByRemovalFrom(d2, d, {"k1"})               
+   derivedByRemovalFrom(d2, d, {"k1", "k2"}, [])               
+</pre>
+  </div>
+
+
+</section> <!-- removal -->
+
+<section id="expression-dictionary-other">
+	<h3>Other expressions</h3>
+	For the notation of dictionaries, we used some new non-terminals. We provide their production rules here.
+	
+<div class="grammar">
+<p id="prod-dIdentifier"><span class="nonterminal">dIdentifier</span>&nbsp;::=  
+  <a href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-identifier" class="nonterminal">identifier</a> </p>
+	
+<p id="prod-key"><span class="nonterminal">key</span>&nbsp;::=  
+  <a href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-literal" class="nonterminal">literal</a> </p>
+	
+	<p id="prod-keyValuePairs"><span class="nonterminal">keyValuePairs</span>&nbsp;::=  
+	<a href="#prod-keyValuePair" class="nonterminal">keyValuePair</a> <span class="star"><span class="name">,</span> <a href="#prod-keyValuePair" class="nonterminal">keyValuePair</a></span> </p>
+	
+	<p id="prod-keyValuePair"><span class="nonterminal">keyValuePair</span>&nbsp;::=  
+	<span class="name">(</span> <a href="#prod-key" class="nonterminal">key</a> <span class="name">,</span> <a href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-eIdentifier" class="nonterminal">eIdentifier</a> <span class="name">)</span> </p>
+	
+	<p id="prod-keySet"><span class="nonterminal">keySet</span>&nbsp;::=  
+	<a href="#prod-key" class="nonterminal">key</a> <span class="star"><span class="name">,</span> <a href="#prod-key" class="nonterminal">key</a></span> </p>
+
+</div>
+</section> <!-- other -->
+
+</section>
+
+<section id="dictionary-ontological-definition"> 
+<h2>PROV-O Representation of Dictionary</h2>
+<p>In this section, the ontological definition of <code>prov:Dictionary</code> is given, in order to extend [[PROV-O]] with dictionaries. For more information on the terminology, syntax and conventions used in this section, we refer to [[PROV-O]].</p>
+<p>The classes and properties defined in this document will be included in the default namespace of PROV.
+  Users of the ontology have the option of importing <code>&lt;http://www.w3.org/ns/prov#&gt;</code>, which includes all extensions, including PROV-Dictionary, or if they wish to have only [[PROV-O]] terms, they can import <code>&lt;http://www.w3.org/ns/prov-o#&gt;</code>. Similarly, <code>&lt;http://www.w3.org/ns/prov-dictionary#&gt;</code> holds only the PROV-Dictionary terms.
+The [<a href="https://dvcs.w3.org/hg/prov/raw-file/default/dictionary/prov-dictionary.owl">OWL file for PROV-Dictionary</a>] is available for download. (Note that this file is unfinished at the time of this working draft, and may be subject to change.)</p>
+  
+  <p> A <code><a class="qname"
+	href='#Dictionary'>prov:Dictionary</a></code> is a <code
+class="repeated">prov:Entity</code> that acts as a container to some members,
+which are themselves entities.
+Specifically, a dictionary is composed of set of key-value pairs, where a
+literal key is used to identify a constituent entity within the dictionary. 
+
+
+</p>
+<div class="exampleOuter">
+   <pre class="example">
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] :     &lt;http://example.org/&gt; .
+
+:e1 a prov:Entity .
+:e2 a prov:Entity .
+
+:d1 a prov:Dictionary;
+    prov:hadDictionaryMember [ 
+       a prov:KeyValuePair;
+       prov:pairKey   &quot;k1&quot;^^xsd:string;
+       prov:pairValue :e1
+     ], [ 
+       a prov:KeyValuePair;
+       prov:pairKey   &quot;k2&quot;^^xsd:string;
+       prov:pairValue :e2
+     ];
+.
+</pre>
+</div>
+
+<p>It is worth noting that <code>:d1</code> MAY also
+have other members.  If one wants to explicitly state that a dictionary has no members, that dictionary can be described as an instance of the
+subclass <a class="qname"
+href='#EmptyDictionary'><code>prov:EmptyDictionary</code></a>.
+</p>
+
+	<p> To describe the provenance of a dictionary, PROV-Dictionary provides two
+kinds of influence: <code><a class="qname"
+href="#qualifiedInsertion">prov:qualifiedInsertion</a></code> is used to
+describe that a dictionary was obtained from an existing dictionary by
+<a href="#term-dictionary-insertion">inserting</a> a set of key-value pairs.  <code><a class="qname"
+href="#qualifiedRemoval">prov:qualifiedRemoval</a></code> is used to specify
+that a given dictionary was obtained from an existing dictionary by
+  <a href="#term-dictionary-removal">removing</a> a set of key-value pairs.  The example below specifies that
+the dictionary <code>:d1</code> was obtained from the empty dictionary
+<code>:d</code> by <em>inserting</em> the key-value pairs <code>("k1",
+:e1)</code> and <code>("k2", :e2)</code>.  
+</p>
+
+<div class="exampleOuter">
+<pre class="example">@prefix prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] :     &lt;http://example.org/&gt; .
+
+:e1 a prov:Entity .
+:e2 a prov:Entity .
+
+:d  a prov:EmptyDictionary .
+
+:d1 a prov:Dictionary;
+   prov:derivedByInsertionFrom :d;
+   prov:qualifiedInsertion [ 
+      a prov:Insertion;
+      prov:dictionary :d;
+      prov:insertedKeyValuePair [ 
+         a prov:KeyValuePair;
+         prov:pairKey   &quot;k1&quot;^^xsd:string;
+         prov:pairValue :e1;
+      ], [ 
+         a prov:KeyValuePair;
+         prov:pairKey   &quot;k2&quot;^^xsd:string;
+         prov:pairValue :e2;
+      ];
+   ]; 
+. 
+</pre>
+</div>
+
+
+	<p>
+	Similarly, the example below specifies that the dictionary
+	<code>:d3</code> was obtained by <em>removing</em> the key-value pairs associated with
+	the keys <code>"k1"</code> and <code>"k2"</code> from the dictionary
+	<code>:d2</code>. Thus, <code>:d3</code> does not contain the
+	members <code>("k1", :e1)</code> and <code>("k2",
+	:e2)</code> from <code>:d2</code>.
+	</p>
+
+<div class="exampleOuter">
+   <pre class="example">@prefix prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] :     &lt;http://example.org/&gt; .
+
+:d2 a prov:Dictionary .
+
+:d3 a prov:Dictionary;
+   prov:derivedByRemovalFrom :d2;
+   prov:qualifiedRemoval [ 
+      a prov:Removal;
+      prov:dictionary :d2;
+      prov:removedKey    &quot;k1&quot;^^xsd:string, 
+                      &quot;k3&quot;^^xsd:string;
+   ];
+.
+</pre>
+</div>
+<section id="prov-dictionary-owl-terms-at-a-glance">
+  <h3>Overview</h3>
+        <p>These terms are used to describe the provenance of dictionaries.</p>
+         
+  <ul class="hlist">
+    <li>
+      <a href="#Dictionary">prov:Dictionary</a>
+    </li>
+    <li>
+      <a href="#EmptyDictionary">prov:EmptyDictionary</a>
+    </li>
+    <li>
+      <a href="#Insertion">prov:Insertion</a>
+    </li>
+    <li>
+      <a href="#KeyValuePair">prov:KeyValuePair</a>
+    </li>
+    <li>
+      <a href="#Removal">prov:Removal</a>
+    </li>
+    <li class="object-property">
+      <a href="#derivedByInsertionFrom">prov:derivedByInsertionFrom</a>
+    </li>
+    <li class="object-property">
+      <a href="#derivedByRemovalFrom">prov:derivedByRemovalFrom</a>
+    </li>
+    <li class="object-property">
+      <a href="#dictionary">prov:dictionary</a>
+    </li>
+    <li class="object-property">
+      <a href="#insertedKeyValuePair">prov:insertedKeyValuePair</a>
+    </li>
+    <li class="object-property">
+      <a href="#hadDictionaryMember">prov:hadDictionaryMember</a>
+    </li>
+    <li class="datatype-property">
+      <a href="#pairKey">prov:pairKey</a>
+    </li>
+    <li class="object-property">
+      <a href="#pairValue">prov:pairValue</a>
+    </li>
+    <li class="object-property">
+      <a href="#qualifiedInsertion">prov:qualifiedInsertion</a>
+    </li>
+    <li class="object-property">
+      <a href="#qualifiedRemoval">prov:qualifiedRemoval</a>
+    </li>
+    <li class="datatype-property">
+      <a href="#removedKey">prov:removedKey</a>
+    </li>
+  </ul>
+     </section>
+
+<section id="Classes">
+  <h3>Dictionary Classes</h3>
+  <div id="Dictionary" class="entity">
+    <h3>
+      Class: <a href="#Dictionary"><span class="dotted" title="http://www.w3.org/ns/prov#Dictionary">prov:Dictionary</span></a>
+      <span class="backlink">
+         back to <a href="#prov-dictionary-owl-terms-at-a-glance">overview</a>
+      </span>
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#Dictionary</p>
+    <div class="definition"><p>A dictionary is an entity that provides a structure to some constituents, which are themselves entities. These constituents are said to be member of the dictionary.</p>
+    </div>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre >@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] my:     &lt;http://example.org/ontology#&gt; .
[email protected] dcterms: &lt;http://purl.org/dc/terms/&gt; .
[email protected] :     &lt;http://example.org/&gt; .
+
+:seating_chart_2012
+   a prov:Dictionary, prov:Collection, prov:Entity, my:SeatingChart;
+   prov:derivedByInsertionFrom :seating_chart_2011;
+   dcterms:date "2012";
+   my:hasTotalStudents 45;
+.
+</pre>
+    </div>
+
+    <dl class="description">
+    <dd class="comment"><p>This concept allows for the provenance of the dictionary, but also of its constituents to be expressed. Such a notion of dictionary corresponds to a wide variety of concrete data structures, such as a maps or associative arrays.</p>
+    </dd>
+    <dd class="comment"><p>A given dictionary forms a given structure for its members. A different structure (obtained either by insertion or removal of members) constitutes a different dictionary.</p>
+    </dd>
+
+      <dt>is subclass of</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#Collection" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#Collection" class="owlclass">prov:Collection</a>
+      </dd>
+
+      <dt>described with properties</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#hadDictionaryMember" href="#hadDictionaryMember">prov:hadDictionaryMember</a><sup class="type-op" title="object property">op</sup>
+        <a title="http://www.w3.org/ns/prov#derivedByInsertionFrom" href="#derivedByInsertionFrom">prov:derivedByInsertionFrom</a><sup class="type-op" title="object property">op</sup>
+        <a title="http://www.w3.org/ns/prov#qualifiedRemoval" href="#qualifiedRemoval">prov:qualifiedRemoval</a><sup class="type-op" title="object property">op</sup>
+        <a title="http://www.w3.org/ns/prov#qualifiedInsertion" href="#qualifiedInsertion">prov:qualifiedInsertion</a><sup class="type-op" title="object property">op</sup>
+        <a title="http://www.w3.org/ns/prov#derivedByRemovalFrom" href="#derivedByRemovalFrom">prov:derivedByRemovalFrom</a><sup class="type-op" title="object property">op</sup>
+      </dd>
+
+      <dt>in range of</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#derivedByInsertionFrom" href="#derivedByInsertionFrom">prov:derivedByInsertionFrom</a><sup class="type-op" title="object property">op</sup>
+        <a title="http://www.w3.org/ns/prov#derivedByRemovalFrom" href="#derivedByRemovalFrom">prov:derivedByRemovalFrom</a><sup class="type-op" title="object property">op</sup>
+        <a title="http://www.w3.org/ns/prov#dictionary" href="#dictionary">prov:dictionary</a><sup class="type-op" title="object property">op</sup>
+      </dd>
+
+      <dt>has subclass</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#EmptyDictionary" href="#EmptyDictionary" class="owlclass">prov:EmptyDictionary</a>
+      </dd>
+    </dl>
+  </div>
+
+  <div id="EmptyDictionary" class="entity">
+    <h3>
+      Class: <a href="#EmptyDictionary"><span class="dotted" title="http://www.w3.org/ns/prov#EmptyDictionary">prov:EmptyDictionary</span></a>
+      <span class="backlink">
+         back to <a href="#prov-dictionary-owl-terms-at-a-glance">overview</a>
+      </span>
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#EmptyDictionary</p>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre>@prefix prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] :     &lt;http://example.org/&gt; .
+
+:e1 a prov:Entity .
+:e2 a prov:Entity .
+
+:d  a prov:EmptyDictionary
+.</pre>
+    </div>
+
+    <dl class="description">
+    <dd class="comment"><p>An empty dictionary (i.e. has no members).</p>
+    </dd>
+
+      <dt>is subclass of</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+        <a title="http://www.w3.org/ns/prov#EmptyCollection" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#EmptyCollection" class="owlclass">prov:EmptyCollection</a>
+      </dd>
+    </dl>
+  </div>
+
+  <div id="Insertion" class="entity">
+    <h3>
+      Class: <a href="#Insertion"><span class="dotted" title="http://www.w3.org/ns/prov#Insertion">prov:Insertion</span></a>
+      <span class="backlink">
+         back to <a href="#prov-dictionary-owl-terms-at-a-glance">overview</a>
+      </span>
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#Insertion</p>
+    <div class="definition"><p>Insertion is a derivation that transforms a dictionary into another, by insertion of one or more key-value pairs.</p>
+    </div>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
+
+:our-NEW-baseball-team-field-positions
+   a prov:Dictionary, 
+         :FieldPositions;
+   prov:derivedByInsertionFrom :our-old-baseball-team-field-positions;
+   prov:qualifiedInsertion [ 
+      a prov:Insertion;
+      prov:dictionary :our-old-baseball-team-field-positions;
+      prov:insertedKeyValuePair [ 
+         a prov:KeyValuePair;
+         prov:pairKey   &quot;first-baseman&quot;^^xsd:string;
+         prov:pairValue &lt;http://dbpedia.org/resource/Jim_Thorpe&gt;;
+      ];
+   ];
+.
+
+&lt;http://dbpedia.org/resource/Jim_Thorpe&gt; a prov:Entity .
+
+:our-old-baseball-team-field-positions a prov:Dictionary .
+</pre>
+    </div>
+
+    <dl class="description">
+    <dd class="comment"><p>Insertion is a derivation that transforms a dictionary into another, by insertion of one or more key-value pairs.</p>
+    </dd>
+
+      <dt>is subclass of</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#Derivation" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#Derivation" class="owlclass">prov:Derivation</a>
+      </dd>
+      <dt>described with properties</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#dictionary" href="#dictionary" class="owlclass">prov:dictionary</a>
+        <a title="http://www.w3.org/ns/prov#insertedKeyValuePair" href="#insertedKeyValuePair" class="owlclass">prov:insertedKeyValuePair</a>
+      </dd>
+
+      <dt>in range of</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#qualifiedInsertion" href="#qualifiedInsertion">prov:qualifiedInsertion</a><sup class="type-op" title="object property">op</sup>
+      </dd>
+
+      <dt>qualifies</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#derivedByInsertionFrom" href="#derivedByInsertionFrom" class="owlproperty">prov:derivedByInsertionFrom</a>
+      </dd>
+    </dl>
+  </div>
+
+  <div id="KeyValuePair" class="entity">
+    <h3>
+      Class: <a href="#KeyValuePair"><span class="dotted" title="http://www.w3.org/ns/prov#KeyValuePair">prov:KeyValuePair</span></a>
+      <span class="backlink">
+         back to <a href="#prov-dictionary-owl-terms-at-a-glance">overview</a>
+      </span>
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#KeyValuePair</p>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
+
+
+:our-baseball-team-field-positions
+   a prov:Dictionary, 
+         :FieldPositions;
+    prov:hadDictionaryMember [
+       a prov:KeyValuePair;
+       prov:pairKey &quot;first-baseman&quot;^^xsd:string;
+       prov:pairValue :george;
+    ];
+    prov:hadDictionaryMember [
+       a prov:KeyValuePair;
+       prov:pairKey &quot;pitcher&quot;^^xsd:string;
+       prov:pairValue :carl;
+    ];
+.
+
+:george a prov:Entity .
+:carl   a prov:Entity . 
+</pre>
+    </div>
+
+    <dl class="description">
+    <dd class="comment"><p>A key-value pair. Part of a prov:Dictionary through prov:hadDictionaryMember. The key is any RDF Literal, the value is a prov:Entity.</p>
+    </dd>
+
+      <dt>described with properties</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#pairKey" href="#pairKey">prov:pairKey</a><sup class="type-dp" title="data property">dp</sup>
+        <a title="http://www.w3.org/ns/prov#pairValue" href="#pairValue">prov:pairValue</a><sup class="type-op" title="object property">op</sup>
+      </dd>
+
+      <dt>in range of</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#hadDictionaryMember" href="#hadDictionaryMember">prov:hadDictionaryMember</a><sup class="type-op" title="object property">op</sup>
+        <a title="http://www.w3.org/ns/prov#insertedKeyValuePair" href="#insertedKeyValuePair">prov:insertedKeyValuePair</a><sup class="type-op" title="object property">op</sup>
+      </dd>
+    </dl>
+  </div>
+
+  <div id="Removal" class="entity">
+    <h3>
+      Class: <a href="#Removal"><span class="dotted" title="http://www.w3.org/ns/prov#Removal">prov:Removal</span></a>
+      <span class="backlink">
+         back to <a href="#prov-dictionary-owl-terms-at-a-glance">overview</a>
+      </span>
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#Removal</p>
+    <div class="definition"><p>Removal is a derivation that transforms a dictionary into another, by removing one or more key-value pairs.</p>
+    </div>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
+
+:d1 a prov:Dictionary .
+
+:d2 
+   a prov:Dictionary, 
+     prov:Entity;
+   prov:derivedByRemovalFrom :d1;
+   prov:qualifiedRemoval [
+      a prov:Removal, prov:DictionaryInvolvement;
+      prov:dictionary :d1;
+      prov:removedKey &quot;k1&quot;^^xsd:string, 
+                      &quot;k2&quot;^^xsd:string;
+   ];
+.
+</pre>
+    </div>
+<div>
+    <dl class="description">
+    <dd class="comment"><p>Removal is a derivation that transforms a dictionary into another, by removing one or more key-value pairs specified by <a title="http://www.w3.org/ns/prov#removedKey" href="#removedKey">prov:removedKey</a>.</p>
+    </dd>
+
+      <dt>is subclass of</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#Derivation" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#Derivation" class="owlclass">prov:Derivation</a>
+      </dd>
+
+      <dt>described with properties</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#dictionary" href="#dictionary" class="owlclass">prov:dictionary</a>
+        <a title="http://www.w3.org/ns/prov#removedKey" href="#removedKey">prov:removedKey</a><sup class="type-dp" title="data property">dp</sup>
+      </dd>
+
+      <dt>in range of</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#qualifiedRemoval" href="#qualifiedRemoval">prov:qualifiedRemoval</a><sup class="type-op" title="object property">op</sup>
+      </dd>
+
+      <dt>qualifies</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#derivedByRemovalFrom" href="#derivedByRemovalFrom" class="owlproperty">prov:derivedByRemovalFrom</a>
+      </dd>
+    </dl>
+  </div>
+</div>
+</section>
+<section id="Properties">
+  <h3>Dictionary Properties</h3>
+<div
+     class="prov-collections owl-properties crossreference">
+  <div id="derivedByInsertionFrom" class="entity">
+    <h3>
+      Property: <a href="#derivedByInsertionFrom"><span class="dotted" title="http://www.w3.org/ns/prov#derivedByInsertionFrom">prov:derivedByInsertionFrom</span></a><sup class="type-op" title="object property">op</sup>
+      
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#derivedByInsertionFrom</p>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
+
+
+:e1 a prov:Entity .
+:e2 a prov:Entity .
+
+:d  a prov:EmptyDictionary .
+
+:d1 a prov:Dictionary;
+   prov:derivedByInsertionFrom :d;
+   prov:qualifiedInsertion [ 
+      a prov:Insertion;
+      prov:dictionary :d;
+      prov:insertedKeyValuePair [ 
+         a prov:KeyValuePair;
+         prov:pairKey   &quot;k1&quot;^^xsd:string;
+         prov:pairValue :e1;
+      ], [ 
+         a prov:KeyValuePair;
+         prov:pairKey   &quot;k2&quot;^^xsd:string;
+         prov:pairValue :e2;
+      ];
+   ]; 
+. </pre>
+    </div>
+
+    <div class="description">
+      <div class="comment"><p>The dictionary was derived from the other by insertion. prov:qualifiedInsertion shows details of the insertion, in particular the inserted key-value pairs.</p>
+      </div>
+      <dl>
+
+        <dt>has super-properties</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#wasDerivedFrom" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#wasDerivedFrom" class="owlclass">prov:wasDerivedFrom</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>has domain</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>has range</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>can be qualified with</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#qualifiedInsertion" href="#qualifiedInsertion" class="owlproperty">prov:qualifiedInsertion</a>
+            </li>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Insertion" href="#Insertion" class="owlclass">prov:Insertion</a>
+            </li>
+          </ul>
+        </dd>
+
+      </dl>
+    </div>
+  </div>
+
+  <div id="derivedByRemovalFrom" class="entity">
+    <h3>
+      Property: <a href="#derivedByRemovalFrom"><span class="dotted" title="http://www.w3.org/ns/prov#derivedByRemovalFrom">prov:derivedByRemovalFrom</span></a><sup class="type-op" title="object property">op</sup>
+      
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#derivedByRemovalFrom</p>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
+
+:d1 a prov:Dictionary .
+
+:d2 
+   a prov:Dictionary, prov:Entity;
+   prov:derivedByRemovalFrom :d1;
+   prov:qualifiedRemoval [
+      a prov:Removal;
+      prov:dictionary :d1;
+      prov:removedKey &quot;k1&quot;^^xsd:string, 
+                      &quot;k2&quot;^^xsd:string;
+   ];
+.
+</pre>
+    </div>
+
+    <div class="description">
+      <div class="comment"><p>The dictionary was derived from the other by removal. prov:qualifiedRemoval shows details of the removal, in particular the removed key-value pairs.</p>
+      </div>
+      <dl>
+
+        <dt>has super-properties</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#wasDerivedFrom" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#wasDerivedFrom" class="owlclass">prov:wasDerivedFrom</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>has domain</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>has range</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>can be qualified with</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#qualifiedRemoval" href="#qualifiedRemoval" class="owlproperty">prov:qualifiedRemoval</a>
+            </li>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Removal" href="#Removal" class="owlclass">prov:Removal</a>
+            </li>
+          </ul>
+        </dd>
+
+      </dl>
+    </div>
+  </div>
+
+  <div id="dictionary" class="entity">
+    <h3>
+      Property: <a href="#dictionary"><span class="dotted" title="http://www.w3.org/ns/prov#dictionary">prov:dictionary</span></a><sup class="type-op" title="object property">op</sup>
+      
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#dictionary</p>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre>@prefix prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] :     &lt;http://example.org/&gt; .
+
+:e1 a prov:Entity .
+
+:d  a prov:EmptyDictionary .
+
+:d1 a prov:Dictionary;
+   prov:derivedByInsertionFrom :d;
+   prov:qualifiedInsertion [ 
+      a prov:Insertion;
+      prov:dictionary :d;
+      prov:insertedKeyValuePair [ 
+         a prov:KeyValuePair;
+         prov:pairKey   &quot;k1&quot;^^xsd:string;
+         prov:pairValue :e1;
+      ];
+   ]; 
+. 
+</pre>
+    </div>
+
+    <div class="description">
+      <div class="comment"><p>The property used by a prov:Insertion and prov:Removal to cite the prov:Dictionary that was prov:derivedByInsertionFrom or prov:derivedByRemovalFrom another dictionary. </p>
+      </div>
+      <dl>
+
+        <dt>has super-properties</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#entity" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#p_entity" class="owlclass">prov:entity</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>has domain</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Insertion" href="#Insertion" class="owlclass">prov:Insertion</a> or 
+              <a title="http://www.w3.org/ns/prov#Removal" href="#Removal" class="owlclass">prov:Removal</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>has range</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+            </li>
+          </ul>
+        </dd>
+
+      </dl>
+    </div>
+  </div>
+
+  <div id="insertedKeyValuePair" class="entity">
+    <h3>
+      Property: <a href="#insertedKeyValuePair"><span class="dotted" title="http://www.w3.org/ns/prov#insertedKeyValuePair">prov:insertedKeyValuePair</span></a><sup class="type-op" title="object property">op</sup>
+      
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#insertedKeyValuePair</p>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
+
+:our-NEW-baseball-team-field-positions
+   a prov:Dictionary, 
+         :FieldPositions;
+   prov:derivedByInsertionFrom :our-old-baseball-team-field-positions;
+   prov:qualifiedInsertion [ 
+      a prov:Insertion;
+      prov:dictionary :our-old-baseball-team-field-positions;
+      prov:insertedKeyValuePair [ 
+         a prov:KeyValuePair;
+         prov:pairKey   &quot;first-baseman&quot;^^xsd:string;
+         prov:pairValue &lt;http://dbpedia.org/resource/Jim_Thorpe&gt;;
+      ];
+   ];
+.
+
+&lt;http://dbpedia.org/resource/Jim_Thorpe&gt; a prov:Entity .
+
+:our-old-baseball-team-field-positions a prov:Dictionary .
+</pre>
+    </div>
+
+    <div class="description">
+      <div class="comment"><p>An object property to refer to the prov:KeyValuePair inserted into a prov:Dictionary.</p>
+      </div>
+      <dl>
+
+        <dt>has domain</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Insertion" href="#Insertion" class="owlclass">prov:Insertion</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>has range</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#KeyValuePair" href="#KeyValuePair" class="owlclass">prov:KeyValuePair</a>
+            </li>
+          </ul>
+        </dd>
+
+      </dl>
+    </div>
+  </div>
+
+  <div id="hadDictionaryMember" class="entity">
+    <h3>
+      Property: <a href="#hadDictionaryMember"><span class="dotted" title="http://www.w3.org/ns/prov#hadDictionaryMember">prov:hadDictionaryMember</span></a><sup class="type-op" title="object property">op</sup>
+      
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#hadDictionaryMember</p>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
+
+:our-old-baseball-team-field-positions
+   a prov:Dictionary, 
+         :FieldPositions;
+      prov:hadDictionaryMember [
+         a prov:KeyValuePair;
+         prov:pairKey &quot;first-baseman&quot;^^xsd:string;
+         prov:pairValue :george;
+      ], [
+         a prov:KeyValuePair;
+         prov:pairKey &quot;pitcher&quot;^^xsd:string;
+         prov:pairValue :carl;
+      ];
+.
+
+:george a prov:Entity .
+:carl   a prov:Entity . 
+</pre>
+    </div>
+
+    <div class="description">
+      <div class="comment"><p>Describes the key-value pair that was member of a prov:Dictionary. A dictionary can have multiple members.</p>
+      </div>
+      <dl>
+
+        <dt>has domain</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>has range</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#KeyValuePair" href="#KeyValuePair" class="owlclass">prov:KeyValuePair</a>
+            </li>
+          </ul>
+        </dd>
+
+      </dl>
+    </div>
+  </div>
+
+
+  <div id="pairKey" class="entity">
+    <h3>
+      Property: <a href="#pairKey"><span class="dotted" title="http://www.w3.org/ns/prov#pairKey">prov:pairKey</span></a><sup class="type-dp" title="data property">dp</sup>
+      
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#pairKey</p>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
+
+:our-old-baseball-team-field-positions
+   a prov:Dictionary, 
+         :FieldPositions;
+      prov:hadDictionaryMember [
+         a prov:KeyValuePair;
+         prov:pairKey &quot;first-baseman&quot;^^xsd:string;
+         prov:pairValue :george;
+      ], [
+         a prov:KeyValuePair;
+         prov:pairKey &quot;pitcher&quot;^^xsd:string;
+         prov:pairValue :carl;
+      ];
+.
+
+:george a prov:Entity .
+:carl   a prov:Entity . 
+</pre>
+    </div>
+
+    <div class="description">
+      <div class="comment"><p>The key of a KeyValuePair, which is an element of a prov:Dictionary.</p>
+      </div>
+      <p><strong>has characteristics</strong> <a href="http://www.w3.org/TR/owl2-syntax/#Functional_Object_Properties"> Functional</a>      </p>
+      <dl>
+
+        <dt>has domain</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#KeyValuePair" href="#KeyValuePair" class="owlclass">prov:KeyValuePair</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>has range</dt>
+        <dd>
+          <ul>
+            <li>
+              http://www.w3.org/2000/01/rdf-schema#Literal
+            </li>
+          </ul>
+        </dd>
+
+      </dl>
+    </div>
+  </div>
+
+  <div id="pairValue" class="entity">
+    <h3>
+      Property: <a href="#pairValue"><span class="dotted" title="http://www.w3.org/ns/prov#pairValue">prov:pairValue</span></a><sup class="type-op" title="object property">op</sup>
+      
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#pairValue</p>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
+
+:our-old-baseball-team-field-positions
+   a prov:Dictionary, 
+         :FieldPositions;
+      prov:hadDictionaryMember [
+         a prov:KeyValuePair;
+         prov:pairKey &quot;first-baseman&quot;^^xsd:string;
+         prov:pairValue :george;
+      ], [
+         a prov:KeyValuePair;
+         prov:pairKey &quot;pitcher&quot;^^xsd:string;
+         prov:pairValue :carl;
+      ];
+.
+
+:george a prov:Entity .
+:carl   a prov:Entity . 
+</pre>
+    </div>
+
+    <div class="description">
+      <div class="comment"><p>The value of a KeyValuePair.</p>
+      </div>
+      <p><strong>has characteristics</strong> <a href="http://www.w3.org/TR/owl2-syntax/#Functional_Object_Properties"> Functional</a>      </p>
+      <dl>
+
+        <dt>has domain</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#KeyValuePair" href="#KeyValuePair" class="owlclass">prov:KeyValuePair</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>has range</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Entity" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#Entity" class="owlclass">prov:Entity</a>
+            </li>
+          </ul>
+        </dd>
+
+      </dl>
+    </div>
+  </div>
+
+  <div id="qualifiedInsertion" class="entity">
+    <h3>
+      Property: <a href="#qualifiedInsertion"><span class="dotted" title="http://www.w3.org/ns/prov#qualifiedInsertion">prov:qualifiedInsertion</span></a><sup class="type-op" title="object property">op</sup>
+      
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#qualifiedInsertion</p>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
+
+:our-NEW-baseball-team-field-positions
+   a prov:Dictionary, 
+         :FieldPositions;
+   prov:derivedByInsertionFrom :our-old-baseball-team-field-positions;
+   prov:qualifiedInsertion [ 
+      a prov:Insertion;
+      prov:dictionary :our-old-baseball-team-field-positions;
+      prov:insertedKeyValuePair [ 
+         a prov:KeyValuePair;
+         prov:pairKey   &quot;first-baseman&quot;^^xsd:string;
+         prov:pairValue &lt;http://dbpedia.org/resource/Jim_Thorpe&gt;;
+      ];
+   ];
+.
+
+&lt;http://dbpedia.org/resource/Jim_Thorpe&gt; a prov:Entity .
+
+:our-old-baseball-team-field-positions
+   a prov:Dictionary, 
+         :FieldPositions  .
+
+</pre>
+    </div>
+
+    <div class="description">
+      <div class="comment"><p>The dictionary was derived from the other by insertion. prov:qualifiedInsertion shows details of the insertion, in particular the inserted key-value pairs.</p>
+      </div>
+      <dl>
+
+        <dt>has domain</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>has range</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Insertion" href="#Insertion" class="owlclass">prov:Insertion</a>
+            </li>
+          </ul>
+        </dd>
+
+      <dt>qualifies</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#derivedByInsertionFrom" href="#derivedByInsertionFrom" class="owlproperty">prov:derivedByInsertionFrom</a>
+      </dd>
+
+      </dl>
+    </div>
+  </div>
+
+  <div id="qualifiedRemoval" class="entity">
+    <h3>
+      Property: <a href="#qualifiedRemoval"><span class="dotted" title="http://www.w3.org/ns/prov#qualifiedRemoval">prov:qualifiedRemoval</span></a><sup class="type-op" title="object property">op</sup>
+      
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#qualifiedRemoval</p>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
+
+:d1 a prov:Dictionary .
+
+:d2 
+   a prov:Dictionary, prov:Entity;
+   prov:derivedByRemovalFrom :d1;
+   prov:qualifiedRemoval [
+      a prov:Removal;
+      prov:dictionary :d1;
+      prov:removedKey &quot;k1&quot;^^xsd:string, 
+                      &quot;k2&quot;^^xsd:string;
+   ];
+.
+</pre>
+    </div>
+
+    <div class="description">
+      <div class="comment"><p>The dictionary was derived from the other by removal. prov:qualifiedRemoval shows details of the removal, in particular the removed keys.</p>
+      </div>
+      <dl>
+
+        <dt>has domain</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>has range</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Removal" href="#Removal" class="owlclass">prov:Removal</a>
+            </li>
+          </ul>
+        </dd>
+
+      <dt>qualifies</dt>
+      <dd>
+        <a title="http://www.w3.org/ns/prov#derivedByRemovalFrom" href="#derivedByRemovalFrom" class="owlproperty">prov:derivedByRemovalFrom</a>
+      </dd>
+
+      </dl>
+    </div>
+  </div>
+
+  <div id="removedKey" class="entity">
+    <h3>
+      Property: <a href="#removedKey"><span class="dotted" title="http://www.w3.org/ns/prov#removedKey">prov:removedKey</span></a><sup class="type-dp" title="data property">dp</sup>
+      
+    </h3>
+    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#removedKey</p>
+
+    <div class="example">
+      <strong>Example</strong>
+      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
+
+:d2 
+   a prov:Dictionary, 
+     prov:Entity;
+   prov:derivedByRemovalFrom :d1;
+   prov:qualifiedRemoval [
+      a prov:Removal, 
+        prov:DictionaryInvolvement;
+      prov:dictionary :d1;
+      prov:removedKey &quot;k1&quot;^^xsd:string, 
+                       1337, 
+                       3.14;
+   ];
+.
+</pre>
+    </div>
+
+    <div class="description">
+      <div class="comment"><p>The key removed in a Removal.</p>
+      </div>
+      <dl>
+
+        <dt>has domain</dt>
+        <dd>
+          <ul>
+            <li>
+              <a title="http://www.w3.org/ns/prov#Removal" href="#Removal" class="owlclass">prov:Removal</a>
+            </li>
+          </ul>
+        </dd>
+
+        <dt>has range</dt>
+        <dd>
+          <ul>
+            <li>
+              http://www.w3.org/2000/01/rdf-schema#Literal
+            </li>
+          </ul>
+        </dd>
+
+      </dl>
+    </div>
+  </div>
+  </div>
+</section>
+
+</section>
+
+<section id="dictionary-xml-schema"> 
+<h2>PROV-XML Representation of Dictionary</h2>
+This section details how to describe dictionaries with
+the [[PROV-XML]] serialization. The [<a href="http://dvcs.w3.org/hg/prov/raw-file/default/xml/schema/extensions/prov-dictionary.xsd">XML schema for PROV-Dictionary</a>] is available for download. 
+<div class="note">The Working Group is currently discussing the best way of disseminating the XML Schema for PROV-DM and its extensions. For now, we recommend importing both the [<a href="https://dvcs.w3.org/hg/prov/raw-file/default/xml/prov-xml.html#prov-xml-schema">PROV-XML Schema</a>] and the [<a href="https://dvcs.w3.org/hg/prov/raw-file/default/xml/schema/extensions/prov-dictionary.xsd">XML schema for PROV-Dictionary</a>].</div>
+<section id="term-Dictionary">
+<h3>Dictionary</h3>
+<div class="glossary-ref" data-ref="glossary-dictionary"></div>
+<p>To specialize an Entity as a Dictionary, include a <code>prov:type</code> with the value "prov:Dictionary".</p>
+<p>An EmptyDictionary is asserted with the <code>prov:type</code> "prov:EmptyDictionary" and denotes a Dictionary with no members.</p>
+<pre class="example">
+&lt;prov:document
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:prov="http://www.w3.org/ns/prov#"
+    xmlns:ex="http://example.com/ns/ex#"&gt;
+
+  &lt;!-- d0 is an empty dictionary --&gt;
+  <b>&lt;prov:entity prov:id="d0"&gt;
+    &lt;prov:type xsi:type="xsd:QName"&gt;prov:EmptyDictionary&lt;/prov:type&gt;
+  &lt;/prov:entity&gt;</b>
+
+  &lt;!-- d1 is a dictionary, with (so far) unknown content --&gt;
+  <b>&lt;prov:entity prov:id="d1"&gt;
+    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Dictionary&lt;/prov:type&gt;
+  &lt;/prov:entity&gt;</b>
+
+&lt;/prov:document&gt;
+</pre>
+</section>  <!-- end XML:Dictionary -->
+
+
+<section id="term-KeyValuePair">
+<h3>Key-Value Pair</h3>
+<div class="glossary-ref" data-ref="glossary-keyValuePair"></div>
+<p>Key-value pairs are used to identify the members of a dictionary.</p>
+<pre class="schema-type">
+&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="KeyValuePair"  &gt;
+  &lt;xs:element name="entity" type="prov:IDRef" /&gt;
+  &lt;xs:element name="key" type="xs:anySimpleType" /&gt;
+&lt;/xs:complexType&gt;
+</pre>
+<pre class="schema-usage">
+&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="keyValuePair" type="prov:KeyValuePair"/&gt;
+</pre>
+<pre class="example">
+&lt;prov:document&gt;
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:prov="http://www.w3.org/ns/prov#"
+    xmlns:ex="http://example.com/ns/ex#"&gt;
+
+  &lt;prov:entity prov:id="e0"/&gt;
+  &lt;prov:entity prov:id="e1"/&gt;
+  
+  <b>&lt;prov:keyValuePair&gt;
+    &lt;prov:entity prov:ref="e0"/&gt;
+    &lt;prov:key&gt;k0&lt;/prov:key&gt;
+  &lt;/prov:keyValuePair&gt;
+  
+  &lt;prov:keyValuePair&gt;
+    &lt;prov:entity prov:ref="e1"/&gt;
+    &lt;prov:key&gt;k1&lt;/prov:key&gt;
+  &lt;/prov:keyValuePair&gt;</b>
+&lt;/prov:document&gt;
+</pre>
+</section>  <!-- end XML:KeyValuePair -->
+
+<section id="term-DictionaryMembership">
+<h3>Dictionary Membership</h3>
+<div class="glossary-ref" data-ref="glossary-dictionarymembership"></div>
+<p>The members of a dictionary are specified by listing key-value pairs inside a <code>prov:DictionaryMembership</code> element</p>
+<pre class="schema-type">
+&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="DictionaryMembership"&gt;
+  &lt;xs:sequence&gt;
+    &lt;xs:element name="dictionary" type="prov:IDRef"/&gt;
+	&lt;xs:element name="keyValuePair type="prov:KeyValuePair" maxOccurs="unbounded"/&gt;
+  &lt;/xs:sequence&gt;
+&lt;/xs:complexType&gt;
+</pre>
+<pre class="schema-usage">
+&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="hadDictionaryMember" type="prov:DictionaryMembership"/&gt;
+</pre>
+<pre class="example">
+&lt;prov:document
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:prov="http://www.w3.org/ns/prov#"&gt;
+
+  &lt;prov:entity prov:id="e0"/&gt;
+  &lt;prov:entity prov:id="e1"/&gt;
+  &lt;prov:entity prov:id="e2"/&gt;
+
+  &lt;prov:entity prov:id="d"&gt;
+    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Dictionary&lt;/prov:type&gt;
+  &lt;/prov:entity&gt;
+
+  <b>&lt;prov:hadDictionaryMember&gt;
+    &lt;prov:dictionary prov:ref="d"/&gt;
+    &lt;prov:keyValuePair&gt;
+      &lt;prov:entity prov:ref="e0"/&gt;
+      &lt;prov:key&gt;k0&lt;/prov:key&gt;
+    &lt;/prov:keyValuePair&gt;
+    &lt;prov:keyValuePair&gt;
+      &lt;prov:entity prov:ref="e1"/&gt;
+      &lt;prov:key&gt;k1&lt;/prov:key&gt;
+    &lt;/prov:keyValuePair&gt;
+    &lt;prov:keyValuePair&gt;
+      &lt;prov:entity prov:ref="e2"/&gt;
+      &lt;prov:key&gt;k2&lt;/prov:key&gt;
+    &lt;/prov:keyValuePair&gt;
+  &lt;/prov:hadDictionaryMember></b>
+
+&lt;/prov:document&gt;
+</pre>
+</section>  <!-- end term-Membership -->
+
+<section id="term-Insertion">
+<h3>Insertion</h3>
+<div class="glossary-ref" data-ref="glossary-insertion"></div>
+<p>To specify that one dictionary was derived by insertion of key-value pairs into another one, a <code>prov:Insertion</code> element is used.</p>
+<pre class="schema-type">
+&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Insertion"&gt;
+  &lt;xs:sequence&gt;
+    &lt;xs:element name="newDictionary" type="prov:IDRef"/&gt;
+    &lt;xs:element name="oldDictionary" type="prov:IDRef"/&gt;
+	&lt;xs:element name="keyValuePair type="prov:KeyValuePair" maxOccurs="unbounded"/&gt;
+  &lt;/xs:sequence&gt;
+&lt;/xs:complexType&gt;
+</pre>
+<pre class="schema-usage">
+&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="derivedByInsertionFrom" type="prov:Insertion"/&gt;
+</pre>
+<pre class="example">
+&lt;prov:document
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:prov="http://www.w3.org/ns/prov#"&gt;
+
+  &lt;prov:entity prov:id="e0"/&gt;
+  &lt;prov:entity prov:id="e1"/&gt;
+  &lt;prov:entity prov:id="e2"/&gt;
+
+  &lt;prov:entity prov:id="d1"&gt;
+    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Dictionary&lt;/prov:type&gt;
+  &lt;/prov:entity&gt;
+  
+  &lt;prov:entity prov:id="d2"&gt;
+    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Dictionary&lt;/prov:type&gt;
+  &lt;/prov:entity&gt;
+
+  &lt;prov:hadDictionaryMember&gt;
+    &lt;prov:dictionary prov:ref="d1"/&gt;
+    &lt;prov:keyValuePair&gt;
+      &lt;prov:entity prov:ref="e0"/&gt;
+      &lt;prov:key&gt;k0&lt;/prov:key&gt;
+    &lt;/prov:keyValuePair&gt;
+  &lt;/prov:hadDictionaryMember>
+  
+  <b>&lt;prov:derivedByInsertionFrom&gt;
+    &lt;prov:newDictionary prov:ref="d2"/&gt;
+    &lt;prov:oldDictionary prov:ref="d1"/&gt;
+    &lt;prov:keyValuePair&gt;
+      &lt;prov:entity prov:ref="e1"/&gt;
+      &lt;prov:key&gt;k1&lt;/prov:key&gt;
+    &lt;/prov:keyValuePair&gt;
+    &lt;prov:keyValuePair&gt;
+      &lt;prov:entity prov:ref="e2"/&gt;
+      &lt;prov:key&gt;k2&lt;/prov:key&gt;
+    &lt;/prov:keyValuePair&gt;
+  &lt;/prov:derivedByInsertionFrom></b>
+  
+&lt;/prov:document&gt;
+</pre>
+</section> <!-- end term-Insertion -->
+<section id="term-Removal">
+<h3>Removal</h3>
+<div class="glossary-ref" data-ref="glossary-insertion"></div>
+<p>To specify that one dictionary was derived by removal of key-value pairs from another one, a <code>prov:Removal</code> element is used.</p>
+<pre class="schema-type">
+&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Removal"&gt;
+  &lt;xs:sequence&gt;
+    &lt;xs:element name="newDictionary" type="prov:IDRef"/&gt;
+    &lt;xs:element name="oldDictionary" type="prov:IDRef"/&gt;
+    &lt;xs:element name="key" type="xs:anySimpleType" maxOccurs="unbounded" /&gt;
+  &lt;/xs:sequence&gt;
+&lt;/xs:complexType&gt;
+</pre>
+<pre class="schema-usage">
+&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="derivedByRemovalFrom" type="prov:Removal"/&gt;
+</pre>
+<pre class="example">
+&lt;prov:document
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    xmlns:prov="http://www.w3.org/ns/prov#"&gt;
+
+  &lt;prov:entity prov:id="e0"/&gt;
+  &lt;prov:entity prov:id="e1"/&gt;
+  &lt;prov:entity prov:id="e2"/&gt;
+
+  &lt;prov:entity prov:id="d1"&gt;
+    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Dictionary&lt;/prov:type&gt;
+  &lt;/prov:entity&gt;
+  
+  &lt;prov:entity prov:id="d2"&gt;
+    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Dictionary&lt;/prov:type&gt;
+  &lt;/prov:entity&gt;
+
+  &lt;prov:hadDictionaryMember&gt;
+    &lt;prov:dictionary prov:ref="d1"/&gt;
+    &lt;prov:keyValuePair&gt;
+      &lt;prov:entity prov:ref="e0"/&gt;
+      &lt;prov:key&gt;k0&lt;/prov:key&gt;
+    &lt;/prov:keyValuePair&gt;
+    &lt;prov:keyValuePair&gt;
+      &lt;prov:entity prov:ref="e1"/&gt;
+      &lt;prov:key&gt;k1&lt;/prov:key&gt;
+    &lt;/prov:keyValuePair&gt;
+    &lt;prov:keyValuePair&gt;
+      &lt;prov:entity prov:ref="e2"/&gt;
+      &lt;prov:key&gt;k2&lt;/prov:key&gt;
+    &lt;/prov:keyValuePair&gt;
+  &lt;/prov:hadDictionaryMember>
+  
+  <b>&lt;prov:derivedByRemovalFrom&gt;
+    &lt;prov:newDictionary prov:ref="d2"/&gt;
+    &lt;prov:oldDictionary prov:ref="d1"/&gt;
+    &lt;prov:key&gt;k1&lt;/prov:key&gt;
+    &lt;prov:key&gt;k2&lt;/prov:key&gt;
+  &lt;/prov:derivedByRemovalFrom></b>
+  
+&lt;/prov:document&gt;
+</pre>
+</section> <!-- end term-Removal -->
+</section>
+
+<section id="dictionary-constraints"> 
+<h2>Constraints Associated with Dictionary</h2>
+In this section, we specify some inferences and constraints associated with dictionaries. These inferences and constraints MAY be applied to obtain valid provenance when using dictionaries. For more information about valid provenance and its purpose, we refer to the <a href="http://www.w3.org/TR/2013/PR-prov-constraints-20130312/#purpose">disclaimer</a> in [[PROV-CONSTRAINTS]].
+Whereas collections were deliberately left unconstrained in [[PROV-DM]] and [[PROV-CONSTRAINTS]] to remain as general as possible, dictionaries are intended to provide more structure, and thus, are constrained more strictly.
+For more information on how to read this section, we refer to [[PROV-CONSTRAINTS]].
+
+<section id="dictionary-constraints-inferences">
+	<h3>Inferences</h3>
+	<p id="dmembership-cmembership-inference_text"><a href="#term-dictionary-membership">Dictionary  membership</a> implies <a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/#term-membership">collection membership</a>.</p>
+	 <div class='inference' id='dmembership-cmembership-inference'>
+	<span class='ruleTitle'><a class="internalDFN" href="#dmembership-cmembership-inference">Inference D1 (dictionary-membership-collection-membership)</a></span>
+<p>
+<span class="conditional">IF</span>  <span class="name">hadDictionaryMember(d, e1, "k1")</span>
+   <span class='conditional'>THEN</span> <span class="name">hadMember(d, e1)</span>
+</p></div>
+
+	<p id="membership-membership-inference_text">Each key maps to a single entity.</p>
+	 <div class='inference' id='key-single-entity-inference'>
+	<span class='ruleTitle'><a class="internalDFN" href="#key-single-entity-inference">Inference D2 (key-single-entity)</a></span>
+<p>
+<span class="conditional">IF</span>  <span class="name">hadDictionaryMember(d1, e1, "k1")</span>
+   and <span class="name">hadDictionaryMember(d1, e2, "k1")</span> 
+   <span class='conditional'>THEN</span> <span class="name">e1 = e2</span>
+</p></div>
+
+<p id="membership-insertion-membership-inference_text">If a dictionary was derived from another dictionary by an insertion, then the former holds all key-entity pairs of the latter, except those updated by the insertion.</p>
+	 <div class='inference' id='membership-insertion-membership-inference'>
+	<span class='ruleTitle'><a class="internalDFN" href="#membership-insertion-membership-inference">Inference D3 (membership-insertion-membership)</a></span>
+<p>
+<span class="conditional">IF</span>  <span class="name">hadDictionaryMember(d1, e, "k")</span>
+   and <span class="name">derivedByInsertionFrom(d2, d1, {("k1", e1),...,("kn", en)})</span> and <span class="name">k</span> &notin; <span class="name">{"k1",...,"kn"}</span>
+   <span class='conditional'>THEN</span> <span class="name">hadDictionaryMember(d2, e, "k")</span>
+</p></div>
+<!--REMOVED CONSTRAINT <p id="membership-update-membership-inference_text">Insertion provides an "update semantics" for the keys that are already present in a dictionary. A new pair replaces an existing pair with the same key in the new dictionary. </p>
+	 <div class='inference' id='membership-update-membership-inference'>
+<p>
+<span class="conditional">IF</span>  <span class="name">hadDictionaryMember(d1, e1, "k1")</span>
+   and <span class="name">derivedByInsertionFrom(d2, d1, {("k1", e2)})</span>
+   <span class='conditional'>THEN</span> <span class="name">hadDictionaryMember(d2, e2, "k1"))</span>
+</p></div>
+/REMOVED CONSTRAINT-->
+
+<p id="insertion-membership-inference_text">A dictionary that was derived by an insertion of key-entity pairs, holds all these specified key-entity pairs. This inference also means that Insertion provides an "update semantics" for the keys that are already present in a dictionary.</p>
+	 <div class='inference' id='insertion-membership-inference'>
+	<span class='ruleTitle'><a class="internalDFN" href="#insertion-membership-inference">Inference D4 (insertion-membership)</a></span>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByInsertionFrom(d2, d1, {("k1", e1),...,("kn",en)})</span> 
+   <span class='conditional'>THEN</span> <span class="name">hadDictionaryMember(d2, ei, "ki") for each i &in; [1..n]</span>
+</p></div>
+
+
+<!--REMOVED CONSTRAINT <p id="removal-membership-inference_text">Only keys that actually mapped to an entity in a dictionary can be removed from it.</p>
+	 <div class='inference' id='removal-membership-inference'>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, {"k1"})</span> 
+   <span class='conditional'>THEN</span> <span class="name">hadDictionaryMember(d1, e1, "k1")</span>
+</p></div>
+  <div class="remark"><b>Note from the editors:</b> this constraint seems too restrictive for some implementations, and the editors would like to remove it, unless there is strong consensus to keep it. Removal of this constraint would also allow for duplicate dictionaries to be derived by "removal" of a non-existing key.</div>
+/REMOVED CONSTRAINT-->
+
+<p id="insertion-derivation-inference_text">Insertion and removal are special cases of derivation.</p>
+	 <div class='inference' id='insertion-derivation-inference'>
+	<span class='ruleTitle'><a class="internalDFN" href="#insertion-derivation-inference">Inference D5 (insertion-derivation)</a></span>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByInsertionFrom(d2, d1, {("k1", e1),...,("kn",en)})</span> 
+   <span class='conditional'>THEN</span> <span class="name">wasDerivedFrom(d2, d1)</span>
+</p></div>
+	 <div class='inference' id='removal-derivation-inference'>
+	<span class='ruleTitle'><a class="internalDFN" href="#removal-derivation-inference">Inference D6 (removal-derivation)</a></span>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, {"k1",...,"kn"})</span> 
+   <span class='conditional'>THEN</span> <span class="name">wasDerivedFrom(d2, d1)</span>
+</p></div>
+
+
+<p id="insertion-removal-membership-inference_text">Insertions and removals do not introduce any new key-entity pairs, other than those specified.</p>
+	 <div class='inference' id='insertion-removal-membership-inference'>
+	<span class='ruleTitle'><a class="internalDFN" href="#insertion-removal-membership-inference">Inference D7 (insertion-removal-membership)</a></span>
+<ol>
+	<li>
+	<span class="conditional">IF</span> <span class="name">derivedByInsertionFrom(d2, d1, {("k1", _e1)})</span> and 
+	<span class="name">derivedByRemovalFrom(d3, d2, {"k1"})</span> and <span class="name">hadDictionaryMember(d1, e2, "k2")</span> and 
+	<span class="name">k1 &ne; k2</span> <span class='conditional'>THEN</span>  <span class="name">hadDictionaryMember(d3, e2, "k2")</span>
+	</li>
+	<li>
+	<span class="conditional">IF</span> <span class="name">derivedByInsertionFrom(d2, d1, {("k1", _e1)})</span> and 
+	<span class="name">derivedByRemovalFrom(d3, d2, {"k1"})</span> and <span class="name">hadDictionaryMember(d3, e2, "k2")</span> and 
+	<span class="name">k1 &ne; k2</span> <span class='conditional'>THEN</span>  <span class="name">hadDictionaryMember(d1, e2, "k2")</span>
+	</li>
+</ol>
+</div>
+  <div class="remark">
+  Note that this inference, together with constraints <a class="internalDFN" href="#impossible-removal-insertion-constraint">D9</a>, <a class="internalDFN" href="#impossible-insertion-insertion-constraint">D10</a> and <a class="internalDFN" href="#impossible-removal-removal-constraint">D11</a>, and the fact that an EmptyDictionary does not contain any key-entity pairs, guarantees <b>completeness</b> of a dictionary, if it can be traced back to an EmptyDictionary through insertions and removals.
+  Here, completeness means that all key-entity pairs of the dictionary are known through a hadDictionaryMember statement.
+	  </div>
+
+</section>
+	<!-- end inferences -->
+	
+<section id="dictionary-constraints-constraints">
+	<h3>Constraints</h3>
+
+<p id="impossible-removal-membership_text">A dictionary that was derived by removal from another dictionary, cannot contain the key-entity pairs that were removed from the latter.</p>
+	 <div class='constraint' id='impossible-removal-membership-constraint'>
+	<span class='ruleTitle'><a class="internalDFN" href="#impossible-removal-membership-constraint">Constraint D8 (impossible-removal-membership)</a></span>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, {"k1",...,"kn"})</span> and 
+    <span class="name">hadDictionaryMember(d2, e, "ki")</span> and <span class="name">i &in; [1..n]</span> <span class='conditional'>THEN</span> <span
+	 class="conditional">INVALID</span>
+</p></div>
+	
+	<p id="impossible-removal-insertion_text">A dictionary must not be derived through multiple insertion or removal relations.</p>
+	 <div class='constraint' id='impossible-removal-insertion-constraint'>
+	<span class='ruleTitle'><a class="internalDFN" href="#impossible-removal-insertion-constraint">Constraint D9 (impossible-removal-insertion)</a></span>
+  <p>Here, <span class="name">KV1</span> and <span class="name">KV2</span> are sets of key-entity pairs.</p>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, KV1)</span> and 
+    <span class="name">derivedByInsertionFrom(d2, d1, KV2)</span><span class='conditional'>THEN</span> <span
+	 class="conditional">INVALID</span>
+</p></div>
+<div class='constraint' id='impossible-insertion-insertion-constraint'>
+	<span class='ruleTitle'><a class="internalDFN" href="#impossible-insertion-insertion-constraint">Constraint D10 (impossible-insertion-insertion)</a></span>
+<p>Here, <span class="name">KV1</span> and <span class="name">KV2</span> are sets of key-entity pairs.</p>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByInsertionFrom(d2, d1, KV1)</span> and 
+    <span class="name">derivedByInsertionFrom(d2, d1, KV2)</span><span class='conditional'>THEN</span> <span
+	 class="name">KV1 = KV2</span>
+</p></div>
+<div class='constraint' id='impossible-removal-removal-constraint'>
+	<span class='ruleTitle'><a class="internalDFN" href="#impossible-removal-removal-constraint">Constraint D11 (impossible-removal-removal)</a></span>
+<p>Here, <span class="name">K1</span> and <span class="name">K2</span> are sets of keys.</p>
+<p>
+<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, K1)</span> and 
+    <span class="name">derivedByRemovalFrom(d2, d1, K2)</span><span class='conditional'>THEN</span> <span
+	 class="name">K1 = K2</span>
+</p></div>
+
+<!--REMOVED CONSTRAINT <p id="impossible-removal-insertion_text">An empty dictionary cannot hold any key-entity pairs.</p>
+	 <div class='constraint' id='impossible-removal-insertion'>
+<p>
+<span class="conditional">IF</span> <span class="name">hadDictionaryMember(d, e1, "k1")</span> and 
+    <span class="name">'prov:EmptyDictionary' &isin; typeOf(d)</span><span class='conditional'>THEN</span> <span
+	 class="conditional">INVALID</span>
+</p></div> /REMOVED CONSTRAINT-->
+	
+</section> <!-- end constraints -->
+
+<section id="dictionary-typing">
+		<h3>Typing</h3>
+	 <div class='constraint' id='typing'>
+	<span class='ruleTitle'><a class="internalDFN" href="#typing">Constraint D12 (typing)</a></span>
+		<ol>
+			<li>
+			<p>
+			<span class="conditional">IF</span>  <span class="name">entity(d, [prov:type='prov:Dictionary'])</span> <span class='conditional'>THEN</span> 
+			<span class="name">'prov:Dictionary' &isin; typeOf(d)</span> and <span class="name">'prov:Collection' &isin; typeOf(d)</span>
+        and <span class="name">'entity' &isin; typeOf(d)</span>
+			</p>
+			</li>
+			<li>
+			<p>
+			<span class="conditional">IF</span>  <span class="name">entity(d, [prov:type='prov:EmptyDictionary'])</span> <span class='conditional'>THEN</span> 
+			<span class="name">'prov:EmptyDictionary' &isin; typeOf(d)</span> and <span class="name">'prov:Dictionary' &isin; typeOf(d)</span>
+        and <span class="name">'prov:Collection' &isin; typeOf(d)</span>
+        and <span class="name">'prov:EmptyCollection' &isin; typeOf(d)</span>
+        and <span class="name">'entity' &isin; typeOf(d)</span>
+			</p>
+			</li>
+			<li>
+			<p>
+			<span class="conditional">IF</span>  <span class="name">hadDictionaryMember(d, e, "k")</span> <span class='conditional'>THEN</span> 
+			<span class="name">'prov:Dictionary' &isin; typeOf(d)</span> and <span class="name">'prov:Collection' &isin; typeOf(d)</span> and <span class="name">'entity' &isin; typeOf(d)</span> and <span class="name">'entity' &isin; typeOf(e)</span>
+			</p>
+			</li>
+			<li>
+      
+			<p>Here, KV is a set of key-entity pairs</p>
+			<p>
+			<span class="conditional">IF</span>  <span class="name">derivedByInsertionFrom(d2, d1, KV)</span> <span class='conditional'>THEN</span> 
+			<span class="name">'prov:Dictionary' &isin; typeOf(d1)</span> and <span class="name">'prov:Dictionary' &isin; typeOf(d2)</span> and <span class="name">'prov:Collection' &isin; typeOf(d1)</span> and <span class="name">'entity' &isin; typeOf(d1)</span> and <span class="name">'prov:Collection' &isin; typeOf(d2)</span> and <span class="name">'entity' &isin; typeOf(d2)</span> and <span class="name">'entity' &isin; typeOf(e1)</span>
+			</p>
+			</li>
+			<li>
+			<p>Here, K is a set of keys</p>
+			<p>
+			<span class="conditional">IF</span>  <span class="name">derivedByRemovalFrom(d2, d1, K)</span> <span class='conditional'>THEN</span> 
+			<span class="name">'prov:Dictionary' &isin; typeOf(d1)</span> and <span class="name">'prov:Dictionary' &isin; typeOf(d2)</span> and <span class="name">'prov:Collection' &isin; typeOf(d1)</span> and <span class="name">'entity' &isin; typeOf(d1)</span> and <span class="name">'prov:Collection' &isin; typeOf(d2)</span> and <span class="name">'entity' &isin; typeOf(d2)</span> 
+			</p>
+			</li>
+		</ol>
+		</div>
+
+</section>
+	
+</section>
+
+
+
+<section class="appendix"> 
+      <h2>Acknowledgements</h2> 
+      <p> 
+        Members of the Provenance Working Group at the time of publication of this document were: Ilkay Altintas (Invited expert), Reza B'Far (Oracle Corporation), Khalid Belhajjame (University of Manchester), James Cheney (University of Edinburgh, School of Informatics), Sam Coppens (iMinds - Ghent University), David Corsar (University of Aberdeen, Computing Science), Stephen Cresswell (The National Archives), Tom De Nies (iMinds - Ghent University), Helena Deus (DERI Galway at the National University of Ireland, Galway, Ireland), Simon Dobson (Invited expert), Martin Doerr (Foundation for Research and Technology - Hellas(FORTH)), Kai Eckert (Invited expert), Jean-Pierre EVAIN (European Broadcasting Union, EBU-UER), James Frew (Invited expert), Irini Fundulaki (Foundation for Research and Technology - Hellas(FORTH)), Daniel Garijo (Universidad Politécnica de Madrid), Yolanda Gil (Invited expert), Ryan Golden (Oracle Corporation), Paul Groth (Vrije Universiteit), Olaf Hartig (Invited expert), David Hau (National Cancer Institute, NCI), Sandro Hawke (W3C/MIT), Jörn Hees (German Research Center for Artificial Intelligence (DFKI) Gmbh), Ivan Herman, (W3C/ERCIM), Ralph Hodgson (TopQuadrant), Hook Hua (Invited expert), Trung Dong Huynh (University of Southampton), Graham Klyne (University of Oxford), Michael Lang (Revelytix, Inc.), Timothy Lebo (Rensselaer Polytechnic Institute), James McCusker (Rensselaer Polytechnic Institute), Deborah McGuinness (Rensselaer Polytechnic Institute), Simon Miles (Invited expert), Paolo Missier (School of Computing Science, Newcastle university), Luc Moreau (University of Southampton), James Myers (Rensselaer Polytechnic Institute), Vinh Nguyen (Wright State University), Edoardo Pignotti (University of Aberdeen, Computing Science), Paulo da Silva Pinheiro (Rensselaer Polytechnic Institute), Carl Reed (Open Geospatial Consortium), Adam Retter (Invited Expert), Christine Runnegar (Invited expert), Satya Sahoo (Invited expert), David Schaengold (Revelytix, Inc.), Daniel Schutzer (FSTC, Financial Services Technology Consortium), Yogesh Simmhan (Invited expert), Stian Soiland-Reyes (University of Manchester), Eric Stephan (Pacific Northwest National Laboratory), Linda Stewart (The National Archives), Ed Summers (Library of Congress), Maria Theodoridou (Foundation for Research and Technology - Hellas(FORTH)), Ted Thibodeau (OpenLink Software Inc.), Curt Tilmes (National Aeronautics and Space Administration), Craig Trim (IBM Corporation), Stephan Zednik (Rensselaer Polytechnic Institute), Jun Zhao (University of Oxford), Yuting Zhao (University of Aberdeen, Computing Science). 
+      </p> 
+    </section> 
+
+ </body>
+</html>
+
+
+
--- a/dictionary/prov-dictionary.html	Fri Mar 08 17:52:10 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2784 +0,0 @@
-<!DOCTYPE html
->
-
-<html><head> 
-    <title>PROV Dictionary</title> 
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
-<link rel="http://www.w3.org/ns/prov#has_provenance" href="http://www.w3.org/2011/prov/provenance/prov-dictionary"/>
-
-<script src="../model/prov-magic.js" class="remove"></script>
-
-<script src="../model/grammar/ll.js" class="remove"></script>
-<script src="../model/provbib.js" class="remove"></script>
-<script src="../model/glossary.js" class="remove"></script>
-
-<script src="https://www.w3.org/Tools/respec/respec-w3c-common" class="remove" async></script> 
-
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" class="remove"></script>
-
-<style type="text/css">
-      .note { font-size:small; margin-left:50px }
-
-  .entity {
-          border: 1px solid navy;
-          margin:5px 0px 5px 0px;
-          padding: 5px;    
-      }
-
-    
-
-      .description {
-          border-top: 1px dashed gray;
-          border-bottom: 1px dashed gray;
-          background-color: rgb(242, 243, 244);
-          margin-top:5px;
-          padding-bottom:5px;
-      }
-
-      .description dl {
-          background-color: rgb(242, 243, 244);
-      }
-
-      .description ul {
-          padding-left: 12px;
-          margin-top: 0px;
-      }
-
-code {
-    color:  black !important;
-}
-
-.diamond {
-    font-weight: normal;
-    font-style: normal;
-    font-size:100%;
-    font-family: sans-serif;
-}
-
-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;
-}
-table.thinborder td {
-	border-width: 1px;
-	padding: 2px;
-	border-style: solid;
-	border-color: gray;
-}
-
-/* --- 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-example {
-    padding:    1em;
-    margin: 1em 0em 0em;
-    border: 1px solid #f00;
-    background: #fff;
-}
-
-.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-example {
-    padding:    1em;
-    margin: 1em 0em 0em;
-    border: 1px solid #00f;
-    background: #fff;
-}
-
-
-.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;
-}
-
-.definition {
-    padding:    1em;
-    margin: 1em 0em 0em;
-    border: 1px solid #777;
-    background: #fff;
-}
-
-.definition-example {
-    padding:    1em;
-    margin: 1em 0em 0em;
-    border: 1px solid #777;
-    background: #fff;
-}
-
-.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;
-    font-size: 95%;
-}
-.nonterminal {
-    font-weight: bold;
-    font-family: sans-serif;
-    font-size: 95%;
-}
-
-.name {
-    font-family: monospace;
-}
-
-.math {
-    font-family: roman;
-    font-style:italic;
-}
-
-
-.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 {
-    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;
-}
-
-.conceptexample:before {
-    content: "Example:";
-    font-family: sans-serif;
-    font-size: 1.6ex;
-    font-weight: bold;
-}
-.conceptexample {
-    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;
-}
-
-.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="choice"]:before {
-    font-weight: normal;
-    font-size:130%;
-    font-family: monospace;
-    content: "(";
-}
-
-div[class="grammar"] span[class="choice"]: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;
-}
-
-
-code {
-    color:  black;
-}
-
-.ruleTitle {
-    font-family: sans-serif;
-    font-size: 1.6ex;
-    font-weight: bold;
-}
-
-
-
-
-
-.remark {
-    padding:    1em;
-    margin: 1em 0em 0em;
-    border: 1px dashed #000;
-    background: #F0F0F0;
-}
-
-.remark::before {
-    content:    "Remark";
-    display:    block;
-    width:  150px;
-    margin: -1.5em 0 0.5em 0;
-    font-weight:    bold;
-    border: 1px solid #000;
-    background: #fff;
-    padding:    3px 1em;
-}
-
-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;
-}
-table.thinborder td {
-	border-width: 1px;
-	padding: 2px;
-	border-style: solid;
-	border-color: gray;
-}
-
-
-</style>
-
-
-    <script type="text/javascript">
-/*
-	Written by Jonathan Snook, http://www.snook.ca/jonathan
-	Add-ons by Robert Nyman, http://www.robertnyman.com
-	Author says "The credit comment is all it takes, no license. Go crazy with it!"
-	From http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
-*/
-
-function getElementsByClassName(oElm, strTagName, oClassNames){
-	var arrElements = (! (! (strTagName == "*") || ! (oElm.all)))? oElm.all : oElm.getElementsByTagName(strTagName);
-	var arrReturnElements = new Array();
-	var arrRegExpClassNames = new Array();
-	if(typeof oClassNames == "object"){
-		for(var i=0; !(i>=oClassNames.length); i++){ /*>*/
-			arrRegExpClassNames.push(new RegExp("(^|\s)" + oClassNames[i].replace(/\-/g, "\-") + "(\s|$)"));
-		}
-	}
-	else{
-		arrRegExpClassNames.push(new RegExp("(^|\s)" + oClassNames.replace(/\-/g, "\-") + "(\s|$)"));
-	}
-	var oElement;
-	var bMatchesAll;
-	for(var j=0; !(j>=arrElements.length); j++){ /*>*/
-		oElement = arrElements[j];
-		bMatchesAll = true;
-		for(var k=0; !(k>=arrRegExpClassNames.length); k++){ /*>*/
-			if(!arrRegExpClassNames[k].test(oElement.className)){
-				bMatchesAll = false;
-				break;
-			}
-		}
-		if(bMatchesAll){
-			arrReturnElements.push(oElement);
-		}
-	}
-	return (arrReturnElements)
-}
-
-function set_display_by_class(el, cls, newValue) {
-   var e = getElementsByClassName(document, el, cls);
-   if (e != null) {
-      for (var i=0; !(i>=e.length); i++) {
-        e[i].style.display = newValue;
-      }
-   }
-}
-
-function set_display_by_id(id, newValue) {
-   var e = document.getElementById(id);
-   if (e != null) {
-     e.style.display = newValue;
-   }
-}
-</script> 
-
-
-    <script type="text/javascript" class="remove">
-
-
-      $(document).ready(function(){
-        // if glossary is in a string:
-        $('#glossary_div').html(glossary_string)
-        $('#grammar_div').html(grammar_string);
-        updateGlossaryRefs();
-        updateFigCaptions();
-        updateCaptions();
-        updateGrammarRefs();
-        updateExamples();
-        updateExamplesRefs();
-
-                      if (typeof String.prototype.startsWith != 'function') {
-                      String.prototype.startsWith = function (str){
-                      return this.indexOf(str) == 0;
-                      };
-                      }
-
-      });
-
-    </script>
-    <script class="remove">
-      function updateGrammarRefs() {
-        $('.grammar-ref').each(function(index) {
-          var ref=$(this).attr('data-ref');
-          console.log( "updating grammar for " + ref);
-//          $('#'+ref).parents("tbody").clone().appendTo($(this));
-
-
-          // $(this).replaceWith(function() {return $('#'+ref).parents("tbody").clone()});
-
-           $(this).replaceWith($('#'+ref).parents("tbody").clone());
-
-        });
-      }
-    </script>
-    <script class="remove"> 
-      var addExtraReferences = function() {
-          for (var k in extraReferences)
-              berjon.biblio[k] = extraReferences[k];
-      };
-      var extraReferences = {
-
-      };
-      var respecConfig = {
-          // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
-          specStatus:           "WD-NOTE", //FPWD-NOTE
-          
-          // the specification's short name, as in http://www.w3.org/TR/short-name/
-          shortName:            "prov-dictionary",
- 
-          // if your specification has a subtitle that goes below the main
-          // formal title, define it here
-          //subtitle   :  "A single document for prov-mention related material",
-
- 
-          // if you wish the publication date to be other than today, set this
-          publishDate:  "2013-03-12",
- 
-          // if the specification's copyright date is a range of years, specify
-          // the start date here:
-          //copyrightStart: "2011",
- 
-          // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
-          // and its maturity status
-          //previousPublishDate:  "2012-07-24",
-          //previousMaturity:  "ED",
- 
-          // if there a publicly available Editor's Draft, this is the link
-          edDraftURI:           "http://dvcs.w3.org/hg/prov/raw-file/default/dictionary/prov-dictionary.html",
- 
-          // if this is a LCWD, uncomment and set the end of its review period
-          //lcEnd: "2012-09-18",
- 
-          // if you want to have extra CSS, append them to this list
-          // it is recommended that the respec.css stylesheet be kept
-          extraCSS:             ["https://dev.w3.org/2009/dap/ReSpec.js/css/respec.css"],
- 
-          // editors, add as many as you like
-          // only "name" is required
-          editors:  [
-              { name: "Tom De Nies", url: "http://users.ugent.be/~tdenies/",
-                company: "iMinds - Ghent University" },
-              { name: "Sam Coppens",
-                company: "iMinds - Ghent University" },
-          ],
- 
-          // 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: "Paolo Missier", url: "http://www.cs.ncl.ac.uk/people/Paolo.Missier",
-                company: "Newcastle University" },
-		       { name: "Luc Moreau", url: "http://www.ecs.soton.ac.uk/~lavm/",
-                company: "University of Southampton" },
-		       { name: "James Cheney", url: "http://homepages.inf.ed.ac.uk/jcheney/",
-                company: "University of Edinburgh" },
-		       { name: "Timothy Lebo", url: "http://tw.rpi.edu/instances/TimLebo",
-                company: "Rensselaer Polytechnic Institute" },
-		       { name: "Stian Soiland-Reyes", url: "http://soiland-reyes.com/stian/",
-                company: "University of Manchester" },
-          ],
-          
-          // 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, addProvReferences],
-
-          postProcess: [updateSectionRefs, updateDfn, updateFigures],
-      };
-    </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. This document describes extensions to PROV to facilitate the modeling of provenance for dictionary data structures. [[PROV-DM]] specifies a <a href="http://www.w3.org/TR/2013/PR-prov-dm-20130312/Overview.html#component6">Collection</a> as an entity that provides a structure to some constituents, which are themselves entities. However, some applications may need a mechanism to specify more structure to a Collection, in order to accurately describe its provenance. 
-Therefore, in this document, we introduce Dictionary, a specific type of Collection with a logical structure consisting of key-value pairs.
-</p>
-
-<p>The  <a href="http://www.w3.org/TR/2013/WD-prov-overview-20130312/">PROV Document Overview</a> describes the overall state of PROV, and should be read before other PROV documents.</p>
-
-    </section> 
-
-<section id="sotd">
-<h4>PROV Family of Documents</h4>
-This document is part of the PROV family of documents, a set of documents defining various aspects that are necessary to achieve the vision of inter-operable
-interchange of provenance information in heterogeneous environments such as the Web.  These documents are listed below. Please consult the [[PROV-OVERVIEW]] for a guide to reading these documents. 
-<ul>
-<li> <a href="http://www.w3.org/TR/2013/WD-prov-overview-20130312/">PROV-OVERVIEW</a> (To be published as Note), an overview of the PROV family of documents [[PROV-OVERVIEW]];</li>
-<li> <a href="http://www.w3.org/TR/2013/WD-prov-primer-20130312/">PROV-PRIMER</a> (To be published as Note), a primer for the PROV data model [[PROV-PRIMER]];</li>
-<li> <a href="http://www.w3.org/TR/2013/PR-prov-o-20130312/">PROV-O</a> (Proposed Recommendation), the PROV ontology, an OWL2 ontology allowing the mapping of PROV to RDF [[PROV-O]];</li>
-<li> <a href="http://www.w3.org/TR/2013/PR-prov-dm-20130312/">PROV-DM</a> (Proposed Recommendation), the PROV data model for provenance [[PROV-DM]];</li>
-<li> <a href="http://www.w3.org/TR/2013/PR-prov-n-20130312/">PROV-N</a> (Proposed Recommendation), a notation for provenance aimed at human consumption [[PROV-N]];</li>
-<li> <a href="http://www.w3.org/TR/2013/PR-prov-constraints-20130312/">PROV-CONSTRAINTS</a> (Proposed Recommendation), a set of constraints applying to the PROV data model [[PROV-CONSTRAINTS]];</li>
-<li> <a href="http://www.w3.org/TR/2013/WD-prov-xml-20130312/">PROV-XML</a> (To be published as Note),  an XML schema for the PROV data model [[PROV-XML]];</li>
-<li> <a href="http://www.w3.org/TR/2013/WD-prov-aq-20130312/">PROV-AQ</a> (To be published as Note), the mechanisms for accessing and querying provenance [[PROV-AQ]]; </li>
-<li> <a href="http://www.w3.org/TR/2013/WD-prov-dictionary-20130312/">PROV-DICTIONARY</a> (To be published as Note) introduces a specific type of collection, consisting of key-entity pairs [[PROV-DICTIONARY]];</li>
-<li> <a href="http://www.w3.org/TR/2013/WD-prov-dc-20130312/">PROV-DC</a> (To be published as Note) provides a mapping between PROV and Dublic Core Terms [[PROV-DC]];</li>
-<li> <a href="http://www.w3.org/TR/2013/WD-prov-sem-20130312/">PROV-SEM</a> (To be published as Note), a declarative specification in terms of first-order logic of the PROV data model [[PROV-SEM]];</li>
-<li> <a href="http://www.w3.org/TR/2013/WD-prov-links-20130312/">PROV-LINKS</a> (To be published as Note) introduces a mechanism to link across bundles (this document).</li>
-</ul>
-
-</section>
-
-
-
-
-
-
-
-
-
-
-    <section id="introduction"> 
-<h2>Introduction</h2> 
-
-<p>
-<a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/">Provenance</a>
-is a record that describes the people, institutions, entities, and
-activities involved in producing, influencing, or delivering a piece
-of data or a thing. The specifications [[PROV-O]], [[PROV-DM]],
-[[PROV-N]], and [[PROV-XML]] have respectively defined the PROV
-ontology, the PROV conceptual model, the PROV notation, and the PROV
-XML schema, allowing provenance descriptions to be expressed,
-represented in various representations, and interchanged between systems across the Web. 
-</p>
-<p>[[PROV-DM]] specifies Collection as an entity that provides a structure to some constituents, which are themselves entities. However, some applications may need a mechanism to specify more structure to a Collection, in order to accurately describe its provenance.</p>
-
-<p>Therefore, this document introduces a new concept, <a>Dictionary</a>, that has a logical structure consisting of key-entity pairs.</p>
-</section>
-
-
-
-<section id="dictionary-conceptual-definition"> 
-<h2>Conceptual Definition of Dictionary</h2>
-<p>In this section a specific type of collection, as specified in [[PROV-DM]], is introduced. This new type of collection, Dictionary, is specified as follows.</p>
-
-
-<span class="glossary-ref" data-ref="glossary-dictionary"></span>
-
-<p>Conceptually, a dictionary has a logical structure consisting of key-value pairs. This structure is often referred to as a <em>map</em>, and is a generic indexing mechanism that can abstract commonly used data structures, including associative lists, relational tables, ordered lists, and more.
-	This document provides a mechanism to assert the provenance for these types of data structures, in the most general way, as a collection of key-value pairs, modified through insertions and deletions. Any more specialized structures can be modeled to some extent in terms of these key-value pairs. 
-	Here, we will discuss the provenance of dictionaries structured in terms of key-value pairs. However, how this key-value pair structure is translated to more specialized data structures, is beyond the scope of this document.</p>
-
-<p>In this document, a dictionary is viewed as a snapshot of a data structure with key-value pairs, following a sequence of state-changing insertion and removal operations. These  operations result in new snapshots, each snapshot forming a distinct and identifiable dictionary entity. Thus, when the structure of a dictionary changes (through insertions or removals), a new dictionary entity is defined, whereas the older dictionary entity remains the same.</p>
-
-<!--
-<span class="glossary-ref" data-ref="glossary-empty-dictionary"></span>
--->
-
-
-<p>Following the earlier definitions for generic collections,  PROV-Dictionary defines the following types related to dictionaries:</p>
-
-<ul>
-  <li> <span class="name">prov:Dictionary</span> is a subtype of <span class="name">prov:Collection</span>. It denotes an entity of type dictionary, i.e. an entity that can participate in relations that involve dictionaries and their member entities;</li>
-
-  <li><span class="name">prov:EmptyDictionary</span> is a subtype of both <span class="name">prov:EmptyCollection</span> and <span class="name">prov:Dictionary</span>. It denotes an empty dictionary.</li>
-</ul>
-
-<p>Note that the complete content of a dictionary is unknown unless it can be traced back to an empty dictionary through a series of insertions and removals. If an asserter wants to explicitly state that a dictionary is empty, it is recommended that the <span class="name">prov:type</span> <span class="name">prov:EmptyCollection</span> is used.
-
-<div class="anexample">
-<pre class="codeexample">
-entity(d0, [prov:type='prov:EmptyDictionary' ])  // d0 is an empty dictionary
-entity(d1, [prov:type='prov:Dictionary'  ])      // d1 is a dictionary, with (so far) unknown content
-</pre>
-</div>
-
-
-<section id="term-dictionary-membership">
-<h3>Dictionary Membership</h3>
-
-<span class="glossary-ref" data-ref="glossary-dictionary-membership"></span>
-
-<p>Similar to the <a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/#term-membership">collection membership</a> relation, the <strong>dictionary  membership</strong> allows stating the members of a Dictionary. However, it provides additional structure.
-	Note that <a href="#term-dictionary-membership">dictionary  membership</a> implies <a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/#term-membership">collection membership</a>, but not vice versa. This implication is formalized in <a href="#dmembership-cmembership-inference">Inference D1</a>.
-	</p>
-
-<div class="attributes" id="attributes-hadMember-d">
- A <dfn title="hadMember-d">dictionary membership</dfn> relation, written <span class="pnExpression">hadDictionaryMember(d, e_1, key_1)</span>, has:
-<ul>
-<li><span class='attribute' id="membership-d.dictionary">dictionary</span>: an identifier (<span class="name">d</span>) for the dictionary whose members are asserted; </li>
-<li><span class='attribute' id="membership-d.entity">entity</span>: an entity <span class="name">e_1</span> that is associated with the key and is a member of the dictionary;</li>
-<li><span class='attribute' id="membership-d.key">key</span>: a key <span class="name">key_1</span> that is associated with the specified entity. <span class="name">key_1</span> is a <a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/#term-value">value</a> ;</li>
-</ul>
-<p>Keys cannot be repeated in the same dictionary. However, a dictionary can contain the same entity more than once, as long as it is associated with different keys.</p>
-<p>Note that the <a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/#term-membership">collection membership</a> relation, written <span class="name">hadMember(c, e)</span>, can be used when <span class="name">c</span> has <span class="name">prov:type = 'prov:Collection'</span> or <span class="name">prov:type = 'prov:Dictionary'</span>. However, the <a href="#term-dictionary-membership">dictionary  membership</a>, written <span class="name">hadDictionaryMember(d, e, "k")</span>, can only be used when <span class="name">d</span> has <span class="name">prov:type = 'prov:Dictionary'</span>. </p>
-	
-</div>
-
-<div class="anexample">
-<pre class="codeexample">
-entity(d, [prov:type='prov:Dictionary' ])    // d1 is a dictionary, with (so far) unknown content
-
-entity(e1)
-entity(e2)
-
-hadDictionaryMember(d, e1, "k1")  
-hadDictionaryMember(d, e2, "k2")  
-
-</pre>
-From these descriptions, we conclude:
-<ul>
-<li> <span class="name">d</span>  had  the following key-entity pairs as members: <span class="name">("k1", e1), ("k2", e2)</span>, and may have contained others.</li>
-</ul>
-<p> Thus, the membership of <span class="name">d</span> is only partially known, unless it was derived through insertions and removals from an empty dictionary (See <a href="#insertion-removal-membership-inference_text">Completeness constraints</a>).</p>
-</div>
-
-</section> <!-- end membership -->
-
-
-<section id="term-dictionary-insertion">
-<h3>Dictionary Insertion</h3>
-
-<span class="glossary-ref" data-ref="glossary-insertion"></span>
-
-<div class="attributes" id="attributes-derivedByInsertionFrom">
-<p>An <dfn title="derivedByInsertionFrom">Insertion</dfn> relation<span class="withPn">, written <span class="pnExpression">derivedByInsertionFrom(id; d2, d1, {(key_1, e_1), ..., (key_n, e_n)}, attrs)</span>,</span> has:</p>
-<ul>
-<li><span class='attribute' id="insertion.id">id</span>:  an OPTIONAL identifier identifying the relation;</li>
-<li><span class='attribute' id="insertion.after">after</span>: an identifier (<span class="name">d2</span>) for the dictionary <em>after</em> insertion; </li>
-<li><span class='attribute' id="insertion.before">before</span>: an identifier (<span class="name">d1</span>) for the dictionary <em>before</em> insertion;</li>
-<li><span class='attribute' id="insertion.key-entity-set">key-entity-set</span>: all inserted key-entity pairs <span class="name">(key_1, e_1)</span>, ..., <span class="name">(key_n, e_n)</span>. Here, each <span class="name">key_i</span> is a <a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/#term-value">value</a>, and <span class="name">e_i</span> is an identifier  for the entity that has been inserted with the key;
- each <span class="name">key_i</span> is expected to be unique for the key-entity-set, as formalized in <a href="#key-single-entity-inference">Inference D2</a>;
-</li>
-<li><span class='attribute' id="insertion.attributes">attributes</span>: an OPTIONAL set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this relation.</li>
-</ul>
-</div>
-
-<p>
-An Insertion relation <span class="name">derivedByInsertionFrom(id; d2, d1,  {(key_1, e_1), ..., (key_n, e_n)})</span> states that  <span class="name">d2</span> is the dictionary
-following the insertion of pairs <span class="name">(key_1, e_1)</span>, ..., <span class="name">(key_n, e_n)</span> into dictionary  <span class="name">d1</span>. 
-Note that insertion and the specified key-entity-set are considered to be complete. This means that we assume that no unknown keys were inserted in or removed from a dictionary after an insertion. This is formalized in <a href="#insertion-removal-membership-inference">Inference D7</a>.</p>
-
-
-
-<div class="anexample">
-<pre class="codeexample">
-entity(d0, [prov:type='prov:EmptyDictionary' ])    // d0 is an empty dictionary
-entity(e1)
-entity(e2)
-entity(e3)
-entity(d1, [prov:type='prov:Dictionary' ])
-entity(d2, [prov:type='prov:Dictionary' ])
-
-derivedByInsertionFrom(d1, d0, {("k1", e1), ("k2", e2)})       
-derivedByInsertionFrom(d2, d1, {("k3", e3)}, [ dcterms:description ="A second insertion" ])    //an insertion with optional attribute dcterms:description  
-</pre>
-From this set of descriptions, we conclude:
-<ul>
-<li>   <span class="name">d0</span> was the dictionary <span class="name">{  }</span> </li>
-<li>   <span class="name">d1</span> was the dictionary <span class="name">{ ("k1", e1), ("k2", e2) }</span> </li>
-<li>   <span class="name">d2</span> was the dictionary <span class="name">{ ("k1", e1), ("k2", e2), ("k3", e3) }</span> </li>
-</ul>
-</div>
-<p>Futhermore, insertion provides an "update semantics" for the keys that are already present in a dictionary,
-since a new pair replaces an existing pair with the same key in the new dictionary. This is illustrated by the following example.</p>
-
-<div class="anexample">
-<pre class="codeexample">
-entity(d0, [prov:type='prov:EmptyDictionary' ])    // d0 is an empty dictionary
-entity(e1)
-entity(e2)
-entity(e3)
-entity(d1, [prov:type='prov:Dictionary' ])
-entity(d2, [prov:type='prov:Dictionary' ])
-
-derivedByInsertionFrom(d1, d0, {("k1", e1), ("k2", e2)})       
-derivedByInsertionFrom(d2, d1, {("k1", e3)})
-</pre>
-   This is a case of <em>update</em> of <span class="name">e1</span> to <span class="name">e3</span> for the same key, <span class="name">"k1"</span>. <br/>
-  From this set of descriptions, we conclude:
-<ul>
-<li>   <span class="name">d0</span> was the dictionary <span class="name">{  }</span> </li>
-<li>   <span class="name">d1</span> was the dictionary <span class="name">{ ("k1", e1), ("k2", e2) }</span> </li>
-<li>   <span class="name">d2</span> was the dictionary <span class="name">{ ("k1", e3), ("k2", e2) }</span> </li>
-</ul>
-</div>
-
-</section>  <!-- end insertion -->
-
-
-<section id="term-dictionary-removal">
-<h3>Dictionary Removal</h3>
-
-<span class="glossary-ref" data-ref="glossary-removal"></span>
-
-
-<div class="attributes" id="attributes-derivedByRemovalFrom">
-<p> A <dfn title="derivedByRemovalFrom">Removal</dfn> relation, written <span class="pnExpression">derivedByRemovalFrom(id; d2, d1, {key_1, ... key_n}, attrs)</span>, has:</p>
-<ul>
-<li><span class='attribute' id="removal.id">id</span>:  an OPTIONAL identifier identifying the relation;</li>
-<li><span class='attribute' id="removal.after">after</span>: an identifier (<span class="name">d2</span>) for the dictionary  <em>after</em> the deletion; </li>
-<li><span class='attribute' id="removal.before">before</span>: an identifier (<span class="name">d1</span>)  for the dictionary <em>before</em> the deletion;</li>
-<li><span class='attribute' id="removal.key-set">key-set</span>: the set of deleted keys  <span class="name">key_1</span>, ..., <span class="name">key_n</span>. Here, each <span class="name">key_i</span> is a <a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/#term-value">value</a>;</li>
-<li><span class='attribute' id="removal.attributes">attributes</span>: an OPTIONAL set (<span class="name">attrs</span>) of attribute-value pairs representing additional information about this relation.</li>
-</ul>
-</div>
-
-<p>A Removal relation <span class="name">derivedByRemovalFrom(id; d2,d1, {key_1, ..., key_n})</span> states that  <span class="name">d2</span> is  the  dictionary following the removal of the set of pairs corresponding to keys  <span class="name">key_1...key_n</span> from  <span class="name">d1</span>. If a key that is not present in the dictionary is removed, the dictionary remains unchanged.
-  Note that removal and the specified key-set are considered to be complete. This means that we assume that no unknown keys were inserted in or removed from a dictionary after a removal. This is formalized in <a href="#insertion-removal-membership-inference">Inference D7</a>.
-</p>
-
-<div class="anexample">
-<pre class="codeexample">
-entity(d0, [prov:type="prov:EmptyDictionary"])    // d0 is an empty dictionary
-entity(e1)
-entity(e2)
-entity(e3)
-entity(d1, [prov:type="prov:Dictionary"])
-entity(d2, [prov:type="prov:Dictionary"])
-entity(d3, [prov:type="prov:Dictionary"])
-entity(d4, [prov:type="prov:Dictionary"])
-
-derivedByInsertionFrom(d1, d0, {("k1", e1), ("k2",e2)})       
-derivedByInsertionFrom(d2, d1, {("k3", e3)})
-derivedByRemovalFrom(d3, d2, {"k1", "k3"})   
-derivedByRemovalFrom(d4, d3, {"k1"})   
-</pre>
-From this set of descriptions, we conclude:
-<ul>
-<li><span class="name">d0</span> was the dictionary <span class="name">{  }</span> </li>
-<li><span class="name">d1</span> was the dictionary <span class="name">{ ("k1", e1), ("k2", e2)  }</span> </li>
-<li><span class="name">d2</span> was the dictionary <span class="name">{ ("k1", e1), ("k2", e2), ("k3", e3) }</span> </li>
-<li><span class="name">d3</span> was the dictionary <span class="name">{ ("k2", e2) }</span> </li>
-<li><span class="name">d4</span> was the dictionary <span class="name">{ ("k2", e2) }</span> </li>
-</ul>
-Note that "k1" was not present in d3, and thus its removal to obtain d4 did not change the contents of the dictionary.
-</div>
-
-</section>  <!-- end removal -->
-
-</section> <!-- end conceptual definition dictionary -->
-
-<section id="dictionary-notation"> 
-<h2>PROV-N Notation of Dictionary Concepts</h2>
-The notation used for dictionaries in this document extends the standard PROV-N according to the principles described in <a href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#extensibility">the PROV-N extensibility chapter</a>.
-However, because dictionaries are defined in the same namespace as the rest of PROV-N, the terms in this document do not have a non-empty prefix. For the remainder of this document, we will assume that the default namespace http://www.w3.org/ns/prov# is used, and thus, no prefix is specified for the terms associated with dictionaries.
-<div class="note">Note that the use of a non-empty prefix for extensions of PROV-N is technically not valid. The terms used in this document can be made valid by the addition of a prefix "prov:" to all PROV-Dictionary terms. However, this would greatly reduce the readability of this document.
-  The Working Group is currently discussing how to address this issue before the next Working Draft of this document.</div>
-The [<a href="http://dvcs.w3.org/hg/prov/raw-file/default/dictionary/prov-dictionary-grammar.txt">Grammar for PROV-Dictionary</a>] is available for download.
-
-<section id="expression-dictionary">
-  <h3>Dictionary and EmptyDictionary Expression</h3>
-    PROV-Dictionary provides no dedicated syntax for Collection and EmptyCollection. Dictionaries are declared in <a href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#expression-collection">the same way</a> as Collections. A Dictionary or an EmptyDictionary MUST be expressed as an
-<code class="content"><a class="grammarRef" href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-entityExpression">entityExpression</a></code> with attribute 
-<span  id="provn-type-Dictionary"><code>prov:type='prov:Dictionary'</code></span>, or
-<span  id="provn-type-EmptyDictionary"><code>prov:type='prov:EmptyDictionary'</code></span>, respectively.
-<div class="anexample">
-<p>The  following two expressions are about a dictionary and an empty dictionary, respectively.
-<pre class="codeexample">
-  entity(ex:d1,   [ prov:type='prov:Dictionary' ])
-  entity(ex:d2,   [ prov:type='prov:EmptyDictionary' ])
-</pre>
-</div>
-</section>
-<section id="expression-dictionary-membership">
-<h3>Membership</h3>
-
-<div class="grammar">
- <span class="nonterminal">membershipExpression</span>&nbsp;::=  
-<span class="name">hadDictionaryMember</span> 
- <span class="name">(</span>
-<span class="nonterminal">dIdentifier</span>
- <span class="name">,</span>
-  <span class="nonterminal">eIdentifier</span>
- <span class="name">,</span>
-  <span class="nonterminal">key</span>
-  <span class="name">)</span>
-  <br>
-</div>
-
-<p>The following table summarizes how each constituent of a PROV-DM Membership maps to a non-terminal.</p>
-
-<div style="text-align: left; ">
-<table class="thinborder" style="margin-left: auto; margin-right: auto;">
-<tr><td><b>Dictionary Membership</b></td><td><b>Non-Terminal</b></td></tr>
-<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
-
-<tr><td><a href="#term-dictionary-membership"><span class='attribute' id="provn-membership-d.dictionary">dictionary</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-dIdentifier">dIdentifier</a></code></td></tr>
-
-<tr><td><a href="#term-dictionary-membership"><span class='attribute' id="provn-membership-d.entity">entity</span></a></td><td><code class="content"><a class="grammarRef" href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-eIdentifier">eIdentifier</a></code></td></tr>
-
-<tr><td><a href="#term-dictionary-membership"><span class='attribute' id="provn-membership-d.key">key</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-key">key</a></code></td></tr>
-
-</table>
-</div>
-
-
-
-<div class="anexample">
-	<p>In this example, d is a dictionary known to have <span class="name">e0</span> as member, and may have other members.</p>
-<pre class="codeexample">
-entity(e0)
-
-entity(d, [prov:type='prov:Dictionary'  ]) 
-hadDictionaryMember(d, e0, "k0")
-</pre>
-</div>
-
-</section> <!-- membership -->
-<section id="expression-dictionary-insertion">
-<h3>Insertion</h3>
-<div class="grammar">
-	<span class="nonterminal">derivationByInsertionFromExpression</span>&nbsp;::=  
-<span class="name">derivedByInsertionFrom</span> 
- <span class="name">(</span>
- <span class="optional"><span class="nonterminal">optionalIdentifier</span>
- <span class="name">;</span></span>
-<span class="nonterminal">dIdentifier</span>
- <span class="name">,</span>
-<span class="nonterminal">dIdentifier</span>
- <span class="name">,</span>
-  <span class="name">{</span>
-  <span class="nonterminal">keyValuePairs</span>
-   <span class="name">}</span>
- <span class="name">,</span>
-<span class="nonterminal">optionalAttributeValuePairs</span>
-  <span class="name">)</span>
-</div>
-
-
-<p>The following table summarizes how each constituent of a PROV-Dictionary Insertion maps to a non-terminal.</p>
-<div style="text-align: left; ">
-<table class="thinborder" style="margin-left: auto; margin-right: auto;">
-<tr><td><b>Insertion</b></td><td><b>Non-Terminal</b></td></tr>
-<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
-
-<tr><td><a href="#term-dictionary-insertion"><span class='attribute' id="provn-insertion.id">id</span></a></td><td><code class="content"><a class="grammarRef" href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-optionalIdentifier">optionalIdentifier</a></code></td></tr>
-
-<tr><td><a href="#term-dictionary-insertion"><span class='attribute' id="provn-insertion.after">after</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-dIdentifier">dIdentifier</a></code></td></tr>
-
-<tr><td><a href="#term-dictionary-insertion"><span class='attribute' id="provn-insertion.before">before</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-dIdentifier">dIdentifier</a></code></td></tr>
-
-
-<tr><td><a href="#term-dictionary-insertion"><span class='attribute' id="provn-insertion.key-value-pairs">key-value-pairs</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-keyValuePairs">keyValuePairs</a></code></td></tr>
-
-<tr><td><a href="#term-dictionary-insertion"><span class='attribute' id="provn-insertion.attributes">attributes</span></a></td><td><code class="content"><a class="grammarRef" href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></code></td></tr>
-</table>
-</div>
-
-
-<div class="anexample">
-    <pre class="codeexample">
- derivedByInsertionFrom(id; d1, d, {("k1", e1), ("k2", e2)}, [])  
-  </pre>
-<p>  Here
-    <span class="name">id</span> is the optional insertion identifier,
-  <span class="name">d1</span> is the  identifier for the dictionary after the insertion,
-  <span class="name">d</span> is the  identifier for the dictionary before the insertion,
-  <span class="name"> {("k1", e1), ("k2", e2)}</span> is the set of key-entity pairs that have been inserted in
-  <span class="name">d</span>,
-    and <span class="name">[]</span> is the optional (empty) set of attributes. </p>
-The remaining examples show cases where some of the optionals are omitted.
-
-  <pre class="codeexample">
- derivedByInsertionFrom(d1, d, {("k1", e1), ("k2", e2)})  
- derivedByInsertionFrom(d1, d, {("k1", e1)})  
- derivedByInsertionFrom(d1, d, {("k1", e1), ("k2", e2)}, [])
-</pre>
-</div>
-
-
-</section> <!-- Insertion -->
-<section id="expression-dictionary-removal">
-	<h3>Removal</h3>
-<div class="grammar">
- <span class="nonterminal">derivationByRemovalFromExpression</span>&nbsp;::=  
-<span class="name">derivedByRemovalFrom</span> 
- <span class="name">(</span>
- <span class="optional"><span class="nonterminal">optionalIdentifier</span>
- <span class="name">;</span></span>
-<span class="nonterminal">dIdentifier</span>
- <span class="name">,</span>
-<span class="nonterminal">dIdentifier</span>
- <span class="name">,</span>
-  <span class="name">{</span>
-  <span class="nonterminal">keySet</span>
-   <span class="name">}</span>
- <span class="name">,</span>
-<span class="nonterminal">optionalAttributeValuePairs</span>
-  <span class="name">)</span>
-  <br>
-</div>
-
-<p>The following table summarizes how each constituent of a PROV-Dictionary Removal maps to a non-terminal.</p>
-<div style="text-align: left; ">
-<table class="thinborder" style="margin-left: auto; margin-right: auto;">
-<tr><td><b>Removal</b></td><td><b>Non-Terminal</b></td></tr>
-<tr><td style="border-width: 0px; "></td><td style="border-width: 0px; "></td></tr>
-
-<tr><td><a href="#term-dictionary-removal"><span class='attribute' id="provn-removal.id">id</span></a></td><td><code class="content"><a class="grammarRef" href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-optionalIdentifier">optionalIdentifier</a></code></td></tr>
-
-<tr><td><a href="#term-dictionary-removal"><span class='attribute' id="provn-removal.after">after</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-dIdentifier">dIdentifier</a></code></td></tr>
-
-<tr><td><a href="#term-dictionary-removal"><span class='attribute' id="provn-removal.before">before</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-dIdentifier">dIdentifier</a></code></td></tr>
-
-
-<tr><td><a href="#term-dictionary-removal"><span class='attribute' id="provn-removal.key-set">key-set</span></a></td><td><code class="content"><a class="grammarRef" href="#prod-keySet">keySet</a></code></td></tr>
-
-<tr><td><a href="#term-dictionary-removal"><span class='attribute' id="provn-removal.attributes">attributes</span></a></td><td><code class="content"><a class="grammarRef" href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></code></td></tr>
-</table>
-</div>
-
-
-
-
-<div class="anexample">
-    <pre class="codeexample">
- derivedByRemovalFrom(id; d3, d, {"k1", "k2"}, [])  
-  </pre>
-<p>  Here
-    <span class="name">id</span> is the optional removal identifier,
-  <span class="name">d1</span> is the  identifier for the collection after the removal,
-  <span class="name">d</span> is the  identifier for the collection before the removal,
-  <span class="name"> {"k1", "k2"}</span> is the set of keys that have been removed from
-  <span class="name">d</span>,
-    and <span class="name">[]</span> is the optional (empty) set of attributes. </p>
-  The remaining examples show cases where some of the optionals are omitted.
-
-  <pre class="codeexample">
-   derivedByRemovalFrom(d2, d, {"k1", "k2"})               
-   derivedByRemovalFrom(d2, d, {"k1"})               
-   derivedByRemovalFrom(d2, d, {"k1", "k2"}, [])               
-</pre>
-  </div>
-
-
-</section> <!-- removal -->
-
-<section id="expression-dictionary-other">
-	<h3>Other expressions</h3>
-	For the notation of dictionaries, we used some new non-terminals. We provide their production rules here.
-	
-<div class="grammar">
-<p id="prod-dIdentifier"><span class="nonterminal">dIdentifier</span>&nbsp;::=  
-  <a href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-identifier" class="nonterminal">identifier</a> </p>
-	
-<p id="prod-key"><span class="nonterminal">key</span>&nbsp;::=  
-  <a href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-literal" class="nonterminal">literal</a> </p>
-	
-	<p id="prod-keyValuePairs"><span class="nonterminal">keyValuePairs</span>&nbsp;::=  
-	<a href="#prod-keyValuePair" class="nonterminal">keyValuePair</a> <span class="star"><span class="name">,</span> <a href="#prod-keyValuePair" class="nonterminal">keyValuePair</a></span> </p>
-	
-	<p id="prod-keyValuePair"><span class="nonterminal">keyValuePair</span>&nbsp;::=  
-	<span class="name">(</span> <a href="#prod-key" class="nonterminal">key</a> <span class="name">,</span> <a href="http://www.w3.org/TR/2013/PR-prov-n-20130312/#prod-eIdentifier" class="nonterminal">eIdentifier</a> <span class="name">)</span> </p>
-	
-	<p id="prod-keySet"><span class="nonterminal">keySet</span>&nbsp;::=  
-	<a href="#prod-key" class="nonterminal">key</a> <span class="star"><span class="name">,</span> <a href="#prod-key" class="nonterminal">key</a></span> </p>
-
-</div>
-</section> <!-- other -->
-
-</section>
-
-<section id="dictionary-ontological-definition"> 
-<h2>PROV-O Representation of Dictionary</h2>
-<p>In this section, the ontological definition of <code>prov:Dictionary</code> is given, in order to extend [[PROV-O]] with dictionaries. For more information on the terminology, syntax and conventions used in this section, we refer to [[PROV-O]].</p>
-<p>The classes and properties defined in this document will be included in the default namespace of PROV.
-  Users of the ontology have the option of importing <code>&lt;http://www.w3.org/ns/prov#&gt;</code>, which includes all extensions, including PROV-Dictionary, or if they wish to have only [[PROV-O]] terms, they can import <code>&lt;http://www.w3.org/ns/prov-o#&gt;</code>. Similarly, <code>&lt;http://www.w3.org/ns/prov-dictionary#&gt;</code> holds only the PROV-Dictionary terms.
-The [<a href="https://dvcs.w3.org/hg/prov/raw-file/default/dictionary/prov-dictionary.owl">OWL file for PROV-Dictionary</a>] is available for download. (Note that this file is unfinished at the time of this working draft, and may be subject to change.)</p>
-  
-  <p> A <code><a class="qname"
-	href='#Dictionary'>prov:Dictionary</a></code> is a <code
-class="repeated">prov:Entity</code> that acts as a container to some members,
-which are themselves entities.
-Specifically, a dictionary is composed of set of key-value pairs, where a
-literal key is used to identify a constituent entity within the dictionary. 
-
-
-</p>
-<div class="exampleOuter">
-   <pre class="example">
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] :     &lt;http://example.org/&gt; .
-
-:e1 a prov:Entity .
-:e2 a prov:Entity .
-
-:d1 a prov:Dictionary;
-    prov:hadDictionaryMember [ 
-       a prov:KeyValuePair;
-       prov:pairKey   &quot;k1&quot;^^xsd:string;
-       prov:pairValue :e1
-     ], [ 
-       a prov:KeyValuePair;
-       prov:pairKey   &quot;k2&quot;^^xsd:string;
-       prov:pairValue :e2
-     ];
-.
-</pre>
-</div>
-
-<p>It is worth noting that <code>:d1</code> MAY also
-have other members.  If one wants to explicitly state that a dictionary has no members, that dictionary can be described as an instance of the
-subclass <a class="qname"
-href='#EmptyDictionary'><code>prov:EmptyDictionary</code></a>.
-</p>
-
-	<p> To describe the provenance of a dictionary, PROV-Dictionary provides two
-kinds of influence: <code><a class="qname"
-href="#qualifiedInsertion">prov:qualifiedInsertion</a></code> is used to
-describe that a dictionary was obtained from an existing dictionary by
-<a href="#term-dictionary-insertion">inserting</a> a set of key-value pairs.  <code><a class="qname"
-href="#qualifiedRemoval">prov:qualifiedRemoval</a></code> is used to specify
-that a given dictionary was obtained from an existing dictionary by
-  <a href="#term-dictionary-removal">removing</a> a set of key-value pairs.  The example below specifies that
-the dictionary <code>:d1</code> was obtained from the empty dictionary
-<code>:d</code> by <em>inserting</em> the key-value pairs <code>("k1",
-:e1)</code> and <code>("k2", :e2)</code>.  
-</p>
-
-<div class="exampleOuter">
-<pre class="example">@prefix prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] :     &lt;http://example.org/&gt; .
-
-:e1 a prov:Entity .
-:e2 a prov:Entity .
-
-:d  a prov:EmptyDictionary .
-
-:d1 a prov:Dictionary;
-   prov:derivedByInsertionFrom :d;
-   prov:qualifiedInsertion [ 
-      a prov:Insertion;
-      prov:dictionary :d;
-      prov:insertedKeyValuePair [ 
-         a prov:KeyValuePair;
-         prov:pairKey   &quot;k1&quot;^^xsd:string;
-         prov:pairValue :e1;
-      ], [ 
-         a prov:KeyValuePair;
-         prov:pairKey   &quot;k2&quot;^^xsd:string;
-         prov:pairValue :e2;
-      ];
-   ]; 
-. 
-</pre>
-</div>
-
-
-	<p>
-	Similarly, the example below specifies that the dictionary
-	<code>:d3</code> was obtained by <em>removing</em> the key-value pairs associated with
-	the keys <code>"k1"</code> and <code>"k2"</code> from the dictionary
-	<code>:d2</code>. Thus, <code>:d3</code> does not contain the
-	members <code>("k1", :e1)</code> and <code>("k2",
-	:e2)</code> from <code>:d2</code>.
-	</p>
-
-<div class="exampleOuter">
-   <pre class="example">@prefix prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] :     &lt;http://example.org/&gt; .
-
-:d2 a prov:Dictionary .
-
-:d3 a prov:Dictionary;
-   prov:derivedByRemovalFrom :d2;
-   prov:qualifiedRemoval [ 
-      a prov:Removal;
-      prov:dictionary :d2;
-      prov:removedKey    &quot;k1&quot;^^xsd:string, 
-                      &quot;k3&quot;^^xsd:string;
-   ];
-.
-</pre>
-</div>
-<section id="prov-dictionary-owl-terms-at-a-glance">
-  <h3>Overview</h3>
-        <p>These terms are used to describe the provenance of dictionaries.</p>
-         
-  <ul class="hlist">
-    <li>
-      <a href="#Dictionary">prov:Dictionary</a>
-    </li>
-    <li>
-      <a href="#EmptyDictionary">prov:EmptyDictionary</a>
-    </li>
-    <li>
-      <a href="#Insertion">prov:Insertion</a>
-    </li>
-    <li>
-      <a href="#KeyValuePair">prov:KeyValuePair</a>
-    </li>
-    <li>
-      <a href="#Removal">prov:Removal</a>
-    </li>
-    <li class="object-property">
-      <a href="#derivedByInsertionFrom">prov:derivedByInsertionFrom</a>
-    </li>
-    <li class="object-property">
-      <a href="#derivedByRemovalFrom">prov:derivedByRemovalFrom</a>
-    </li>
-    <li class="object-property">
-      <a href="#dictionary">prov:dictionary</a>
-    </li>
-    <li class="object-property">
-      <a href="#insertedKeyValuePair">prov:insertedKeyValuePair</a>
-    </li>
-    <li class="object-property">
-      <a href="#hadDictionaryMember">prov:hadDictionaryMember</a>
-    </li>
-    <li class="datatype-property">
-      <a href="#pairKey">prov:pairKey</a>
-    </li>
-    <li class="object-property">
-      <a href="#pairValue">prov:pairValue</a>
-    </li>
-    <li class="object-property">
-      <a href="#qualifiedInsertion">prov:qualifiedInsertion</a>
-    </li>
-    <li class="object-property">
-      <a href="#qualifiedRemoval">prov:qualifiedRemoval</a>
-    </li>
-    <li class="datatype-property">
-      <a href="#removedKey">prov:removedKey</a>
-    </li>
-  </ul>
-     </section>
-
-<section id="Classes">
-  <h3>Dictionary Classes</h3>
-  <div id="Dictionary" class="entity">
-    <h3>
-      Class: <a href="#Dictionary"><span class="dotted" title="http://www.w3.org/ns/prov#Dictionary">prov:Dictionary</span></a>
-      <span class="backlink">
-         back to <a href="#prov-dictionary-owl-terms-at-a-glance">overview</a>
-      </span>
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#Dictionary</p>
-    <div class="definition"><p>A dictionary is an entity that provides a structure to some constituents, which are themselves entities. These constituents are said to be member of the dictionary.</p>
-    </div>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre >@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] my:     &lt;http://example.org/ontology#&gt; .
[email protected] dcterms: &lt;http://purl.org/dc/terms/&gt; .
[email protected] :     &lt;http://example.org/&gt; .
-
-:seating_chart_2012
-   a prov:Dictionary, prov:Collection, prov:Entity, my:SeatingChart;
-   prov:derivedByInsertionFrom :seating_chart_2011;
-   dcterms:date "2012";
-   my:hasTotalStudents 45;
-.
-</pre>
-    </div>
-
-    <dl class="description">
-    <dd class="comment"><p>This concept allows for the provenance of the dictionary, but also of its constituents to be expressed. Such a notion of dictionary corresponds to a wide variety of concrete data structures, such as a maps or associative arrays.</p>
-    </dd>
-    <dd class="comment"><p>A given dictionary forms a given structure for its members. A different structure (obtained either by insertion or removal of members) constitutes a different dictionary.</p>
-    </dd>
-
-      <dt>is subclass of</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#Collection" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#Collection" class="owlclass">prov:Collection</a>
-      </dd>
-
-      <dt>described with properties</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#hadDictionaryMember" href="#hadDictionaryMember">prov:hadDictionaryMember</a><sup class="type-op" title="object property">op</sup>
-        <a title="http://www.w3.org/ns/prov#derivedByInsertionFrom" href="#derivedByInsertionFrom">prov:derivedByInsertionFrom</a><sup class="type-op" title="object property">op</sup>
-        <a title="http://www.w3.org/ns/prov#qualifiedRemoval" href="#qualifiedRemoval">prov:qualifiedRemoval</a><sup class="type-op" title="object property">op</sup>
-        <a title="http://www.w3.org/ns/prov#qualifiedInsertion" href="#qualifiedInsertion">prov:qualifiedInsertion</a><sup class="type-op" title="object property">op</sup>
-        <a title="http://www.w3.org/ns/prov#derivedByRemovalFrom" href="#derivedByRemovalFrom">prov:derivedByRemovalFrom</a><sup class="type-op" title="object property">op</sup>
-      </dd>
-
-      <dt>in range of</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#derivedByInsertionFrom" href="#derivedByInsertionFrom">prov:derivedByInsertionFrom</a><sup class="type-op" title="object property">op</sup>
-        <a title="http://www.w3.org/ns/prov#derivedByRemovalFrom" href="#derivedByRemovalFrom">prov:derivedByRemovalFrom</a><sup class="type-op" title="object property">op</sup>
-        <a title="http://www.w3.org/ns/prov#dictionary" href="#dictionary">prov:dictionary</a><sup class="type-op" title="object property">op</sup>
-      </dd>
-
-      <dt>has subclass</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#EmptyDictionary" href="#EmptyDictionary" class="owlclass">prov:EmptyDictionary</a>
-      </dd>
-    </dl>
-  </div>
-
-  <div id="EmptyDictionary" class="entity">
-    <h3>
-      Class: <a href="#EmptyDictionary"><span class="dotted" title="http://www.w3.org/ns/prov#EmptyDictionary">prov:EmptyDictionary</span></a>
-      <span class="backlink">
-         back to <a href="#prov-dictionary-owl-terms-at-a-glance">overview</a>
-      </span>
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#EmptyDictionary</p>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre>@prefix prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] :     &lt;http://example.org/&gt; .
-
-:e1 a prov:Entity .
-:e2 a prov:Entity .
-
-:d  a prov:EmptyDictionary
-.</pre>
-    </div>
-
-    <dl class="description">
-    <dd class="comment"><p>An empty dictionary (i.e. has no members).</p>
-    </dd>
-
-      <dt>is subclass of</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
-        <a title="http://www.w3.org/ns/prov#EmptyCollection" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#EmptyCollection" class="owlclass">prov:EmptyCollection</a>
-      </dd>
-    </dl>
-  </div>
-
-  <div id="Insertion" class="entity">
-    <h3>
-      Class: <a href="#Insertion"><span class="dotted" title="http://www.w3.org/ns/prov#Insertion">prov:Insertion</span></a>
-      <span class="backlink">
-         back to <a href="#prov-dictionary-owl-terms-at-a-glance">overview</a>
-      </span>
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#Insertion</p>
-    <div class="definition"><p>Insertion is a derivation that transforms a dictionary into another, by insertion of one or more key-value pairs.</p>
-    </div>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
-
-:our-NEW-baseball-team-field-positions
-   a prov:Dictionary, 
-         :FieldPositions;
-   prov:derivedByInsertionFrom :our-old-baseball-team-field-positions;
-   prov:qualifiedInsertion [ 
-      a prov:Insertion;
-      prov:dictionary :our-old-baseball-team-field-positions;
-      prov:insertedKeyValuePair [ 
-         a prov:KeyValuePair;
-         prov:pairKey   &quot;first-baseman&quot;^^xsd:string;
-         prov:pairValue &lt;http://dbpedia.org/resource/Jim_Thorpe&gt;;
-      ];
-   ];
-.
-
-&lt;http://dbpedia.org/resource/Jim_Thorpe&gt; a prov:Entity .
-
-:our-old-baseball-team-field-positions a prov:Dictionary .
-</pre>
-    </div>
-
-    <dl class="description">
-    <dd class="comment"><p>Insertion is a derivation that transforms a dictionary into another, by insertion of one or more key-value pairs.</p>
-    </dd>
-
-      <dt>is subclass of</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#Derivation" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#Derivation" class="owlclass">prov:Derivation</a>
-      </dd>
-      <dt>described with properties</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#dictionary" href="#dictionary" class="owlclass">prov:dictionary</a>
-        <a title="http://www.w3.org/ns/prov#insertedKeyValuePair" href="#insertedKeyValuePair" class="owlclass">prov:insertedKeyValuePair</a>
-      </dd>
-
-      <dt>in range of</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#qualifiedInsertion" href="#qualifiedInsertion">prov:qualifiedInsertion</a><sup class="type-op" title="object property">op</sup>
-      </dd>
-
-      <dt>qualifies</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#derivedByInsertionFrom" href="#derivedByInsertionFrom" class="owlproperty">prov:derivedByInsertionFrom</a>
-      </dd>
-    </dl>
-  </div>
-
-  <div id="KeyValuePair" class="entity">
-    <h3>
-      Class: <a href="#KeyValuePair"><span class="dotted" title="http://www.w3.org/ns/prov#KeyValuePair">prov:KeyValuePair</span></a>
-      <span class="backlink">
-         back to <a href="#prov-dictionary-owl-terms-at-a-glance">overview</a>
-      </span>
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#KeyValuePair</p>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
-
-
-:our-baseball-team-field-positions
-   a prov:Dictionary, 
-         :FieldPositions;
-    prov:hadDictionaryMember [
-       a prov:KeyValuePair;
-       prov:pairKey &quot;first-baseman&quot;^^xsd:string;
-       prov:pairValue :george;
-    ];
-    prov:hadDictionaryMember [
-       a prov:KeyValuePair;
-       prov:pairKey &quot;pitcher&quot;^^xsd:string;
-       prov:pairValue :carl;
-    ];
-.
-
-:george a prov:Entity .
-:carl   a prov:Entity . 
-</pre>
-    </div>
-
-    <dl class="description">
-    <dd class="comment"><p>A key-value pair. Part of a prov:Dictionary through prov:hadDictionaryMember. The key is any RDF Literal, the value is a prov:Entity.</p>
-    </dd>
-
-      <dt>described with properties</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#pairKey" href="#pairKey">prov:pairKey</a><sup class="type-dp" title="data property">dp</sup>
-        <a title="http://www.w3.org/ns/prov#pairValue" href="#pairValue">prov:pairValue</a><sup class="type-op" title="object property">op</sup>
-      </dd>
-
-      <dt>in range of</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#hadDictionaryMember" href="#hadDictionaryMember">prov:hadDictionaryMember</a><sup class="type-op" title="object property">op</sup>
-        <a title="http://www.w3.org/ns/prov#insertedKeyValuePair" href="#insertedKeyValuePair">prov:insertedKeyValuePair</a><sup class="type-op" title="object property">op</sup>
-      </dd>
-    </dl>
-  </div>
-
-  <div id="Removal" class="entity">
-    <h3>
-      Class: <a href="#Removal"><span class="dotted" title="http://www.w3.org/ns/prov#Removal">prov:Removal</span></a>
-      <span class="backlink">
-         back to <a href="#prov-dictionary-owl-terms-at-a-glance">overview</a>
-      </span>
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#Removal</p>
-    <div class="definition"><p>Removal is a derivation that transforms a dictionary into another, by removing one or more key-value pairs.</p>
-    </div>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
-
-:d1 a prov:Dictionary .
-
-:d2 
-   a prov:Dictionary, 
-     prov:Entity;
-   prov:derivedByRemovalFrom :d1;
-   prov:qualifiedRemoval [
-      a prov:Removal, prov:DictionaryInvolvement;
-      prov:dictionary :d1;
-      prov:removedKey &quot;k1&quot;^^xsd:string, 
-                      &quot;k2&quot;^^xsd:string;
-   ];
-.
-</pre>
-    </div>
-<div>
-    <dl class="description">
-    <dd class="comment"><p>Removal is a derivation that transforms a dictionary into another, by removing one or more key-value pairs specified by <a title="http://www.w3.org/ns/prov#removedKey" href="#removedKey">prov:removedKey</a>.</p>
-    </dd>
-
-      <dt>is subclass of</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#Derivation" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#Derivation" class="owlclass">prov:Derivation</a>
-      </dd>
-
-      <dt>described with properties</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#dictionary" href="#dictionary" class="owlclass">prov:dictionary</a>
-        <a title="http://www.w3.org/ns/prov#removedKey" href="#removedKey">prov:removedKey</a><sup class="type-dp" title="data property">dp</sup>
-      </dd>
-
-      <dt>in range of</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#qualifiedRemoval" href="#qualifiedRemoval">prov:qualifiedRemoval</a><sup class="type-op" title="object property">op</sup>
-      </dd>
-
-      <dt>qualifies</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#derivedByRemovalFrom" href="#derivedByRemovalFrom" class="owlproperty">prov:derivedByRemovalFrom</a>
-      </dd>
-    </dl>
-  </div>
-</div>
-</section>
-<section id="Properties">
-  <h3>Dictionary Properties</h3>
-<div
-     class="prov-collections owl-properties crossreference">
-  <div id="derivedByInsertionFrom" class="entity">
-    <h3>
-      Property: <a href="#derivedByInsertionFrom"><span class="dotted" title="http://www.w3.org/ns/prov#derivedByInsertionFrom">prov:derivedByInsertionFrom</span></a><sup class="type-op" title="object property">op</sup>
-      
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#derivedByInsertionFrom</p>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
-
-
-:e1 a prov:Entity .
-:e2 a prov:Entity .
-
-:d  a prov:EmptyDictionary .
-
-:d1 a prov:Dictionary;
-   prov:derivedByInsertionFrom :d;
-   prov:qualifiedInsertion [ 
-      a prov:Insertion;
-      prov:dictionary :d;
-      prov:insertedKeyValuePair [ 
-         a prov:KeyValuePair;
-         prov:pairKey   &quot;k1&quot;^^xsd:string;
-         prov:pairValue :e1;
-      ], [ 
-         a prov:KeyValuePair;
-         prov:pairKey   &quot;k2&quot;^^xsd:string;
-         prov:pairValue :e2;
-      ];
-   ]; 
-. </pre>
-    </div>
-
-    <div class="description">
-      <div class="comment"><p>The dictionary was derived from the other by insertion. prov:qualifiedInsertion shows details of the insertion, in particular the inserted key-value pairs.</p>
-      </div>
-      <dl>
-
-        <dt>has super-properties</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#wasDerivedFrom" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#wasDerivedFrom" class="owlclass">prov:wasDerivedFrom</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>has domain</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>has range</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>can be qualified with</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#qualifiedInsertion" href="#qualifiedInsertion" class="owlproperty">prov:qualifiedInsertion</a>
-            </li>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Insertion" href="#Insertion" class="owlclass">prov:Insertion</a>
-            </li>
-          </ul>
-        </dd>
-
-      </dl>
-    </div>
-  </div>
-
-  <div id="derivedByRemovalFrom" class="entity">
-    <h3>
-      Property: <a href="#derivedByRemovalFrom"><span class="dotted" title="http://www.w3.org/ns/prov#derivedByRemovalFrom">prov:derivedByRemovalFrom</span></a><sup class="type-op" title="object property">op</sup>
-      
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#derivedByRemovalFrom</p>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
-
-:d1 a prov:Dictionary .
-
-:d2 
-   a prov:Dictionary, prov:Entity;
-   prov:derivedByRemovalFrom :d1;
-   prov:qualifiedRemoval [
-      a prov:Removal;
-      prov:dictionary :d1;
-      prov:removedKey &quot;k1&quot;^^xsd:string, 
-                      &quot;k2&quot;^^xsd:string;
-   ];
-.
-</pre>
-    </div>
-
-    <div class="description">
-      <div class="comment"><p>The dictionary was derived from the other by removal. prov:qualifiedRemoval shows details of the removal, in particular the removed key-value pairs.</p>
-      </div>
-      <dl>
-
-        <dt>has super-properties</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#wasDerivedFrom" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#wasDerivedFrom" class="owlclass">prov:wasDerivedFrom</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>has domain</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>has range</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>can be qualified with</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#qualifiedRemoval" href="#qualifiedRemoval" class="owlproperty">prov:qualifiedRemoval</a>
-            </li>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Removal" href="#Removal" class="owlclass">prov:Removal</a>
-            </li>
-          </ul>
-        </dd>
-
-      </dl>
-    </div>
-  </div>
-
-  <div id="dictionary" class="entity">
-    <h3>
-      Property: <a href="#dictionary"><span class="dotted" title="http://www.w3.org/ns/prov#dictionary">prov:dictionary</span></a><sup class="type-op" title="object property">op</sup>
-      
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#dictionary</p>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre>@prefix prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] :     &lt;http://example.org/&gt; .
-
-:e1 a prov:Entity .
-
-:d  a prov:EmptyDictionary .
-
-:d1 a prov:Dictionary;
-   prov:derivedByInsertionFrom :d;
-   prov:qualifiedInsertion [ 
-      a prov:Insertion;
-      prov:dictionary :d;
-      prov:insertedKeyValuePair [ 
-         a prov:KeyValuePair;
-         prov:pairKey   &quot;k1&quot;^^xsd:string;
-         prov:pairValue :e1;
-      ];
-   ]; 
-. 
-</pre>
-    </div>
-
-    <div class="description">
-      <div class="comment"><p>The property used by a prov:Insertion and prov:Removal to cite the prov:Dictionary that was prov:derivedByInsertionFrom or prov:derivedByRemovalFrom another dictionary. </p>
-      </div>
-      <dl>
-
-        <dt>has super-properties</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#entity" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#p_entity" class="owlclass">prov:entity</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>has domain</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Insertion" href="#Insertion" class="owlclass">prov:Insertion</a> or 
-              <a title="http://www.w3.org/ns/prov#Removal" href="#Removal" class="owlclass">prov:Removal</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>has range</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
-            </li>
-          </ul>
-        </dd>
-
-      </dl>
-    </div>
-  </div>
-
-  <div id="insertedKeyValuePair" class="entity">
-    <h3>
-      Property: <a href="#insertedKeyValuePair"><span class="dotted" title="http://www.w3.org/ns/prov#insertedKeyValuePair">prov:insertedKeyValuePair</span></a><sup class="type-op" title="object property">op</sup>
-      
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#insertedKeyValuePair</p>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
-
-:our-NEW-baseball-team-field-positions
-   a prov:Dictionary, 
-         :FieldPositions;
-   prov:derivedByInsertionFrom :our-old-baseball-team-field-positions;
-   prov:qualifiedInsertion [ 
-      a prov:Insertion;
-      prov:dictionary :our-old-baseball-team-field-positions;
-      prov:insertedKeyValuePair [ 
-         a prov:KeyValuePair;
-         prov:pairKey   &quot;first-baseman&quot;^^xsd:string;
-         prov:pairValue &lt;http://dbpedia.org/resource/Jim_Thorpe&gt;;
-      ];
-   ];
-.
-
-&lt;http://dbpedia.org/resource/Jim_Thorpe&gt; a prov:Entity .
-
-:our-old-baseball-team-field-positions a prov:Dictionary .
-</pre>
-    </div>
-
-    <div class="description">
-      <div class="comment"><p>An object property to refer to the prov:KeyValuePair inserted into a prov:Dictionary.</p>
-      </div>
-      <dl>
-
-        <dt>has domain</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Insertion" href="#Insertion" class="owlclass">prov:Insertion</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>has range</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#KeyValuePair" href="#KeyValuePair" class="owlclass">prov:KeyValuePair</a>
-            </li>
-          </ul>
-        </dd>
-
-      </dl>
-    </div>
-  </div>
-
-  <div id="hadDictionaryMember" class="entity">
-    <h3>
-      Property: <a href="#hadDictionaryMember"><span class="dotted" title="http://www.w3.org/ns/prov#hadDictionaryMember">prov:hadDictionaryMember</span></a><sup class="type-op" title="object property">op</sup>
-      
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#hadDictionaryMember</p>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
-
-:our-old-baseball-team-field-positions
-   a prov:Dictionary, 
-         :FieldPositions;
-      prov:hadDictionaryMember [
-         a prov:KeyValuePair;
-         prov:pairKey &quot;first-baseman&quot;^^xsd:string;
-         prov:pairValue :george;
-      ], [
-         a prov:KeyValuePair;
-         prov:pairKey &quot;pitcher&quot;^^xsd:string;
-         prov:pairValue :carl;
-      ];
-.
-
-:george a prov:Entity .
-:carl   a prov:Entity . 
-</pre>
-    </div>
-
-    <div class="description">
-      <div class="comment"><p>Describes the key-value pair that was member of a prov:Dictionary. A dictionary can have multiple members.</p>
-      </div>
-      <dl>
-
-        <dt>has domain</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>has range</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#KeyValuePair" href="#KeyValuePair" class="owlclass">prov:KeyValuePair</a>
-            </li>
-          </ul>
-        </dd>
-
-      </dl>
-    </div>
-  </div>
-
-
-  <div id="pairKey" class="entity">
-    <h3>
-      Property: <a href="#pairKey"><span class="dotted" title="http://www.w3.org/ns/prov#pairKey">prov:pairKey</span></a><sup class="type-dp" title="data property">dp</sup>
-      
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#pairKey</p>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
-
-:our-old-baseball-team-field-positions
-   a prov:Dictionary, 
-         :FieldPositions;
-      prov:hadDictionaryMember [
-         a prov:KeyValuePair;
-         prov:pairKey &quot;first-baseman&quot;^^xsd:string;
-         prov:pairValue :george;
-      ], [
-         a prov:KeyValuePair;
-         prov:pairKey &quot;pitcher&quot;^^xsd:string;
-         prov:pairValue :carl;
-      ];
-.
-
-:george a prov:Entity .
-:carl   a prov:Entity . 
-</pre>
-    </div>
-
-    <div class="description">
-      <div class="comment"><p>The key of a KeyValuePair, which is an element of a prov:Dictionary.</p>
-      </div>
-      <p><strong>has characteristics</strong> <a href="http://www.w3.org/TR/owl2-syntax/#Functional_Object_Properties"> Functional</a>      </p>
-      <dl>
-
-        <dt>has domain</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#KeyValuePair" href="#KeyValuePair" class="owlclass">prov:KeyValuePair</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>has range</dt>
-        <dd>
-          <ul>
-            <li>
-              http://www.w3.org/2000/01/rdf-schema#Literal
-            </li>
-          </ul>
-        </dd>
-
-      </dl>
-    </div>
-  </div>
-
-  <div id="pairValue" class="entity">
-    <h3>
-      Property: <a href="#pairValue"><span class="dotted" title="http://www.w3.org/ns/prov#pairValue">prov:pairValue</span></a><sup class="type-op" title="object property">op</sup>
-      
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#pairValue</p>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
-
-:our-old-baseball-team-field-positions
-   a prov:Dictionary, 
-         :FieldPositions;
-      prov:hadDictionaryMember [
-         a prov:KeyValuePair;
-         prov:pairKey &quot;first-baseman&quot;^^xsd:string;
-         prov:pairValue :george;
-      ], [
-         a prov:KeyValuePair;
-         prov:pairKey &quot;pitcher&quot;^^xsd:string;
-         prov:pairValue :carl;
-      ];
-.
-
-:george a prov:Entity .
-:carl   a prov:Entity . 
-</pre>
-    </div>
-
-    <div class="description">
-      <div class="comment"><p>The value of a KeyValuePair.</p>
-      </div>
-      <p><strong>has characteristics</strong> <a href="http://www.w3.org/TR/owl2-syntax/#Functional_Object_Properties"> Functional</a>      </p>
-      <dl>
-
-        <dt>has domain</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#KeyValuePair" href="#KeyValuePair" class="owlclass">prov:KeyValuePair</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>has range</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Entity" href="http://www.w3.org/TR/2013/PR-prov-o-20130312/#Entity" class="owlclass">prov:Entity</a>
-            </li>
-          </ul>
-        </dd>
-
-      </dl>
-    </div>
-  </div>
-
-  <div id="qualifiedInsertion" class="entity">
-    <h3>
-      Property: <a href="#qualifiedInsertion"><span class="dotted" title="http://www.w3.org/ns/prov#qualifiedInsertion">prov:qualifiedInsertion</span></a><sup class="type-op" title="object property">op</sup>
-      
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#qualifiedInsertion</p>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
-
-:our-NEW-baseball-team-field-positions
-   a prov:Dictionary, 
-         :FieldPositions;
-   prov:derivedByInsertionFrom :our-old-baseball-team-field-positions;
-   prov:qualifiedInsertion [ 
-      a prov:Insertion;
-      prov:dictionary :our-old-baseball-team-field-positions;
-      prov:insertedKeyValuePair [ 
-         a prov:KeyValuePair;
-         prov:pairKey   &quot;first-baseman&quot;^^xsd:string;
-         prov:pairValue &lt;http://dbpedia.org/resource/Jim_Thorpe&gt;;
-      ];
-   ];
-.
-
-&lt;http://dbpedia.org/resource/Jim_Thorpe&gt; a prov:Entity .
-
-:our-old-baseball-team-field-positions
-   a prov:Dictionary, 
-         :FieldPositions  .
-
-</pre>
-    </div>
-
-    <div class="description">
-      <div class="comment"><p>The dictionary was derived from the other by insertion. prov:qualifiedInsertion shows details of the insertion, in particular the inserted key-value pairs.</p>
-      </div>
-      <dl>
-
-        <dt>has domain</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>has range</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Insertion" href="#Insertion" class="owlclass">prov:Insertion</a>
-            </li>
-          </ul>
-        </dd>
-
-      <dt>qualifies</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#derivedByInsertionFrom" href="#derivedByInsertionFrom" class="owlproperty">prov:derivedByInsertionFrom</a>
-      </dd>
-
-      </dl>
-    </div>
-  </div>
-
-  <div id="qualifiedRemoval" class="entity">
-    <h3>
-      Property: <a href="#qualifiedRemoval"><span class="dotted" title="http://www.w3.org/ns/prov#qualifiedRemoval">prov:qualifiedRemoval</span></a><sup class="type-op" title="object property">op</sup>
-      
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#qualifiedRemoval</p>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
-
-:d1 a prov:Dictionary .
-
-:d2 
-   a prov:Dictionary, prov:Entity;
-   prov:derivedByRemovalFrom :d1;
-   prov:qualifiedRemoval [
-      a prov:Removal;
-      prov:dictionary :d1;
-      prov:removedKey &quot;k1&quot;^^xsd:string, 
-                      &quot;k2&quot;^^xsd:string;
-   ];
-.
-</pre>
-    </div>
-
-    <div class="description">
-      <div class="comment"><p>The dictionary was derived from the other by removal. prov:qualifiedRemoval shows details of the removal, in particular the removed keys.</p>
-      </div>
-      <dl>
-
-        <dt>has domain</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Dictionary" href="#Dictionary" class="owlclass">prov:Dictionary</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>has range</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Removal" href="#Removal" class="owlclass">prov:Removal</a>
-            </li>
-          </ul>
-        </dd>
-
-      <dt>qualifies</dt>
-      <dd>
-        <a title="http://www.w3.org/ns/prov#derivedByRemovalFrom" href="#derivedByRemovalFrom" class="owlproperty">prov:derivedByRemovalFrom</a>
-      </dd>
-
-      </dl>
-    </div>
-  </div>
-
-  <div id="removedKey" class="entity">
-    <h3>
-      Property: <a href="#removedKey"><span class="dotted" title="http://www.w3.org/ns/prov#removedKey">prov:removedKey</span></a><sup class="type-dp" title="data property">dp</sup>
-      
-    </h3>
-    <p><strong>IRI:</strong>http://www.w3.org/ns/prov#removedKey</p>
-
-    <div class="example">
-      <strong>Example</strong>
-      <pre>@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
[email protected] xsd:  &lt;http://www.w3.org/2001/XMLSchema#&gt; .
[email protected] owl:  &lt;http://www.w3.org/2002/07/owl#&gt; .
[email protected] prov: &lt;http://www.w3.org/ns/prov#&gt; .
[email protected] :     &lt;http://example.com/&gt; .
-
-:d2 
-   a prov:Dictionary, 
-     prov:Entity;
-   prov:derivedByRemovalFrom :d1;
-   prov:qualifiedRemoval [
-      a prov:Removal, 
-        prov:DictionaryInvolvement;
-      prov:dictionary :d1;
-      prov:removedKey &quot;k1&quot;^^xsd:string, 
-                       1337, 
-                       3.14;
-   ];
-.
-</pre>
-    </div>
-
-    <div class="description">
-      <div class="comment"><p>The key removed in a Removal.</p>
-      </div>
-      <dl>
-
-        <dt>has domain</dt>
-        <dd>
-          <ul>
-            <li>
-              <a title="http://www.w3.org/ns/prov#Removal" href="#Removal" class="owlclass">prov:Removal</a>
-            </li>
-          </ul>
-        </dd>
-
-        <dt>has range</dt>
-        <dd>
-          <ul>
-            <li>
-              http://www.w3.org/2000/01/rdf-schema#Literal
-            </li>
-          </ul>
-        </dd>
-
-      </dl>
-    </div>
-  </div>
-  </div>
-</section>
-
-</section>
-
-<section id="dictionary-xml-schema"> 
-<h2>PROV-XML Representation of Dictionary</h2>
-This section details how to describe dictionaries with
-the [[PROV-XML]] serialization. The [<a href="http://dvcs.w3.org/hg/prov/raw-file/default/xml/schema/extensions/prov-dictionary.xsd">XML schema for PROV-Dictionary</a>] is available for download. 
-<div class="note">The Working Group is currently discussing the best way of disseminating the XML Schema for PROV-DM and its extensions. For now, we recommend importing both the [<a href="https://dvcs.w3.org/hg/prov/raw-file/default/xml/prov-xml.html#prov-xml-schema">PROV-XML Schema</a>] and the [<a href="https://dvcs.w3.org/hg/prov/raw-file/default/xml/schema/extensions/prov-dictionary.xsd">XML schema for PROV-Dictionary</a>].</div>
-<section id="term-Dictionary">
-<h3>Dictionary</h3>
-<div class="glossary-ref" data-ref="glossary-dictionary"></div>
-<p>To specialize an Entity as a Dictionary, include a <code>prov:type</code> with the value "prov:Dictionary".</p>
-<p>An EmptyDictionary is asserted with the <code>prov:type</code> "prov:EmptyDictionary" and denotes a Dictionary with no members.</p>
-<pre class="example">
-&lt;prov:document
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-    xmlns:prov="http://www.w3.org/ns/prov#"
-    xmlns:ex="http://example.com/ns/ex#"&gt;
-
-  &lt;!-- d0 is an empty dictionary --&gt;
-  <b>&lt;prov:entity prov:id="d0"&gt;
-    &lt;prov:type xsi:type="xsd:QName"&gt;prov:EmptyDictionary&lt;/prov:type&gt;
-  &lt;/prov:entity&gt;</b>
-
-  &lt;!-- d1 is a dictionary, with (so far) unknown content --&gt;
-  <b>&lt;prov:entity prov:id="d1"&gt;
-    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Dictionary&lt;/prov:type&gt;
-  &lt;/prov:entity&gt;</b>
-
-&lt;/prov:document&gt;
-</pre>
-</section>  <!-- end XML:Dictionary -->
-
-
-<section id="term-KeyValuePair">
-<h3>Key-Value Pair</h3>
-<div class="glossary-ref" data-ref="glossary-keyValuePair"></div>
-<p>Key-value pairs are used to identify the members of a dictionary.</p>
-<pre class="schema-type">
-&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="KeyValuePair"  &gt;
-  &lt;xs:element name="entity" type="prov:IDRef" /&gt;
-  &lt;xs:element name="key" type="xs:anySimpleType" /&gt;
-&lt;/xs:complexType&gt;
-</pre>
-<pre class="schema-usage">
-&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="keyValuePair" type="prov:KeyValuePair"/&gt;
-</pre>
-<pre class="example">
-&lt;prov:document&gt;
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-    xmlns:prov="http://www.w3.org/ns/prov#"
-    xmlns:ex="http://example.com/ns/ex#"&gt;
-
-  &lt;prov:entity prov:id="e0"/&gt;
-  &lt;prov:entity prov:id="e1"/&gt;
-  
-  <b>&lt;prov:keyValuePair&gt;
-    &lt;prov:entity prov:ref="e0"/&gt;
-    &lt;prov:key&gt;k0&lt;/prov:key&gt;
-  &lt;/prov:keyValuePair&gt;
-  
-  &lt;prov:keyValuePair&gt;
-    &lt;prov:entity prov:ref="e1"/&gt;
-    &lt;prov:key&gt;k1&lt;/prov:key&gt;
-  &lt;/prov:keyValuePair&gt;</b>
-&lt;/prov:document&gt;
-</pre>
-</section>  <!-- end XML:KeyValuePair -->
-
-<section id="term-DictionaryMembership">
-<h3>Dictionary Membership</h3>
-<div class="glossary-ref" data-ref="glossary-dictionarymembership"></div>
-<p>The members of a dictionary are specified by listing key-value pairs inside a <code>prov:DictionaryMembership</code> element</p>
-<pre class="schema-type">
-&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="DictionaryMembership"&gt;
-  &lt;xs:sequence&gt;
-    &lt;xs:element name="dictionary" type="prov:IDRef"/&gt;
-	&lt;xs:element name="keyValuePair type="prov:KeyValuePair" maxOccurs="unbounded"/&gt;
-  &lt;/xs:sequence&gt;
-&lt;/xs:complexType&gt;
-</pre>
-<pre class="schema-usage">
-&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="hadDictionaryMember" type="prov:DictionaryMembership"/&gt;
-</pre>
-<pre class="example">
-&lt;prov:document
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-    xmlns:prov="http://www.w3.org/ns/prov#"&gt;
-
-  &lt;prov:entity prov:id="e0"/&gt;
-  &lt;prov:entity prov:id="e1"/&gt;
-  &lt;prov:entity prov:id="e2"/&gt;
-
-  &lt;prov:entity prov:id="d"&gt;
-    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Dictionary&lt;/prov:type&gt;
-  &lt;/prov:entity&gt;
-
-  <b>&lt;prov:hadDictionaryMember&gt;
-    &lt;prov:dictionary prov:ref="d"/&gt;
-    &lt;prov:keyValuePair&gt;
-      &lt;prov:entity prov:ref="e0"/&gt;
-      &lt;prov:key&gt;k0&lt;/prov:key&gt;
-    &lt;/prov:keyValuePair&gt;
-    &lt;prov:keyValuePair&gt;
-      &lt;prov:entity prov:ref="e1"/&gt;
-      &lt;prov:key&gt;k1&lt;/prov:key&gt;
-    &lt;/prov:keyValuePair&gt;
-    &lt;prov:keyValuePair&gt;
-      &lt;prov:entity prov:ref="e2"/&gt;
-      &lt;prov:key&gt;k2&lt;/prov:key&gt;
-    &lt;/prov:keyValuePair&gt;
-  &lt;/prov:hadDictionaryMember></b>
-
-&lt;/prov:document&gt;
-</pre>
-</section>  <!-- end term-Membership -->
-
-<section id="term-Insertion">
-<h3>Insertion</h3>
-<div class="glossary-ref" data-ref="glossary-insertion"></div>
-<p>To specify that one dictionary was derived by insertion of key-value pairs into another one, a <code>prov:Insertion</code> element is used.</p>
-<pre class="schema-type">
-&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Insertion"&gt;
-  &lt;xs:sequence&gt;
-    &lt;xs:element name="newDictionary" type="prov:IDRef"/&gt;
-    &lt;xs:element name="oldDictionary" type="prov:IDRef"/&gt;
-	&lt;xs:element name="keyValuePair type="prov:KeyValuePair" maxOccurs="unbounded"/&gt;
-  &lt;/xs:sequence&gt;
-&lt;/xs:complexType&gt;
-</pre>
-<pre class="schema-usage">
-&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="derivedByInsertionFrom" type="prov:Insertion"/&gt;
-</pre>
-<pre class="example">
-&lt;prov:document
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-    xmlns:prov="http://www.w3.org/ns/prov#"&gt;
-
-  &lt;prov:entity prov:id="e0"/&gt;
-  &lt;prov:entity prov:id="e1"/&gt;
-  &lt;prov:entity prov:id="e2"/&gt;
-
-  &lt;prov:entity prov:id="d1"&gt;
-    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Dictionary&lt;/prov:type&gt;
-  &lt;/prov:entity&gt;
-  
-  &lt;prov:entity prov:id="d2"&gt;
-    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Dictionary&lt;/prov:type&gt;
-  &lt;/prov:entity&gt;
-
-  &lt;prov:hadDictionaryMember&gt;
-    &lt;prov:dictionary prov:ref="d1"/&gt;
-    &lt;prov:keyValuePair&gt;
-      &lt;prov:entity prov:ref="e0"/&gt;
-      &lt;prov:key&gt;k0&lt;/prov:key&gt;
-    &lt;/prov:keyValuePair&gt;
-  &lt;/prov:hadDictionaryMember>
-  
-  <b>&lt;prov:derivedByInsertionFrom&gt;
-    &lt;prov:newDictionary prov:ref="d2"/&gt;
-    &lt;prov:oldDictionary prov:ref="d1"/&gt;
-    &lt;prov:keyValuePair&gt;
-      &lt;prov:entity prov:ref="e1"/&gt;
-      &lt;prov:key&gt;k1&lt;/prov:key&gt;
-    &lt;/prov:keyValuePair&gt;
-    &lt;prov:keyValuePair&gt;
-      &lt;prov:entity prov:ref="e2"/&gt;
-      &lt;prov:key&gt;k2&lt;/prov:key&gt;
-    &lt;/prov:keyValuePair&gt;
-  &lt;/prov:derivedByInsertionFrom></b>
-  
-&lt;/prov:document&gt;
-</pre>
-</section> <!-- end term-Insertion -->
-<section id="term-Removal">
-<h3>Removal</h3>
-<div class="glossary-ref" data-ref="glossary-insertion"></div>
-<p>To specify that one dictionary was derived by removal of key-value pairs from another one, a <code>prov:Removal</code> element is used.</p>
-<pre class="schema-type">
-&lt;xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Removal"&gt;
-  &lt;xs:sequence&gt;
-    &lt;xs:element name="newDictionary" type="prov:IDRef"/&gt;
-    &lt;xs:element name="oldDictionary" type="prov:IDRef"/&gt;
-    &lt;xs:element name="key" type="xs:anySimpleType" maxOccurs="unbounded" /&gt;
-  &lt;/xs:sequence&gt;
-&lt;/xs:complexType&gt;
-</pre>
-<pre class="schema-usage">
-&lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="derivedByRemovalFrom" type="prov:Removal"/&gt;
-</pre>
-<pre class="example">
-&lt;prov:document
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-    xmlns:prov="http://www.w3.org/ns/prov#"&gt;
-
-  &lt;prov:entity prov:id="e0"/&gt;
-  &lt;prov:entity prov:id="e1"/&gt;
-  &lt;prov:entity prov:id="e2"/&gt;
-
-  &lt;prov:entity prov:id="d1"&gt;
-    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Dictionary&lt;/prov:type&gt;
-  &lt;/prov:entity&gt;
-  
-  &lt;prov:entity prov:id="d2"&gt;
-    &lt;prov:type xsi:type="xsd:QName"&gt;prov:Dictionary&lt;/prov:type&gt;
-  &lt;/prov:entity&gt;
-
-  &lt;prov:hadDictionaryMember&gt;
-    &lt;prov:dictionary prov:ref="d1"/&gt;
-    &lt;prov:keyValuePair&gt;
-      &lt;prov:entity prov:ref="e0"/&gt;
-      &lt;prov:key&gt;k0&lt;/prov:key&gt;
-    &lt;/prov:keyValuePair&gt;
-    &lt;prov:keyValuePair&gt;
-      &lt;prov:entity prov:ref="e1"/&gt;
-      &lt;prov:key&gt;k1&lt;/prov:key&gt;
-    &lt;/prov:keyValuePair&gt;
-    &lt;prov:keyValuePair&gt;
-      &lt;prov:entity prov:ref="e2"/&gt;
-      &lt;prov:key&gt;k2&lt;/prov:key&gt;
-    &lt;/prov:keyValuePair&gt;
-  &lt;/prov:hadDictionaryMember>
-  
-  <b>&lt;prov:derivedByRemovalFrom&gt;
-    &lt;prov:newDictionary prov:ref="d2"/&gt;
-    &lt;prov:oldDictionary prov:ref="d1"/&gt;
-    &lt;prov:key&gt;k1&lt;/prov:key&gt;
-    &lt;prov:key&gt;k2&lt;/prov:key&gt;
-  &lt;/prov:derivedByRemovalFrom></b>
-  
-&lt;/prov:document&gt;
-</pre>
-</section> <!-- end term-Removal -->
-</section>
-
-<section id="dictionary-constraints"> 
-<h2>Constraints Associated with Dictionary</h2>
-In this section, we specify some inferences and constraints associated with dictionaries. These inferences and constraints MAY be applied to obtain valid provenance when using dictionaries. For more information about valid provenance and its purpose, we refer to the <a href="http://www.w3.org/TR/2013/PR-prov-constraints-20130312/#purpose">disclaimer</a> in [[PROV-CONSTRAINTS]].
-Whereas collections were deliberately left unconstrained in [[PROV-DM]] and [[PROV-CONSTRAINTS]] to remain as general as possible, dictionaries are intended to provide more structure, and thus, are constrained more strictly.
-For more information on how to read this section, we refer to [[PROV-CONSTRAINTS]].
-
-<section id="dictionary-constraints-inferences">
-	<h3>Inferences</h3>
-	<p id="dmembership-cmembership-inference_text"><a href="#term-dictionary-membership">Dictionary  membership</a> implies <a href=" http://www.w3.org/TR/2013/PR-prov-dm-20130312/#term-membership">collection membership</a>.</p>
-	 <div class='inference' id='dmembership-cmembership-inference'>
-	<span class='ruleTitle'><a class="internalDFN" href="#dmembership-cmembership-inference">Inference D1 (dictionary-membership-collection-membership)</a></span>
-<p>
-<span class="conditional">IF</span>  <span class="name">hadDictionaryMember(d, e1, "k1")</span>
-   <span class='conditional'>THEN</span> <span class="name">hadMember(d, e1)</span>
-</p></div>
-
-	<p id="membership-membership-inference_text">Each key maps to a single entity.</p>
-	 <div class='inference' id='key-single-entity-inference'>
-	<span class='ruleTitle'><a class="internalDFN" href="#key-single-entity-inference">Inference D2 (key-single-entity)</a></span>
-<p>
-<span class="conditional">IF</span>  <span class="name">hadDictionaryMember(d1, e1, "k1")</span>
-   and <span class="name">hadDictionaryMember(d1, e2, "k1")</span> 
-   <span class='conditional'>THEN</span> <span class="name">e1 = e2</span>
-</p></div>
-
-<p id="membership-insertion-membership-inference_text">If a dictionary was derived from another dictionary by an insertion, then the former holds all key-entity pairs of the latter, except those updated by the insertion.</p>
-	 <div class='inference' id='membership-insertion-membership-inference'>
-	<span class='ruleTitle'><a class="internalDFN" href="#membership-insertion-membership-inference">Inference D3 (membership-insertion-membership)</a></span>
-<p>
-<span class="conditional">IF</span>  <span class="name">hadDictionaryMember(d1, e, "k")</span>
-   and <span class="name">derivedByInsertionFrom(d2, d1, {("k1", e1),...,("kn", en)})</span> and <span class="name">k</span> &notin; <span class="name">{"k1",...,"kn"}</span>
-   <span class='conditional'>THEN</span> <span class="name">hadDictionaryMember(d2, e, "k")</span>
-</p></div>
-<!--REMOVED CONSTRAINT <p id="membership-update-membership-inference_text">Insertion provides an "update semantics" for the keys that are already present in a dictionary. A new pair replaces an existing pair with the same key in the new dictionary. </p>
-	 <div class='inference' id='membership-update-membership-inference'>
-<p>
-<span class="conditional">IF</span>  <span class="name">hadDictionaryMember(d1, e1, "k1")</span>
-   and <span class="name">derivedByInsertionFrom(d2, d1, {("k1", e2)})</span>
-   <span class='conditional'>THEN</span> <span class="name">hadDictionaryMember(d2, e2, "k1"))</span>
-</p></div>
-/REMOVED CONSTRAINT-->
-
-<p id="insertion-membership-inference_text">A dictionary that was derived by an insertion of key-entity pairs, holds all these specified key-entity pairs. This inference also means that Insertion provides an "update semantics" for the keys that are already present in a dictionary.</p>
-	 <div class='inference' id='insertion-membership-inference'>
-	<span class='ruleTitle'><a class="internalDFN" href="#insertion-membership-inference">Inference D4 (insertion-membership)</a></span>
-<p>
-<span class="conditional">IF</span> <span class="name">derivedByInsertionFrom(d2, d1, {("k1", e1),...,("kn",en)})</span> 
-   <span class='conditional'>THEN</span> <span class="name">hadDictionaryMember(d2, ei, "ki") for each i &in; [1..n]</span>
-</p></div>
-
-
-<!--REMOVED CONSTRAINT <p id="removal-membership-inference_text">Only keys that actually mapped to an entity in a dictionary can be removed from it.</p>
-	 <div class='inference' id='removal-membership-inference'>
-<p>
-<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, {"k1"})</span> 
-   <span class='conditional'>THEN</span> <span class="name">hadDictionaryMember(d1, e1, "k1")</span>
-</p></div>
-  <div class="remark"><b>Note from the editors:</b> this constraint seems too restrictive for some implementations, and the editors would like to remove it, unless there is strong consensus to keep it. Removal of this constraint would also allow for duplicate dictionaries to be derived by "removal" of a non-existing key.</div>
-/REMOVED CONSTRAINT-->
-
-<p id="insertion-derivation-inference_text">Insertion and removal are special cases of derivation.</p>
-	 <div class='inference' id='insertion-derivation-inference'>
-	<span class='ruleTitle'><a class="internalDFN" href="#insertion-derivation-inference">Inference D5 (insertion-derivation)</a></span>
-<p>
-<span class="conditional">IF</span> <span class="name">derivedByInsertionFrom(d2, d1, {("k1", e1),...,("kn",en)})</span> 
-   <span class='conditional'>THEN</span> <span class="name">wasDerivedFrom(d2, d1)</span>
-</p></div>
-	 <div class='inference' id='removal-derivation-inference'>
-	<span class='ruleTitle'><a class="internalDFN" href="#removal-derivation-inference">Inference D6 (removal-derivation)</a></span>
-<p>
-<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, {"k1",...,"kn"})</span> 
-   <span class='conditional'>THEN</span> <span class="name">wasDerivedFrom(d2, d1)</span>
-</p></div>
-
-
-<p id="insertion-removal-membership-inference_text">Insertions and removals do not introduce any new key-entity pairs, other than those specified.</p>
-	 <div class='inference' id='insertion-removal-membership-inference'>
-	<span class='ruleTitle'><a class="internalDFN" href="#insertion-removal-membership-inference">Inference D7 (insertion-removal-membership)</a></span>
-<ol>
-	<li>
-	<span class="conditional">IF</span> <span class="name">derivedByInsertionFrom(d2, d1, {("k1", _e1)})</span> and 
-	<span class="name">derivedByRemovalFrom(d3, d2, {"k1"})</span> and <span class="name">hadDictionaryMember(d1, e2, "k2")</span> and 
-	<span class="name">k1 &ne; k2</span> <span class='conditional'>THEN</span>  <span class="name">hadDictionaryMember(d3, e2, "k2")</span>
-	</li>
-	<li>
-	<span class="conditional">IF</span> <span class="name">derivedByInsertionFrom(d2, d1, {("k1", _e1)})</span> and 
-	<span class="name">derivedByRemovalFrom(d3, d2, {"k1"})</span> and <span class="name">hadDictionaryMember(d3, e2, "k2")</span> and 
-	<span class="name">k1 &ne; k2</span> <span class='conditional'>THEN</span>  <span class="name">hadDictionaryMember(d1, e2, "k2")</span>
-	</li>
-</ol>
-</div>
-  <div class="remark">
-  Note that this inference, together with constraints <a class="internalDFN" href="#impossible-removal-insertion-constraint">D9</a>, <a class="internalDFN" href="#impossible-insertion-insertion-constraint">D10</a> and <a class="internalDFN" href="#impossible-removal-removal-constraint">D11</a>, and the fact that an EmptyDictionary does not contain any key-entity pairs, guarantees <b>completeness</b> of a dictionary, if it can be traced back to an EmptyDictionary through insertions and removals.
-  Here, completeness means that all key-entity pairs of the dictionary are known through a hadDictionaryMember statement.
-	  </div>
-
-</section>
-	<!-- end inferences -->
-	
-<section id="dictionary-constraints-constraints">
-	<h3>Constraints</h3>
-
-<p id="impossible-removal-membership_text">A dictionary that was derived by removal from another dictionary, cannot contain the key-entity pairs that were removed from the latter.</p>
-	 <div class='constraint' id='impossible-removal-membership-constraint'>
-	<span class='ruleTitle'><a class="internalDFN" href="#impossible-removal-membership-constraint">Constraint D8 (impossible-removal-membership)</a></span>
-<p>
-<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, {"k1",...,"kn"})</span> and 
-    <span class="name">hadDictionaryMember(d2, e, "ki")</span> and <span class="name">i &in; [1..n]</span> <span class='conditional'>THEN</span> <span
-	 class="conditional">INVALID</span>
-</p></div>
-	
-	<p id="impossible-removal-insertion_text">A dictionary must not be derived through multiple insertion or removal relations.</p>
-	 <div class='constraint' id='impossible-removal-insertion-constraint'>
-	<span class='ruleTitle'><a class="internalDFN" href="#impossible-removal-insertion-constraint">Constraint D9 (impossible-removal-insertion)</a></span>
-  <p>Here, <span class="name">KV1</span> and <span class="name">KV2</span> are sets of key-entity pairs.</p>
-<p>
-<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, KV1)</span> and 
-    <span class="name">derivedByInsertionFrom(d2, d1, KV2)</span><span class='conditional'>THEN</span> <span
-	 class="conditional">INVALID</span>
-</p></div>
-<div class='constraint' id='impossible-insertion-insertion-constraint'>
-	<span class='ruleTitle'><a class="internalDFN" href="#impossible-insertion-insertion-constraint">Constraint D10 (impossible-insertion-insertion)</a></span>
-<p>Here, <span class="name">KV1</span> and <span class="name">KV2</span> are sets of key-entity pairs.</p>
-<p>
-<span class="conditional">IF</span> <span class="name">derivedByInsertionFrom(d2, d1, KV1)</span> and 
-    <span class="name">derivedByInsertionFrom(d2, d1, KV2)</span><span class='conditional'>THEN</span> <span
-	 class="name">KV1 = KV2</span>
-</p></div>
-<div class='constraint' id='impossible-removal-removal-constraint'>
-	<span class='ruleTitle'><a class="internalDFN" href="#impossible-removal-removal-constraint">Constraint D11 (impossible-removal-removal)</a></span>
-<p>Here, <span class="name">K1</span> and <span class="name">K2</span> are sets of keys.</p>
-<p>
-<span class="conditional">IF</span> <span class="name">derivedByRemovalFrom(d2, d1, K1)</span> and 
-    <span class="name">derivedByRemovalFrom(d2, d1, K2)</span><span class='conditional'>THEN</span> <span
-	 class="name">K1 = K2</span>
-</p></div>
-
-<!--REMOVED CONSTRAINT <p id="impossible-removal-insertion_text">An empty dictionary cannot hold any key-entity pairs.</p>
-	 <div class='constraint' id='impossible-removal-insertion'>
-<p>
-<span class="conditional">IF</span> <span class="name">hadDictionaryMember(d, e1, "k1")</span> and 
-    <span class="name">'prov:EmptyDictionary' &isin; typeOf(d)</span><span class='conditional'>THEN</span> <span
-	 class="conditional">INVALID</span>
-</p></div> /REMOVED CONSTRAINT-->
-	
-</section> <!-- end constraints -->
-
-<section id="dictionary-typing">
-		<h3>Typing</h3>
-	 <div class='constraint' id='typing'>
-	<span class='ruleTitle'><a class="internalDFN" href="#typing">Constraint D12 (typing)</a></span>
-		<ol>
-			<li>
-			<p>
-			<span class="conditional">IF</span>  <span class="name">entity(d, [prov:type='prov:Dictionary'])</span> <span class='conditional'>THEN</span> 
-			<span class="name">'prov:Dictionary' &isin; typeOf(d)</span> and <span class="name">'prov:Collection' &isin; typeOf(d)</span>
-        and <span class="name">'entity' &isin; typeOf(d)</span>
-			</p>
-			</li>
-			<li>
-			<p>
-			<span class="conditional">IF</span>  <span class="name">entity(d, [prov:type='prov:EmptyDictionary'])</span> <span class='conditional'>THEN</span> 
-			<span class="name">'prov:EmptyDictionary' &isin; typeOf(d)</span> and <span class="name">'prov:Dictionary' &isin; typeOf(d)</span>
-        and <span class="name">'prov:Collection' &isin; typeOf(d)</span>
-        and <span class="name">'prov:EmptyCollection' &isin; typeOf(d)</span>
-        and <span class="name">'entity' &isin; typeOf(d)</span>
-			</p>
-			</li>
-			<li>
-			<p>
-			<span class="conditional">IF</span>  <span class="name">hadDictionaryMember(d, e, "k")</span> <span class='conditional'>THEN</span> 
-			<span class="name">'prov:Dictionary' &isin; typeOf(d)</span> and <span class="name">'prov:Collection' &isin; typeOf(d)</span> and <span class="name">'entity' &isin; typeOf(d)</span> and <span class="name">'entity' &isin; typeOf(e)</span>
-			</p>
-			</li>
-			<li>
-      
-			<p>Here, KV is a set of key-entity pairs</p>
-			<p>
-			<span class="conditional">IF</span>  <span class="name">derivedByInsertionFrom(d2, d1, KV)</span> <span class='conditional'>THEN</span> 
-			<span class="name">'prov:Dictionary' &isin; typeOf(d1)</span> and <span class="name">'prov:Dictionary' &isin; typeOf(d2)</span> and <span class="name">'prov:Collection' &isin; typeOf(d1)</span> and <span class="name">'entity' &isin; typeOf(d1)</span> and <span class="name">'prov:Collection' &isin; typeOf(d2)</span> and <span class="name">'entity' &isin; typeOf(d2)</span> and <span class="name">'entity' &isin; typeOf(e1)</span>
-			</p>
-			</li>
-			<li>
-			<p>Here, K is a set of keys</p>
-			<p>
-			<span class="conditional">IF</span>  <span class="name">derivedByRemovalFrom(d2, d1, K)</span> <span class='conditional'>THEN</span> 
-			<span class="name">'prov:Dictionary' &isin; typeOf(d1)</span> and <span class="name">'prov:Dictionary' &isin; typeOf(d2)</span> and <span class="name">'prov:Collection' &isin; typeOf(d1)</span> and <span class="name">'entity' &isin; typeOf(d1)</span> and <span class="name">'prov:Collection' &isin; typeOf(d2)</span> and <span class="name">'entity' &isin; typeOf(d2)</span> 
-			</p>
-			</li>
-		</ol>
-		</div>
-
-</section>
-	
-</section>
-
-
-
-<section class="appendix"> 
-      <h2>Acknowledgements</h2> 
-      <p> 
-        Members of the Provenance Working Group at the time of publication of this document were: Ilkay Altintas (Invited expert), Reza B'Far (Oracle Corporation), Khalid Belhajjame (University of Manchester), James Cheney (University of Edinburgh, School of Informatics), Sam Coppens (iMinds - Ghent University), David Corsar (University of Aberdeen, Computing Science), Stephen Cresswell (The National Archives), Tom De Nies (iMinds - Ghent University), Helena Deus (DERI Galway at the National University of Ireland, Galway, Ireland), Simon Dobson (Invited expert), Martin Doerr (Foundation for Research and Technology - Hellas(FORTH)), Kai Eckert (Invited expert), Jean-Pierre EVAIN (European Broadcasting Union, EBU-UER), James Frew (Invited expert), Irini Fundulaki (Foundation for Research and Technology - Hellas(FORTH)), Daniel Garijo (Universidad Politécnica de Madrid), Yolanda Gil (Invited expert), Ryan Golden (Oracle Corporation), Paul Groth (Vrije Universiteit), Olaf Hartig (Invited expert), David Hau (National Cancer Institute, NCI), Sandro Hawke (W3C/MIT), Jörn Hees (German Research Center for Artificial Intelligence (DFKI) Gmbh), Ivan Herman, (W3C/ERCIM), Ralph Hodgson (TopQuadrant), Hook Hua (Invited expert), Trung Dong Huynh (University of Southampton), Graham Klyne (University of Oxford), Michael Lang (Revelytix, Inc.), Timothy Lebo (Rensselaer Polytechnic Institute), James McCusker (Rensselaer Polytechnic Institute), Deborah McGuinness (Rensselaer Polytechnic Institute), Simon Miles (Invited expert), Paolo Missier (School of Computing Science, Newcastle university), Luc Moreau (University of Southampton), James Myers (Rensselaer Polytechnic Institute), Vinh Nguyen (Wright State University), Edoardo Pignotti (University of Aberdeen, Computing Science), Paulo da Silva Pinheiro (Rensselaer Polytechnic Institute), Carl Reed (Open Geospatial Consortium), Adam Retter (Invited Expert), Christine Runnegar (Invited expert), Satya Sahoo (Invited expert), David Schaengold (Revelytix, Inc.), Daniel Schutzer (FSTC, Financial Services Technology Consortium), Yogesh Simmhan (Invited expert), Stian Soiland-Reyes (University of Manchester), Eric Stephan (Pacific Northwest National Laboratory), Linda Stewart (The National Archives), Ed Summers (Library of Congress), Maria Theodoridou (Foundation for Research and Technology - Hellas(FORTH)), Ted Thibodeau (OpenLink Software Inc.), Curt Tilmes (National Aeronautics and Space Administration), Craig Trim (IBM Corporation), Stephan Zednik (Rensselaer Polytechnic Institute), Jun Zhao (University of Oxford), Yuting Zhao (University of Aberdeen, Computing Science). 
-      </p> 
-    </section> 
-
- </body>
-</html>
-
-
-