prov-n diffs
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Tue, 15 May 2012 09:27:14 +0100
changeset 2817 bfa0612fea9b
parent 2816 951544210da0
child 2819 33bef7f1777e
child 2821 adde02ff57f4
prov-n diffs
model/diff-n.html
model/diff/Makefile
model/prov-n.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/model/diff-n.html	Tue May 15 09:27:14 2012 +0100
@@ -0,0 +1,3087 @@
+<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
+<html lang="en" dir="ltr">
+<head><style type="text/css"><!--
+
+.insert { background-color: #aaffaa }
+.delete { background-color: #ff8888; text-decoration: line-through }
+.tagInsert { background-color: #007700; color: #ffffff }
+.tagDelete { background-color: #770000; color: #ffffff }
+
+--></style> 
+    <title>PROV-N: The Provenance Notation</title> 
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
+    
+
+    <style type="text/css">
+      .note { font-size:small; margin-left:50px }
+     </style>
+
+     
+     
+    
+
+    
+
+     
+  
+
+    
+
+
+     
+     
+    
+    
+
+    
+
+
+    
+
+     
+  <style type="text/css">
+/*****************************************************************
+ * ReSpec CSS
+ * Robin Berjon (robin at berjon dot com)
+ * v0.05 - 2009-07-31
+ *****************************************************************/
+
+
+/* --- INLINES --- */
+em.rfc2119 { 
+    text-transform:     lowercase;
+    font-variant:       small-caps;
+    font-style:         normal;
+    color:              #900;
+}
+
+h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
+h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
+    border: none;
+}
+
+dfn {
+    font-weight:    bold;
+}
+
+a.internalDFN {
+    color:  inherit;
+    border-bottom:  1px solid #99c;
+    text-decoration:    none;
+}
+
+a.externalDFN {
+    color:  inherit;
+    border-bottom:  1px dotted #ccc;
+    text-decoration:    none;
+}
+
+a.bibref {
+    text-decoration:    none;
+}
+
+code {
+    color:  #ff4500;
+}
+
+
+/* --- WEB IDL --- */
+pre.idl {
+    border-top: 1px solid #90b8de;
+    border-bottom: 1px solid #90b8de;
+    padding:    1em;
+    line-height:    120%;
+}
+
+pre.idl::before {
+    content:    "WebIDL";
+    display:    block;
+    width:      150px;
+    background: #90b8de;
+    color:  #fff;
+    font-family:    initial;
+    padding:    3px;
+    font-weight:    bold;
+    margin: -1em 0 1em -1em;
+}
+
+.idlType {
+    color:  #ff4500;
+    font-weight:    bold;
+    text-decoration:    none;
+}
+
+/*.idlModule*/
+/*.idlModuleID*/
+/*.idlInterface*/
+.idlInterfaceID, .idlDictionaryID {
+    font-weight:    bold;
+    color:  #005a9c;
+}
+
+.idlSuperclass {
+    font-style: italic;
+    color:  #005a9c;
+}
+
+/*.idlAttribute*/
+.idlAttrType, .idlFieldType, .idlMemberType {
+    color:  #005a9c;
+}
+.idlAttrName, .idlFieldName, .idlMemberName {
+    color:  #ff4500;
+}
+.idlAttrName a, .idlFieldName a, .idlMemberName a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+}
+
+/*.idlMethod*/
+.idlMethType {
+    color:  #005a9c;
+}
+.idlMethName {
+    color:  #ff4500;
+}
+.idlMethName a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+}
+
+/*.idlParam*/
+.idlParamType {
+    color:  #005a9c;
+}
+.idlParamName {
+    font-style: italic;
+}
+
+.extAttr {
+    color:  #666;
+}
+
+/*.idlConst*/
+.idlConstType {
+    color:  #005a9c;
+}
+.idlConstName {
+    color:  #ff4500;
+}
+.idlConstName a {
+    color:  #ff4500;
+    border-bottom:  1px dotted #ff4500;
+    text-decoration: none;
+}
+
+/*.idlException*/
+.idlExceptionID {
+    font-weight:    bold;
+    color:  #c00;
+}
+
+.idlTypedefID, .idlTypedefType {
+    color:  #005a9c;
+}
+
+.idlRaises, .idlRaises a.idlType, .idlRaises a.idlType code, .excName a, .excName a code {
+    color:  #c00;
+    font-weight:    normal;
+}
+
+.excName a {
+    font-family:    monospace;
+}
+
+.idlRaises a.idlType, .excName a.idlType {
+    border-bottom:  1px dotted #c00;
+}
+
+.excGetSetTrue, .excGetSetFalse, .prmNullTrue, .prmNullFalse, .prmOptTrue, .prmOptFalse {
+    width:  45px;
+    text-align: center;
+}
+.excGetSetTrue, .prmNullTrue, .prmOptTrue { color:  #0c0; }
+.excGetSetFalse, .prmNullFalse, .prmOptFalse { color:  #c00; }
+
+.idlImplements a {
+    font-weight:    bold;
+}
+
+dl.attributes, dl.methods, dl.constants, dl.fields, dl.dictionary-members {
+    margin-left:    2em;
+}
+
+.attributes dt, .methods dt, .constants dt, .fields dt, .dictionary-members dt {
+    font-weight:    normal;
+}
+
+.attributes dt code, .methods dt code, .constants dt code, .fields dt code, .dictionary-members dt code {
+    font-weight:    bold;
+    color:  #000;
+    font-family:    monospace;
+}
+
+.attributes dt code, .fields dt code, .dictionary-members dt code {
+    background:  #ffffd2;
+}
+
+.attributes dt .idlAttrType code, .fields dt .idlFieldType code, .dictionary-members dt .idlMemberType code {
+    color:  #005a9c;
+    background:  transparent;
+    font-family:    inherit;
+    font-weight:    normal;
+    font-style: italic;
+}
+
+.methods dt code {
+    background:  #d9e6f8;
+}
+
+.constants dt code {
+    background:  #ddffd2;
+}
+
+.attributes dd, .methods dd, .constants dd, .fields dd, .dictionary-members dd {
+    margin-bottom:  1em;
+}
+
+table.parameters, table.exceptions {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    margin: 0.5em 0;
+    width:  100%;
+}
+table.parameters { border-bottom:  1px solid #90b8de; }
+table.exceptions { border-bottom:  1px solid #deb890; }
+
+.parameters th, .exceptions th {
+    color:  #fff;
+    padding:    3px 5px;
+    text-align: left;
+    font-family:    initial;
+    font-weight:    normal;
+    text-shadow:    #666 1px 1px 0;
+}
+.parameters th { background: #90b8de; }
+.exceptions th { background: #deb890; }
+
+.parameters td, .exceptions td {
+    padding:    3px 10px;
+    border-top: 1px solid #ddd;
+    vertical-align: top;
+}
+
+.parameters tr:first-child td, .exceptions tr:first-child td {
+    border-top: none;
+}
+
+.parameters td.prmName, .exceptions td.excName, .exceptions td.excCodeName {
+    width:  100px;
+}
+
+.parameters td.prmType {
+    width:  120px;
+}
+
+table.exceptions table {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    width:  100%;
+}
+
+/* --- TOC --- */
+.toc a {
+    text-decoration:    none;
+}
+
+a .secno {
+    color:  #000;
+}
+
+/* --- TABLE --- */
+table.simple {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    border-bottom:  3px solid #005a9c;
+}
+
+.simple th {
+    background: #005a9c;
+    color:  #fff;
+    padding:    3px 5px;
+    text-align: left;
+}
+
+.simple th[scope="row"] {
+    background: inherit;
+    color:  inherit;
+    border-top: 1px solid #ddd;
+}
+
+.simple td {
+    padding:    3px 10px;
+    border-top: 1px solid #ddd;
+}
+
+.simple tr:nth-child(even) {
+    background: #f0f6ff;
+}
+
+/* --- DL --- */
+.section dd > p:first-child {
+    margin-top: 0;
+}
+
+.section dd > p:last-child {
+    margin-bottom: 0;
+}
+
+.section dd {
+    margin-bottom:  1em;
+}
+
+.section dl.attrs dd, .section dl.eldef dd {
+    margin-bottom:  0;
+}
+
+
+
+
+
+/* --- EXAMPLES --- */
+pre.example {
+    border-top: 1px solid #ff4500;
+    border-bottom: 1px solid #ff4500;
+    padding:    1em;
+    margin-top: 1em;
+}
+
+pre.example::before {
+    content:    "Example";
+    display:    block;
+    width:      150px;
+    background: #ff4500;
+    color:  #fff;
+    font-family:    initial;
+    padding:    3px;
+    font-weight:    bold;
+    margin: -1em 0 1em -1em;
+}
+
+/* --- EDITORIAL NOTES --- */
+.issue {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #ffc;
+}
+
+.issue::before {
+    content:    "Issue";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+.note {
+    margin: 1em 0em 0em;
+    padding:    1em;
+    border: 2px solid #cff6d9;
+    background: #e2fff0;
+}
+
+.note::before {
+    content:    "Note";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #cff6d9;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+/* --- Best Practices --- */
+div.practice {
+    border: solid #bebebe 1px;
+    margin: 2em 1em 1em 2em;
+}
+
+span.practicelab {
+    margin: 1.5em 0.5em 1em 1em;
+    font-weight: bold;
+    font-style: italic;
+}
+
+span.practicelab   { background: #dfffff; }
+
+span.practicelab {
+    position: relative;
+    padding: 0 0.5em;
+    top: -1.5em;
+}
+
+p.practicedesc {
+    margin: 1.5em 0.5em 1em 1em;
+}
+
+@media screen {
+    p.practicedesc {
+        position: relative;
+        top: -2em;
+        padding: 0;
+        margin: 1.5em 0.5em -1em 1em;
+    }
+}
+
+/* --- SYNTAX HIGHLIGHTING --- */
+pre.sh_sourceCode {
+  background-color: white;
+  color: black;
+  font-style: normal;
+  font-weight: normal;
+}
+
+pre.sh_sourceCode .sh_keyword { color: #005a9c; font-weight: bold; }           /* language keywords */
+pre.sh_sourceCode .sh_type { color: #666; }                            /* basic types */
+pre.sh_sourceCode .sh_usertype { color: teal; }                             /* user defined types */
+pre.sh_sourceCode .sh_string { color: red; font-family: monospace; }        /* strings and chars */
+pre.sh_sourceCode .sh_regexp { color: orange; font-family: monospace; }     /* regular expressions */
+pre.sh_sourceCode .sh_specialchar { color: 	#ffc0cb; font-family: monospace; }  /* e.g., \n, \t, \\ */
+pre.sh_sourceCode .sh_comment { color: #A52A2A; font-style: italic; }         /* comments */
+pre.sh_sourceCode .sh_number { color: purple; }                             /* literal numbers */
+pre.sh_sourceCode .sh_preproc { color: #00008B; font-weight: bold; }       /* e.g., #include, import */
+pre.sh_sourceCode .sh_symbol { color: blue; }                            /* e.g., *, + */
+pre.sh_sourceCode .sh_function { color: black; font-weight: bold; }         /* function calls and declarations */
+pre.sh_sourceCode .sh_cbracket { color: red; }                              /* block brackets (e.g., {, }) */
+pre.sh_sourceCode .sh_todo { font-weight: bold; background-color: #00FFFF; }   /* TODO and FIXME */
+
+/* Predefined variables and functions (for instance glsl) */
+pre.sh_sourceCode .sh_predef_var { color: #00008B; }
+pre.sh_sourceCode .sh_predef_func { color: #00008B; font-weight: bold; }
+
+/* for OOP */
+pre.sh_sourceCode .sh_classname { color: teal; }
+
+/* line numbers (not yet implemented) */
+pre.sh_sourceCode .sh_linenum { display: none; }
+
+/* Internet related */
+pre.sh_sourceCode .sh_url { color: blue; text-decoration: underline; font-family: monospace; }
+
+/* for ChangeLog and Log files */
+pre.sh_sourceCode .sh_date { color: blue; font-weight: bold; }
+pre.sh_sourceCode .sh_time, pre.sh_sourceCode .sh_file { color: #00008B; font-weight: bold; }
+pre.sh_sourceCode .sh_ip, pre.sh_sourceCode .sh_name { color: #006400; }
+
+/* for Prolog, Perl... */
+pre.sh_sourceCode .sh_variable { color: #006400; }
+
+/* for LaTeX */
+pre.sh_sourceCode .sh_italics { color: #006400; font-style: italic; }
+pre.sh_sourceCode .sh_bold { color: #006400; font-weight: bold; }
+pre.sh_sourceCode .sh_underline { color: #006400; text-decoration: underline; }
+pre.sh_sourceCode .sh_fixed { color: green; font-family: monospace; }
+pre.sh_sourceCode .sh_argument { color: #006400; }
+pre.sh_sourceCode .sh_optionalargument { color: purple; }
+pre.sh_sourceCode .sh_math { color: orange; }
+pre.sh_sourceCode .sh_bibtex { color: blue; }
+
+/* for diffs */
+pre.sh_sourceCode .sh_oldfile { color: orange; }
+pre.sh_sourceCode .sh_newfile { color: #006400; }
+pre.sh_sourceCode .sh_difflines { color: blue; }
+
+/* for css */
+pre.sh_sourceCode .sh_selector { color: purple; }
+pre.sh_sourceCode .sh_property { color: blue; }
+pre.sh_sourceCode .sh_value { color: #006400; font-style: italic; }
+
+/* other */
+pre.sh_sourceCode .sh_section { color: black; font-weight: bold; }
+pre.sh_sourceCode .sh_paren { color: red; }
+pre.sh_sourceCode .sh_attribute { color: #006400; }<span class="delete">
+
+
+/* --- EDITORIAL NOTES --- */
+.pending {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #BFEFFF;
+}
+
+.pending::before {
+    content:    "Pending Review";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+
+.resolved {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #9BCD9B;
+}
+
+.resolved::before {
+    content:    "Resolved";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+
+.inference {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #fff;
+}
+
+.inference[id]::before {
+    content:    "Inference: " attr(id);
+    width:  380px;  /* How can we compute the length of "Constraint: " attr(id) */
+}
+
+
+.inference::before {
+    content:    "Inference";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+.syntax {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #fff;
+}
+
+.syntax[id]::before {
+    content:    "Syntax: " attr(id);
+    width:  380px;  /* How can we compute the length of "Constraint: " attr(id) */
+}
+
+
+.syntax::before {
+    content:    "Syntax";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+.unamedconstraint {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #00f;
+    background: #fff;
+}
+
+
+.unamedconstraint::before {
+    content:    "Constraint";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #00f;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+
+
+.constraint {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #00f;
+    background: #fff;
+}
+
+.constraint[id]::before {
+    content:    "Constraint: " attr(id);
+    width:  380px;  /* How can we compute the length of "Constraint: " attr(id) */
+}
+
+
+.constraint::before {
+    content:    "Constraint";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #00f;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+
+
+.interpretation {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #00f;
+    background: #fff;
+}
+
+.interpretation[id]::before {
+    content:    "Interpretation: " attr(id);
+    width:  380px;  /* How can we compute the length of "Interpretation: " attr(id) */
+}
+
+
+.interpretation::before {
+    content:    "Interpretation";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #00f;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+.definition {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #777;
+    background: #fff;
+}
+
+.definition[id]::before {
+    content:    "Definition: " attr(id);
+    width:  380px; 
+}
+
+
+.definition::before {
+    content:    "Definition";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #000;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+
+.deprecatedconstraint {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #00f;
+    background: #fff;
+}
+
+.deprecatedconstraint[id]::before {
+    content:    "Deprecated: " attr(id);
+    width:  380px;  /* How can we compute the length of "Deprecatedconstraint: " attr(id) */
+}
+
+
+.deprecatedconstraint::before {
+    content:    "Deprecated";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #00f;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+.glossary-ref {
+    font-style:    italic;
+}
+
+.dfn {
+    font-weight:    bold;
+}
+
+
+.attribute {
+    font-style: italic;
+}
+
+
+.conditional {
+    color: blue;
+}
+
+.grammar {
+    margin-top: 1ex;
+    margin-bottom: 1ex;
+    padding-left: 1ex;
+    padding-right: 1ex;
+    padding-top: 1ex;
+    padding-bottom: 0.6ex;
+    border: 1px dashed #2f6fab;
+    font-size: 80%;
+}
+.nonterminal {
+    font-weight: bold;
+    font-family: sans-serif;
+    font-size: 95%;
+}
+
+.name {
+    font-family: monospace;
+}
+
+
+.xmpl {
+    padding:    1em;
+    margin: 1em 0em 0em;
+    border: 1px solid #f00;
+    background: #fff;
+}
+
+.xmpl::before {
+    content:    "Example";
+    display:    block;
+    width:  150px;
+    margin: -1.5em 0 0.5em 0;
+    font-weight:    bold;
+    border: 1px solid #f00;
+    background: #fff;
+    padding:    3px 1em;
+}
+
+.anexample:before {
+    content: "Example:";
+    font-family: sans-serif;
+    font-size: 1.6ex;
+    font-weight: bold;
+}
+.anexample {
+    margin-top: 1ex;
+    margin-bottom: 1ex;
+    padding-left: 1ex;
+    padding-right: 1ex;
+    padding-top: 1ex;
+    padding-bottom: 0.6ex;
+    border: 1px dashed #2f6fab;
+    background-color: #f9f9f9;
+}
+.anexample table {
+    background-color: #f9f9f9;
+}
+
+.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;
+}
+
+
+
+</span>
+
+</style><link href="./extra.css" rel="stylesheet" type="text/css" charset="utf-8"><link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css" charset="utf-8"></head> 
+  <body style="display: inherit; "><div class="head"><p><a href="http://www.w3.org/"><img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C"></a></p><h1 class="title" id="title">PROV-N: The Provenance Notation</h1>
+<h2 id="subtitle"><span class="insert">towards second working draft</span></h2><h2 id="w3c-editor-s-draft-15-may-2012"><acronym title="World Wide Web Consortium">W3C</acronym> <span class="delete">Working</span><span class="insert">Editor's</span> Draft <span class="delete">03</span><span class="insert">15</span> May 2012</h2>
+<dl><dt>This<span class="insert"> version:</span></dt><dd><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-n.html"><span class="insert">http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-n.html</span></a></dd><dt><span class="insert">Latest published version:</span></dt><dd><a href="http://www.w3.org/TR/prov-n/"><span class="insert">http://www.w3.org/TR/prov-n/</span></a></dd><dt><span class="insert">Latest editor's draft:</span></dt><dd><a href="http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-n.html"><span class="insert">http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-n.html</span></a></dd><dt><span class="insert">Previous</span> version:</dt><dd><a href="http://www.w3.org/TR/2012/WD-prov-n-20120503/">http://www.w3.org/TR/2012/WD-prov-n-20120503/</a></dd>
+<span class="delete">Latest published version:</span><span class="delete">http://www.w3.org/TR/prov-n/</span>
+<span class="delete">Latest editor's draft:</span><span class="delete">http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-n.html</span>
+<dt>Editors:</dt><dd><a href="http://www.ecs.soton.ac.uk/~lavm/">Luc Moreau</a>, University of Southampton</dd>
+<dd><a href="http://www.cs.ncl.ac.uk/people/Paolo.Missier">Paolo Missier</a>, Newcastle University</dd>
+</dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2012 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.eu/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. <acronym title="World Wide Web Consortium">W3C</acronym> <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p><hr></div> 
+
+    <div id="abstract" class="introductory section"><h2>Abstract</h2>
+
+
+<p>
+PROV-DM, the PROV data model, is a data model for provenance that describes
+the entities, people and activities involved in
+producing a piece of data or thing. 
+PROV-DM is structured in six components, dealing with: 
+(1) entities and activities, and the time at which they were created, used, or ended;
+(2) agents bearing responsibility for entities that were generated and activities that happened;
+(3) derivations of entities from entities;
+(4) properties to link entities that refer to the same thing;
+(5) collections forming a logical structure for its members;
+(6) a simple annotation mechanism.
+</p><p>
+</p><p>To provide examples of the PROV data model, the PROV notation (PROV-N) is introduced: aimed at human consumption, PROV-N allows serializations of PROV
+instances to be created in a compact manner. PROV-N facilitates the
+mapping of the PROV data model to concrete syntax, and is used as the basis for a
+formal semantics of PROV.  The purpose of this document is to define the PROV-N notation.
+</p>
+    </div><div id="sotd" class="introductory section"><h2>Status of This Document</h2><p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current <acronym title="World Wide Web Consortium">W3C</acronym> publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/"><acronym title="World Wide Web Consortium">W3C</acronym> technical reports index</a> at http://www.w3.org/TR/.</em></p>
+<h4 id="prov-family-of-specifications">PROV Family of Specifications</h4>
+This document is part of the PROV family of specifications, a set of specifications defining various aspects that are necessary to achieve the vision of inter-operable
+interchange of provenance information in heterogeneous environments such as the Web.  The specifications are:
+<ul>
+<li> PROV-DM, the PROV data model for provenance;</li>
+<li> PROV-CONSTRAINTS, a set of constraints applying to the PROV data model;</li>
+<li> PROV-N, a notation for provenance aimed at human consumption  (this document);</li>
+<li> PROV-O, the PROV ontology, an OWL-RL ontology allowing the mapping of PROV to RDF;</li>
+<li> PROV-AQ, the mechanisms for accessing and querying provenance; </li>
+<li> PROV-PRIMER, a primer for the PROV data model;</li>
+<li> PROV-SEM, a formal semantics for the PROV data model;</li>
+<li> PROV-XML, an XML schema for the PROV data model.</li>
+</ul>
+<h4 id="how-to-read-the-prov-family-of-specifications">How to read the PROV Family of Specifications</h4>
+<ul>
+<li>The primer is the entry point to PROV offering an introduction to the provenance model.</li>
+<li>The Linked Data and Semantic Web community should focus on PROV-O defining PROV classes and properties specified in an OWL-RL ontology. For further details, PROV-DM and PROV-CONSTRAINTS specify the constraints applicable to the data model, and its interpretation. PROV-SEM provides a mathematical semantics.</li>
+<li>The XML community should focus on PROV-XML defining an XML schema for PROV. Further details can also be found in PROV-DM, PROV-CONSTRAINTS, and PROV-SEM.</li>
+<li>Developers seeking to retrieve or publish provenance should focus on PROV-AQ.</li>
+<li>Readers seeking to implement other PROV serializations
+should focus on PROV-DM and PROV-CONSTRAINTS.  PROV-O, PROV-N, PROV-XML offer examples of mapping to RDF, text, and XML, respectively.</li>
+</ul>
+
+
+
+<h4 id="first-public-working-draft">First Public Working Draft</h4>
+ <p>This is the first public release of the PROV-N
+document. Following feedback, the Working Group has decided to
+reorganize the PROV-DM document substantially, separating the data model,
+from its constraints, and the notation used to illustrate it. The
+PROV-N release is synchronized with the release of the PROV-DM, PROV-O,
+PROV-PRIMER, and PROV-CONSTRAINTS documents.
+</p><p>This document was published by the <a href="http://www.w3.org/2011/prov/">Provenance Working Group</a> as <span class="delete">a First Public Working</span><span class="insert">an Editor's</span> Draft.<span class="delete"> This document is intended to become a </span><span class="delete">W3C</span><span class="delete"> Recommendation.</span> If you wish to make comments regarding this document, please send them to <a href="mailto:public-prov-wg@w3.org">public-prov-wg@w3.org</a> (<a href="mailto:public-prov-wg-request@w3.org?subject=subscribe">subscribe</a>, <a href="http://lists.w3.org/Archives/Public/public-prov-wg/">archives</a>). All feedback is welcome.</p><p>Publication as <span class="delete">a Working</span><span class="insert">an Editor's</span> Draft does not imply endorsement by the <acronym title="World Wide Web Consortium">W3C</acronym> Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.</p><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 <acronym title="World Wide Web Consortium">W3C</acronym> Patent Policy</a>. <acronym title="World Wide Web Consortium">W3C</acronym> maintains a <a href="http://www.w3.org/2004/01/pp-impl/46974/status" rel="disclosure">public list of any patent disclosures</a> made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the <acronym title="World Wide Web Consortium">W3C</acronym> Patent Policy</a>.</p></div><div id="toc" class="section"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">1. </span>Introduction</a><ul class="toc"><li class="tocline"><a href="#purpose" class="tocxref"><span class="secno">1.1 </span>Purpose of this Document and target audience</a></li><li class="tocline"><a href="#structure-of-this-document" class="tocxref"><span class="secno">1.2 </span>Structure of this Document</a></li><li class="tocline"><a href="#prov-dm-namespace" class="tocxref"><span class="secno">1.3 </span>Notational Conventions</a></li></ul></li><li class="tocline"><a href="#general-conventions" class="tocxref"><span class="secno">2. </span>General grammar considerations</a><ul class="toc"><li class="tocline"><a href="#functional-syntax" class="tocxref"><span class="secno">2.1 </span>Functional-style Syntax</a></li><li class="tocline"><a href="#grammar-notation" class="tocxref"><span class="secno">2.2 </span>EBNF Grammar</a></li><li class="tocline"><a href="#prov-n-optionals" class="tocxref"><span class="secno">2.3 </span>Optional terms in expressions</a></li><li class="tocline"><a href="#prov-n-standard-terms" class="tocxref"><span class="secno">2.4 </span>Identifiers and attributes</a></li></ul></li><li class="tocline"><a href="#prov-n-expressions" class="tocxref"><span class="secno">3. </span>PROV-N Productions per Component</a><ul class="toc"><li class="tocline"><a href="#component1" class="tocxref"><span class="secno">3.1 </span>Component 1: Entities and Activities</a><ul class="toc"><li class="tocline"><a href="#expression-Entity" class="tocxref"><span class="secno">3.1.1 </span>Entity</a></li><li class="tocline"><a href="#expression-Activity" class="tocxref"><span class="secno">3.1.2 </span>Activity</a></li><li class="tocline"><a href="#expression-Generation" class="tocxref"><span class="secno">3.1.3 </span>Generation</a></li><li class="tocline"><a href="#expression-Usage" class="tocxref"><span class="secno">3.1.4 </span>Usage</a></li><li class="tocline"><a href="#expression-Start" class="tocxref"><span class="secno">3.1.5 </span>Start</a></li><li class="tocline"><a href="#expression-End" class="tocxref"><span class="secno">3.1.6 </span>End</a></li><li class="tocline"><a href="#expression-Invalidation" class="tocxref"><span class="secno">3.1.7 </span>Invalidation</a></li><li class="tocline"><a href="#expression-wasInformedBy" class="tocxref"><span class="secno">3.1.8 </span>Communication<span class="delete">3.1.9 </span><span class="delete">Start by Activity</span></a></li></ul></li><li class="tocline"><a href="#component2" class="tocxref"><span class="secno">3.2 </span>Component 2: Agents and Responsibility</a><ul class="toc"><li class="tocline"><a href="#expression-Agent" class="tocxref"><span class="secno">3.2.1 </span>Agent</a></li><li class="tocline"><a href="#expression-attribution" class="tocxref"><span class="secno">3.2.2 </span>Attribution</a></li><li class="tocline"><a href="#expression-Association" class="tocxref"><span class="secno">3.2.3 </span>Association</a></li><li class="tocline"><a href="#expression-responsibility" class="tocxref"><span class="secno">3.2.4 </span>Responsibility</a></li></ul></li><li class="tocline"><a href="#component3" class="tocxref"><span class="secno">3.3 </span>Component 3: Derivations</a><ul class="toc"><li class="tocline"><a href="#Derivation-Relation" class="tocxref"><span class="secno">3.3.1 </span>Derivation</a></li><li class="tocline"><a href="#expression-Revision" class="tocxref"><span class="secno">3.3.2 </span>Revision</a></li><li class="tocline"><a href="#expression-quotation" class="tocxref"><span class="secno">3.3.3 </span>Quotation</a></li><li class="tocline"><a href="#expression-original-source" class="tocxref"><span class="secno">3.3.4 </span>Original Source</a></li><li class="tocline"><a href="#expression-trace" class="tocxref"><span class="secno">3.3.5 </span>Trace</a></li></ul></li><li class="tocline"><a href="#component4" class="tocxref"><span class="secno">3.4 </span>Component 4: Alternate Entities</a><ul class="toc"><li class="tocline"><a href="#expression-alternate" class="tocxref"><span class="secno">3.4.1 </span>Alternate</a></li><li class="tocline"><a href="#expression-specialization" class="tocxref"><span class="secno">3.4.2 </span>Specialization</a></li></ul></li><li class="tocline"><a href="#component5" class="tocxref"><span class="secno">3.5 </span>Component 5: Collections</a><ul class="toc"><li class="tocline"><a href="#expression-collection-insertion" class="tocxref"><span class="secno">3.5.1 </span>Insertion</a></li><li class="tocline"><a href="#expression-collection-removal" class="tocxref"><span class="secno">3.5.2 </span>Removal</a></li><li class="tocline"><a href="#expression-collection-membership" class="tocxref"><span class="secno">3.5.3 </span>Membership</a></li></ul></li><li class="tocline"><a href="#component6" class="tocxref"><span class="secno">3.6 </span>Component 6: Annotations</a><ul class="toc"><li class="tocline"><a href="#expression-note" class="tocxref"><span class="secno">3.6.1 </span>Note</a></li><li class="tocline"><a href="#expression-annotation" class="tocxref"><span class="secno">3.6.2 </span>Annotation</a></li></ul></li><li class="tocline"><a href="#subexpressions" class="tocxref"><span class="secno">3.7 </span>Further Expressions</a><ul class="toc"><li class="tocline"><a href="#expression-NamespaceDeclaration" class="tocxref"><span class="secno">3.7.1 </span>Namespace Declaration</a></li><li class="tocline"><a href="#expression-identifier" class="tocxref"><span class="secno">3.7.2 </span>Identifier</a></li><li class="tocline"><a href="#expression-attribute" class="tocxref"><span class="secno">3.7.3 </span>Attribute</a></li><li class="tocline"><a href="#expression-literal" class="tocxref"><span class="secno">3.7.4 </span>Literal</a><ul class="toc"><li class="tocline"><a href="#expression-types" class="tocxref"><span class="secno">3.7.4.1 </span>Reserved Type Values</a></li><li class="tocline"><a href="#expression-Time" class="tocxref"><span class="secno">3.7.4.2 </span>Time Values</a></li></ul></li></ul></li></ul></li><li class="tocline"><a href="#ExpressionContainer" class="tocxref"><span class="secno">4. </span>Expression Container</a></li><li class="tocline"><a href="#account" class="tocxref"><span class="secno">5. </span>Account</a></li><li class="tocline"><a href="#media-type" class="tocxref"><span class="secno">6. </span>Media Type</a></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">B.2 </span>Informative references</a></li></ul></li></ul></div> 
+
+
+
+
+
+ 
+
+
+
+
+
+
+
+
+<div id="introduction" class="section"> 
+<h2><span class="secno">1. </span>Introduction</h2>
+
+<p> Provenance is defined as a record that describes the people,
+institutions, entities, and activities, involved in producing,
+influencing, or delivering a piece of data or a thing in the world.  Two
+companion specifications respectively define PROV-DM, a data model for
+provenance, allowing provenance descriptions to be expressed  [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM">PROV-DM</a></cite>]  and a set of constraints that provenance descriptions are expected to satisfy   [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-CONSTRAINTS">PROV-CONSTRAINTS</a></cite>].
+</p>
+
+<div id="purpose" class="section"> 
+<h3><span class="secno">1.1 </span>Purpose of this Document and target audience</h3>
+
+A key goal of PROV is the specification of a machine-processable data model for provenance. However, communicating provenance between humans is also important when teaching, illustrating, formalizing, and discussing provenance-related issues. 
+
+
+
+With these two requirements in mind, this document introduces PROV-N, a syntax notation designed to  write instances of the PROV data model according to the following design principles:
+<ul>
+<li>Technology independence. PROV-N provides a simple syntax that can be mapped to several technologies.
+
+</li><li>Human readability. PROV-N follows a functional syntax style that is meant to be easily human-readable so it can be used in illustrative examples, such as those presented in the PROV documents suite;
+
+</li><li>Formality. PROV-N is defined through a formal grammar amenable to be used with parser generators.
+
+ </li></ul>
+  
+PROV-N has several known uses:
+<ul>
+<li> It is the notation used in the examples found in  [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM">PROV-DM</a></cite>], as well as in the definition of PROV constraints [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-CONSTRAINTS">PROV-CONSTRAINTS</a></cite>]; </li>
+<li>  It is a source language for the encoding of PROV data model instances into a variety of target languages, including amongst others  RDF [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-RDF">PROV-RDF</a></cite>] and XML [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-XML">PROV-XML</a></cite>]; </li>
+<li> It provides the basis for a formal semantics of the PROV data model  [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-SEM">PROV-SEM</a></cite>], in which an interpretation is given to each element of the PROV-N language.
+</li></ul>
+
+<p>This document introduces the PROV-N grammar along with examples of its usage.</p>
+<p>Its target audience is twofold:
+</p><ul>
+<li>Developers of provenance management applications, as well as implementors of new PROV data model encodings, and thus in particular of PROV-N parsers. These readers may be interested in the entire structure of the grammar, starting from the top level nonterminal <a href="#ExpressionContainer">container</a>.</li>
+<li>Readers of the  [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-DM">PROV-DM</a></cite>] and of  [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-CONSTRAINTS">PROV-CONSTRAINTS</a></cite>] documents, who are interested in the details of the formal language underpinning the notation used in the examples and in the definition of the constraints. Those readers may find the  <a href="#grammar-notation">expression</a> nonterminal a useful entry point into the grammar.</li>
+</ul>
+
+</div>
+
+    <div id="structure-of-this-document" class="section"> 
+<h3><span class="secno">1.2 </span>Structure of this Document</h3>
+
+<p>This document defines a grammar using the Extended  Backus-Naur Form (EBNF) notation. Its productions correspond to PROV data model types and relations.
+</p>
+It is structured as follows.
+
+<p><a href="#general-conventions">Section 2</a> provides the design rationale for the PROV Notation.</p>
+
+<p><a href="#grammar-notation">Section 3</a> defines the notation for the Extended  Backus-Naur Form (EBNF) grammar used in this specification.</p>
+
+<p><a href="#prov-n-expressions">Section 4</a> presents the grammar of all expressions of the language grouped according to the PROV data model components.</p>
+
+<p><a href="#ExpressionContainer">Section 5</a> defines the grammar of containers, a house-keeping construct of PROV-N capable of packaging up PROV-N expressions and namespace declarations.</p>
+
+<p><a href="#account">Section 6</a> defines the grammar of accounts.</p>
+
+<p><a href="#media-type">Section 7</a> defines media type for the PROV-N notation.</p>
+
+
+    </div> 
+
+
+<div id="prov-dm-namespace" class="section">
+ <h3><span class="secno">1.3 </span>Notational Conventions</h3>
+
+
+
+<p>The key words "<em class="rfc2119" title="must">must</em>", "<em class="rfc2119" title="must not">must not</em>", "<em class="rfc2119" title="required">required</em>", "<em class="rfc2119" title="shall">shall</em>", "<em class="rfc2119" title="shall
+      not">shall
+      not</em>", "<em class="rfc2119" title="should">should</em>", "<em class="rfc2119" title="should not">should not</em>", "<em class="rfc2119" title="recommended">recommended</em>",  "<em class="rfc2119" title="may">may</em>", and
+      "<em class="rfc2119" title="optional">optional</em>" in this document are to be interpreted as described in
+      [<cite><a class="bibref" rel="biblioentry" href="#bib-RFC2119">RFC2119</a></cite>].</p>
+
+
+
+
+<p>
+The following namespaces prefixes are used throughout this document.
+
+</p><div style="text-align: left;">
+<table border="1" style="margin-left: auto; margin-right: auto;">
+<caption id="namespace-table">Table 1: Prefix and Namespaces used in this specification</caption>
+<tbody><tr><td><a><bf>prefix</bf></a></td><td><bf>namespace uri </bf></td> <td><bf>definition</bf></td></tr>
+<tr><td><a>prov</a></td><td>http://www.w3.org/ns/prov#</td><td>The PROV namespace (see Section <a href="#expression-NamespaceDeclaration">4.7.1</a>)</td></tr>
+<tr><td><a>xsd</a></td><td>http://www.w3.org/2000/10/XMLSchema#</td><td>XML Schema Namespace [<cite><a class="bibref" rel="biblioentry" href="#bib-XMLSCHEMA-2">XMLSCHEMA-2</a></cite>]</td></tr>
+<tr><td><a>rdf</a></td><td>http://www.w3.org/1999/02/22-rdf-syntax-ns#</td><td>The RDF namespace  [<cite><a class="bibref" rel="biblioentry" href="#bib-RDF-CONCEPTS">RDF-CONCEPTS</a></cite>]</td></tr>
+<tr><td><a>(others)</a></td><td>(various)</td><td>All other namespace prefixes are used in examples only. <br> In particular, URIs starting with "http://example.com" represent<br> some application-dependent URI [<cite><a class="bibref" rel="biblioentry" href="#bib-URI">URI</a></cite>]</td></tr>
+</tbody></table>
+</div>
+
+</div> 
+
+</div> 
+
+<div id="general-conventions" class="section">
+<h2><span class="secno">2. </span>General grammar considerations</h2>
+
+<div id="functional-syntax" class="section"> 
+<h3><span class="secno">2.1 </span>Functional-style Syntax</h3>
+
+<p> PROV-N adopts a functional-style syntax consisting of a predicate name and an ordered list of terms.
+All PROV data model relations involve two primary elements, the <em>subject</em> and the <em>object</em>, in this order. Furthermore, some expressions also admit additional elements that further characterize it.
+</p><div class="anexample">
+The following expression should be read as "<span class="name">e2</span> was derived from <span class="name">e1</span>". Here <span class="name">e2</span> is the subject, and  <span class="name">e1</span> is the object.
+<pre class="codeexample">wasDerivedFrom(e2, e1)
+</pre>
+  </div>
+  
+<div class="anexample">
+In the following expressions, the optional activity <span class="name">a</span> along with the generation and usage identifiers, and timestamps have been added to further qualify the derivation:
+<pre class="codeexample">wasDerivedFrom(e2, e1, a, g2, u1)
+activity(a2, 2011-11-16T16:00:00, 2011-11-16T16:00:01)
+</pre>
+</div>
+
+</div>
+
+<div id="grammar-notation" class="section">
+<h3><span class="secno">2.2 </span>EBNF Grammar</h3>
+
+<p>The grammar is specified using the Extended  Backus-Naur Form (EBNF) notation.</p>
+<div class="grammar">
+  Each production rule (or <dfn id="dfn-production">production</dfn>, for short) in the grammar defines one non-terminal symbol <span class="nonterminal">E</span>, in the following form:<p></p>
+
+<span class="nonterminal">E</span>&nbsp;::= <em>term</em>
+
+<p>Within the term on the right-hand side of a rule, the following terms are used to match strings of one or more characters:
+</p><ul>
+<li> 
+<span class="nonterminal">E</span>: matches term satisfying rule for symbol E.
+</li>
+
+<li> 
+<span class="name">abc</span>: matches the literal string inside the single quotes.
+</li>
+
+
+<li> 
+<span class="optional"><em>term</em></span>: optional <em>term</em>, matches <em>term</em> or nothing.
+</li>
+
+<li> 
+<span class="plus"><em>term</em></span>: matches one or more occurrences of <em>term</em>.
+</li>
+
+<li> 
+<span class="star"><em>term</em></span>: matches zero or more occurrences of <em>term</em>.
+</li>
+
+<li> 
+<span class="choice"><em>term</em> | <em>term</em></span>: matches one of the two <em>terms</em>.
+</li>
+
+</ul>
+</div>
+
+The grammar is centered on nonterminals for various types of <span class="nonterminal">expression</span>. The main production is introduced here below as it reflects the rationale for the design of the entire grammar. Note that parser developers may use the top level <a href="#ExpressionContainer">container</a>  nonterminal as a starting point instead.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-expression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-expression" name="prod-expression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">2</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">expression 
+<span class="delete">&nbsp;::=</span>
+
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">( </span><span class="prod"><a class="grammarRef" href="#prod-entityExpression">entityExpression 
+</a></span> | <span class="prod"><a class="grammarRef" href="#prod-activityExpression">activityExpression 
+</a></span> | <span class="prod"><a class="grammarRef" href="#prod-generationExpression">generationExpression 
+</a></span> | <span class="prod"><a class="grammarRef" href="#prod-usageExpression">usageExpression 
+<span class="delete">
+&nbsp;&nbsp;| </span></a></span><span class="insert"> | </span><span class="prod"><a class="grammarRef" href="#prod-startExpression">startExpression 
+</a></span> | <span class="prod"><a class="grammarRef" href="#prod-endExpression">endExpression 
+</a></span> | <span class="prod"><a class="grammarRef" href="#prod-invalidationExpression">invalidationExpression 
+</a></span> | <span class="prod"><a class="grammarRef" href="#prod-communicationExpression">communicationExpression 
+</a></span> | <span class="delete">startByActivityExpression</span> 
+<span class="delete">
+
+&nbsp;&nbsp;| </span><span class="prod"><a class="grammarRef" href="#prod-agentExpression">agentExpression
+</a></span> | <span class="prod"><a class="grammarRef" href="#prod-associationExpression"><span class="insert">associationExpression</span></a></span><span class="insert"> | </span><span class="prod"><a class="grammarRef" href="#prod-attributionExpression">attributionExpression 
+</a></span> | <span class="delete">associationExpression</span> 
+<span class="prod"><a class="grammarRef" href="#prod-responsibilityExpression"><span class="insert">responsibilityExpression</span></a></span> | <span class="delete">responsibilityExpression</span> 
+<span class="delete">
+
+&nbsp;&nbsp;| </span><span class="prod"><a class="grammarRef" href="#prod-derivationExpression">derivationExpression 
+</a></span> | <span class="prod"><a class="grammarRef" href="#prod-tracedToExpression"><span class="insert">tracedToExpression</span></a></span><span class="insert"> | </span><span class="prod"><a class="grammarRef" href="#prod-hadOriginalSourceExpression"><span class="insert">hadOriginalSourceExpression</span></a></span><span class="insert"> | </span><span class="prod"><a class="grammarRef" href="#prod-quotationExpression"><span class="insert">quotationExpression</span></a></span><span class="insert"> | </span><span class="prod"><a class="grammarRef" href="#prod-revisionExpression">revisionExpression 
+</a></span> | <span class="delete">quotationExpression</span> <span class="delete">
+&nbsp;&nbsp;| </span><span class="delete">hadOriginalSourceExpression</span> 
+<span class="prod"><a class="grammarRef" href="#prod-alternateExpression"><span class="insert">alternateExpression</span></a></span> | <span class="delete">traceExpression</span> 
+<span class="delete">
+
+&nbsp;&nbsp;| </span><span class="delete">alternateExpression</span><span class="delete"> 
+| </span><span class="prod"><a class="grammarRef" href="#prod-specializationExpression">specializationExpression
+</a></span><span class="insert"> )</span></code></td> </tr> </tbody></div>
+</div><table class="grammar">
+
+</table>
+
+
+<span class="delete">&nbsp;&nbsp;| </span><span class="delete">noteExpression</span><span class="delete"> 
+| </span><span class="delete">annotationExpression</span> 
+
+
+
+
+
+Each expression non-terminal <span class="nonterminal">expression</span>, i.e.,  <span class="nonterminal">entityExpression</span>, <span class="nonterminal">activityExpression</span> etc., corresponds to one element (entity, activity, etc.) of the PROV data model.
+<p>A PROV-N document consists of a collection of <a title="expression">expressions</a>, wrapped in an <a href="#dfn-expression-container" class="internalDFN">expression container</a> with some namespace declarations, such that the text for an element matches the corresponding <span class="nonterminal">expression</span> production of the grammar.
+
+</p></div>
+
+
+<div id="prov-n-optionals" class="section"> 
+<h3><span class="secno">2.3 </span>Optional terms in expressions</h3>
+
+Some terms in an expression may be optional. For example:
+
+<div class="anexample">
+<pre class="codeexample">wasDerivedFrom(e2, e1, a, g2, u1)
+wasDerivedFrom(e2, e1)
+</pre>
+In a derivation expression, the activity, generation, and usage are optional terms. They are specified in the first derivation, but not in the second.
+</div>
+
+<div class="anexample">
+<pre class="codeexample">activity(a2, 2011-11-16T16:00:00, 2011-11-16T16:00:01)
+activity(a1)
+</pre>
+The start and end times for Activity <span class="name">a1</span> are optional. They are specified in the first expression, but not in the second.
+</div>
+
+<p>The general rule for optionals is that, if <em>none</em> of the optionals are used in the expression, then they are simply omitted, resulting in a simpler expression as in the examples above.</p>
+However, it may be the case that only some of the optional terms are omitted. Because the position of the terms in the expression matters, an additional marker must be used to indicate that a particular term is not available. The symbol  <span class="name"><span class="delete">-</span><span class="insert">'-'</span></span> is used for this purpose.
+
+<div class="anexample">
+<p>In the first expression below, all optionals are specified. However in the second, only the last one is specified, forcing the use of the marker for the missing terms. In the last, no marker is necessary because all <em>remaining</em> optionals after <span class="name">a</span> are missing.
+
+</p><pre class="codeexample">wasDerivedFrom(e2, e1, a, g2, u1)
+wasDerivedFrom(e2, e1, -, -, u1)
+wasDerivedFrom(e2, e1, a)
+</pre>
+</div>
+Note that the more succinct form is just shorthand for a complete expression with all the markers specified:
+<div class="anexample">
+<pre class="codeexample">activity(a1)
+activity(a1, -, -)
+</pre>
+</div>
+
+
+</div>
+
+<div id="prov-n-standard-terms" class="section"> 
+<h3><span class="secno">2.4 </span>Identifiers and attributes</h3>
+
+<p>Most expressions defined in the grammar include the use of two terms: an identifier for the predicate, and a set of attribute-value pairs, delimited by square brackets. Both are optional (unless specified otherwise). By convention, the identifier is the first term in any expression, <span class="insert">followed by a semi-colon ';' </span>and the  set of attribute-value pairs is the last. </p><span class="delete">
+Consistent with the convention on optional terms, the  '</span><span class="delete">-</span><span class="delete">' marker can be used when the identifier is not available. Additionally, the grammar rules are defined in such a way that the optional identifier can be omitted altogether with no ambiguity arising.</span>
+
+<div class="anexample">
+<p>Derivation has an optional identifier. In the first expression, the identifier is not <span class="delete">available. It</span><span class="insert">available, while it</span> is explicit in the <span class="delete">second, and marked by a</span><span class="insert">second. The third example shows that one can optionally indicate the missing identifier using the</span> <span class="name">-</span> <span class="delete">in the third.</span><span class="insert">marker.</span></p>
+<pre class="codeexample">wasDerivedFrom(e2, e1)
+<span class="delete">wasDerivedFrom(d,</span><span class="insert">wasDerivedFrom(d;</span> e2, e1)
+<span class="delete">wasDerivedFrom(-,</span><span class="insert">wasDerivedFrom(-;</span> e2, e1)
+</pre>
+</div>
+
+A distinction is made between expressions with no attributes, and expressions that include an empty list of attributes.
+<div class="anexample">
+<p>The first activity does not have any attributes. The second has an empty list of attributes. The third activity  has two attributes. 
+</p><pre class="codeexample">activity(ex:a10)
+activity(ex:a10, [])
+activity(ex:a10, [ex:param1="a", ex:param2="b"])
+</pre>
+</div>
+
+</div>
+
+</div>
+
+<div id="prov-n-expressions" class="section"> 
+<h2><span class="secno">3. </span>PROV-N Productions per Component</h2>
+
+This section  introduces grammar productions for each expression, followed by small examples illustrating the use of expressions in PROV-N. Strings conforming to the grammar are valid expressions in the PROV-N language.<p>
+
+</p><div id="component1" class="section"> 
+<h3><span class="secno">3.1 </span>Component 1: Entities and Activities</h3>
+
+<div id="expression-Entity" class="section"> 
+<h4><span class="secno">3.1.1 </span>Entity</h4>
+
+<div class="withPn">
+<p>
+
+
+
+</p><div>
+<div class="grammar-ref" data-ref="prod-entityExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-entityExpression" name="prod-entityExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">3</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">entityExpression</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"entity" "(" </span><span class="prod"><a class="grammarRef" href="#prod-identifier"><span class="insert">identifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-optionalAttributeValuePairs"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-optionalAttributeValuePairs" name="prod-optionalAttributeValuePairs"></a><span class="insert">[</span><span class="prodNo"><span class="insert">4</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">optionalAttributeValuePairs</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">( "," "[" </span><span class="prod"><a class="grammarRef" href="#prod-attributeValuePairs"><span class="insert">attributeValuePairs</span></a></span><span class="insert"> "]" )?</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-attributeValuePairs"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-attributeValuePairs" name="prod-attributeValuePairs"></a><span class="insert">[</span><span class="prodNo"><span class="insert">5</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">attributeValuePairs</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">(  | </span><span class="prod"><a class="grammarRef" href="#prod-attributeValuePair"><span class="insert">attributeValuePair</span></a></span><span class="insert"> ( "," </span><span class="prod"><a class="grammarRef" href="#prod-attributeValuePair"><span class="insert">attributeValuePair</span></a></span><span class="insert"> )* )</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-attributeValuePair"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-attributeValuePair" name="prod-attributeValuePair"></a><span class="insert">[</span><span class="prodNo"><span class="insert">6</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">attributeValuePair</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-attribute"><span class="insert">attribute</span></a></span><span class="insert"> "=" </span><span class="prod"><a class="grammarRef" href="#prod-literal"><span class="insert">literal</span></a></span></code></td> </tr> </tbody></div>
+</div><table class="grammar">
+
+</table>
+
+
+
+<span class="delete">entityExpression</span><span class="delete">&nbsp;::=  
+</span><span class="delete">entity</span>
+<span class="delete">(</span>
+<span class="delete">identifier</span>
+<span class="delete">optional-attribute-values</span>
+<span class="delete">)</span>
+
+<span class="delete">optional-attribute-values</span><span class="delete">&nbsp;::= 
+</span><span class="delete">,</span>
+<span class="delete">[</span>
+<span class="delete">attribute-values</span>
+<span class="delete">]</span>
+
+<span class="delete">attribute-values</span><span class="delete">&nbsp;::=  
+</span><span class="delete">attribute-value</span><span class="delete">
+| </span><span class="delete">attribute-value</span> <span class="delete">,</span> <span class="delete">attribute-values</span>
+
+<span class="delete">attribute-value</span><span class="delete">&nbsp;::=  
+</span><span class="delete">attribute</span>
+<span class="delete">=</span>
+<span class="delete">Literal</span>
+
+
+
+
+<div class="anexample">
+<pre class="codeexample">entity(tr:WD-prov-dm-20111215, [ prov:type="document" ])
+</pre>
+  Here <span class="name">tr:WD-prov-dm-20111215</span> is the <span class="insert">entity identifier, and </span><span class="name"><span class="insert">[ prov:type="document" ]</span></span><span class="insert"> groups the </span>optional <span class="delete">entity identifier, and </span><span class="delete">[ prov:type="document" ]</span><span class="delete"> groups the optional attributes </span><span class="insert">attributes, only one in this example,  </span>with their values.
+  <pre class="codeexample">
+entity(tr:WD-prov-dm-20111215)
+</pre>
+Here the optional attributes are not used.
+</div>
+
+
+
+</div></div> 
+<div id="expression-Activity" class="section"> 
+<h4><span class="secno">3.1.2 </span>Activity</h4>
+
+
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-activityExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-activityExpression" name="prod-activityExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">7</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">activityExpression<span class="delete">&nbsp;::=  
+</span><span class="delete">activity</span>
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"activity" "(" </span><span class="prod"><a class="grammarRef" href="#prod-identifier"><span class="insert">identifier</span></a></span> (
+<span class="delete">identifier</span>
+<span class="delete">,</span>
+<span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-timeOrMarker"><span class="insert">timeOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-timeOrMarker"><span class="insert">timeOrMarker</span></a></span><span class="insert"> )? </span><span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-timeOrMarker"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-timeOrMarker" name="prod-timeOrMarker"></a><span class="insert">[</span><span class="prodNo"><span class="insert">8</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">timeOrMarker</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content">( <span class="prod"><a class="grammarRef" href="#prod-time">time</a></span> | <span class="delete">-</span><span class="insert">"-"</span> )
+<span class="delete">,</span><span class="delete">
+(</span><span class="delete">time</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> )</span>
+<span class="delete">optional-attribute-values</span>
+<span class="delete">)</span>
+</code></td> </tr> </tbody></div>
+</div><table class="grammar">
+
+</table>
+
+
+<div class="anexample">
+<pre class="codeexample">activity(ex:a10, 2011-11-16T16:00:00, 2011-11-16T16:00:01, [prov:type="createFile"])
+</pre>
+<p>Here <span class="name">ex:a10</span> is the<span class="delete"> optional </span>  activity identifier, <span class="name">2011-11-16T16:00:00</span> and <span class="name">2011-11-16T16:00:01</span> are the optional start and end times for the activity, and <span class="name">[prov:type="createFile"]</span> are optional attributes. </p>
+The remaining examples show cases where some of the optionals are omitted.
+<pre class="codeexample">activity(ex:a10)
+activity(ex:a10, -, -)
+activity(ex:a10, -, -, [prov:type="edit"])
+activity(ex:a10, -, 2011-11-16T16:00:00)
+activity(ex:a10, 2011-11-16T16:00:00, -)
+activity(ex:a10, 2011-11-16T16:00:00, -, [prov:type="createFile"])
+activity(ex:a10, [prov:type="edit"])
+</pre>
+</div>
+
+
+</div>
+<div id="expression-Generation" class="section">
+<h4><span class="secno">3.1.3 </span>Generation</h4>
+
+
+<div class="withPn">
+
+
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-generationExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-generationExpression" name="prod-generationExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">9</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">generationExpression<span class="delete">&nbsp;::=  
+</span><span class="delete">wasGeneratedBy</span>
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"wasGeneratedBy" "(" </span><span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier"><span class="insert">optionalIdentifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-eIdentifier"><span class="insert">eIdentifier</span></a></span> (
+<span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-aIdentifierOrMarker"><span class="insert">aIdentifierOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-timeOrMarker"><span class="insert">timeOrMarker</span></a></span><span class="insert"> )? </span><span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-optionalIdentifier"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-optionalIdentifier" name="prod-optionalIdentifier"></a><span class="insert">[</span><span class="prodNo"><span class="insert">10</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">optionalIdentifier</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content">( <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker"><span class="insert">identifierOrMarker</span></a></span><span class="insert"> ";" )?</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-identifierOrMarker"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-identifierOrMarker" name="prod-identifierOrMarker"></a><span class="insert">[</span><span class="prodNo"><span class="insert">11</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">identifierOrMarker</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">( </span><span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> | <span class="delete">-</span><span class="insert">"-"</span> ) <span class="delete">,</span> 
+<span class="delete">eIdentifier</span>
+<span class="delete">,</span><span class="delete">
+( </span><span class="delete">aIdentifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> )
+</span><span class="delete">,</span><span class="delete"> ( </span><span class="delete">time</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> )
+</span><span class="delete">optional-attribute-values</span>
+<span class="delete">)</span>
+</code></td> </tr> </tbody></div>
+</div><table class="grammar">
+
+</table>
+
+<div class="anexample">
+
+<pre class="codeexample"><span class="delete">wasGeneratedBy(ex:g1,</span><span class="insert">wasGeneratedBy(ex:g1;</span> tr:WD-prov-dm-20111215, ex:edit1, 2011-11-16T16:00:00,  [ex:fct="save"])
+</pre>
+<p>  Here <span class="name">ex:g1</span> is the optional generation identifier, <span class="name">tr:WD-prov-dm-20111215</span> is the identifier of the entity being generated,
+  <span class="name">ex:edit1</span> is the optional identifier of the generating activity, <span class="name">2011-11-16T16:00:00</span> is the optional generation time, and <span class="name"> [ex:fct="save"]</span> are optional attributes. </p>
+The remaining examples show cases where some of the optionals are omitted.
+  
+<pre class="codeexample">wasGeneratedBy(tr:WD-prov-dm-20111215, <span class="delete">ex:edit1, -)</span><span class="insert">ex:edit1)</span>
+wasGeneratedBy(tr:WD-prov-dm-20111215, ex:edit1, 2011-11-16T16:00:00)
+wasGeneratedBy(e2, a1, -, [ex:fct="save"])     
+wasGeneratedBy(e2, -, -, [ex:fct="save"])     
+<span class="delete">wasGeneratedBy(ex:g1,</span><span class="insert">wasGeneratedBy(ex:g1;</span> tr:WD-prov-dm-20111215, <span class="delete">ex:edit1, -)
+wasGeneratedBy(-, tr:WD-prov-dm-20111215, ex:edit1, -)</span><span class="insert">ex:edit1)</span>
+</pre>
+</div>
+
+<p>Even though the production <span class="nonterminal">generationExpression</span> allows for expressions <span class="name">wasGeneratedBy(e2, -, -)</span>  and <span class="name">wasGeneratedBy(-, e2, -, -)</span>, these expressions are not valid in PROV-N, since 
+at least  one of <span class="attribute">activity</span>, <span class="attribute">time</span>, or  <span class="attribute">attributes</span>  <em class="rfc2119" title="must">must</em> be present.</p>
+
+
+
+
+
+
+
+</div></div>
+
+<div id="expression-Usage" class="section">
+<h4><span class="secno">3.1.4 </span>Usage</h4>
+
+<div class="grammar">
+<span class="nonterminal">usageExpression</span>&nbsp;::=  
+<span class="name">used</span>
+<span class="name">(</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name"><span class="delete">,</span><span class="insert">;</span></span> </span>
+<span class="nonterminal">aIdentifier</span><span class="insert"> (</span>
+<span class="name">,</span>
+<span class="insert">( </span><span class="nonterminal">eIdentifier</span><span class="insert"> )</span>
+<span class="name">,</span> ( <span class="nonterminal">time</span> | <span class="name">-</span> <span class="delete">) 
+</span><span class="insert">))?
+</span><span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span><br>
+</div>
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-usageExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-usageExpression" name="prod-usageExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">12</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">usageExpression</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"used" "(" </span><span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier"><span class="insert">optionalIdentifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-aIdentifier"><span class="insert">aIdentifier</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-eIdentifier"><span class="insert">eIdentifier</span></a></span><span class="insert"> ( "," </span><span class="prod"><a class="grammarRef" href="#prod-timeOrMarker"><span class="insert">timeOrMarker</span></a></span><span class="insert"> )? </span><span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+</div><table class="grammar">
+
+</table>
+
+<div class="note"><span class="insert">should this: 	usageExpression	   ::=   	"used" "(" optionalIdentifier aIdentifier "," eIdentifier ( "," timeOrMarker )? optionalAttributeValuePairs ")"  </span><br><span class="insert">
+ be:  	usageExpression	   ::=   	"used" "(" optionalIdentifier aIdentifier ( "," eIdentifier  "," timeOrMarker )? optionalAttributeValuePairs ")"   ?
+</span></div>
+
+
+
+<div class="anexample">
+  
+<pre class="codeexample"><span class="delete">used(ex:u1,</span><span class="insert">used(ex:u1;</span> ex:act2, ar3:0111, 2011-11-16T16:00:00, [ex:fct="load"])
+ </pre>
+<p>  Here <span class="name">ex:u1</span> is the optional usage identifier,  <span class="name">ex:act2</span> is the identifier of the using activity,
+  <span class="name">ar3:0111</span> is the identifier of the entity being used,
+ <span class="name">2011-11-16T16:00:00</span> is the optional usage time, and <span class="name"> [ex:fct="load"]</span> are optional attributes.</p>
+The remaining examples show cases where some of the optionals are omitted.
+
+  <pre class="codeexample">used(ex:act2, <span class="insert">ar3:0111)
+used(ex:act2, </span>ar3:0111, <span class="delete">-)
+used(ex:act2, ar3:0111, </span>2011-11-16T16:00:00)
+used(a1,e1, -, [ex:fct="load"])
+<span class="delete">used(ex:u1,</span><span class="insert">used(ex:u1;</span> ex:act2, <span class="delete">ar3:0111, -)</span><span class="insert">ar3:0111)</span>
+used(-, ex:act2, <span class="delete">ar3:0111, -)</span><span class="insert">ar3:0111)</span>
+</pre>
+</div>
+
+
+</div>
+<div id="expression-Start" class="section">
+<h4><span class="secno">3.1.5 </span>Start</h4>
+
+
+
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-startExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-startExpression" name="prod-startExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">13</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">startExpression<span class="delete">&nbsp;::= 
+</span><span class="delete">wasStartedBy</span>
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"wasStartedBy" "(" </span><span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier"><span class="insert">optionalIdentifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-aIdentifier"><span class="insert">aIdentifier</span></a></span> (
+<span class="delete">( </span><span class="delete">identifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> ) </span><span class="delete">,</span> 
+<span class="delete">aIdentifier</span>
+<span class="delete">,</span><span class="delete">
+( </span><span class="delete">eIdentifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> )
+</span><span class="delete">,</span><span class="delete"> ( </span><span class="delete">time</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> )
+</span><span class="delete">optional-attribute-values</span>
+<span class="delete">)</span>
+<span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-eIdentifierOrMarker"><span class="insert">eIdentifierOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-aIdentifierOrMarker"><span class="insert">aIdentifierOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-timeOrMarker"><span class="insert">timeOrMarker</span></a></span><span class="insert"> )? </span><span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+
+
+</div><table class="grammar">
+
+</table>
+
+
+<div class="anexample">
+
+  <pre class="codeexample"><span class="delete">wasStartedBy(s,</span><span class="insert">wasStartedBy(s;</span> ex:act2,<span class="insert"> e,</span> ar3:0111, 2011-11-16T16:00:00, [ex:param="a"])
+  </pre>
+  <p>Here <span class="name">s</span> is the optional start identifier,  <span class="name">ex:act2</span> is the identifier of the <span class="delete">starting</span><span class="insert">started</span> activity,
+  <span class="name"><span class="insert">e</span></span><span class="insert"> is the optional identifier for the entity that triggered the activity start,
+   </span><span class="name">ar3:0111</span> is the <span class="insert">optional </span>identifier <span class="delete">of the</span><span class="insert">for the activity that generated the (possibly unspecified)</span> entity<span class="delete"> that triggered the activity start,</span>   <span class="name"><span class="insert">e</span></span><span class="insert">,</span>
+ <span class="name">2011-11-16T16:00:00</span> is the optional usage time, and <span class="name"> [ex:param="a"]</span> are optional attributes.</p>
+  The remaining examples show cases where some of the optionals are omitted.
+  
+  <pre class="codeexample">wasStartedBy(ex:act2, <span class="insert">-, </span>ar3:0111, -)
+wasStartedBy(ex:act2, <span class="insert">-, </span>ar3:0111, 2011-11-16T16:00:00)
+wasStartedBy(ex:act2, -, <span class="insert">-, </span>2011-11-16T16:00:00)
+<span class="insert">wasStartedBy(ex:act2)
+</span>wasStartedBy(ex:act2, <span class="delete">-, -)
+wasStartedBy(ex:act2, -, -, </span>[ex:param="a"])
+<span class="delete">wasStartedBy(s,</span><span class="insert">wasStartedBy(s;</span> ex:act2, <span class="delete">ar3:0111, 2011-11-16T16:00:00)
+wasStartedBy(-, ex:act2,</span><span class="insert">e,</span> ar3:0111, 2011-11-16T16:00:00)
+</pre>
+</div>
+
+<p><strong>Note:</strong> Even though the production <span class="nonterminal">startExpression</span> allows for expressions <span class="name">wasStartedBy(e2, -, -)</span>  and <span class="name">wasStartedBy(-, e2, -, -)</span>, these expressions are not valid in PROV-N,
+since 
+at least  one of <span class="attribute">trigger</span>, <span class="attribute">time</span>, or  <span class="attribute">attributes</span>  <em class="rfc2119" title="must">must</em> be present.</p>
+
+</div>
+
+<div id="expression-End" class="section">
+<h4><span class="secno">3.1.6 </span>End</h4>
+
+
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-endExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-endExpression" name="prod-endExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">14</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">endExpression<span class="delete">&nbsp;::= 
+</span><span class="delete">wasEndedBy</span>
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"wasEndedBy" "(" </span><span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier"><span class="insert">optionalIdentifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-aIdentifier"><span class="insert">aIdentifier</span></a></span> (
+<span class="delete">( </span><span class="delete">identifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> ) </span><span class="delete">,</span> 
+<span class="delete">aIdentifier</span>
+<span class="delete">,</span><span class="delete">
+( </span><span class="delete">eIdentifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> )
+</span><span class="delete">,</span><span class="delete"> ( </span><span class="delete">time</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> )
+</span><span class="delete">optional-attribute-values</span>
+<span class="delete">)</span>
+<span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-eIdentifierOrMarker"><span class="insert">eIdentifierOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-aIdentifierOrMarker"><span class="insert">aIdentifierOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-timeOrMarker"><span class="insert">timeOrMarker</span></a></span><span class="insert"> )? </span><span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+
+
+</div><table class="grammar">
+
+</table>
+
+
+<div class="anexample">
+
+    <pre class="codeexample"><span class="delete">wasEndedBy(s,</span><span class="insert">wasEndedBy(s;</span> ex:act2, <span class="delete">ex:trigger, </span><span class="insert">ex:trigger,ex:act3,  </span>2011-11-16T16:00:00, [ex:param="a"])
+  </pre>
+<p>  Here <span class="name">s</span> is the optional start identifier,    
+<span class="name">ex:act2</span> is the identifier of the ending activity,
+  <span class="name">ex:trigger</span> is the identifier of the entity that triggered the activity end,
+  <span class="name"><span class="insert">ex:act3</span></span><span class="insert"> is the optional identifier for the activity that generated the (possibly unspecified) entity   </span><span class="name"><span class="insert">e</span></span><span class="insert">,</span>
+ <span class="name">2011-11-16T16:00:00</span> is the optional usage time, and <span class="name"> [ex:param="a"]</span> are optional attributes. </p>
+The remaining examples show cases where some of the optionals are omitted.
+
+  
+<pre class="codeexample">wasEndedBy(ex:act2, ex:trigger, <span class="insert">-, </span>-)
+wasEndedBy(ex:act2, ex:trigger, <span class="insert">-, </span>2011-11-16T16:00:00)
+wasEndedBy(ex:act2, -, <span class="insert">-, </span>2011-11-16T16:00:00)
+wasEndedBy(ex:act2, -, <span class="insert">-, </span>2011-11-16T16:00:00, [ex:param="a"])
+<span class="delete">wasEndedBy(e,ex:act2,</span><span class="insert">wasEndedBy(e; ex:act2)
+wasEndedBy(e; ex:act2, ex:trigger,</span> -,<span class="delete"> -)
+wasEndedBy(e, ex:act2, ex:trigger, 2011-11-16T16:00:00)
+wasEndedBy(-, ex:act2, ex:trigger,</span> 2011-11-16T16:00:00)
+</pre>
+</div>
+
+<p><strong>Note:</strong>Even though the production <span class="nonterminal">endExpression</span> allows for expressions <span class="name">wasEndedBy(e2, -, -)</span>  and <span class="name">wasEndedBy(-, e2, -, -)</span>, these expressions are not valid in PROV-N,
+since 
+at least  one of <span class="attribute">trigger</span>, <span class="attribute">time</span>, and  <span class="attribute">attributes</span> <em class="rfc2119" title="must">must</em> be present.</p>
+</div>
+
+<div id="expression-Invalidation" class="section">
+<h4><span class="secno">3.1.7 </span>Invalidation</h4>
+
+
+<div class="withPn">
+
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-invalidationExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-invalidationExpression" name="prod-invalidationExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">15</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">invalidationExpression<span class="delete">&nbsp;::=  
+</span><span class="delete">wasInvalidatedBy</span>
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"wasInvalidatedBy" "(" </span><span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier"><span class="insert">optionalIdentifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-eIdentifier"><span class="insert">eIdentifier</span></a></span> (
+<span class="delete">( </span><span class="delete">identifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> ) </span><span class="delete">,</span> 
+<span class="delete">eIdentifier</span>
+<span class="delete">,</span><span class="delete">
+( </span><span class="delete">aIdentifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> )
+</span><span class="delete">,</span><span class="delete"> ( </span><span class="delete">time</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> )
+</span><span class="delete">optional-attribute-values</span>
+<span class="delete">)</span>
+<span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-aIdentifierOrMarker"><span class="insert">aIdentifierOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-timeOrMarker"><span class="insert">timeOrMarker</span></a></span><span class="insert"> )? </span><span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+</div>
+
+<table class="grammar">
+
+</table>
+
+
+<div class="anexample">
+
+<pre class="codeexample"><span class="delete">wasInvalidatedBy(ex:i1,</span><span class="insert">wasInvalidatedBy(ex:i1;</span> tr:WD-prov-dm-20111215, ex:edit1, 2011-11-16T16:00:00,  [ex:fct="save"])
+</pre>
+<p>  Here <span class="name">ex:i1</span> is the optional invalidation identifier, <span class="name">tr:WD-prov-dm-20111215</span> is the identifier of the entity being invalidated,
+  <span class="name">ex:edit1</span> is the optional identifier of the invalidating activity, <span class="name">2011-11-16T16:00:00</span> is the optional invalidation time, and <span class="name"> [ex:fct="save"]</span> are optional attributes. </p>
+The remaining examples show cases where some of the optionals are omitted.
+  
+<pre class="codeexample">wasInvalidatedBy(tr:WD-prov-dm-20111215, ex:edit1, -)
+wasInvalidatedBy(tr:WD-prov-dm-20111215, ex:edit1, 2011-11-16T16:00:00)
+wasInvalidatedBy(e2, a1, -, [ex:fct="save"])     
+wasInvalidatedBy(e2, -, -, [ex:fct="save"])     
+<span class="delete">wasInvalidatedBy(ex:i1,</span><span class="insert">wasInvalidatedBy(ex:i1;</span> tr:WD-prov-dm-20111215, ex:edit1, -)
+<span class="delete">wasInvalidatedBy(-, tr:WD-prov-dm-20111215,</span><span class="insert">wasInvalidatedBy(tr:WD-prov-dm-20111215,</span> ex:edit1, -)
+</pre>
+</div>
+
+<p>Even though the production <span class="nonterminal">invalidationExpression</span> allows for expressions <span class="name">wasInvalidatedBy(e2, -, -)</span>  and <span class="name">wasInvalidatedBy(-, e2, -, -)</span>, these expressions are not valid in PROV-N, since 
+at least  one of <span class="attribute">activity</span>, <span class="attribute">time</span>, or  <span class="attribute">attributes</span>  <em class="rfc2119" title="must">must</em> be present.</p>
+
+
+</div></div>
+
+
+<div id="expression-wasInformedBy" class="section">
+<h4><span class="secno">3.1.8 </span>Communication</h4>
+
+
+
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-communicationExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-communicationExpression" name="prod-communicationExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">16</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">communicationExpression<span class="delete"> &nbsp;::= 
+</span><span class="delete">wasInformedBy</span>
+<span class="delete">(</span>
+<span class="delete">( </span><span class="delete">identifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> ) </span><span class="delete">,</span> 
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"wasInformedBy" "(" </span><span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier"><span class="insert">optionalIdentifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-aIdentifier">aIdentifier
+<span class="delete">,</span>
+</a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-aIdentifier">aIdentifier
+<span class="delete">optional-attribute-values</span>
+<span class="delete">)</span>
+</a></span> <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+
+
+</div><table class="grammar">
+
+</table>
+
+
+<div class="anexample">
+<pre class="codeexample"><span class="delete">wasInformedBy(ex:inf1,</span><span class="insert">wasInformedBy(ex:inf1;</span> ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
+</pre>
+<p>  Here <span class="name">ex:inf1</span> is the optional communication identifier,  <span class="name">ex:a1</span> is the identifier of the informed activity,
+  <span class="name">ex:a2</span> is the identifier of the informant activity,
+and <span class="name">[ex:param1="a", ex:param2="b"]</span> are optional attributes. </p>
+The remaining examples show cases where some of the optionals are omitted.
+
+<pre class="codeexample">wasInformedBy(ex:a1, ex:a2)
+wasInformedBy(ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
+<span class="delete">wasInformedBy(i,</span><span class="insert">wasInformedBy(i;</span> ex:a1, ex:a2)
+<span class="delete">wasInformedBy(i,</span><span class="insert">wasInformedBy(i;</span> ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
+<span class="delete">wasInformedBy(-, ex:a1, ex:a2)
+wasInformedBy(-, ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
+</span></pre>
+</div>
+</div>
+
+
+<span class="delete">3.1.9 </span><span class="delete">Start by Activity</span>
+
+
+<span class="delete">startByActivityExpression</span><span class="delete"> &nbsp;::= 
+</span><span class="delete">wasStartedByActivity</span>
+<span class="delete">(</span>
+<span class="delete">( </span><span class="delete">identifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> ) </span><span class="delete">,</span> 
+<span class="delete">aIdentifier</span>
+<span class="delete">,</span>
+<span class="delete">aIdentifier</span>
+<span class="delete">optional-attribute-values</span>
+<span class="delete">)</span>
+
+
+
+
+
+</div>
+
+
+<span class="delete">wasStartedByActivity(s,ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
+  </span>
+<span class="delete">  Here </span><span class="delete">s</span><span class="delete"> is the optional start-by-activity identifier,  </span><span class="delete">ex:a1</span><span class="delete"> is the identifier of the starting activity,
+  </span><span class="delete">ex:a2</span><span class="delete"> is the identifier of the activity that started  </span><span class="delete">ex:a1</span><span class="delete">,
+and </span><span class="delete"> [ex:param1="a", ex:param2="b"]</span><span class="delete"> are optional attributes. </span><span class="delete">
+The remaining examples show cases where some of the optionals are omitted.
+  
+  </span><span class="delete">wasStartedByActivity(ex:a1, ex:a2)
+wasStartedByActivity(ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
+wasStartedByActivity(s,ex:a1, ex:a2)
+wasStartedByActivity(-,ex:a1, ex:a2)
+wasStartedByActivity(-,ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
+</span>
+
+
+
+
+
+<div id="component2" class="section"> 
+<h3><span class="secno">3.2 </span>Component 2: Agents and Responsibility</h3>
+<div id="expression-Agent" class="section">
+<h4><span class="secno">3.2.1 </span>Agent</h4>
+
+
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-agentExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-agentExpression" name="prod-agentExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">17</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">agentExpression<span class="delete">&nbsp;::= 
+</span><span class="delete">agent</span>
+<span class="delete">(</span>
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"agent" "(" </span><span class="prod"><a class="grammarRef" href="#prod-identifier">identifier
+<span class="delete">optional-attribute-values</span>
+<span class="delete">)</span>
+</a></span> <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+</div><table class="grammar">
+
+</table>
+
+
+<div class="anexample">
+<pre class="codeexample">agent(ag4, [ prov:type="prov:Person", ex:name="David" ])
+</pre>
+<p>Here <span class="name">ag</span> is the agent identifier, and
+   <span class="name">[ prov:type="prov:Person", ex:name="David" ]</span> are optional attributes. </p>
+In the next example, the optional attributes are omitted.
+
+<pre class="codeexample">agent(ag4)
+</pre>
+</div>
+
+
+</div>
+<div id="expression-attribution" class="section">
+<h4><span class="secno">3.2.2 </span>Attribution</h4>
+
+
+
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-attributionExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-attributionExpression" name="prod-attributionExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">18</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">attributionExpression<span class="delete">&nbsp;::=  
+</span><span class="delete">wasAttributedTo</span> 
+<span class="delete">(</span> 
+<span class="delete">( </span><span class="delete">identifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> ) </span><span class="delete">,</span> 
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"wasAttributedTo" "(" </span><span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier"><span class="insert">optionalIdentifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-eIdentifier">eIdentifier
+<span class="delete">,</span> 
+</a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-agIdentifier">agIdentifier
+<span class="delete">optional-attribute-values</span>
+<span class="delete">)</span> 
+</a></span> <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+
+
+</div><table class="grammar">
+
+</table>
+
+
+<div class="anexample">
+
+<pre class="codeexample"><span class="delete">wasAttributedTo(id,</span><span class="insert">wasAttributedTo(id;</span> e, ag, [ex:license="cc:attributionURL" %% "xsd:QName"])
+  </pre>
+<p>    Here <span class="name">id</span> is the optional attribution identifier,  <span class="name">e</span> is an entity identifier,
+  <span class="name">ag</span> is the identifier of the agent to whom the entity is abscribed, 
+and <span class="name">[ex:license="cc:attributionURL" %% "xsd:QName"]</span> are optional attributes. </p>
+The remaining examples show cases where some of the optionals are omitted.
+
+<pre class="codeexample">wasAttributedTo(e, ag)
+wasAttributedTo(e, ag, [ex:license="cc:attributionURL" %% "xsd:QName"])
+<span class="delete">wasAttributedTo(-,  e, ag, [ex:license="cc:attributionURL" %% "xsd:QName"])
+</span></pre>
+</div>
+
+</div>  
+
+
+<div id="expression-Association" class="section">
+<h4><span class="secno">3.2.3 </span>Association</h4>
+
+
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-associationExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-associationExpression" name="prod-associationExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">19</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">associationExpression<span class="delete">&nbsp;::= 
+</span><span class="delete">wasAssociatedWith</span>
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"wasAssociatedWith" "(" </span><span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier"><span class="insert">optionalIdentifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-aIdentifier"><span class="insert">aIdentifier</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-agIdentifierOrMarker"><span class="insert">agIdentifierOrMarker</span></a></span> (
+<span class="delete">( </span><span class="delete">identifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> ) </span><span class="delete">,</span> 
+<span class="delete">aIdentifier</span>
+<span class="delete">,</span><span class="delete"> 
+( </span><span class="delete">agIdentifier</span><span class="delete">  | </span><span class="delete">-</span><span class="delete"> )
+</span><span class="delete">,</span><span class="delete"> 
+( </span><span class="delete">eIdentifier</span><span class="delete">  | </span><span class="delete">-</span><span class="delete"> )
+</span><span class="delete">optional-attribute-values</span>
+<span class="delete">)</span>
+<span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-eIdentifierOrMarker"><span class="insert">eIdentifierOrMarker</span></a></span><span class="insert"> )? </span><span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+
+
+
+
+</div><table class="grammar">
+
+</table>
+
+
+<div class="anexample">
+<pre class="codeexample"><span class="delete">wasAssociatedWith(ex:agas,</span><span class="insert">wasAssociatedWith(ex:agas;</span> ex:a1, ex:ag1, ex:e1, [ex:param1="a", ex:param2="b"])
+  </pre>
+
+<p>  Here <span class="name">ex:agas</span> is the optional attribution identifier,
+  <span class="name">ex:a1</span> is an activity identifier,
+  <span class="name">ex:ag1</span> is the optional identifier of the agent associated to the activity,
+  <span class="name">ex:e1</span> is the optional identifier of the plan used by the agent in the context of the activity,
+  and <span class="name"> [ex:param1="a", ex:param2="b"]</span> are optional attributes. </p>
+The remaining examples show cases where some of the optionals are omitted.
+
+  
+  
+<pre class="codeexample">wasAssociatedWith(ex:a1, -, ex:e1)
+wasAssociatedWith(ex:a1, <span class="insert">ex:ag1)
+wasAssociatedWith(ex:a1, </span>ex:ag1, <span class="delete">-)</span><span class="insert">ex:e1)</span>
+wasAssociatedWith(ex:a1, ex:ag1, <span class="insert">ex:e1, [ex:param1="a", ex:param2="b"])
+wasAssociatedWith(a; ex:a1, -, </span>ex:e1)<span class="delete">
+wasAssociatedWith(ex:a1, ex:ag1, ex:e1, [ex:param1="a", ex:param2="b"])
+wasAssociatedWith(a, ex:a1, -, ex:e1)
+wasAssociatedWith(-, ex:a1, -, ex:e1)
+wasAssociatedWith(-, ex:a1, ex:ag1, -)</span>
+</pre>
+</div>
+
+<p><strong>Note:</strong>The production <span class="nonterminal">associationExpression</span> allows for expressions <span class="name">wasAssociatedWith(a, -, -)</span>  and <span class="name">wasAssociatiedWith(-, a, -, -)</span>. However, these expressions are not valid in PROV-N, 
+because at least  one of <span class="attribute">agent</span> or <span class="attribute">plan</span> <em class="rfc2119" title="must">must</em> be present.</p>
+
+</div>
+<div id="expression-responsibility" class="section">
+<h4><span class="secno">3.2.4 </span>Responsibility</h4>
+
+
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-responsibilityExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-responsibilityExpression" name="prod-responsibilityExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">20</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">responsibilityExpression<span class="delete">&nbsp;::= 
+</span><span class="delete">actedOnBehalfOf</span>
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"actedOnBehalfOf" "(" </span><span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier"><span class="insert">optionalIdentifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-agIdentifier"><span class="insert">agIdentifier</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-agIdentifier"><span class="insert">agIdentifier</span></a></span> (
+<span class="delete">( </span><span class="delete">identifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> ) </span><span class="delete">,</span> 
+<span class="delete">agIdentifier</span>
+<span class="delete">,</span>
+<span class="delete">agIdentifier</span>
+<span class="delete">,</span><span class="delete">
+( </span><span class="delete">aIdentifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> )
+</span><span class="delete">optional-attribute-values</span>
+<span class="delete">)</span>
+<span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-aIdentifierOrMarker"><span class="insert">aIdentifierOrMarker</span></a></span><span class="insert"> )? </span><span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+</div><table class="grammar">
+
+</table>
+
+<div class="anexample">
+
+  <pre class="codeexample"><span class="delete">actedOnBehalfOf(act1,</span><span class="insert">actedOnBehalfOf(act1;</span> ag1, ag2, a, [prov:type="contract"])
+  </pre>
+<p>  Here <span class="name">act1</span> is the optional attribution identifier,
+  <span class="name">ag1</span> is the identifier for the subordinate agent,
+  <span class="name">ag2</span> is the  identifier of the responsible agent,
+  <span class="name">a</span> is the optional identifier of the activity for which the responsibility link holds,
+  and <span class="name"> [prov:type="contract"]</span> are optional attributes. </p>
+The remaining examples show cases where some of the optionals are omitted.
+
+
+<pre class="codeexample">actedOnBehalfOf(ag1, <span class="insert">ag2)
+actedOnBehalfOf(ag1, </span>ag2, <span class="delete">-)</span><span class="insert">a)</span>
+actedOnBehalfOf(ag1, ag2, <span class="delete">a)
+actedOnBehalfOf(ag1,</span><span class="insert">-, [prov:type="delegation"])
+actedOnBehalfOf(ag2, ag3, a, [prov:type="contract"])
+actedOnBehalfOf(r;</span> ag2, <span class="delete">-, [prov:type="delegation"])
+actedOnBehalfOf(ag2, </span>ag3, a, [prov:type="contract"])<span class="delete">
+actedOnBehalfOf(r, ag2, ag3, a, [prov:type="contract"])
+actedOnBehalfOf(-, ag1, ag2, -)</span>
+</pre>
+</div>
+
+
+</div>
+</div>
+<div id="component3" class="section"> 
+<h3><span class="secno">3.3 </span>Component 3: Derivations</h3>
+<div id="Derivation-Relation" class="section">
+<h4><span class="secno">3.3.1 </span>Derivation</h4>
+
+<div class="grammar">
+<span class="nonterminal">derivationExpression</span>&nbsp;::= 
+<span class="name">wasDerivedFrom</span>
+<span class="name">(</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="optional">
+<span class="name">,</span>
+( <span class="nonterminal">aIdentifier</span> | <span class="name">-</span> )
+<span class="name">,</span>
+( <span class="nonterminal">gIdentifier</span> | <span class="name">-</span> )
+<span class="name">,</span>
+( <span class="nonterminal">uIdentifier</span> | <span class="name">-</span> )
+</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-derivationExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-derivationExpression" name="prod-derivationExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">21</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">derivationExpression</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"wasDerivedFrom" "(" </span><span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier"><span class="insert">optionalIdentifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-eIdentifier"><span class="insert">eIdentifier</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-eIdentifier"><span class="insert">eIdentifier</span></a></span><span class="insert"> ( "," </span><span class="prod"><a class="grammarRef" href="#prod-aIdentifierOrMarker"><span class="insert">aIdentifierOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-gIdentifierOrMarker"><span class="insert">gIdentifierOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-uIdentifierOrMarker"><span class="insert">uIdentifierOrMarker</span></a></span><span class="insert"> )? </span><span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+</div><table class="grammar">
+
+</table>
+
+
+
+<div class="anexample">
+    <pre class="codeexample">wasDerivedFrom(d, e2, e1, a, g2, u1, [prov:comment="a righteous derivation"])
+  </pre>
+<p>  Here
+    <span class="name">d</span> is the optional derivation identifier,
+  <span class="name">e2</span> is the identifier for the entity being derived,
+  <span class="name">e1</span> is the  identifier of the entity from which <span class="name">e2</span> is derived,
+  <span class="name">a</span> is the optional identifier of the activity which used/generated the entities,
+  <span class="name">g2</span> is the optional identifier of the generation,
+  <span class="name">u1</span> is the optional identifier of the usage,
+  and <span class="name">[prov:comment="a righteous derivation"]</span> are optional attributes. </p>
+The remaining examples show cases where some of the optionals are omitted.
+
+  
+<pre class="codeexample">wasDerivedFrom(e2, e1)
+wasDerivedFrom(e2, e1, a, g2, u1)
+wasDerivedFrom(e2, e1, -, g2, u1)
+wasDerivedFrom(e2, e1, a, -, u1)
+wasDerivedFrom(e2, e1, a, g2, -)
+wasDerivedFrom(e2, e1, a, -, -)
+wasDerivedFrom(e2, e1, -, -, u1)
+wasDerivedFrom(e2, e1, -, -, -)
+wasDerivedFrom(d, e2, e1, a, g2, u1)
+wasDerivedFrom(-, e2, e1, a, g2, u1)
+</pre>
+</div>
+
+</div>
+<div id="expression-Revision" class="section">
+<h4><span class="secno">3.3.2 </span>Revision</h4>
+
+
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-revisionExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-revisionExpression" name="prod-revisionExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">22</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">revisionExpression<span class="delete">&nbsp;::= 
+</span><span class="delete">wasRevisionOf</span>
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"wasRevisionOf" "(" </span><span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier"><span class="insert">optionalIdentifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-eIdentifier"><span class="insert">eIdentifier</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-eIdentifier"><span class="insert">eIdentifier</span></a></span> (
+<span class="delete">( </span><span class="delete">identifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> ) </span><span class="delete">,</span> 
+<span class="delete">eIdentifier</span>
+<span class="delete">,</span>
+<span class="delete">eIdentifier</span>
+<span class="delete">,</span><span class="delete">
+( </span><span class="delete">agIdentifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> )
+</span><span class="delete">optional-attribute-values</span>
+<span class="delete">)</span>
+<span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-aIdentifierOrMarker"><span class="insert">aIdentifierOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-gIdentifierOrMarker"><span class="insert">gIdentifierOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-uIdentifierOrMarker"><span class="insert">uIdentifierOrMarker</span></a></span><span class="insert"> )? </span><span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+</div><table class="grammar">
+
+</table>
+
+
+<div class="anexample">
+    <pre class="codeexample">wasRevisionOf(rev1, tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, <span class="delete">w3:Consortium,</span><span class="insert">ex:act1, ex:g, ex:u,</span> [prov:comment="??"] )
+  </pre>
+<p>  Here
+    <span class="name">rev1</span> is the optional revision identifier,
+  <span class="name">tr:WD-prov-dm-20111215</span> is the identifier of the revised entity,
+  <span class="name">tr:WD-prov-dm-20111018</span> is the identifier of the original entity,
+  <span class="name"><span class="delete">w3:Consortium</span><span class="insert">ex:act1</span></span> is the <span class="delete">optional </span>identifier <span class="delete">of the agent involved in the revision,</span><span class="insert">for the activity using and generating  </span><span class="name"><span class="insert">tr:WD-prov-dm-20111215</span></span><span class="insert"> and  </span><span class="name"><span class="insert">tr:WD-prov-dm-20111018</span></span><span class="insert">,</span>
+  <span class="name"><span class="insert">ex:g</span></span><span class="insert"> is the identifier for the generation involving the revised entity  </span><span class="name"><span class="insert">tr:WD-prov-dm-20111215</span></span>  and <span class="insert">activity  </span><span class="name"><span class="insert">ex:act1</span></span><span class="insert">;
+  </span><span class="name"><span class="insert">ex:u</span></span><span class="insert"> is the identifier for the usage involving the used entity  </span><span class="name"><span class="insert">tr:WD-prov-dm-20111018</span></span><span class="insert"> and activity  </span><span class="name"><span class="insert">ex:act1</span></span><span class="insert">, 
+  and </span><span class="name"> [prov:comment="??"]<span class="delete"> )</span></span> are optional attributes. </p>
+The remaining examples show cases where some of the optionals are omitted.
+
+
+  <pre class="codeexample">wasRevisionOf(tr:WD-prov-dm-20111215, <span class="insert">tr:WD-prov-dm-20111018)
+wasRevisionOf(tr:WD-prov-dm-20111215, </span>tr:WD-prov-dm-20111018, <span class="delete">-)</span><span class="insert">ex:act1, ex:g, ex:u)
+wasRevisionOf(id; tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, , ex:act1, ex:g, ex:u)
+wasRevisionOf(id;tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018)</span>
+wasRevisionOf(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018,<span class="delete"> w3:Consortium)
+wasRevisionOf(id,tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, w3:Consortium)
+wasRevisionOf(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, -)
+wasRevisionOf(id,tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, -)
+wasRevisionOf(-,tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018, -)</span><span class="insert">  [prov:comment="??"])</span>
+</pre>
+</div>
+
+
+</div>  
+<div id="expression-quotation" class="section">
+<h4><span class="secno">3.3.3 </span>Quotation</h4>
+
+
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-quotationExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-quotationExpression" name="prod-quotationExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">23</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">quotationExpression<span class="delete">&nbsp;::=  
+</span><span class="delete">wasQuotedFrom</span> 
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"wasQuotedFrom" "(" </span><span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier"><span class="insert">optionalIdentifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-eIdentifier"><span class="insert">eIdentifier</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-eIdentifier"><span class="insert">eIdentifier</span></a></span> ( 
+<span class="delete">( </span><span class="delete">identifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> ) </span><span class="delete">,</span> 
+<span class="delete">eIdentifier</span>
+<span class="delete">,</span> 
+<span class="delete">eIdentifier</span>
+
+<span class="delete">,</span><span class="delete"> 
+( </span><span class="delete">agIdentifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> )
+</span><span class="delete">,</span><span class="delete"> 
+( </span><span class="delete">agIdentifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> )
+</span>
+<span class="delete">optional-attribute-values</span>
+<span class="delete">)</span> 
+<span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-aIdentifierOrMarker"><span class="insert">aIdentifierOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-gIdentifierOrMarker"><span class="insert">gIdentifierOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-uIdentifierOrMarker"><span class="insert">uIdentifierOrMarker</span></a></span><span class="insert"> )? </span><span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+
+
+
+</div><table class="grammar">
+
+</table>
+
+
+
+<div class="anexample">
+    <pre class="codeexample"><span class="delete">wasQuotedFrom(quoteId1, ex:blockQuote,ex:blog,ex:Luc,ex:Paul,[])</span><span class="insert">wasQuotedFrom(quoteId1; ex:blockQuote,ex:blog, ex:act1, ex:g, ex:u, [])</span>
+  </pre>
+<p>  Here
+    <span class="name">quoteId1</span> is the optional revision identifier,
+  <span class="name">ex:blockQuote</span> is the identifier of the entity that represents the quote (the partial copy)
+  <span class="name">ex:blog</span> is the identifier of the original entity being quoted,
+  <span class="name"><span class="delete">ex:Luc</span><span class="insert">ex:act1</span></span> is the <span class="delete">optional </span>identifier <span class="delete">of the agent who performs the quoting,</span><span class="insert">for the activity using and generating </span><span class="name"><span class="insert">ex:blockQuote</span></span><span class="insert"> and  </span><span class="name"><span class="insert">ex:blog</span></span><span class="insert">,</span>
+  <span class="name"><span class="delete">ex:Paul</span><span class="insert">ex:g</span></span> is the <span class="delete">optional </span>identifier <span class="delete">of the agent to whom</span><span class="insert">for the generation involving the quoted entity  </span><span class="name"><span class="insert">ex:blockQuote</span></span><span class="insert">  and activity  </span><span class="name"><span class="insert">ex:act1</span></span><span class="insert">;
+  </span><span class="name"><span class="insert">ex:u</span></span><span class="insert"> is the identifier for the usage involving</span> the original entity<span class="delete"> is attributed,
+  </span>  <span class="name"><span class="insert">ex:blog</span></span><span class="insert"> and activity  </span><span class="name"><span class="insert">ex:act1</span></span><span class="insert">, 
+  </span>and <span class="name">[]</span> is the (empty) optional set of attributes. </p>
+The remaining examples show cases where some of the optionals are omitted.
+
+
+  <pre class="codeexample">wasQuotedFrom(ex:blockQuote,ex:blog)
+<span class="delete">wasQuotedFrom(ex:blockQuote,ex:blog,ex:Luc,ex:Paul)
+wasQuotedFrom(ex:blockQuote,ex:blog,-,ex:Paul)
+wasQuotedFrom(ex:blockQuote,ex:blog,ex:Luc,ex:Paul,[])
+</span>wasQuotedFrom(ex:blockQuote,ex:blog, <span class="delete">-, -)
+wasQuotedFrom(id,ex:blockQuote,ex:blog,ex:Luc,ex:Paul)
+wasQuotedFrom(-,ex:blockQuote,ex:blog,ex:Luc,-)
+
+</span><span class="insert">ex:act1, -,-)
+wasQuotedFrom(ex:blockQuote,ex:blog,-,ex:g, ex:u)
+wasQuotedFrom(ex:blockQuote,ex:blog,[])
+wasQuotedFrom(id; ex:blockQuote,ex:blog,ex:act1, -,-)
+</span></pre>
+</div>
+
+</div>  
+
+
+<div id="expression-original-source" class="section">
+<h4><span class="secno">3.3.4 </span>Original Source</h4>
+
+
+<span class="delete">originalSourceExpression</span><span class="delete">&nbsp;::=  
+</span><span class="delete">hadOriginalSource</span> 
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-hadOriginalSourceExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-hadOriginalSourceExpression" name="prod-hadOriginalSourceExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">24</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">hadOriginalSourceExpression</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"hadOriginalSource" "(" </span><span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier"><span class="insert">optionalIdentifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-eIdentifier"><span class="insert">eIdentifier</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-eIdentifier"><span class="insert">eIdentifier</span></a></span> ( 
+<span class="delete">( </span><span class="delete">identifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> ) </span><span class="delete">,</span> 
+<span class="delete">eIdentifier</span>
+<span class="delete">,</span> 
+<span class="delete">eIdentifier</span>
+<span class="delete">optional-attribute-values</span>
+<span class="delete">)</span> 
+<span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-aIdentifierOrMarker"><span class="insert">aIdentifierOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-gIdentifierOrMarker"><span class="insert">gIdentifierOrMarker</span></a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-uIdentifierOrMarker"><span class="insert">uIdentifierOrMarker</span></a></span><span class="insert"> )? </span><span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+
+
+
+</div><table class="grammar">
+
+</table>
+
+
+
+<div class="anexample">
+    <pre class="codeexample"><span class="delete">hadOriginalSource(src1, </span><span class="insert">hadOriginalSource(src1;  </span>ex:e1, <span class="delete">ex:e2,[ex:param="a"])</span><span class="insert">ex:e2, ex:act, ex:g, ex:u, [ex:param="a"])</span>
+  </pre>
+<p>  Here
+    <span class="name">src1</span> is the optional original source identifier,
+  <span class="name">ex:e1</span> is the identifier of the derived entity,
+  <span class="name">ex:e2</span> is the identifier of the original source entity,
+  <span class="name"><span class="insert">ex:act1</span></span><span class="insert"> is the identifier for the activity using and generating </span><span class="name"><span class="insert">ex:e1</span></span><span class="insert"> and  </span><span class="name"><span class="insert">ex:e2</span></span><span class="insert">,
+  </span><span class="name"><span class="insert">ex:g</span></span><span class="insert"> is the identifier for the generation involving the quoted entity  </span><span class="name"><span class="insert">ex:e1</span></span><span class="insert">  and activity  </span><span class="name"><span class="insert">ex:act1</span></span><span class="insert">;
+  </span><span class="name"><span class="insert">ex:u</span></span><span class="insert"> is the identifier for the usage involving the original entity  </span><span class="name"><span class="insert">ex:e2</span></span><span class="insert"> and activity  </span><span class="name"><span class="insert">ex:act1</span></span><span class="insert">, 
+  </span>and <span class="name">[ex:param="a"]</span> is the optional set of attributes. </p>
+The remaining examples show cases where some of the optionals are omitted.
+
+
+  <pre class="codeexample">hadOriginalSource(ex:e1, ex:e2)
+hadOriginalSource(ex:e1, ex:e2,[ex:param="a"])
+<span class="delete">hadOriginalSource(-,ex:e1, ex:e2,[ex:param="a"])
+hadOriginalSource(-,ex:e1, ex:e2)</span><span class="insert">hadOriginalSource(id; ex:e1, ex:e2, ex:act, -, -, [ex:param="a"])</span>
+</pre>
+</div>
+
+</div>  
+<div id="expression-trace" class="section">
+<h4><span class="secno">3.3.5 </span>Trace</h4>
+
+
+<span class="delete">traceExpression</span><span class="delete">&nbsp;::= 
+</span><span class="delete">tracedTo</span>
+<span class="delete">(</span>
+<span class="delete">( </span><span class="delete">identifier</span><span class="delete"> | </span><span class="delete">-</span><span class="delete"> ) </span><span class="delete">,</span> 
+
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-tracedToExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-tracedToExpression" name="prod-tracedToExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">25</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">tracedToExpression</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"tracedTo" "(" </span><span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier"><span class="insert">optionalIdentifier</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-eIdentifier">eIdentifier
+<span class="delete">,</span>
+</a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-eIdentifier">eIdentifier
+<span class="delete">optional-attribute-values</span>
+<span class="delete">)</span>
+</a></span> <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs"><span class="insert">optionalAttributeValuePairs</span></a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+
+
+
+</div><table class="grammar">
+
+</table>
+
+<div class="anexample">
+    <pre class="codeexample">tracedTo(id,e2,e1,[ex:param="a"])
+  </pre>
+<p>  Here
+    <span class="name">id</span> is the optional trace identifier,
+  <span class="name">e2</span> is an entity identifier,
+  <span class="name">e1</span> is the identifier for an ancestor entity that   <span class="name">e2</span> depends on,
+  and <span class="name">[ex:param="a"]</span> is the optional set of attributes. </p>
+The remaining examples show cases where some of the optionals are omitted.
+
+
+  <pre class="codeexample">tracedTo(e2,e1)
+tracedTo(e2,e1,[ex:param="a"])
+<span class="delete">tracedTo(-,e2,e1)</span><span class="insert">tracedTo(id; e2,e1)</span>
+</pre>
+</div>
+
+</div>
+</div>
+<div id="component4" class="section"> 
+<h3><span class="secno">3.4 </span>Component 4: Alternate Entities</h3>
+<div id="expression-alternate" class="section">
+<h4><span class="secno">3.4.1 </span>Alternate</h4>
+
+
+   
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-alternateExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-alternateExpression" name="prod-alternateExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">26</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">alternateExpression<span class="delete">&nbsp;::=
+  </span><span class="delete">alternateOf</span> 
+<span class="delete">(</span> 
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"alternateOf" "(" </span><span class="prod"><a class="grammarRef" href="#prod-eIdentifier">eIdentifier 
+<span class="delete">,</span> 
+</a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-eIdentifier">eIdentifier 
+<span class="delete">)</span>  
+</a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+
+
+</div><table class="grammar">
+
+</table>
+
+
+<div class="anexample">
+<pre class="codeexample">alternateOf(tr:WD-prov-dm-20111215,ex:alternate-20111215)
+</pre>
+  Here  <span class="name">tr:WD-prov-dm-20111215</span> is alternate for   <span class="name">ex:alternate-20111215</span>.
+</div>
+
+
+</div>
+<div id="expression-specialization" class="section">
+<h4><span class="secno">3.4.2 </span>Specialization</h4>
+
+
+   
+
+
+
+
+<div>
+<div class="grammar-ref" data-ref="prod-specializationExpression"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-specializationExpression" name="prod-specializationExpression"></a><span class="insert">[</span><span class="prodNo"><span class="insert">27</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod">specializationExpression<span class="delete">&nbsp;::=
+  </span><span class="delete">specializationOf</span> 
+<span class="delete">(</span> 
+</code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"specializationOf" "(" </span><span class="prod"><a class="grammarRef" href="#prod-eIdentifier">eIdentifier 
+<span class="delete">,</span> 
+</a></span><span class="insert"> "," </span><span class="prod"><a class="grammarRef" href="#prod-eIdentifier">eIdentifier 
+<span class="delete">)</span>  
+</a></span><span class="insert"> ")"</span></code></td> </tr> </tbody></div>
+</div><table class="grammar">
+
+</table>
+
+<div class="anexample">
+<pre class="codeexample">specializationOf(tr:WD-prov-dm-20111215,tr:prov-dm)
+</pre>
+    Here  <span class="name">tr:WD-prov-dm-20111215</span> is a specialization of <span class="name">tr:prov-dm</span>.
+</div>
+
+</div>
+</div>
+
+<div id="component5" class="section"> 
+<h3><span class="secno">3.5 </span>Component 5: Collections</h3>
+
+<span class="delete">Grammar for collections </span><span class="delete">may</span><span class="delete"> under go minor syntactic changes since it has not been implemented yet.</span>
+
+In the productions in this section, nonterminals <span class="nonterminal">keyValuePairs</span> and <span class="nonterminal">keySet</span> are defined as follows.
+
+<div class="grammar">
+<span class="nonterminal">keyValuePairs</span> &nbsp;::= 
+<span class="name">(</span>
+    <span class="nonterminal">literal</span>
+ <span class="name">,</span>
+<span class="nonterminal">eidentifier</span>
+    <span class="name">)</span>
+|
+<span class="name">(</span>
+  <span class="nonterminal">literal</span>
+ <span class="name">,</span>
+<span class="nonterminal">eidentifier</span>
+<span class="name">)</span>
+  <span class="name">,</span>
+<span class="nonterminal">keyValuePairs</span>
+</div>
+
+  <div class="grammar">
+<span class="nonterminal">keySet</span> &nbsp;::= 
+    <span class="nonterminal">literal</span>
+|
+  <span class="nonterminal">literal</span>
+ <span class="name">,</span>
+<span class="nonterminal">keySet</span>
+</div>
+
+
+<div id="expression-collection-insertion" class="section">
+<h4><span class="secno">3.5.1 </span>Insertion</h4>
+
+<div class="grammar">
+ <span class="nonterminal">derivationByInsertionFromExpression</span>&nbsp;::=  
+<span class="name">derivedByInsertionFrom</span> 
+ <span class="name">(</span>
+ <span class="optional"><span class="nonterminal">identifier</span>
+ <span class="name">,</span></span>
+<span class="nonterminal">cIdentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">cIdentifier</span>
+ <span class="name">,</span>
+  <span class="name">{</span>
+  <span class="nonterminal">keyValuePairs</span>
+   <span class="name">}</span>
+<span class="nonterminal">optional-attribute-values</span>
+  <span class="name">)</span>
+</div>
+
+<div class="anexample">
+    <pre class="codeexample"> <span class="delete">derivedByInsertionFrom(id,</span><span class="insert">derivedByInsertionFrom(id;</span> c1, c, {("k1", v1), ("k2", v2)}, [])  
+  </pre>
+<p>  Here
+    <span class="name">id</span> is the optional insertion identifier,
+  <span class="name">c1</span> is the  identifier for the collection after the insertion,
+  <span class="name">c</span> is the  identifier for the collection before the insertion,
+  <span class="name"> {("k1", v1), ("k2", v2)}</span> is the set of key-value pairs that have been inserted in
+  <span class="name">c</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(c1, c, {("k1", v1), ("k2", v2)})  
+ derivedByInsertionFrom(c1, c, {("k1", v1)})  
+ derivedByInsertionFrom(c1, c, {("k1", v1), ("k2", v2)}, [])
+</pre>
+</div>
+
+
+</div>
+
+<div id="expression-collection-removal" class="section">
+<h4><span class="secno">3.5.2 </span>Removal</h4>
+
+<div class="grammar">
+ <span class="nonterminal">derivationByRemovalFromExpression</span>&nbsp;::=  
+<span class="name">derivedByRemovalFrom</span> 
+ <span class="name">(</span>
+ <span class="optional"><span class="nonterminal">identifier</span>
+ <span class="name">,</span></span>
+<span class="nonterminal">cIdentifier</span>
+ <span class="name">,</span>
+<span class="nonterminal">cIdentifier</span>
+ <span class="name">,</span>
+  <span class="name">{</span>
+  <span class="nonterminal">keySet</span>
+   <span class="name">}</span>
+<span class="nonterminal">optional-attribute-values</span>
+  <span class="name">)</span>
+  <br>
+</div>
+
+<div class="anexample">
+    <pre class="codeexample"> <span class="delete">derivedByRemovalFrom(id,</span><span class="insert">derivedByRemovalFrom(id;</span> c3, c, {"k1", "k3"}, [])  
+  </pre>
+<p>  Here
+    <span class="name">id</span> is the optional removal identifier,
+  <span class="name">c1</span> is the  identifier for the collection after the removal,
+  <span class="name">c</span> is the  identifier for the collection before the removal,
+  <span class="name"> {("k1", v1), ("k2", v2)}</span> is the set of key-value pairs that have been removed from
+  <span class="name">c</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(c3, c1, {"k1", "k3"})               
+   derivedByRemovalFrom(c3, c1, {"k1"})               
+   derivedByRemovalFrom(c3, c1, {"k1", "k3"}, [])               
+</pre>
+  </div>
+
+</div>
+
+<div id="expression-collection-membership" class="section">
+<h4><span class="secno">3.5.3 </span>Membership</h4>
+
+<div class="grammar">
+ <span class="nonterminal">membershipExpression</span>&nbsp;::=  
+<span class="name">isMemberOf</span> 
+ <span class="name">(</span>
+ <span class="optional"><span class="nonterminal">identifier</span>
+ <span class="name">,</span></span>
+<span class="nonterminal">cIdentifier</span>
+ <span class="name">,</span>
+  <span class="name">{</span>
+  <span class="nonterminal">keyValuePairs</span>
+   <span class="name">}</span>
+<span class="nonterminal">optional-attribute-values</span>
+  <span class="name">)</span>
+  <br>
+</div>
+
+
+<div class="anexample">
+    <pre class="codeexample">   <span class="delete">memberOf(mid,</span><span class="insert">memberOf(mId,</span> c, {("k4", v4), ("k5", v5)}, [])
+  </pre>
+<p>  Here
+    <span class="name">mid</span> is the optional membership identifier,
+  <span class="name">c</span> is the  identifier for the collection whose membership is stated,
+  <span class="name"> {("k4", v4), ("k5", v5)}</span> is the set of key-value pairs that are members of 
+  <span class="name">c</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">   memberOf(c3, {("k4", v4), ("k5", v5)})
+   memberOf(c3, {("k4", v4)})
+   memberOf(c3, {("k4", v4), ("k5", v5)},[])  
+</pre>
+</div>
+
+</div>
+
+
+</div>   
+<div id="component6" class="section"> 
+<h3><span class="secno">3.6 </span>Component 6: Annotations</h3>
+   <div id="expression-note" class="section"> 
+<h4><span class="secno">3.6.1 </span>Note</h4>
+
+<div class="grammar">
+<span class="nonterminal">noteExpression</span>&nbsp;::= 
+<span class="name">note</span>
+<span class="name">(</span>
+<span class="nonterminal">identifier</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+
+
+<div class="anexample">
+<pre class="codeexample"><span class="delete">note(ann1,[ex:color="blue",</span><span class="insert">note(ann1; [ex:color="blue",</span> ex:screenX=20, ex:screenY=30])
+</pre>
+</div>
+
+   </div> 
+
+<div id="expression-annotation" class="section">
+<h4><span class="secno">3.6.2 </span>Annotation</h4>
+
+<div class="grammar">
+<span class="nonterminal">annotationExpression</span>&nbsp;::=  
+<span class="name">hasAnnotation</span>
+<span class="name">(</span>
+<span class="nonterminal">identifier</span>
+<span class="name">,</span>
+<span class="nonterminal">nIdentifier</span>
+<span class="name">)</span>
+</div>
+
+
+<div class="anexample">
+<pre class="codeexample">hasAnnotation(tr:WD-prov-dm-20111215,ex2:n1)
+</pre>
+  Here
+   <span class="name">ex2:n1</span> is the  identifier for a note of the entity identified by 
+  <span class="name">(tr:WD-prov-dm-20111215</span>.
+</div>
+
+
+</div>
+
+
+
+</div>
+
+
+
+<div id="subexpressions" class="section">
+<h3><span class="secno">3.7 </span>Further Expressions</h3>
+
+This section defines further expressions of PROV-N.
+
+
+<div id="expression-NamespaceDeclaration" class="section">
+<h4><span class="secno">3.7.1 </span>Namespace Declaration</h4>
+
+
+<div class="grammar">
+<span class="nonterminal">namespaceDeclarations</span>&nbsp;::=  
+ |  <span class="group"><span class="nonterminal">defaultNamespaceDeclaration</span> | <span class="nonterminal">namespaceDeclaration</span></span> <span class="star"> <span class="nonterminal">namespaceDeclaration</span></span><br>
+<span class="nonterminal">namespaceDeclaration</span>&nbsp;::=  
+<span class="name">prefix</span> <span class="nonterminal">prefix</span> <span class="nonterminal">IRI</span><br>
+<span class="nonterminal">defaultNamespaceDeclaration</span>&nbsp;::=  
+ <span class="name">default</span> <span class="nonterminal">IRI</span> <br>
+</div>
+
+<div>
+<div class="grammar-ref" data-ref="prod-namespaceDeclarations"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-namespaceDeclarations" name="prod-namespaceDeclarations"></a><span class="insert">[</span><span class="prodNo"><span class="insert">46</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">namespaceDeclarations</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">( </span><span class="prod"><a class="grammarRef" href="#prod-defaultNamespaceDeclaration"><span class="insert">defaultNamespaceDeclaration</span></a></span><span class="insert"> | </span><span class="prod"><a class="grammarRef" href="#prod-namespaceDeclaration"><span class="insert">namespaceDeclaration</span></a></span><span class="insert"> ) (</span><span class="prod"><a class="grammarRef" href="#prod-namespaceDeclaration"><span class="insert">namespaceDeclaration</span></a></span><span class="insert">)*</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-namespaceDeclaration"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-namespaceDeclaration" name="prod-namespaceDeclaration"></a><span class="insert">[</span><span class="prodNo"><span class="insert">47</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">namespaceDeclaration</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"prefix" </span><span class="prod"><a class="grammarRef" href="#prod-QUALNAME"><span class="insert">QUALNAME</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-namespace"><span class="insert">namespace</span></a></span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-defaultNamespaceDeclaration"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-defaultNamespaceDeclaration" name="prod-defaultNamespaceDeclaration"></a><span class="insert">[</span><span class="prodNo"><span class="insert">48</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">defaultNamespaceDeclaration</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"default" </span><span class="prod"><a class="grammarRef" href="#prod-IRI_REF"><span class="insert">IRI_REF</span></a></span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-IRI_REF"><tbody class="term"> <tr valign="baseline"> <td><a id="prod-IRI_REF" name="prod-IRI_REF"></a><span class="insert">[</span><span class="prodNo"><span class="insert">55</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><span class="insert">&lt;</span><code class="production term"><span class="insert">IRI_REF</span></code><span class="insert">&gt;</span></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"&lt;" ( [^&lt;&gt;"{}|^`\] - [#0000- ] | </span><span class="prod"><a class="grammarRef" href="#prod-UCHAR"><span class="insert">UCHAR</span></a></span><span class="insert"> )* "&gt;"</span></code></td> </tr> </tbody></div>
+</div><table class="grammar">
+
+</table>
+
+
+<p>In PROV-N, the following prefixes are reserved:
+</p><ul>
+<li>  <span class="name">prov</span>  denotes the PROV namespace with URI <span class="name">http://www.w3.org/ns/prov#</span></li>
+<li>  <span class="name">xsd</span> denotes the XML Schema namespace with URI   <span class="name">http://www.w3.org/2001/XMLSchema#</span>.
+</li>
+</ul>
+<p>A PROV-N document <em class="rfc2119" title="must not">must not</em> redeclare prefixes <span class="name">prov</span> and <span class="name">xsd</span>.</p>
+
+<div class="anexample" id="anexample-namespace">
+<p>The following example declares three namespaces, one default, and two with explicit prefixes <span class="name">ex1</span> and <span class="name">ex2</span>.</p>
+<pre class="codeexample">container
+  default &lt;http://example.org/0/&gt;
+  prefix ex1 &lt;http://example.org/1/&gt;
+  prefix ex2 &lt;http://example.org/2/&gt;
+...
+end
+</pre>
+</div>
+
+
+
+</div>
+
+
+<div id="expression-identifier" class="section">
+<h4><span class="secno">3.7.2 </span>Identifier</h4>
+
+<p>
+A <dfn id="dfn-qualifiedName">qualified name</dfn> is a name subject to <a>namespace</a> interpretation. It consists of a <a>namespace</a>, denoted by an optional prefix, and a local name.
+The PROV data model  stipulates that a qualified name can be mapped into an IRI
+ by concatenating the IRI associated with the prefix and the local part.
+</p><p>A qualified name's prefix is <em class="rfc2119" title="optional">optional</em>. If a prefix occurs in a
+ qualified name, it refers to a <a>namespace</a> declared in a namespace declaration.  In the absence of prefix, the qualified name 
+ refers to the <a title="default namespace declaration">default namespace</a>.</p>
+
+<div class="grammar">
+<span class="nonterminal"><span class="insert">eIdentifier</span></span><span class="insert">&nbsp;::=  </span><span class="nonterminal">identifier</span><br>
+<span class="nonterminal"><span class="insert">aIdentifier</span></span>&nbsp;::=  <span class="nonterminal"><span class="delete">qualifiedName</span><span class="insert">identifier</span></span><br>
+<span class="nonterminal"><span class="insert">agIdentifier</span></span><span class="insert">&nbsp;::=  </span><span class="nonterminal"><span class="insert">identifier</span></span><br>
+<span class="nonterminal"><span class="insert">gIdentifier</span></span><span class="insert">&nbsp;::=  </span><span class="nonterminal"><span class="insert">identifier</span></span><br>
+
+<span class="nonterminal"><span class="insert">identifier</span></span><span class="insert">&nbsp;::=  </span><span class="nonterminal"><span class="insert">QUALNAME</span></span><br>
+<span class="nonterminal">eIdentifier</span>&nbsp;::=  <span class="nonterminal">identifier</span>  <em>(intended to denote an entity)</em><br>
+<span class="nonterminal">aIdentifier</span>&nbsp;::=  <span class="nonterminal">identifier</span>  <em>(intended to denote an activity)</em><br>
+<span class="nonterminal">agIdentifier</span>&nbsp;::=  <span class="nonterminal">identifier</span>  <em>(intended to denote an agent)</em><br>
+<span class="nonterminal">gIdentifier</span>::=  <span class="nonterminal">identifier</span> <em>(intended to denote a generation)</em><br>
+<span class="nonterminal">uIdentifier</span>::=  <span class="nonterminal">identifier</span> <em>(intended to denote a usage)</em><br>
+<span class="nonterminal">nIdentifier</span>::=  <span class="nonterminal">identifier</span> <em>(intended to denote a note)</em><br>
+<span class="nonterminal">cIdentifier</span>::=  <span class="nonterminal">identifier</span> <em>(intended to denote a collection)</em><br>
+
+
+<span class="delete">qualifiedName</span><span class="delete"> &nbsp;::= 
+</span>
+<span class="delete">prefix</span> <span class="delete">:</span>
+ <span class="delete">localPart</span><span class="delete">  | </span><span class="delete">:</span> <span class="delete">localPart</span>
+<span class="delete">prefix</span><span class="delete"> &nbsp;::= </span></div>
+
+
+
+<p><span class="insert">A PROV qualified name </span><a class="grammarRef" href="#term-prov_n_LL-QUALNAME"><span class="insert">QUALNAME</span></a><span class="insert"> has </span>a <span class="delete">name without colon compatible with the </span><span class="delete">NC_NAME</span><span class="delete"> production</span><span class="insert">more permissive syntax then XML's </span><a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-QName"><span class="insert">QName</span></a> [<cite><a class="bibref" rel="biblioentry" href="#bib-XML-NAMES">XML-NAMES</a></cite>]
+<span class="delete">localPart</span><span class="delete"> &nbsp;::= </span><span class="delete">a name compatible with the
+</span><span class="delete">reference</span><span class="delete"> production</span><span class="insert">
+and SPARQL </span><a href="http://www.w3.org/TR/2008/REC-rdf-sparql-query-20080115/#rPrefixedName"><span class="insert">PrefixedName</span></a> [<cite><span class="delete">RDFA-CORE</span><a class="bibref" rel="biblioentry" href="#bib-RDF-SPARQL-QUERY"><span class="insert">RDF-SPARQL-QUERY</span></a></cite><span class="delete">]</span>
+
+
+
+
+<span class="delete">A</span><span class="insert">]. It is a</span> PROV <span class="delete">qualified name has a more permissive syntax then XML's </span><span class="delete">QName</span><span class="delete"> [</span><span class="delete">XML-NAMES</span><span class="delete">] since it allows any syntax for its</span><span class="insert">requirement that the concatenation of the namespace with the</span> local part<span class="delete"> provided that the concatenation with the namespace</span> results in a valid IRI [<cite><a class="bibref" rel="biblioentry" href="#bib-IRI">IRI</a></cite>]. <span class="insert">Given that 
+',' (comma),
+';' (semi-colon),
+'=' (equal),
+'(' (left bracket),
+')' (right bracket),
+'[' (left square bracket),
+']' (right square bracket) are used by the PROV notation as delimiters, they are not allowed in local parts. Instead, they can be %-escaped or incorporated in the IRI denoted by a prefix.
+</span></p>
+
+
+
+
+<p><span class="insert">Qualified names </span><a class="grammarRef" href="#term-prov_n_LL-QUALNAME"><span class="insert">QUALNAME</span></a><span class="insert"> consist of a prefix and a local part. Prefixes follow the production </span><a class="grammarRef" href="http://www.w3.org/TR/rdf-sparql-query/#rPN_PREFIX"><span class="insert">PN_PREFIX</span></a><span class="insert"> defined by SPARQL [</span><cite><a class="bibref" rel="biblioentry" href="#bib-RDF-SPARQL-QUERY"><span class="insert">RDF-SPARQL-QUERY</span></a></cite><span class="insert">]. Local parts have to be conformant with </span><a class="grammarRef" href="#term-prov_n_LL-PN_LOCAL"><span class="insert">PN_LOCAL</span></a><span class="insert">, which extends the original SPARQL </span><a class="grammarRef" href="http://www.w3.org/TR/rdf-sparql-query/#rPN_LOCAL"><span class="insert">PN_LOCAL</span></a><span class="insert"> definition by allowing further characters and %-escaped charaters (see </span><a class="grammarRef" href="#term-prov_n_LL-PN_CHARS_OTHERS"><span class="insert">PN_CHARS_OTHERS</span></a><span class="insert">).</span></p>
+
+ 
+<div>
+<div>
+<div class="grammar-ref" data-ref="prod-eIdentifier"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-eIdentifier" name="prod-eIdentifier"></a><span class="insert">[</span><span class="prodNo"><span class="insert">28</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">eIdentifier</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-identifier"><span class="insert">identifier</span></a></span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-aIdentifier"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-aIdentifier" name="prod-aIdentifier"></a><span class="insert">[</span><span class="prodNo"><span class="insert">29</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">aIdentifier</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-identifier"><span class="insert">identifier</span></a></span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-agIdentifier"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-agIdentifier" name="prod-agIdentifier"></a><span class="insert">[</span><span class="prodNo"><span class="insert">30</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">agIdentifier</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-identifier"><span class="insert">identifier</span></a></span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-gIdentifier"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-gIdentifier" name="prod-gIdentifier"></a><span class="insert">[</span><span class="prodNo"><span class="insert">31</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">gIdentifier</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-identifier"><span class="insert">identifier</span></a></span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-uIdentifier"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-uIdentifier" name="prod-uIdentifier"></a><span class="insert">[</span><span class="prodNo"><span class="insert">32</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">uIdentifier</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-identifier"><span class="insert">identifier</span></a></span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-cIdentifier"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-cIdentifier" name="prod-cIdentifier"></a><span class="insert">[</span><span class="prodNo"><span class="insert">33</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">cIdentifier</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-identifier"><span class="insert">identifier</span></a></span></code></td> </tr> </tbody></div>
+
+<div class="grammar-ref" data-ref="prod-eIdentifierOrMarker"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-eIdentifierOrMarker" name="prod-eIdentifierOrMarker"></a><span class="insert">[</span><span class="prodNo"><span class="insert">34</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">eIdentifierOrMarker</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">( </span><span class="prod"><a class="grammarRef" href="#prod-eIdentifier"><span class="insert">eIdentifier</span></a></span><span class="insert"> | "-" )</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-aIdentifierOrMarker"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-aIdentifierOrMarker" name="prod-aIdentifierOrMarker"></a><span class="insert">[</span><span class="prodNo"><span class="insert">35</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">aIdentifierOrMarker</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">( </span><span class="prod"><a class="grammarRef" href="#prod-aIdentifier"><span class="insert">aIdentifier</span></a></span><span class="insert"> | "-" )</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-agIdentifierOrMarker"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-agIdentifierOrMarker" name="prod-agIdentifierOrMarker"></a><span class="insert">[</span><span class="prodNo"><span class="insert">36</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">agIdentifierOrMarker</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">( </span><span class="prod"><a class="grammarRef" href="#prod-agIdentifier"><span class="insert">agIdentifier</span></a></span><span class="insert"> | "-" )</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-gIdentifierOrMarker"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-gIdentifierOrMarker" name="prod-gIdentifierOrMarker"></a><span class="insert">[</span><span class="prodNo"><span class="insert">37</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">gIdentifierOrMarker</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">( </span><span class="prod"><a class="grammarRef" href="#prod-gIdentifier"><span class="insert">gIdentifier</span></a></span><span class="insert"> | "-" )</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-uIdentifierOrMarker"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-uIdentifierOrMarker" name="prod-uIdentifierOrMarker"></a><span class="insert">[</span><span class="prodNo"><span class="insert">38</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">uIdentifierOrMarker</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">( </span><span class="prod"><a class="grammarRef" href="#prod-uIdentifier"><span class="insert">uIdentifier</span></a></span><span class="insert"> | "-" )</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-identifier"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-identifier" name="prod-identifier"></a><span class="insert">[</span><span class="prodNo"><span class="insert">39</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">identifier</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-QUALNAME"><span class="insert">QUALNAME</span></a></span></code></td> </tr> </tbody></div>
+
+<div class="grammar-ref" data-ref="prod-QUALNAME"><tbody class="term"> <tr valign="baseline"> <td><a id="prod-QUALNAME" name="prod-QUALNAME"></a><span class="insert">[</span><span class="prodNo"><span class="insert">50</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><span class="insert">&lt;</span><code class="production term"><span class="insert">QUALNAME</span></code><span class="insert">&gt;</span></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">( </span><span class="prod"><a class="grammarRef" href="#prod-PN_PREFIX"><span class="insert">PN_PREFIX</span></a></span><span class="insert"> ":" )? </span><span class="prod"><a class="grammarRef" href="#prod-PN_LOCAL"><span class="insert">PN_LOCAL</span></a></span><br><span class="insert"> | </span><span class="prod"><a class="grammarRef" href="#prod-PN_PREFIX"><span class="insert">PN_PREFIX</span></a></span><span class="insert"> ":"</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-PN_LOCAL"><tbody class="term"> <tr valign="baseline"> <td><a id="prod-PN_LOCAL" name="prod-PN_LOCAL"></a><span class="insert">[</span><span class="prodNo"><span class="insert">68</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><span class="insert">&lt;</span><code class="production term"><span class="insert">PN_LOCAL</span></code><span class="insert">&gt;</span></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">( </span><span class="prod"><a class="grammarRef" href="#prod-PN_CHARS_U"><span class="insert">PN_CHARS_U</span></a></span><span class="insert"> | [0-9] | </span><span class="prod"><a class="grammarRef" href="#prod-PN_CHARS_OTHERS"><span class="insert">PN_CHARS_OTHERS</span></a></span><span class="insert"> ) ( ( </span><span class="prod"><a class="grammarRef" href="#prod-PN_CHARS"><span class="insert">PN_CHARS</span></a></span><span class="insert"> | "." | </span><span class="prod"><a class="grammarRef" href="#prod-PN_CHARS_OTHERS"><span class="insert">PN_CHARS_OTHERS</span></a></span><span class="insert"> )* ( </span><span class="prod"><a class="grammarRef" href="#prod-PN_CHARS"><span class="insert">PN_CHARS</span></a></span><span class="insert"> | </span><span class="prod"><a class="grammarRef" href="#prod-PN_CHARS_OTHERS"><span class="insert">PN_CHARS_OTHERS</span></a></span><span class="insert"> ) )?</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-PN_CHARS_OTHERS"><tbody class="term"> <tr valign="baseline"> <td><a id="prod-PN_CHARS_OTHERS" name="prod-PN_CHARS_OTHERS"></a><span class="insert">[</span><span class="prodNo"><span class="insert">69</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><span class="insert">&lt;</span><code class="production term"><span class="insert">PN_CHARS_OTHERS</span></code><span class="insert">&gt;</span></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-PERCENT"><span class="insert">PERCENT</span></a></span><br><span class="insert"> | "/"</span><br><span class="insert"> | "@"</span><br><span class="insert"> | "~"</span><br><span class="insert"> | "&amp;"</span><br><span class="insert"> | "+"</span><br><span class="insert"> | "?"</span><br><span class="insert"> | "#"</span><br><span class="insert"> | "$"</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-PERCENT"><tbody class="term"> <tr valign="baseline"> <td><a id="prod-PERCENT" name="prod-PERCENT"></a><span class="insert">[</span><span class="prodNo"><span class="insert">70</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><span class="insert">&lt;</span><code class="production term"><span class="insert">PERCENT</span></code><span class="insert">&gt;</span></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"%" </span><span class="prod"><a class="grammarRef" href="#prod-HEX"><span class="insert">HEX</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-HEX"><span class="insert">HEX</span></a></span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-HEX"><tbody class="term"> <tr valign="baseline"> <td><a id="prod-HEX" name="prod-HEX"></a><span class="insert">[</span><span class="prodNo"><span class="insert">71</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><span class="insert">&lt;</span><code class="production term"><span class="insert">HEX</span></code><span class="insert">&gt;</span></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">[0-9]</span><br><span class="insert"> | [A-F]</span><br><span class="insert"> | [a-f]</span></code></td> </tr> </tbody></div>
+</div></div><table class="grammar">
+
+</table>
+
+
+
+<div class="anexample" id="anexample-qualified-name">
+<p>Examples of articles on the BBC Web site seen as  entities.</p>
+<pre class="codeexample">container
+  prefix bbc &lt;http://www.bbc.co.uk/&gt;
+  prefix bbcNews &lt;http://www.bbc.co.uk/news/&gt;
+
+  entity(bbc:)                          // bbc site itself
+  entity(bbc:news/)                     // bbc news
+  entity(bbc:news/world-asia-17507976)  // a given news article
+
+  entity(bbcNews:)                      // an alternative way of referring to the bbc news site
+
+end
+</pre>
+</div>
+
+
+
+
+<div class="anexample" id="anexample-qualified-name2">
+<p>Examples of entities with declared and default namespace.</p>
+<pre class="codeexample">container
+  default &lt;http://example.org/2/&gt;
+  prefix ex &lt;http://example.org/1/&gt;
+
+  entity(ex:a)     //  corresponds to IRI http://example.org/1/a
+  entity(ex:a/)    //  corresponds to IRI http://example.org/1/a/
+  entity(ex:a/b)   //  corresponds to IRI http://example.org/1/a/b
+  entity(b)        //  corresponds to IRI http://example.org/2/b
+  entity(ex:1234)  //  corresponds to IRI http://example.org/2/1234
+  entity(4567)     //  corresponds to IRI http://example.org/2/4567
+end
+</pre>
+</div>
+
+
+
+
+<p><b>Note:</b>The productions for <span class="nonterminal">qualifiedName</span> and <span class="nonterminal">prefix</span> are conflicting.  In the context of a <span class="nonterminal">namespaceDeclaration</span>, a parser should give precedence to the production for <span class="nonterminal">prefix</span>.
+</p>
+
+
+<span class="delete">We need to explicitly disallow '</span><span class="delete">-</span><span class="delete">' as first and only character of local part. Instead, it should be encoded as </span><span class="delete">pct-encoded</span><span class="delete"> [</span><span class="delete">RFC3987</span><span class="delete">].
+</span>
+
+</div>
+
+<div id="expression-attribute" class="section">
+<h4><span class="secno">3.7.3 </span>Attribute</h4>
+
+<div class="grammar">
+<span class="nonterminal">attribute</span>&nbsp;::=  <span class="nonterminal">qualifiedName</span><br>
+</div>
+
+
+
+
+<div>
+<div>
+<div class="grammar-ref" data-ref="prod-attribute"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-attribute" name="prod-attribute"></a><span class="insert">[</span><span class="prodNo"><span class="insert">40</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">attribute</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-QUALNAME"><span class="insert">QUALNAME</span></a></span></code></td> </tr> </tbody></div>
+</div></div><table class="grammar">
+
+</table>
+
+
+<p>The  reserved attributes in the PROV namespace are the following.</p>
+
+<ol>
+<li>  <span class="name">prov:label</span>
+</li><li>  <span class="name">prov:location</span>
+</li><li>  <span class="name">prov:role</span>
+</li><li>  <span class="name">prov:type</span>
+</li><li>  <span class="name">prov:value</span>
+</li></ol>
+
+
+</div>
+
+
+
+
+
+<div id="expression-literal" class="section">
+<h4><span class="secno">3.7.4 </span>Literal</h4>
+
+<div class="grammar">
+<span class="nonterminal">Literal</span> &nbsp;::= <span class="nonterminal">typedLiteral</span> | <span class="nonterminal">convenienceNotation</span> <br>
+<span class="nonterminal">typedLiteral</span> ::= <span class="nonterminal">quotedString</span> <span class="name">%%</span> <span class="nonterminal">datatype</span><br>
+<span class="nonterminal">datatype</span> ::= <span class="nonterminal">qualifiedName</span> <em> listed in Table <a href="#permitted-datatypes">permitted-datatypes</a></em><br>
+<span class="nonterminal">convenienceNotation</span> &nbsp;::= <span class="nonterminal">stringLiteral</span> | <span class="nonterminal">intLiteral</span><br>
+<span class="nonterminal">stringLiteral</span> ::= <span class="nonterminal">quotedString</span><br>
+<span class="nonterminal">quotedString</span> ::= <em>a finite sequence of characters in which " (#x22) and \ (#x5C) occur only in pairs of the form \" (#x5C, #x22) and \\ (#x5C,
+#x5C), enclosed in a pair of " (#x22) characters</em><br>
+<span class="nonterminal">intLiteral</span> ::= <em>a finite-length non-empty sequence of decimal digits (#x30-#x39) with an optional leading negative sign (-)</em>
+</div>
+
+<div>
+<div>
+<div class="grammar-ref" data-ref="prod-literal"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-literal" name="prod-literal"></a><span class="insert">[</span><span class="prodNo"><span class="insert">42</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">literal</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-StringLiteral"><span class="insert">StringLiteral</span></a></span><span class="insert"> "%%" </span><span class="prod"><a class="grammarRef" href="#prod-datatype"><span class="insert">datatype</span></a></span><br><span class="insert"> | </span><span class="prod"><a class="grammarRef" href="#prod-StringLiteral"><span class="insert">StringLiteral</span></a></span><br><span class="insert"> | </span><span class="prod"><a class="grammarRef" href="#prod-INTLITERAL"><span class="insert">INTLITERAL</span></a></span><br><span class="insert"> | </span><span class="prod"><a class="grammarRef" href="#prod-QUALNAME_LITERAL"><span class="insert">QUALNAME_LITERAL</span></a></span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-StringLiteral"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-StringLiteral" name="prod-StringLiteral"></a><span class="insert">[</span><span class="prodNo"><span class="insert">43</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">StringLiteral</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-STRING_LITERAL"><span class="insert">STRING_LITERAL</span></a></span></code></td> </tr> </tbody></div>
+
+<div class="grammar-ref" data-ref="prod-INTLITERAL"><tbody class="term"> <tr valign="baseline"> <td><a id="prod-INTLITERAL" name="prod-INTLITERAL"></a><span class="insert">[</span><span class="prodNo"><span class="insert">56</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><span class="insert">&lt;</span><code class="production term"><span class="insert">INTLITERAL</span></code><span class="insert">&gt;</span></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">("-")? (</span><span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span><span class="insert">)+</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-STRING_LITERAL"><tbody class="term"> <tr valign="baseline"> <td><a id="prod-STRING_LITERAL" name="prod-STRING_LITERAL"></a><span class="insert">[</span><span class="prodNo"><span class="insert">57</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><span class="insert">&lt;</span><code class="production term"><span class="insert">STRING_LITERAL</span></code><span class="insert">&gt;</span></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">'"' ( ( [^"\
+
+] ) | </span><span class="prod"><a class="grammarRef" href="#prod-ECHAR"><span class="insert">ECHAR</span></a></span><span class="insert"> | </span><span class="prod"><a class="grammarRef" href="#prod-UCHAR"><span class="insert">UCHAR</span></a></span><span class="insert"> )* '"'</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-QUALNAME_LITERAL"><tbody class="term"> <tr valign="baseline"> <td><a id="prod-QUALNAME_LITERAL" name="prod-QUALNAME_LITERAL"></a><span class="insert">[</span><span class="prodNo"><span class="insert">58</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><span class="insert">&lt;</span><code class="production term"><span class="insert">QUALNAME_LITERAL</span></code><span class="insert">&gt;</span></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">"'" </span><span class="prod"><a class="grammarRef" href="#prod-QUALNAME"><span class="insert">QUALNAME</span></a></span><span class="insert"> "'"</span></code></td> </tr> </tbody></div>
+</div></div><table class="grammar">
+
+</table>
+
+
+
+
+<p>The non terminals <span class="nonterminal">stringLiteral</span> and
+<span class="nonterminal">intLiteral</span>
+are syntactic sugar for quoted strings with datatype <a href="http://www.w3.org/TR/xmlschema-2/#string"><span class="name">xsd:string</span></a> and <a href="http://www.w3.org/TR/xmlschema-2/#int"><span class="name">xsd:int</span></a>, respectively.
+</p>
+
+<p> In particular, a Literal may be an IRI-typed string (with datatype <span class="name">xsd:anyURI</span>);  such IRI has no specific interpretation in the context of PROV.</p>
+
+<table border="1" style="margin-left: auto; margin-right: auto;">
+<caption id="permitted-datatypes">Permitted datatypes in literals</caption>
+<tbody><tr><td><a href="http://www.w3.org/TR/xmlschema-2/#decimal">xsd:decimal</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#double">xsd:double</a></td>  <td><a href="http://www.w3.org/TR/xmlschema-2/#dateTime">xsd:dateTime</a></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#integer">xsd:integer</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#float">xsd:float</a></td>  <td><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-XMLLiteral"><span class="insert">rdf:XMLLiteral</span></a></td></tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#nonNegativeInteger">xsd:nonNegativeInteger</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#string">xsd:string</a></td> <td><span class="delete">rdf:XMLLiteral</span><a href="#prod-QUALNAME"><span class="insert">prov:QUALNAME</span></a></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#nonPositiveInteger">xsd:nonPositiveInteger</a></td><td><a href="http://www.w3.org/TR/xmlschema-2/#normalizedString">xsd:normalizedString</a></td> <td></td></tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#positiveInteger">xsd:positiveInteger</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#token">xsd:token</a></td> <td></td></tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#negativeInteger">xsd:negativeInteger</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#language">xsd:language</a></td> <td></td></tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#long">xsd:long</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#Name">xsd:Name</a></td> <td></td></tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#int">xsd:int</a></td>  <td><a href="http://www.w3.org/TR/xmlschema-2/#NCName">xsd:NCName</a></td> <td></td></tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#short">xsd:short</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#NMTOKEN">xsd:NMTOKEN</a></td> <td></td></tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#byte">xsd:byte</a></td>  <td><a href="http://www.w3.org/TR/xmlschema-2/#boolean">xsd:boolean</a></td> <td></td></tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#unsignedLong">xsd:unsignedLong</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#hexBinary">xsd:hexBinary</a></td> <td></td></tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#unsignedInt">xsd:unsignedInt</a></td>  <td><a href="http://www.w3.org/TR/xmlschema-2/#base64Binary">xsd:base64Binary</a></td><td></td> </tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#unsignedShort">xsd:unsignedShort</a></td><td><a href="http://www.w3.org/TR/xmlschema-2/#anyURI">xsd:anyURI</a></td> <td></td></tr>
+<tr><td><a href="http://www.w3.org/TR/xmlschema-2/#unsignedByte">xsd:unsignedByte</a></td> <td><a href="http://www.w3.org/TR/xmlschema-2/#anyURI">xsd:QName</a></td><td></td></tr>
+</tbody></table>
+
+<p><b>Note:</b>The productions for <span class="nonterminal">qualifiedName</span> and <span class="nonterminal">intLiteral</span> are conflicting.  In the context of a <span class="nonterminal">Literal</span>, a parser should give precedence to the production for <span class="nonterminal">intLiteral</span>.
+</p>
+
+<div class="note">
+Wouldn't it be useful to introduce a literal for a qualified name?
+Currenlty, we have to write:
+<pre>prov:type="ex:Programmer"  %% xsd:QName
+</pre>
+to indicate that ex:Programmer should be interpreted as qualified name (QName).
+Instead, we could have a notation such as
+<pre>prov:type='ex:Programmer'
+</pre>
+
+</div>
+
+
+<div id="expression-types" class="section">
+<h5><span class="secno">3.7.4.1 </span>Reserved Type Values</h5>
+
+<p>The  reserved type values in the PROV namespace are the following.</p>
+
+<ol>
+<li>  <span class="name">prov:Account</span>
+</li><li>  <span class="name">prov:SoftwareAgent</span>
+</li><li>  <span class="name">prov:Person</span>
+</li><li>  <span class="name">prov:Organization</span>
+</li><li>  <span class="name">prov:Plan</span>
+</li><li>  <span class="name">prov:Collection</span>
+</li><li>  <span class="name">prov:EmptyCollection</span>
+</li></ol>
+
+<div class="anexample" id="anexample-types">
+<p>The entity <span class="name">ag</span> is a person (type: <span class="name">prov:Person</span>), whereas the entity 
+<span class="name">pl</span> is a plan (type: <span class="name">prov:Plan</span>).</p>
+<pre class="codeexample">agent(ag,[prov:type="prov:Person" %% xsd:QName])
+entity(pl,[prov:type="prov:Plan" %% xsd:QName])
+</pre>
+</div>
+
+
+</div>
+
+<div id="expression-Time" class="section">
+<h5><span class="secno">3.7.4.2 </span>Time Values</h5>
+
+<p><dfn id="dfn-time">Time instants</dfn> are defined according to xsd:dateTime [<cite><a class="bibref" rel="biblioentry" href="#bib-XMLSCHEMA-2">XMLSCHEMA-2</a></cite>].</p> 
+
+<div>
+<div class="grammar-ref" data-ref="prod-time"><tbody class="prod"> <tr valign="baseline"> <td><a id="prod-time" name="prod-time"></a><span class="insert">[</span><span class="prodNo"><span class="insert">41</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><code class="production prod"><span class="insert">time</span></code></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-ISODATETIME"><span class="insert">ISODATETIME</span></a></span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-DIGIT"><tbody class="term"> <tr valign="baseline"> <td><a id="prod-DIGIT" name="prod-DIGIT"></a><span class="insert">[</span><span class="prodNo"><span class="insert">52</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><span class="insert">&lt;</span><code class="production term"><span class="insert">DIGIT</span></code><span class="insert">&gt;</span></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">[0-9]</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-ISODATETIME"><tbody class="term"> <tr valign="baseline"> <td><a id="prod-ISODATETIME" name="prod-ISODATETIME"></a><span class="insert">[</span><span class="prodNo"><span class="insert">53</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><span class="insert">&lt;</span><code class="production term"><span class="insert">ISODATETIME</span></code><span class="insert">&gt;</span></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span><span class="insert"> "-" </span><span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span><span class="insert"> "-" </span><span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span><span class="insert"> "T" </span><span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span><span class="insert"> ":" </span><span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span><span class="insert"> ":" </span><span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span><span class="insert"> ( "." </span><span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span><span class="insert"> ( </span><span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span><span class="insert"> (</span><span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span><span class="insert">)? )? )? ( "Z" | </span><span class="prod"><a class="grammarRef" href="#prod-TIMEZONEOFFSET"><span class="insert">TIMEZONEOFFSET</span></a></span><span class="insert"> )?</span></code></td> </tr> </tbody></div>
+<div class="grammar-ref" data-ref="prod-TIMEZONEOFFSET"><tbody class="term"> <tr valign="baseline"> <td><a id="prod-TIMEZONEOFFSET" name="prod-TIMEZONEOFFSET"></a><span class="insert">[</span><span class="prodNo"><span class="insert">54</span></span><span class="insert">]&nbsp;&nbsp;&nbsp;</span></td> <td><span class="insert">&lt;</span><code class="production term"><span class="insert">TIMEZONEOFFSET</span></code><span class="insert">&gt;</span></td> <td><span class="insert">&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</span></td> <td><code class="content"><span class="insert">( "+" | "-" ) </span><span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span><span class="insert"> ":" </span><span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT"><span class="insert">DIGIT</span></a></span></code></td> </tr> </tbody></div>
+</div><table class="grammar">
+
+</table>
+
+
+<div class="anexample" id="anexample-time">
+
+<p>The third argument in the following usage expression is a time instance, namely 4pm on 2011-11-16.</p>
+<pre class="codeexample">used(ex:act2, ar3:0111, 2011-11-16T16:00:00)
+</pre>
+</div>
+
+
+
+
+</div>
+
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+ 
+</div>
+</div>
+
+
+
+
+
+<div id="ExpressionContainer" class="section">
+<h2><span class="secno">4. </span>Expression Container</h2>
+
+<p>An <dfn id="dfn-expression-container">expression container</dfn> is a house-keeping construct of PROV-N capable of packaging up PROV-N <a title="expression">expressions</a> and namespace declarations.  An expression container forms a self-contained package of provenance descriptions for the purpose of <em>exchanging</em> them.  An expression container may be used
+ to  package up PROV-N <a title="record">expressions</a> in response to a request for the provenance of something ([<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-AQ">PROV-AQ</a></cite>]).</p>
+
+<p> Given its status of house keeping construct for the purpose of exchanging provenance expressions,  an expression container is not defined as a PROV-N expression (<a href="#grammar-notation">production <span class="nonterminal">expression</span></a>).</p> 
+
+
+<p>An expression container, written <span class="name">container decls  exprs endContainer</span> in PROV-N, contains:
+</p><ul>
+<li><em>namespaceDeclarations</em>: a set <span class="name">decls</span> of namespace declarations, declaring namespaces and associated prefixes, which can be used in <a title="attribute">attributes</a> and  <a title="identifier">identifiers</a> occurring inside  <span class="name">exprs</span>;</li>
+<li><em>expressions</em>:  a non-empty set of expressions <span class="name">exprs</span>.</li>
+</ul>
+
+<p>An expression container's text matches the <span class="nonterminal">expressionContainer</span> production.</p>
+
+
+<div class="grammar">
+<span class="nonterminal">expressionContainer</span> ::=  
+<span class="name">container</span> 
+<span class="nonterminal">namespaceDeclarations</span> 
+<span class="plus"> <span class="nonterminal">expression</span> </span>
+<span class="name">endContainer</span> 
+</div>
+
+
+<div class="anexample">
+<p>
+The following container contains expressions related to the provenance of entity 
+<span class="name">e2</span>.
+</p>
+<pre class="codeexample">container
+  prefix ex &lt;http://example.org/&gt;
+
+  entity(e2, [ prov:type="File", ex:path="/shared/crime.txt", ex:creator="Alice", 
+               ex:content="There was a lot of crime in London last month."])
+  activity(a1, 2011-11-16T16:05:00, -,[prov:type="edit"])
+  wasGeneratedBy(e2, a1, -, [ex:fct="save"])     
+  wasAssociatedWith(a1, ag2, -, [prov:role="author"])
+  agent(ag2, [ prov:type="prov:Person" %% xsd:QName, ex:name="Bob" ])
+
+endContainer
+</pre>
+<p>This container could for instance be returned as the result of a query to a provenance store for the provenance of entity <span class="name">e2</span> [<cite><a class="bibref" rel="biblioentry" href="#bib-PROV-AQ">PROV-AQ</a></cite>].  
+</p>
+</div>
+
+
+
+</div>
+
+<div id="account" class="section">
+<h2><span class="secno">5. </span>Account</h2>
+
+<p>The PROV data model has introduced a notion of account by which a set of provenance descriptions can be bundled up and named.  The PROV data model <em>assumes</em> the existence of mechanisms to implement accounts, but such mechanisms remain outside its scope.  It is suggested that specific serializations may offer solutions to name bundles of descriptions. </p>
+
+<p>Given that the primary motivation for PROV-N is to provide a notation aimed at human consumption, it is therefore appropriate to introduce a notation for accounts, which would include an account name and a bundle of expressions.</p>
+
+
+
+<p>An account, written <span class="name">account(id, exprs)</span> in PROV-N, contains:</p>
+<ul>
+<li><em>id</em>: an identifier  that identifies this account;</li>
+<li><em>expressions</em>: a set <span class="name">exprs</span> of expressions;</li>
+</ul>
+
+<p>In PROV-N, an account's text matches the <span class="nonterminal">accountExpression</span> production of the grammar.</p>
+
+<div class="grammar">
+<span class="nonterminal">accountExpression</span>&nbsp;::=  
+<span class="name">account</span> 
+<span class="name">(</span> 
+<span class="nonterminal">identifier</span> 
+<span class="name">,</span> 
+<span class="plus">
+<span class="nonterminal">expression</span> </span>
+<span class="name">)</span> 
+</div>
+
+<p>It is also useful to package up one or more account expressions in an expression container, for interchange purpose. Hence,  <span class="nonterminal">expressionContainer</span> is revised as follows. </p>
+
+<div class="grammar">
+<span class="nonterminal">expressionContainer</span> ::=  
+<span class="name">container</span> 
+<span class="nonterminal">namespaceDeclarations</span> 
+<span class="plus"> <span class="nonterminal">expression</span> </span>
+<span class="name">endContainer</span>   <br>
+| <span class="name">container</span> 
+<span class="nonterminal">namespaceDeclarations</span> 
+<span class="plus"> <span class="nonterminal">accountExpression</span> </span>
+<span class="name">endContainer</span>  
+</div>
+
+
+
+<div class="anexample">
+<p>
+The following container </p>
+<pre class="codeexample">container
+  prefix ex &lt;http://example.org/&gt;
+
+  account(ex:acc1,...)
+  account(ex:acc2,...)
+endContainer
+</pre>
+<p> illustrates how two accounts with identifiers <span class="name">ex:acc1</span> and <span class="name">ex:acc2</span> can be returned in a PROV-N serialization of the provenance of
+something.
+</p>
+</div>
+
+
+<div class="anexample">
+<p>
+The following container </p>
+<pre class="codeexample">container
+  prefix ex &lt;http://example.org/&gt;
+  ...
+
+  account(ex:acc1,
+      entity(tr:WD-prov-dm-20111018, [ prov:type="pr:RecsWD" %% xsd:QName ])
+      entity(tr:WD-prov-dm-20111215, [ prov:type="pr:RecsWD" %% xsd:QName ])
+      ...
+      wasAssociatedWith(ex:pub2, w3:Consortium, pr:rec-advance))
+
+  account(ex:acc2,
+      entity(ex:acc1, [prov:type="prov:Account" %% xsd:QName ])
+      wasAttributedTo(ex1:acc1, w3:Consortium))
+
+endContainer
+</pre>
+<p> illustrates a first account, with identifier <span class="name">ex:acc1</span>, containing expressions describing the provenance  of the technical report <span class="name">tr:WD-prov-dm-20111215</span>, and a second account <span class="name">ex:acc2</span>, describing the provenance of the first.  In account <span class="name">ex:acc2</span>, <span class="name">ex:acc1</span> is the identifier of an entity of type <span class="name">prov:Account</span>.
+</p>
+</div>
+
+
+</div>
+
+<div id="media-type" class="section">
+<h2><span class="secno">6. </span>Media Type</h2>
+
+<p>
+The media type of PROV-N is <span class="name">text/prov-n</span>. The content encoding of PROV-N content is UTF-8.
+</p>
+
+<div class="note">
+<p>
+See <a href="http://www.w3.org/2002/06/registering-mediatype">http://www.w3.org/2002/06/registering-mediatype</a> for Register an Internet Media Type for a <acronym title="World Wide Web Consortium">W3C</acronym> Spec.</p>
+</div>
+
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="appendix section" id="acknowledgements"> 
+      <h2><span class="secno">A. </span>Acknowledgements</h2> 
+      <p> 
+        WG membership to be listed here.
+      </p> 
+    </div> 
+
+
+ 
+<div id="references" class="appendix section"><h2><span class="secno">B. </span>References</h2><div id="normative-references" class="section"><h3><span class="secno">B.1 </span>Normative references</h3><dl class="bibliography"><dt id="bib-IRI">[IRI]</dt><dd>M. Duerst, M. Suignard. <a href="http://www.ietf.org/rfc/rfc3987.txt"><cite>Internationalized Resource Identifiers (IRI).</cite></a> January 2005. Internet RFC 3987. URL: <a href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3987.txt</a> 
+</dd><dt id="bib-RDF-CONCEPTS">[RDF-CONCEPTS]</dt><dd>Graham Klyne; Jeremy J. Carroll. <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210"><cite>Resource Description Framework (RDF): Concepts and Abstract Syntax.</cite></a> 10 February 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210">http://www.w3.org/TR/2004/REC-rdf-concepts-20040210</a> 
+</dd><span class="delete">[RDFA-CORE]</span><dt id="bib-RDF-SPARQL-QUERY"><span class="insert">[RDF-SPARQL-QUERY]</span></dt><dd><span class="delete">Shane McCarron; et al. </span><span class="insert">Andy Seaborne; Eric Prud'hommeaux. </span><a href="http://www.w3.org/TR/2008/REC-rdf-sparql-query-20080115"><cite><span class="delete">RDFa Core 1.1: Syntax and processing rules</span><span class="insert">SPARQL Query Language</span> for <span class="delete">embedding RDF through attributes.</span><span class="insert">RDF.</span></cite></a> <span class="delete">13 March 2012.</span><span class="insert">15 January 2008.</span> W3C <span class="delete">Candidate </span>Recommendation. URL: <span class="delete">http://www.w3.org/TR/2012/CR-rdfa-core-20120313/</span><a href="http://www.w3.org/TR/2008/REC-rdf-sparql-query-20080115"><span class="insert">http://www.w3.org/TR/2008/REC-rdf-sparql-query-20080115</span></a> 
+</dd><dt id="bib-RFC2119">[RFC2119]</dt><dd>S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key words for use in RFCs to Indicate Requirement Levels.</cite></a> March 1997. Internet RFC 2119.  URL: <a href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt 
+<span class="delete">[RFC3987]</span><span class="delete">M. Dürst; M. Suignard. </span><span class="delete">Internationalized Resource Identifiers (IRIs).</span><span class="delete"> January 2005. Internet RFC 3987. URL: </span><span class="delete">http://www.ietf.org/rfc/rfc3987.txt</span></a> 
+</dd><dt id="bib-URI">[URI]</dt><dd>T. Berners-Lee; R. Fielding; L. Masinter. <a href="http://www.ietf.org/rfc/rfc3986.txt"><cite>Uniform Resource Identifiers (URI): generic syntax.</cite></a> January 2005. Internet RFC 3986. URL: <a href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3986.txt</a> 
+</dd><dt id="bib-XML-NAMES">[XML-NAMES]</dt><dd>Richard Tobin; et al. <a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/"><cite>Namespaces in XML 1.0 (Third Edition).</cite></a> 8 December 2009. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/">http://www.w3.org/TR/2009/REC-xml-names-20091208/</a> 
+</dd><dt id="bib-XMLSCHEMA-2">[XMLSCHEMA-2]</dt><dd>Paul V. Biron; Ashok Malhotra. <a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/"><cite>XML Schema Part 2: Datatypes Second Edition.</cite></a> 28 October 2004. W3C Recommendation. URL: <a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/</a> 
+</dd></dl></div><div id="informative-references" class="section"><h3><span class="secno">B.2 </span>Informative references</h3><dl class="bibliography"><dt id="bib-PROV-AQ">[PROV-AQ]</dt><dd>Graham Klyne and Paul Groth (eds.) Luc Moreau, Olaf Hartig, Yogesh Simmhan, James Meyers, Timothy Lebo, Khalid Belhajjame, and Simon Miles <a href="http://www.w3.org/TR/prov-aq/"><cite>Provenance Access and Query</cite></a>. 2011, Working Draft. URL: <a href="http://www.w3.org/TR/prov-aq/">http://www.w3.org/TR/prov-aq/</a>
+</dd><dt id="bib-PROV-CONSTRAINTS">[PROV-CONSTRAINTS]</dt><dd>James Cheney, Paolo Missier, and Luc Moreau (eds.)<a href="http://www.w3.org/TR/prov-constraints/"><cite>Constraints of the Prov Data Model</cite></a>. 2012, Working Draft. URL: <a href="http://www.w3.org/TR/prov-constraints/">http://www.w3.org/TR/prov-constraints/</a>
+</dd><dt id="bib-PROV-DM">[PROV-DM]</dt><dd>Luc Moreau and Paolo Missier (eds.) Khalid Belhajjame, Reza B'Far, Stephen Cresswell, Yolanda Gil, Paul Groth, Graham Klyne, Jim McCusker, Simon Miles, James Myers, Satya Sahoo, and Curt Tilmes<a href="http://www.w3.org/TR/prov-dm/"><cite>PROV-DM: The PROV Data Model</cite></a>. 2012, Working Draft. URL: <a href="http://www.w3.org/TR/prov-dm/">http://www.w3.org/TR/prov-dm/</a>
+</dd><dt id="bib-PROV-RDF">[PROV-RDF]</dt><dd>James Cheney<a href="http://www.w3.org/2011/prov/wiki/ProvRDF"><cite>PROV-RDF Mapping </cite></a>2012, Working in Progress. URL: <a href="http://www.w3.org/2011/prov/wiki/ProvRDF">http://www.w3.org/2011/prov/wiki/ProvRDF</a>
+</dd><dt id="bib-PROV-SEM">[PROV-SEM]</dt><dd>James Cheney <a href="http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman"><cite>Formal Semantics Strawman</cite></a>. 2011, Work in progress. URL: <a href="http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman">http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman</a>
+</dd><dt id="bib-PROV-XML">[PROV-XML]</dt><dd>James Cheney<a href="http://www.w3.org/2011/prov/wiki/ProvXML"><cite>PROV-XML Mapping </cite></a>2012, Working in Progress. URL: <a href="http://www.w3.org/2011/prov/wiki/ProvXML">http://www.w3.org/2011/prov/wiki/ProvXML</a>
+</dd></dl></div></div></body></html>
+
--- a/model/diff/Makefile	Mon May 14 21:43:51 2012 -0400
+++ b/model/diff/Makefile	Tue May 15 09:27:14 2012 +0100
@@ -1,4 +1,7 @@
 dm.diff:
 	htmldiff ../releases/WD-prov-dm-20120503/Overview.html prov-dm.html > ../diff.html
 
+n.diff:
+	htmldiff ../releases/WD-prov-n-20120503/Overview.html prov-n.html > ../diff-n.html
 
+
--- a/model/prov-n.html	Mon May 14 21:43:51 2012 -0400
+++ b/model/prov-n.html	Tue May 15 09:27:14 2012 +0100
@@ -156,7 +156,7 @@
           // if your specification has a subtitle that goes below the main
           // formal title, define it here
         //          subtitle   :  "About-to-be-frozen WD4 (for internal release)",
-          subtitle   :  "towards second working draft",
+          subtitle   :  "towards second working draft (<a href=\"diff-n.html\">Diffs since last release</a>)",
 
           // if you wish the publication date to be other than today, set this
 //           publishDate:  "2012-05-03",