--- a/model/prov-asn.html Thu Mar 08 21:34:00 2012 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1202 +0,0 @@
-<!DOCTYPE html>
-
-<html><head>
- <title>PROV-DM Part 3: PROV-N: The Provenance Notation</title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <!--
- === NOTA BENE ===
- For the three scripts below, if your spec resides on dev.w3 you can check them
- out in the same tree and use relative links so that they'll work offline,
- -->
-<!-- PM -->
- <style type="text/css">
- .note { font-size:small; margin-left:50px }
- </style>
-
- <script src="http://dev.w3.org/2009/dap/ReSpec.js/js/respec.js" class="remove"></script>
- <script src="http://www.w3.org/2007/OWL/toggles.js" class="remove"></script>
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" class="remove"></script>
-
- <script class="remove">
- function updateGlossaryRefs() {
- $('.glossary-ref').each(function(index) {
- var ref=$(this).attr('ref');
- $('#'+ref+'.glossary').contents().clone().appendTo($(this));
- $(this).children('dfn').replaceWith(function(){return $('<span>').addClass('dfn').append($(this).contents())});
- });
- }
- $(document).ready(updateGlossaryRefs);
- function glossary_include(doc, content) {
- window.setTimeout(updateGlossaryRefs, 1000);
- return content;
- }
- </script>
-
- <script class="remove">
- var addExtraReferences = function() {
- for (var k in extraReferences)
- berjon.biblio[k] = extraReferences[k];
- };
- var extraReferences = {
- "CLOCK":
- "Lamport, L. "+
- "<a href=\"http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf\"><cite>Time, clocks, and the ordering of events in a distributed system</cite></a>."+
- "Communications of the ACM 21 (7): 558–565. 1978. "+
- "URL: <a href=\"http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf\">http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf</a> " +
- "DOI: doi:10.1145/359545.359563.",
- "CSP":
- "Hoare, C. A. R. "+
- "<a href=\"http://www.usingcsp.com/cspbook.pdf\"><cite>Communicating Sequential Processes</cite></a>."+
- "Prentice-Hall. 1985"+
- "URL: <a href=\"http://www.usingcsp.com/cspbook.pdf\">http://www.usingcsp.com/cspbook.pdf</a>",
- "Logic":
- "W. E. Johnson"+
- "<a href=\"http://www.ditext.com/johnson/intro-3.html\"><cite>Logic: Part III</cite></a>."+
- "1924. "+
- "URL: <a href=\"http://www.ditext.com/johnson/intro-3.html\">http://www.ditext.com/johnson/intro-3.html</a>",
-
-
-
- "PROV-RDF":
- "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>",
-
- "PROV-XML":
- "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>",
-
-
- "PROV-DM":
- "Luc Moreau and Paolo Missier (eds.) ... "+
- "<a href=\"http://www.w3.org/TR/prov-dm/\"><cite>PART 1: PROV-DM ...</cite></a>. "+
- "2011, Working Draft. "+
- "URL: <a href=\"http://www.w3.org/TR/prov-dm/\">http://www.w3.org/TR/prov-dm/</a>",
-
- "PROV-DM-CONSTRAINTS":
- "Luc Moreau and Paolo Missier (eds.) ... "+
- "<a href=\"http://www.w3.org/TR/prov-dm-constraints/\"><cite>PROV-DM Constraints</cite></a>. "+
- "2011, Working Draft. "+
- "URL: <a href=\"http://www.w3.org/TR/prov-dm-constraints/\">http://www.w3.org/TR/prov-dm-constraints/</a>",
-
-
- "PROV-SEM":
- "James Cheney "+
- "<a href=\"http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman\"><cite>Formal Semantics Strawman</cite></a>. "+
- "2011, Work in progress. "+
- "URL: <a href=\"http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman\">http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman</a>",
-
- "PROV-PRIMER":
- "Yolanda Gil and Simon Miles (eds.) Khalid Belhajjame, Helena Deus, Daniel Garijo, Graham Klyne, Paolo Missier, Stian Soiland-Reyes, and Stephan Zednik "+
- "<a href=\"http://www.w3.org/TR/prov-primer/\"><cite>Prov Model Primer</cite></a>. "+
- "2011, Working Draft. "+
- "URL: <a href=\"http://www.w3.org/TR/prov-primer/\">http://www.w3.org/TR/prov-primer/</a>",
-
- "PROV-O":
- "Satya Sahoo and Deborah McGuinness (eds.) Khalid Belhajjame, James Cheney, Daniel Garijo, Timothy Lebo, Stian Soiland-Reyes, and Stephan Zednik "+
- "<a href=\"http://www.w3.org/TR/prov-o/\"><cite>Provenance Formal Model</cite></a>. "+
- "2011, Working Draft. "+
- "URL: <a href=\"http://www.w3.org/TR/prov-o/\">http://www.w3.org/TR/prov-o/</a>",
-
- "PROV-AQ":
- "Graham Klyne and Paul Groth (eds.) Luc Moreau, Olaf Hartig, Yogesh Simmhan, James Meyers, Timothy Lebo, Khalid Belhajjame, and Simon Miles "+
- "<a href=\"http://www.w3.org/TR/prov-aq/\"><cite>Provenance Access and Query</cite></a>. "+
- "2011, Working Draft. "+
- "URL: <a href=\"http://www.w3.org/TR/prov-aq/\">http://www.w3.org/TR/prov-aq/</a>",
- };
- var respecConfig = {
- // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
- specStatus: "ED",
-
- // the specification's short name, as in http://www.w3.org/TR/short-name/
- shortName: "prov-dm",
-
- // if your specification has a subtitle that goes below the main
- // formal title, define it here
- subtitle : "About-to-be-frozen WD4 (for internal release)",
-
-
- // if you wish the publication date to be other than today, set this
- // publishDate: "2011-10-18",
-
- // if the specification's copyright date is a range of years, specify
- // the start date here:
- copyrightStart: "2011",
-
- // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
- // and its maturity status
- //previousPublishDate: "2011-12-15",
- //previousMaturity: "WD",
-
- // if there a publicly available Editor's Draft, this is the link
- edDraftURI: "http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-n.html",
-
- // if this is a LCWD, uncomment and set the end of its review period
- // lcEnd: "2009-08-05",
-
- // if you want to have extra CSS, append them to this list
- // it is recommended that the respec.css stylesheet be kept
- extraCSS: ["http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css", "./extra.css"],
-
- // editors, add as many as you like
- // only "name" is required
- editors: [
- { name: "Luc Moreau", url: "http://www.ecs.soton.ac.uk/~lavm/",
- company: "University of Southampton" },
- { name: "Paolo Missier", url: "http://www.cs.ncl.ac.uk/people/Paolo.Missier",
- company: "Newcastle University" },
- ],
-
- // authors, add as many as you like.
- // This is optional, uncomment if you have authors as well as editors.
- // only "name" is required. Same format as editors.
-
- authors: [
- { name: "TBD" },
- ],
-
-
- // name of the WG
- wg: "Provenance Working Group",
-
- // URI of the public WG page
- wgURI: "http://www.w3.org/2011/prov/",
-
- // name (with the @w3c.org) of the public mailing to which comments are due
- wgPublicList: "public-prov-wg",
-
- // URI of the patent status for this WG, for Rec-track documents
- // !!!! IMPORTANT !!!!
- // This is important for Rec-track documents, do not copy a patent URI from a random
- // document unless you know what you're doing. If in doubt ask your friendly neighbourhood
- // Team Contact.
- wgPatentURI: "http://www.w3.org/2004/01/pp-impl/46974/status",
-
- // Add extraReferences to bibliography database
- preProcess: [addExtraReferences],
- };
- </script>
- </head>
- <body>
-
- <section id="abstract">
-<div class="note">TO EDIT</div>
-<p>
-PROV-DM is a data model for provenance for building
-representations of the entities, people and activities involved in
-producing a piece of data or thing in the world. PROV-DM is
-domain-agnostic, but is equipped with extensibility points allowing
-further domain-specific and application-specific extensions to be
-defined. PROV-DM is accompanied by PROV-N, a technology-independent
-abstract syntax notation, which allows serializations of PROV-DM
-instances to be created for human consumption, which facilitates its
-mapping to concrete syntax, and which is used as the basis for a
-formal semantics.
-</p>
- </section>
-
-<section id="sotd">
-<div class="note">TO EDIT</div>
-<section id="prov-family">
-<!-- <h3>Prov Family of Specifications</h3>-->
-This document is part of the PROV family of specifications, a set of specifications aiming to define the various aspects that are necessary to achieve the vision of inter-operable
-interchange of provenance information in heterogeneous environments such as the Web. This document defines the PROV-DM data model for provenance, accompanied with a notation to express
-instances of that data model for human consumption. Other documents are:
-<ul>
-<li> PROV-DM-CONSTRAINTS, a set of constraints applying to the PROV-DM data model,</li>
-<li> PROV-N, a notation for provenance aimed at human consumption,</li>
-<li> PROV-O, the provenance ontology: by means of a mapping of PROV-DM to the OWL2 Web Ontology Language, this specification provides a normative serialization of PROV-DM in RDF</li>
-<li> PROV-AQ, provenance access and query: the mechanisms for accessing and querying provenance; </li>
-<li> PROV-PRIMER: a primer for the PROV-DM provenance data model,</li>
-<li> PROV-SEM: a formal semantics for the PROV-DM provenance data model.</li>
-</ul>
-</section>
-</section>
-
-
-
-
-
-
-
-
-
-
-
-
-<section id="introduction">
-<h2>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 such descriptions to be expressed [[PROV-DM]] and a set of constraints that provenance descriptions are expectively to satisfy [[PROV-DM-CONSTRAINTS]].
-</p>
-
-
-<p>In this context, PROV-N was introduced as a notation to write instances of the data model, as close to its abstract syntax as possible. PROV-N is primarily aimed at human consumption. PROV-N allows
-serializations of PROV-DM instances to be written in a technology independent manner.
-So far, PROV-N has been used in the following ways:</p>
-<ul>
-<li> PROV-N is used to provide technology independent illustrations in [[PROV-DM]] and in the definition of PROV-DM constraints [[PROV-DM-CONSTRAINTS]];</li>
-<li> PROV-N is instrumental in defining the mapping mapping of PROV-DM to concrete syntaxes. Mappings translate each PROV-N expression to RDF [[PROV-RDF]] and to XML [[PROV-XML]];</li>
-<li> PROV-N is the basis for a
-formal semantics, in which each PROV-N expression is provided with an interpretation [[PROV-SEM]].
-</ul>
-
-<p>PROV-N was designed to be as close as possible to PROV-DM without the syntactic bias and modelling constraints that concrete technologies bring with them, e.g., XML's choice between attribute and element, RDF's reliance on triples, or JSON's usage of dictionaries. </p>
-
-<p>The purpose of this document is solely to define the syntax of PROV-N.
-For each construct of PROV-DM, a corresponding PROV-N expression is introduced, by way of a production in the PROV-N grammar presented in this document. </p>
-
-
-<p>This specification is one of several specifications, referred to as the PROV family of specifications, defining the various aspects
-that are necessary to achieve the vision of inter-operable exchange of provenance:</p>
-<ul>
-<li>A data model for provenance, which is presented in three documents:
-<ul>
-<li> PROV-DM (part I): the provenance data model itself, expressed in natural language [[PROV-DM]];
-<li> PROV-DM-CONSTRAINTS (part II): constraints underpinning the data model [[PROV-DM-CONSTRAINTS]];
-<li> PROV-N (part III): a notation to express instances of that data model for human consumption (this document);
-</ul>
-</li>
-
-<li>PROV-O: a normative serialization of PROV-DM in RDF [[!PROV-O]], specified by means of a mapping to the OWL2 Web Ontology Language [[!OWL2-SYNTAX]];</li>
-<li>PROV-AQ: the mechanisms for accessing and querying provenance [[PROV-AQ]];</li>
-<li>PROV-PRIMER: a primer for the PROV approach [[PROV-PRIMER]];</li>
-<li>PROV-SEM: semantics of the PROV-DM data model [[PROV-SEM]];</li>
-</ul>
-
- <section id="structure-of-this-document">
-<h3>Structure of this Document</h3>
-
-<div class='note'>TODO</div>
-
-
- </section>
-
-
-<section id="prov-dm-namespace">
- <h3>PROV-DM Namespace</h3>
-
-
-<p>The PROV-DM namespace is <span class="name">http://www.w3.org/ns/prov-dm/</span> (TBC).</p>
-
-<p> All the elements, relations, reserved names and attributes introduced in this specification belong to the PROV-DM namespace.</p>
-
-<div class="issue">
-There is a desire to use a single namespace that all specifications of the PROV family can share to refer to common provenance terms. This is <a href="http://www.w3.org/2011/prov/track/issues/224">ISSUE-224</a>.
-</div>
-
-</section>
-
- <section id="conventions">
-<h3>Conventions</h3>
-
-
-
-<p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
- NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
- "OPTIONAL" in this document are to be interpreted as described in
- [[!RFC2119]].</p>
- </section>
-
-</section>
-
-
-
-</section>
-
-
- <section id="grammar-notation">
-<h3>Grammar Notation</h3>
-
-<p>This specification includes a grammar for PROV-N expressed using the Extended Backus-Naur Form (EBNF) notation.</p>
-
-<div class="grammar">
-<p> Each production rule (or <dfn>production</dfn>, for short) in the grammar defines one non-terminal symbol, in the form:</p>
-<p>
-<span class="nonterminal">E</span> ::= <em>expression</em>
-</p>
-
-
-Within the expression on the right-hand side of a rule, the following expressions are used to match strings of one or more characters:
-<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>expression</em></span>: matches <em>expression</em> or nothing; optional <em>expression</em>.
-</li>
-
-<li>
-<span class="plus"><em>expression</em></span>: matches one or more occurrences of <em>expression</em>.
-</li>
-
-<li>
-<span class="star"><em>expression</em></span>: matches zero or more occurrences of <em>expression</em>.
-</li>
-
-</ul>
-</div>
-
-</section>
-
-
-<section id="data-model-concepts">
-
-<h2>PROV-DM Core</h2>
-
-<p>Instances of the PROV-DM data model are expressed in PROV-N by a text conformant with the toplevel <a>production</a> <span class="nonterminal">expression</span> of the grammar. These <span
-class="nonterminal">expression</span>s are grouped in two categories:
-<span class="nonterminal">elementExpression</span> (see section <a href="#expression-element">Element</a>) and
-<span class="nonterminal">relationExpression</span> (see section <a href="#expression-relation">Relation</a>).</p>
-
-
-<div class='grammar'>
-<span class="nonterminal">expression</span> ::=
-<span class="nonterminal">elementExpression</span>
-| <span class="nonterminal">relationExpression</span>
-<br/>
-<!-- -->
-<br/>
-<span class="nonterminal">elementExpression</span> ::=
-<span class="nonterminal">entityExpression</span>
-| <span class="nonterminal">activityExpression</span>
-| <span class="nonterminal">agentExpression</span>
-| <span class="nonterminal">noteExpression</span> <br/>
-<!-- -->
-<br/>
-<span class="nonterminal">relationExpression</span> ::=
-<span class="nonterminal">generationExpression</span>
-| <span class="nonterminal">usageExpression</span>
-| <span class="nonterminal">derivationExpression</span>
-| <span class="nonterminal">activityAssociationExpression</span>
-| <span class="nonterminal">responsibilityExpression</span>
-| <span class="nonterminal">startExpression</span>
-| <span class="nonterminal">endExpression</span>
-| <span class="nonterminal">alternateExpression</span>
-| <span class="nonterminal">specializationExpression</span>
-| <span class="nonterminal">annotationExpression</span>
-</div>
-
-
-
-
-<section id="expression-element">
-<h3>Element</h3>
-
-<p>PROV-DM elements can be entities, activities, agents, or notes. This section defines a production for the textual representation of each of these element types. </p>
-
- <section id="expression-Entity">
-
-<h4>Entity</h4>
-
-
-<div class="withPn">
-<p>
-An entity's text matches the <span class="nonterminal">entityExpression</span> production.
-</p>
-
-<div class='grammar'>
-<span class="nonterminal">entityExpression</span> ::=
-<span class="name">entity</span>
-<span class="name">(</span>
-<span class="nonterminal">identifier</span>
-<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span><br/><br/>
-<!-- -->
-<span class="nonterminal">optional-attribute-values</span> ::=
-<span class="optional"><span class="name">,</span>
-<span class="name">[</span>
-<span class="nonterminal">attribute-values</span>
-<span class="name">]</span>
-</span><br/>
-<span class="nonterminal">attribute-values</span> ::=
-<span class="nonterminal">attribute-value</span>
-| <span class="nonterminal">attribute-value</span> <span class="name">,</span> <span class="nonterminal">attribute-values</span>
-<br/>
-<span class="nonterminal">attribute-value</span> ::=
-<span class="nonterminal">attribute</span>
-<span class="name">=</span>
-<span class="nonterminal">Literal</span>
-<br/>
-</div>
-</div>
-
-<div class="anexample">
-<pre class="codeexample">
-entity(tr:WD-prov-dm-20111215)
-entity(tr:WD-prov-dm-20111215, [ prov:type="document" ])
-entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version=2 ])
-</pre>
-</div>
-
-
- </section>
-
- <section id="expression-Activity">
-
-<h3>Activity</h3>
-
-
-<div class="withPn">
-<p>An activity's text matches the <span class='nonterminal'>activityExpression</span> production.</p>
-
-
-
-<div class='grammar'>
-<span class="nonterminal">activityExpression</span> ::=
-<span class="name">activity</span>
-<span class="name">(</span>
-<span class="nonterminal">identifier</span>
-<span class="name">,</span>
-<span class="optional"><span class="nonterminal">time</span></span>
-<span class="name">,</span>
-<span class="optional"><span class="nonterminal">time</span></span>
-<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span>
-</div>
-</div>
-
-<div class="anexample">
-<pre class="codeexample">
-activity(ex:edit1,,)
-activity(ex:edit1,,,[prov:type="edit"])
-activity(ex:a0, 2011-11-16T16:00:00,,[prov:type="createFile"])
-activity(ex:a0, 2011-11-16T16:00:00, 2011-11-16T16:00:01, [prov:type="createFile"])
-</pre>
-</div>
-
-
-</section>
-
-<section id="expression-Agent">
-<h3>Agent</h3>
-
-
-<div class="withPn">
-<p>An agent's text matches the <span class="nonterminal">agentExpression</span> production.
-</p>
-
-
-<div class='grammar'>
-<span class="nonterminal">agentExpression</span> ::=
-<span class="name">agent</span>
-<span class="name">(</span>
-<span class="nonterminal">identifier</span>
-<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span>
-</div>
-</div>
-
-<div class="anexample">
-<pre class="codeexample">
-agent(ag4)
-agent(ag4, [ prov:type="prov:Human" %% xsd:QName, ex:name="David" ])
-</pre>
-</div>
-
-
-</section>
-
- <section id="expression-note">
-
-<h4>Note</h4>
-
-<div class="withPn">
-<p>A note's text matches the <span class="nonterminal">noteExpression</span> production.
-</p>
-
-
-<div class='grammar'>
-<span class="nonterminal">noteExpression</span> ::=
-<span class="name">note</span>
-<span class="name">(</span>
-<span class="nonterminal">identifier</span>
-<span class="name">,</span>
-<span class="nonterminal">attribute-values</span>
-<span class="name">)</span><br/>
-<!-- -->
-</div>
-</div>
-
-<div class="anexample">
-<pre class="codeexample">
-note(ann1,[ex:color="blue", ex:screenX=20, ex:screenY=30])
-</pre>
-</div>
-
- </section>
-
-</section>
-
-
-<section id="expression-relation">
-<h3>Relation</h3>
-
-<p>
-PROV-DM relations can be generation, usage, derivation, activity association, responsibility chain, activity start, activity end, alternate, specialization, or annotations. This section defines a production for the textual representation of each of these relation types. </p>
-
-
-
-<section id="expression-Generation">
-<h4>Generation</h4>
-
-
-<div class="withPn">
-<p>A generation's text matches the <span class='nonterminal'>generationExpression</span> production.</p>
-
-<div class='grammar'>
-<span class="nonterminal">generationExpression</span> ::=
-<span class="name">wasGeneratedBy</span>
-<span class="name">(</span>
-<span class="optional"> <span class="nonterminal">identifier</span>
-<span class="name">,</span> </span>
-<span class="nonterminal">eIdentifier</span>
-<span class="name">,</span>
-<span class="optional"><span class="nonterminal">aIdentifier</span></span>
-<span class="optional"><span class="name">,</span>
-<span class="nonterminal">time</span></span>
-<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span><br/>
-</div>
-</div>
-
-<div class="anexample">
-<pre class="codeexample">
-wasGeneratedBy(tr:WD-prov-dm-20111215, ex:edit1)
-wasGeneratedBy(tr:WD-prov-dm-20111215, ex:edit1, 2011-11-16T16:00:00)
-wasGeneratedBy(ex:g1, tr:WD-prov-dm-20111215, ex:edit1)
-wasGeneratedBy(e2, a1, [ex:fct="save"])
-</pre>
-</div>
-
-
-</section>
-
-
-<section id="expression-Usage">
-<h3>Usage</h3>
-
-
-
-<p>A usage's text matches the <span class='nonterminal'>usageExpression</span> production.</p>
-
-<div class='grammar'>
-<span class="nonterminal">usageExpression</span> ::=
-<span class="name">used</span>
-<span class="name">(</span>
-<span class="optional">
-<span class="nonterminal">identifier</span>
-<span class="name">,</span>
-</span>
-<span class="nonterminal">aIdentifier</span>
-<span class="name">,</span>
-<span class="nonterminal">eIdentifier</span>
-<span class="optional">
-<span class="name">,</span>
- <span class="nonterminal">time</span>
-</span>
-<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span><br/>
-</div>
-
-
-<div class="anexample">
-<pre class="codeexample">
-used(ex:pub2, ar3:0111)
-used(ex:pub2, ar3:0111, 2011-11-16T16:00:00)
-used(ex:u1, ex:pub2, ar3:0111)
-used(a1,e1,[ex:fct="load"])
-</pre>
-</div>
-
-</section>
-
-
-
-
-
-
-<section id="expression-ActivityAssociation">
-<h4>Activity Association</h4>
-
-
-<p>An activity association's text matches the <span class="nonterminal">activityAssociationExpression</span> productions of the grammar defined in this specification
-document.</p>
-
-<div class='grammar'>
-<span class="nonterminal">activityAssociationExpression</span> ::=
-<span class="name">wasAssociatedWith</span>
-<span class="name">(</span>
-<span class="optional"><span class="nonterminal">identifier</span>,</span>
-<span class="nonterminal">aIdentifier</span>,
-<span class="nonterminal">agIdentifier</span>
-<span class="optional">,<span class="nonterminal">eIdentifier</span></span>
-<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span>
-</div>
-</div>
-
-
-<div class="anexample">
-<pre class="codeexample">
-wasAssociatedWith(ex:pub2, w3:Consortium)
-wasAssociatedWith(ex:pub2, w3:Consortium @ pr:rec-advance)
-wasAssociatedWith(ex:pub2, w3:Consortium @ pr:rec-advance, [prov:role="funder"])
-</pre>
-
-
-</section>
-
-<section id="expression-Start-End">
-<h4>Activity Start and End</h4>
-
-
-<p>Activity start and end texts match the <span class="nonterminal">startExpression</span> and <span class="nonterminal">endExpression</span> productions of the grammar defined in this
-specification document.
-</p>
-
-
-<div class='grammar'>
-<span class="nonterminal">startExpression</span> ::=
-<span class="name">wasStartedBy</span>
-<span class="name">(</span>
-<span class="optional"> <span class="nonterminal">identifier</span>,</span>
-<span class="nonterminal">aIdentifier</span>,
-<span class="nonterminal">agIdentifier</span>
-<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span><br/>
-<span class="nonterminal">endExpression</span> ::=
-<span class="name">wasEndedBy</span>
-<span class="name">(</span>
-<span class="optional"> <span class="nonterminal">identifier</span>,</span>
-<span class="nonterminal">aIdentifier</span>,
-<span class="nonterminal">agIdentifier</span>
-<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span>
-</div>
-
-
-</section>
-
-
-
-
-
-
-
-<section id="expression-responsibility">
-
-<h4>Responsibility Chain</h4>
-
-
-
-<div class='grammar'>
-<span class="nonterminal">responsibilityExpression</span> ::=
-<span class="name">actedOnBehalfOf</span>
-<span class="name">(</span>
-<span class="optional"> <span class="nonterminal">identifier</span>,</span>
-<span class="nonterminal">agIdentifier</span>
-<span class="name">,</span>
-<span class="nonterminal">agIdentifier</span>
-<span class="name">,</span>
-<span class="optional"><span class="nonterminal">aIdentifier</span></span>
-<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span>
-</div>
-
-<div class="anexample">
-<pre class="codeexample">
-actedOnBehalfOf(ag1,ag2)
-actedOnBehalfOf(ag1,ag2,a)
-actedOnBehalfOf(ag1,ag2,[prov:type="delegation"])
-actedOnBehalfOf(ag2,ag3,a,[prov:type="contract"])
-</pre>
-</div>
-
-</section>
-
-<section id="Derivation-Relation">
-<h4>Derivation</h4>
-
-
-
-<p>A derivation record's text matches the <span class='nonterminal'>derivationExpression</span> production.</p>
-
-<div class='grammar'>
-<span class="nonterminal">derivationExpression</span> ::=
-<span class="name">wasDerivedFrom</span>
-<span class="name">(</span>
-<span class="optional"> <span class="nonterminal">identifier</span>,</span>
-<span class="nonterminal">eIdentifier</span>
-<span class="name">,</span>
-<span class="nonterminal">eIdentifier</span>
-<span class="name">,</span>
-<span class="nonterminal">aIdentifier</span>
-<span class="name">,</span>
-<span class="nonterminal">gIdentifier</span>
-<span class="name">,</span>
-<span class="nonterminal">uIdentifier</span>
-<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span><br/>
-|
-<span class="name">wasDerivedFrom</span>
-<span class="name">(</span>
-<span class="optional"> <span class="nonterminal">identifier</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">time</span></span>
-<span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span>
-</div>
-<p>
-The first clause of the alternative, where the activity, generation and usage record identifiers are present formalizes a derivation record is precise-1. The second clause of the alternative, with optional time formalizes imprecise records. The distinction between imprecise-1 and imprecise-n is made by the
-attribute <span class="name">prov:steps</span>.
-</p>
-</div>
-
-<div class="anexample">
-<pre class="codeexample">
-wasDerivedFrom(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018)
-wasDerivedFrom(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018)
-wasDerivedFrom(e2, e1, a, g2, u1)
-</pre>
-
-
-
-
-<!--
-<p>In PROV-DM, the effective placeholder for an entity generation time is the <a>generation record</a>. The presence of
-time information in imprecise derivation records is merely a convenience notation for a timeless derivation record and a generation record with this generation time information. </p>
-
-<div class='syntax' id="derivation-time-elimination">
-<span class='conditional'>If</span> <span class="name">wasDerivedFrom(e2,e1,t,attrs)</span> holds, <span class='conditional'>then</span> the following records also hold:
-<span class="name">wasDerivedFrom(e2,e1,attrs)</span> and <span class="name">wasGeneratedBy(e2,t)</span>.
-</div>
-
-
-
-<div class='pending'>Should derivation have a time? Which time? This is <a href="http://www.w3.org/2011/prov/track/issues/43">ISSUE-43</a>.<em>This is now addressed in this text. Optional time in derivation is generation time. See also <a href="http://www.w3.org/2011/prov/track/issues/205">ISSUE-205</a>.</em></div>
-
--->
-
-</section>
-
-
-<section id="expression-alternate-specialization">
-
-<h4>Alternate and Specialization</h4>
-
-
-
-<p>An alternate relation's text matches the <span class="nonterminal">alternateExpression</span> production.</p>
-
-<div class='grammar'>
- <span class="nonterminal">alternateExpression</span> ::=
- <span class="name">alternateOf</span>
-<span class="name">(</span>
-<span class="nonterminal">eIdentifier</span>
-<span class="name">,</span>
-<span class="nonterminal">eIdentifier</span>
-<span class="name">)</span>
-</div>
-
-<div class="anexample">
-<pre class="codeexample">
-alternateOf(tr:WD-prov-dm-20111215,ex:alternate-20111215)
-</pre>
-</div>
-
-
-<p>A specialization relation's text matches the <span class="nonterminal">specializationExpression</span>production.</p>
-
-<div class='grammar'>
- <span class="nonterminal">specializationExpression</span> ::=
- <span class="name">specializationOf</span>
-<span class="name">(</span>
-<span class="nonterminal">eIdentifier</span>
-<span class="name">,</span>
-<span class="nonterminal">eIdentifier</span>
-<span class="name">)</span>
-</div>
-
-<div class="anexample">
-<pre class="codeexample">
-specializationOf(tr:WD-prov-dm-20111215,tr:prov-dm)
-</pre>
-</div>
-
-
-
-
-</section>
-
-
-
-
-
-
-<section id="expression-annotation">
-<h4>Annotation</h4>
-
-
-<p>A note's text matches the <span class="nonterminal">noteExpression</span> production.
-</p>
-
-<div class='grammar'>
-<span class="nonterminal">annotationExpression</span> ::=
-<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="nonterminal">optional-attribute-values</span>
-<span class="name">)</span>
-</div>
-</div>
-
-<div class="anexample">
-<pre class="codeexample">
-hasAnnotation(tr:WD-prov-dm-20111215,ex2:n1)
-</pre>
-</div>
-
-
-
-</section>
-</section>
-
-
-<section id="subexpressions">
-<h3>Further Expressions</h3>
-
-This section defines further expressions of PROV-N.
-
-
-<section id="expression-NamespaceDeclaration">
-<h3>Namespace Declaration</h3>
-
-
-<div class='grammar'>
-<span class="nonterminal">namespaceDeclarations</span> ::=
- | <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> ::=
-<span class="name">prefix</span> <span class="nonterminal">prefix</span> <span class="nonterminal">IRI</span><br/>
-<span class="nonterminal">defaultNamespaceDeclaration</span> ::=
- <span class="name">default</span> <span class="nonterminal">IRI</span> <br/>
-</div>
-
-<p>In PROV-N, the prefix <span class="name">prov</span> is reserved and denotes the PROV namespace.</p>
-</section>
-
-
-<section id="expression-identifier">
-<h4>Identifier</h4>
-
-
-<div class='grammar'>
-<span class="nonterminal">identifier</span> ::= <span class="nonterminal">qualifiedName</span><br/>
-<span class="nonterminal">eIdentifier</span> ::= <span class="nonterminal">identifier</span> <em>(intended to denote an entity)</em><br/>
-<span class="nonterminal">aIdentifier</span> ::= <span class="nonterminal">identifier</span> <em>(intended to denote an activity)</em><br/>
-<span class="nonterminal">agIdentifier</span> ::= <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">accIdentifier</span>::= <span class="nonterminal">identifier</span> <em>(intended to denote an account)</em>
-<br/>
-<br/>
-<span class="nonterminal">qualifiedName</span> ::= <span class="nonterminal">prefixedName</span> | <span class="nonterminal">unprefixedName</span><br/>
-<span class="nonterminal">prefixedName</span> ::= <span class="nonterminal">prefix</span> <span class="name">:</span> <span class="nonterminal">localPart</span><br/>
-<span class="nonterminal">unprefixedName</span> ::= <span class="nonterminal">localPart</span><br/>
-<span class="nonterminal">prefix</span> ::= <em>a name without colon compatible with the <a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-NCName">NC_NAME</a> production
-[[!XML-NAMES]]</em><br/>
-<span class="nonterminal">localPart</span> ::= <em>a name without colon compatible with the <a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-NCName">NC_NAME</a> production
-[[!XML-NAMES]]</em>
-</div>
-
-
-<div class="note">Note that XML NC_NAME don't allow local identifiers to start with a number. Instead, should we use the productions used in SPARQL or TURTLE?</div>
-
-</section>
-
-<section id="expression-attribute">
-<h4>Attribute</h4>
-
-
-<p>An attribute's text matches the <span class="nonterminal">attribute</span> production.</p>
-
-<div class='grammar'>
-<span class="nonterminal">attribute</span> ::= <span class="nonterminal">qualifiedName</span><br/>
-</div>
-
-<p>The reserved attributes in the PROV namespace are the following.</p>
-
-<ol>
-<li> <span class="name">prov:label</span>
-<li> <span class="name">prov:location</span>
-<li> <span class="name">prov:role</span>
-<li> <span class="name">prov:steps</span>
-<li> <span class="name">prov:type</span>
-</ol>
-
-
-</section>
-
-
-
-
-
-<section id="expression-literal">
-<h4>Literal</h4>
-
-<p>A Literal's text matches the <span class="nonterminal">Literal</span> production.</p>
-
-<div class='grammar'>
-<span class="nonterminal">Literal</span> ::= <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><br/>
-<span class="nonterminal">convenienceNotation</span> ::= <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 " (U+22) and \ (U+5C) occur only in pairs of the form \" (U+5C, U+22) and \\ (U+5C,
-U+5C), enclosed in a pair of " (U+22) characters</em><br/>
-<span class="nonterminal">intLiteral</span> ::= <em>a finite-length sequence of decimal digits (#x30-#x39) with an optional leading negative sign (-)</em>
-</div>
-
-<p>The non terminals <span class="nonterminal">stringLiteral</span> and
-<span class="nonterminal">intLiteral</span>
-are syntactic sugar for quoted strings with datatype <span class="name">xsd:string</span> and <span class="name">xsd:int</span>, respectively.
-</p>
-
-<p> In particular, a PROV-DM 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-DM.</p>
-
-<section id="expression-types">
-<h4>Reserved Type Values</h4>
-
-<p>The reserved type values in the PROV namespace are the following.</p>
-
-<ol>
-<li> <span class="name">prov:AccountEntity</span>
-<li> <span class="name">prov:ComputingSystem</span>
-<li> <span class="name">prov:Human</span>
-<li> <span class="name">prov:Organization</span>
-<li> <span class="name">prov:Plan</span>
-<li> <span class="name">prov:Collection</span>
-<li> <span class="name">prov:EmptyCollection</span>
-</ol>
-
-</section>
-
-<section id="expression-Time">
-<h4>Time Values</h4>
-
-<p><dfn id="dfn-time">Time instants</dfn> are defined according to xsd:dateTime [[!XMLSCHEMA-2]].</p>
-
-
-
-
-</section>
-
-
-</section>
-
-
-
-
-
-
-
-
-
-
-
-
-
-</section>
-</section>
-
-<section id="common-relations">
-<h2>Common Relations</h2>
-
-<div class="note">
-TO ADD
-</div>
-</section>
-
-
-
-
-
-<section id="ExpressionContainer">
-<h4>Expression Container</h4>
-
-<p>An <dfn id="dfn-ExpressionContainer">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 ([[PROV-AQ]]).</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="#data-model-concepts">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:
-<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: http://example.org/,
-
- 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> [[PROV-AQ]].
-</p>
-</div>
-
-
-
-<div class='issue'>
-Clarify what records are. This is <a href="http://www.w3.org/2011/prov/track/issues/208">ISSUE-208</a>. </div>
-</section>
-
-
-<section id="account">
-<h3>Account</h3>
-
-<p>PROV-DM has introduced a notion of account by which a set of provenance descriptions can be bundled up and named. PROV-DM <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 <span class="name">id</span> 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> ::=
-<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: http://example.org/,
-
- 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: http://example.org/,
- ...
-
- 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:AccountEntity" %% 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:AccountEntity</span>.
-</p>
-</div>
-
-</section>
-
-<!-- no longer necessary to say that.
-
-<p>All the records in <span class="name">recs</span> are implictly wrapped in a default account, scoping all the record identifiers they declare directly, and constituting a toplevel
-account, in the hierarchy of accounts. Consequently, every provenance record is always expressed in the context of an account, either explicitly in an asserted account, or implicitly in a
-container's default account.</p>
-
--->
-
-
-</section>
-
-
-
- </body></html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/model/prov-n.html Thu Mar 08 21:34:25 2012 +0000
@@ -0,0 +1,1202 @@
+<!DOCTYPE html>
+
+<html><head>
+ <title>PROV-DM Part 3: PROV-N: The Provenance Notation</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <!--
+ === NOTA BENE ===
+ For the three scripts below, if your spec resides on dev.w3 you can check them
+ out in the same tree and use relative links so that they'll work offline,
+ -->
+<!-- PM -->
+ <style type="text/css">
+ .note { font-size:small; margin-left:50px }
+ </style>
+
+ <script src="http://dev.w3.org/2009/dap/ReSpec.js/js/respec.js" class="remove"></script>
+ <script src="http://www.w3.org/2007/OWL/toggles.js" class="remove"></script>
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" class="remove"></script>
+
+ <script class="remove">
+ function updateGlossaryRefs() {
+ $('.glossary-ref').each(function(index) {
+ var ref=$(this).attr('ref');
+ $('#'+ref+'.glossary').contents().clone().appendTo($(this));
+ $(this).children('dfn').replaceWith(function(){return $('<span>').addClass('dfn').append($(this).contents())});
+ });
+ }
+ $(document).ready(updateGlossaryRefs);
+ function glossary_include(doc, content) {
+ window.setTimeout(updateGlossaryRefs, 1000);
+ return content;
+ }
+ </script>
+
+ <script class="remove">
+ var addExtraReferences = function() {
+ for (var k in extraReferences)
+ berjon.biblio[k] = extraReferences[k];
+ };
+ var extraReferences = {
+ "CLOCK":
+ "Lamport, L. "+
+ "<a href=\"http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf\"><cite>Time, clocks, and the ordering of events in a distributed system</cite></a>."+
+ "Communications of the ACM 21 (7): 558–565. 1978. "+
+ "URL: <a href=\"http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf\">http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf</a> " +
+ "DOI: doi:10.1145/359545.359563.",
+ "CSP":
+ "Hoare, C. A. R. "+
+ "<a href=\"http://www.usingcsp.com/cspbook.pdf\"><cite>Communicating Sequential Processes</cite></a>."+
+ "Prentice-Hall. 1985"+
+ "URL: <a href=\"http://www.usingcsp.com/cspbook.pdf\">http://www.usingcsp.com/cspbook.pdf</a>",
+ "Logic":
+ "W. E. Johnson"+
+ "<a href=\"http://www.ditext.com/johnson/intro-3.html\"><cite>Logic: Part III</cite></a>."+
+ "1924. "+
+ "URL: <a href=\"http://www.ditext.com/johnson/intro-3.html\">http://www.ditext.com/johnson/intro-3.html</a>",
+
+
+
+ "PROV-RDF":
+ "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>",
+
+ "PROV-XML":
+ "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>",
+
+
+ "PROV-DM":
+ "Luc Moreau and Paolo Missier (eds.) ... "+
+ "<a href=\"http://www.w3.org/TR/prov-dm/\"><cite>PART 1: PROV-DM ...</cite></a>. "+
+ "2011, Working Draft. "+
+ "URL: <a href=\"http://www.w3.org/TR/prov-dm/\">http://www.w3.org/TR/prov-dm/</a>",
+
+ "PROV-DM-CONSTRAINTS":
+ "Luc Moreau and Paolo Missier (eds.) ... "+
+ "<a href=\"http://www.w3.org/TR/prov-dm-constraints/\"><cite>PROV-DM Constraints</cite></a>. "+
+ "2011, Working Draft. "+
+ "URL: <a href=\"http://www.w3.org/TR/prov-dm-constraints/\">http://www.w3.org/TR/prov-dm-constraints/</a>",
+
+
+ "PROV-SEM":
+ "James Cheney "+
+ "<a href=\"http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman\"><cite>Formal Semantics Strawman</cite></a>. "+
+ "2011, Work in progress. "+
+ "URL: <a href=\"http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman\">http://www.w3.org/2011/prov/wiki/FormalSemanticsStrawman</a>",
+
+ "PROV-PRIMER":
+ "Yolanda Gil and Simon Miles (eds.) Khalid Belhajjame, Helena Deus, Daniel Garijo, Graham Klyne, Paolo Missier, Stian Soiland-Reyes, and Stephan Zednik "+
+ "<a href=\"http://www.w3.org/TR/prov-primer/\"><cite>Prov Model Primer</cite></a>. "+
+ "2011, Working Draft. "+
+ "URL: <a href=\"http://www.w3.org/TR/prov-primer/\">http://www.w3.org/TR/prov-primer/</a>",
+
+ "PROV-O":
+ "Satya Sahoo and Deborah McGuinness (eds.) Khalid Belhajjame, James Cheney, Daniel Garijo, Timothy Lebo, Stian Soiland-Reyes, and Stephan Zednik "+
+ "<a href=\"http://www.w3.org/TR/prov-o/\"><cite>Provenance Formal Model</cite></a>. "+
+ "2011, Working Draft. "+
+ "URL: <a href=\"http://www.w3.org/TR/prov-o/\">http://www.w3.org/TR/prov-o/</a>",
+
+ "PROV-AQ":
+ "Graham Klyne and Paul Groth (eds.) Luc Moreau, Olaf Hartig, Yogesh Simmhan, James Meyers, Timothy Lebo, Khalid Belhajjame, and Simon Miles "+
+ "<a href=\"http://www.w3.org/TR/prov-aq/\"><cite>Provenance Access and Query</cite></a>. "+
+ "2011, Working Draft. "+
+ "URL: <a href=\"http://www.w3.org/TR/prov-aq/\">http://www.w3.org/TR/prov-aq/</a>",
+ };
+ var respecConfig = {
+ // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
+ specStatus: "ED",
+
+ // the specification's short name, as in http://www.w3.org/TR/short-name/
+ shortName: "prov-dm",
+
+ // if your specification has a subtitle that goes below the main
+ // formal title, define it here
+ subtitle : "About-to-be-frozen WD4 (for internal release)",
+
+
+ // if you wish the publication date to be other than today, set this
+ // publishDate: "2011-10-18",
+
+ // if the specification's copyright date is a range of years, specify
+ // the start date here:
+ copyrightStart: "2011",
+
+ // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
+ // and its maturity status
+ //previousPublishDate: "2011-12-15",
+ //previousMaturity: "WD",
+
+ // if there a publicly available Editor's Draft, this is the link
+ edDraftURI: "http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-n.html",
+
+ // if this is a LCWD, uncomment and set the end of its review period
+ // lcEnd: "2009-08-05",
+
+ // if you want to have extra CSS, append them to this list
+ // it is recommended that the respec.css stylesheet be kept
+ extraCSS: ["http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css", "./extra.css"],
+
+ // editors, add as many as you like
+ // only "name" is required
+ editors: [
+ { name: "Luc Moreau", url: "http://www.ecs.soton.ac.uk/~lavm/",
+ company: "University of Southampton" },
+ { name: "Paolo Missier", url: "http://www.cs.ncl.ac.uk/people/Paolo.Missier",
+ company: "Newcastle University" },
+ ],
+
+ // authors, add as many as you like.
+ // This is optional, uncomment if you have authors as well as editors.
+ // only "name" is required. Same format as editors.
+
+ authors: [
+ { name: "TBD" },
+ ],
+
+
+ // name of the WG
+ wg: "Provenance Working Group",
+
+ // URI of the public WG page
+ wgURI: "http://www.w3.org/2011/prov/",
+
+ // name (with the @w3c.org) of the public mailing to which comments are due
+ wgPublicList: "public-prov-wg",
+
+ // URI of the patent status for this WG, for Rec-track documents
+ // !!!! IMPORTANT !!!!
+ // This is important for Rec-track documents, do not copy a patent URI from a random
+ // document unless you know what you're doing. If in doubt ask your friendly neighbourhood
+ // Team Contact.
+ wgPatentURI: "http://www.w3.org/2004/01/pp-impl/46974/status",
+
+ // Add extraReferences to bibliography database
+ preProcess: [addExtraReferences],
+ };
+ </script>
+ </head>
+ <body>
+
+ <section id="abstract">
+<div class="note">TO EDIT</div>
+<p>
+PROV-DM is a data model for provenance for building
+representations of the entities, people and activities involved in
+producing a piece of data or thing in the world. PROV-DM is
+domain-agnostic, but is equipped with extensibility points allowing
+further domain-specific and application-specific extensions to be
+defined. PROV-DM is accompanied by PROV-N, a technology-independent
+abstract syntax notation, which allows serializations of PROV-DM
+instances to be created for human consumption, which facilitates its
+mapping to concrete syntax, and which is used as the basis for a
+formal semantics.
+</p>
+ </section>
+
+<section id="sotd">
+<div class="note">TO EDIT</div>
+<section id="prov-family">
+<!-- <h3>Prov Family of Specifications</h3>-->
+This document is part of the PROV family of specifications, a set of specifications aiming to define the various aspects that are necessary to achieve the vision of inter-operable
+interchange of provenance information in heterogeneous environments such as the Web. This document defines the PROV-DM data model for provenance, accompanied with a notation to express
+instances of that data model for human consumption. Other documents are:
+<ul>
+<li> PROV-DM-CONSTRAINTS, a set of constraints applying to the PROV-DM data model,</li>
+<li> PROV-N, a notation for provenance aimed at human consumption,</li>
+<li> PROV-O, the provenance ontology: by means of a mapping of PROV-DM to the OWL2 Web Ontology Language, this specification provides a normative serialization of PROV-DM in RDF</li>
+<li> PROV-AQ, provenance access and query: the mechanisms for accessing and querying provenance; </li>
+<li> PROV-PRIMER: a primer for the PROV-DM provenance data model,</li>
+<li> PROV-SEM: a formal semantics for the PROV-DM provenance data model.</li>
+</ul>
+</section>
+</section>
+
+
+
+
+
+
+
+
+
+
+
+
+<section id="introduction">
+<h2>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 such descriptions to be expressed [[PROV-DM]] and a set of constraints that provenance descriptions are expectively to satisfy [[PROV-DM-CONSTRAINTS]].
+</p>
+
+
+<p>In this context, PROV-N was introduced as a notation to write instances of the data model, as close to its abstract syntax as possible. PROV-N is primarily aimed at human consumption. PROV-N allows
+serializations of PROV-DM instances to be written in a technology independent manner.
+So far, PROV-N has been used in the following ways:</p>
+<ul>
+<li> PROV-N is used to provide technology independent illustrations in [[PROV-DM]] and in the definition of PROV-DM constraints [[PROV-DM-CONSTRAINTS]];</li>
+<li> PROV-N is instrumental in defining the mapping mapping of PROV-DM to concrete syntaxes. Mappings translate each PROV-N expression to RDF [[PROV-RDF]] and to XML [[PROV-XML]];</li>
+<li> PROV-N is the basis for a
+formal semantics, in which each PROV-N expression is provided with an interpretation [[PROV-SEM]].
+</ul>
+
+<p>PROV-N was designed to be as close as possible to PROV-DM without the syntactic bias and modelling constraints that concrete technologies bring with them, e.g., XML's choice between attribute and element, RDF's reliance on triples, or JSON's usage of dictionaries. </p>
+
+<p>The purpose of this document is solely to define the syntax of PROV-N.
+For each construct of PROV-DM, a corresponding PROV-N expression is introduced, by way of a production in the PROV-N grammar presented in this document. </p>
+
+
+<p>This specification is one of several specifications, referred to as the PROV family of specifications, defining the various aspects
+that are necessary to achieve the vision of inter-operable exchange of provenance:</p>
+<ul>
+<li>A data model for provenance, which is presented in three documents:
+<ul>
+<li> PROV-DM (part I): the provenance data model itself, expressed in natural language [[PROV-DM]];
+<li> PROV-DM-CONSTRAINTS (part II): constraints underpinning the data model [[PROV-DM-CONSTRAINTS]];
+<li> PROV-N (part III): a notation to express instances of that data model for human consumption (this document);
+</ul>
+</li>
+
+<li>PROV-O: a normative serialization of PROV-DM in RDF [[!PROV-O]], specified by means of a mapping to the OWL2 Web Ontology Language [[!OWL2-SYNTAX]];</li>
+<li>PROV-AQ: the mechanisms for accessing and querying provenance [[PROV-AQ]];</li>
+<li>PROV-PRIMER: a primer for the PROV approach [[PROV-PRIMER]];</li>
+<li>PROV-SEM: semantics of the PROV-DM data model [[PROV-SEM]];</li>
+</ul>
+
+ <section id="structure-of-this-document">
+<h3>Structure of this Document</h3>
+
+<div class='note'>TODO</div>
+
+
+ </section>
+
+
+<section id="prov-dm-namespace">
+ <h3>PROV-DM Namespace</h3>
+
+
+<p>The PROV-DM namespace is <span class="name">http://www.w3.org/ns/prov-dm/</span> (TBC).</p>
+
+<p> All the elements, relations, reserved names and attributes introduced in this specification belong to the PROV-DM namespace.</p>
+
+<div class="issue">
+There is a desire to use a single namespace that all specifications of the PROV family can share to refer to common provenance terms. This is <a href="http://www.w3.org/2011/prov/track/issues/224">ISSUE-224</a>.
+</div>
+
+</section>
+
+ <section id="conventions">
+<h3>Conventions</h3>
+
+
+
+<p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
+ NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in
+ [[!RFC2119]].</p>
+ </section>
+
+</section>
+
+
+
+</section>
+
+
+ <section id="grammar-notation">
+<h3>Grammar Notation</h3>
+
+<p>This specification includes a grammar for PROV-N expressed using the Extended Backus-Naur Form (EBNF) notation.</p>
+
+<div class="grammar">
+<p> Each production rule (or <dfn>production</dfn>, for short) in the grammar defines one non-terminal symbol, in the form:</p>
+<p>
+<span class="nonterminal">E</span> ::= <em>expression</em>
+</p>
+
+
+Within the expression on the right-hand side of a rule, the following expressions are used to match strings of one or more characters:
+<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>expression</em></span>: matches <em>expression</em> or nothing; optional <em>expression</em>.
+</li>
+
+<li>
+<span class="plus"><em>expression</em></span>: matches one or more occurrences of <em>expression</em>.
+</li>
+
+<li>
+<span class="star"><em>expression</em></span>: matches zero or more occurrences of <em>expression</em>.
+</li>
+
+</ul>
+</div>
+
+</section>
+
+
+<section id="data-model-concepts">
+
+<h2>PROV-DM Core</h2>
+
+<p>Instances of the PROV-DM data model are expressed in PROV-N by a text conformant with the toplevel <a>production</a> <span class="nonterminal">expression</span> of the grammar. These <span
+class="nonterminal">expression</span>s are grouped in two categories:
+<span class="nonterminal">elementExpression</span> (see section <a href="#expression-element">Element</a>) and
+<span class="nonterminal">relationExpression</span> (see section <a href="#expression-relation">Relation</a>).</p>
+
+
+<div class='grammar'>
+<span class="nonterminal">expression</span> ::=
+<span class="nonterminal">elementExpression</span>
+| <span class="nonterminal">relationExpression</span>
+<br/>
+<!-- -->
+<br/>
+<span class="nonterminal">elementExpression</span> ::=
+<span class="nonterminal">entityExpression</span>
+| <span class="nonterminal">activityExpression</span>
+| <span class="nonterminal">agentExpression</span>
+| <span class="nonterminal">noteExpression</span> <br/>
+<!-- -->
+<br/>
+<span class="nonterminal">relationExpression</span> ::=
+<span class="nonterminal">generationExpression</span>
+| <span class="nonterminal">usageExpression</span>
+| <span class="nonterminal">derivationExpression</span>
+| <span class="nonterminal">activityAssociationExpression</span>
+| <span class="nonterminal">responsibilityExpression</span>
+| <span class="nonterminal">startExpression</span>
+| <span class="nonterminal">endExpression</span>
+| <span class="nonterminal">alternateExpression</span>
+| <span class="nonterminal">specializationExpression</span>
+| <span class="nonterminal">annotationExpression</span>
+</div>
+
+
+
+
+<section id="expression-element">
+<h3>Element</h3>
+
+<p>PROV-DM elements can be entities, activities, agents, or notes. This section defines a production for the textual representation of each of these element types. </p>
+
+ <section id="expression-Entity">
+
+<h4>Entity</h4>
+
+
+<div class="withPn">
+<p>
+An entity's text matches the <span class="nonterminal">entityExpression</span> production.
+</p>
+
+<div class='grammar'>
+<span class="nonterminal">entityExpression</span> ::=
+<span class="name">entity</span>
+<span class="name">(</span>
+<span class="nonterminal">identifier</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span><br/><br/>
+<!-- -->
+<span class="nonterminal">optional-attribute-values</span> ::=
+<span class="optional"><span class="name">,</span>
+<span class="name">[</span>
+<span class="nonterminal">attribute-values</span>
+<span class="name">]</span>
+</span><br/>
+<span class="nonterminal">attribute-values</span> ::=
+<span class="nonterminal">attribute-value</span>
+| <span class="nonterminal">attribute-value</span> <span class="name">,</span> <span class="nonterminal">attribute-values</span>
+<br/>
+<span class="nonterminal">attribute-value</span> ::=
+<span class="nonterminal">attribute</span>
+<span class="name">=</span>
+<span class="nonterminal">Literal</span>
+<br/>
+</div>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+entity(tr:WD-prov-dm-20111215)
+entity(tr:WD-prov-dm-20111215, [ prov:type="document" ])
+entity(tr:WD-prov-dm-20111215, [ prov:type="document", ex:version=2 ])
+</pre>
+</div>
+
+
+ </section>
+
+ <section id="expression-Activity">
+
+<h3>Activity</h3>
+
+
+<div class="withPn">
+<p>An activity's text matches the <span class='nonterminal'>activityExpression</span> production.</p>
+
+
+
+<div class='grammar'>
+<span class="nonterminal">activityExpression</span> ::=
+<span class="name">activity</span>
+<span class="name">(</span>
+<span class="nonterminal">identifier</span>
+<span class="name">,</span>
+<span class="optional"><span class="nonterminal">time</span></span>
+<span class="name">,</span>
+<span class="optional"><span class="nonterminal">time</span></span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+activity(ex:edit1,,)
+activity(ex:edit1,,,[prov:type="edit"])
+activity(ex:a0, 2011-11-16T16:00:00,,[prov:type="createFile"])
+activity(ex:a0, 2011-11-16T16:00:00, 2011-11-16T16:00:01, [prov:type="createFile"])
+</pre>
+</div>
+
+
+</section>
+
+<section id="expression-Agent">
+<h3>Agent</h3>
+
+
+<div class="withPn">
+<p>An agent's text matches the <span class="nonterminal">agentExpression</span> production.
+</p>
+
+
+<div class='grammar'>
+<span class="nonterminal">agentExpression</span> ::=
+<span class="name">agent</span>
+<span class="name">(</span>
+<span class="nonterminal">identifier</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+agent(ag4)
+agent(ag4, [ prov:type="prov:Human" %% xsd:QName, ex:name="David" ])
+</pre>
+</div>
+
+
+</section>
+
+ <section id="expression-note">
+
+<h4>Note</h4>
+
+<div class="withPn">
+<p>A note's text matches the <span class="nonterminal">noteExpression</span> production.
+</p>
+
+
+<div class='grammar'>
+<span class="nonterminal">noteExpression</span> ::=
+<span class="name">note</span>
+<span class="name">(</span>
+<span class="nonterminal">identifier</span>
+<span class="name">,</span>
+<span class="nonterminal">attribute-values</span>
+<span class="name">)</span><br/>
+<!-- -->
+</div>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+note(ann1,[ex:color="blue", ex:screenX=20, ex:screenY=30])
+</pre>
+</div>
+
+ </section>
+
+</section>
+
+
+<section id="expression-relation">
+<h3>Relation</h3>
+
+<p>
+PROV-DM relations can be generation, usage, derivation, activity association, responsibility chain, activity start, activity end, alternate, specialization, or annotations. This section defines a production for the textual representation of each of these relation types. </p>
+
+
+
+<section id="expression-Generation">
+<h4>Generation</h4>
+
+
+<div class="withPn">
+<p>A generation's text matches the <span class='nonterminal'>generationExpression</span> production.</p>
+
+<div class='grammar'>
+<span class="nonterminal">generationExpression</span> ::=
+<span class="name">wasGeneratedBy</span>
+<span class="name">(</span>
+<span class="optional"> <span class="nonterminal">identifier</span>
+<span class="name">,</span> </span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span>
+<span class="optional"><span class="nonterminal">aIdentifier</span></span>
+<span class="optional"><span class="name">,</span>
+<span class="nonterminal">time</span></span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span><br/>
+</div>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+wasGeneratedBy(tr:WD-prov-dm-20111215, ex:edit1)
+wasGeneratedBy(tr:WD-prov-dm-20111215, ex:edit1, 2011-11-16T16:00:00)
+wasGeneratedBy(ex:g1, tr:WD-prov-dm-20111215, ex:edit1)
+wasGeneratedBy(e2, a1, [ex:fct="save"])
+</pre>
+</div>
+
+
+</section>
+
+
+<section id="expression-Usage">
+<h3>Usage</h3>
+
+
+
+<p>A usage's text matches the <span class='nonterminal'>usageExpression</span> production.</p>
+
+<div class='grammar'>
+<span class="nonterminal">usageExpression</span> ::=
+<span class="name">used</span>
+<span class="name">(</span>
+<span class="optional">
+<span class="nonterminal">identifier</span>
+<span class="name">,</span>
+</span>
+<span class="nonterminal">aIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="optional">
+<span class="name">,</span>
+ <span class="nonterminal">time</span>
+</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span><br/>
+</div>
+
+
+<div class="anexample">
+<pre class="codeexample">
+used(ex:pub2, ar3:0111)
+used(ex:pub2, ar3:0111, 2011-11-16T16:00:00)
+used(ex:u1, ex:pub2, ar3:0111)
+used(a1,e1,[ex:fct="load"])
+</pre>
+</div>
+
+</section>
+
+
+
+
+
+
+<section id="expression-ActivityAssociation">
+<h4>Activity Association</h4>
+
+
+<p>An activity association's text matches the <span class="nonterminal">activityAssociationExpression</span> productions of the grammar defined in this specification
+document.</p>
+
+<div class='grammar'>
+<span class="nonterminal">activityAssociationExpression</span> ::=
+<span class="name">wasAssociatedWith</span>
+<span class="name">(</span>
+<span class="optional"><span class="nonterminal">identifier</span>,</span>
+<span class="nonterminal">aIdentifier</span>,
+<span class="nonterminal">agIdentifier</span>
+<span class="optional">,<span class="nonterminal">eIdentifier</span></span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+</div>
+
+
+<div class="anexample">
+<pre class="codeexample">
+wasAssociatedWith(ex:pub2, w3:Consortium)
+wasAssociatedWith(ex:pub2, w3:Consortium @ pr:rec-advance)
+wasAssociatedWith(ex:pub2, w3:Consortium @ pr:rec-advance, [prov:role="funder"])
+</pre>
+
+
+</section>
+
+<section id="expression-Start-End">
+<h4>Activity Start and End</h4>
+
+
+<p>Activity start and end texts match the <span class="nonterminal">startExpression</span> and <span class="nonterminal">endExpression</span> productions of the grammar defined in this
+specification document.
+</p>
+
+
+<div class='grammar'>
+<span class="nonterminal">startExpression</span> ::=
+<span class="name">wasStartedBy</span>
+<span class="name">(</span>
+<span class="optional"> <span class="nonterminal">identifier</span>,</span>
+<span class="nonterminal">aIdentifier</span>,
+<span class="nonterminal">agIdentifier</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span><br/>
+<span class="nonterminal">endExpression</span> ::=
+<span class="name">wasEndedBy</span>
+<span class="name">(</span>
+<span class="optional"> <span class="nonterminal">identifier</span>,</span>
+<span class="nonterminal">aIdentifier</span>,
+<span class="nonterminal">agIdentifier</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+
+
+</section>
+
+
+
+
+
+
+
+<section id="expression-responsibility">
+
+<h4>Responsibility Chain</h4>
+
+
+
+<div class='grammar'>
+<span class="nonterminal">responsibilityExpression</span> ::=
+<span class="name">actedOnBehalfOf</span>
+<span class="name">(</span>
+<span class="optional"> <span class="nonterminal">identifier</span>,</span>
+<span class="nonterminal">agIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">agIdentifier</span>
+<span class="name">,</span>
+<span class="optional"><span class="nonterminal">aIdentifier</span></span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+actedOnBehalfOf(ag1,ag2)
+actedOnBehalfOf(ag1,ag2,a)
+actedOnBehalfOf(ag1,ag2,[prov:type="delegation"])
+actedOnBehalfOf(ag2,ag3,a,[prov:type="contract"])
+</pre>
+</div>
+
+</section>
+
+<section id="Derivation-Relation">
+<h4>Derivation</h4>
+
+
+
+<p>A derivation record's text matches the <span class='nonterminal'>derivationExpression</span> production.</p>
+
+<div class='grammar'>
+<span class="nonterminal">derivationExpression</span> ::=
+<span class="name">wasDerivedFrom</span>
+<span class="name">(</span>
+<span class="optional"> <span class="nonterminal">identifier</span>,</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">aIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">gIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">uIdentifier</span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span><br/>
+|
+<span class="name">wasDerivedFrom</span>
+<span class="name">(</span>
+<span class="optional"> <span class="nonterminal">identifier</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">time</span></span>
+<span class="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+<p>
+The first clause of the alternative, where the activity, generation and usage record identifiers are present formalizes a derivation record is precise-1. The second clause of the alternative, with optional time formalizes imprecise records. The distinction between imprecise-1 and imprecise-n is made by the
+attribute <span class="name">prov:steps</span>.
+</p>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+wasDerivedFrom(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018)
+wasDerivedFrom(tr:WD-prov-dm-20111215, tr:WD-prov-dm-20111018)
+wasDerivedFrom(e2, e1, a, g2, u1)
+</pre>
+
+
+
+
+<!--
+<p>In PROV-DM, the effective placeholder for an entity generation time is the <a>generation record</a>. The presence of
+time information in imprecise derivation records is merely a convenience notation for a timeless derivation record and a generation record with this generation time information. </p>
+
+<div class='syntax' id="derivation-time-elimination">
+<span class='conditional'>If</span> <span class="name">wasDerivedFrom(e2,e1,t,attrs)</span> holds, <span class='conditional'>then</span> the following records also hold:
+<span class="name">wasDerivedFrom(e2,e1,attrs)</span> and <span class="name">wasGeneratedBy(e2,t)</span>.
+</div>
+
+
+
+<div class='pending'>Should derivation have a time? Which time? This is <a href="http://www.w3.org/2011/prov/track/issues/43">ISSUE-43</a>.<em>This is now addressed in this text. Optional time in derivation is generation time. See also <a href="http://www.w3.org/2011/prov/track/issues/205">ISSUE-205</a>.</em></div>
+
+-->
+
+</section>
+
+
+<section id="expression-alternate-specialization">
+
+<h4>Alternate and Specialization</h4>
+
+
+
+<p>An alternate relation's text matches the <span class="nonterminal">alternateExpression</span> production.</p>
+
+<div class='grammar'>
+ <span class="nonterminal">alternateExpression</span> ::=
+ <span class="name">alternateOf</span>
+<span class="name">(</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">)</span>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+alternateOf(tr:WD-prov-dm-20111215,ex:alternate-20111215)
+</pre>
+</div>
+
+
+<p>A specialization relation's text matches the <span class="nonterminal">specializationExpression</span>production.</p>
+
+<div class='grammar'>
+ <span class="nonterminal">specializationExpression</span> ::=
+ <span class="name">specializationOf</span>
+<span class="name">(</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">,</span>
+<span class="nonterminal">eIdentifier</span>
+<span class="name">)</span>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+specializationOf(tr:WD-prov-dm-20111215,tr:prov-dm)
+</pre>
+</div>
+
+
+
+
+</section>
+
+
+
+
+
+
+<section id="expression-annotation">
+<h4>Annotation</h4>
+
+
+<p>A note's text matches the <span class="nonterminal">noteExpression</span> production.
+</p>
+
+<div class='grammar'>
+<span class="nonterminal">annotationExpression</span> ::=
+<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="nonterminal">optional-attribute-values</span>
+<span class="name">)</span>
+</div>
+</div>
+
+<div class="anexample">
+<pre class="codeexample">
+hasAnnotation(tr:WD-prov-dm-20111215,ex2:n1)
+</pre>
+</div>
+
+
+
+</section>
+</section>
+
+
+<section id="subexpressions">
+<h3>Further Expressions</h3>
+
+This section defines further expressions of PROV-N.
+
+
+<section id="expression-NamespaceDeclaration">
+<h3>Namespace Declaration</h3>
+
+
+<div class='grammar'>
+<span class="nonterminal">namespaceDeclarations</span> ::=
+ | <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> ::=
+<span class="name">prefix</span> <span class="nonterminal">prefix</span> <span class="nonterminal">IRI</span><br/>
+<span class="nonterminal">defaultNamespaceDeclaration</span> ::=
+ <span class="name">default</span> <span class="nonterminal">IRI</span> <br/>
+</div>
+
+<p>In PROV-N, the prefix <span class="name">prov</span> is reserved and denotes the PROV namespace.</p>
+</section>
+
+
+<section id="expression-identifier">
+<h4>Identifier</h4>
+
+
+<div class='grammar'>
+<span class="nonterminal">identifier</span> ::= <span class="nonterminal">qualifiedName</span><br/>
+<span class="nonterminal">eIdentifier</span> ::= <span class="nonterminal">identifier</span> <em>(intended to denote an entity)</em><br/>
+<span class="nonterminal">aIdentifier</span> ::= <span class="nonterminal">identifier</span> <em>(intended to denote an activity)</em><br/>
+<span class="nonterminal">agIdentifier</span> ::= <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">accIdentifier</span>::= <span class="nonterminal">identifier</span> <em>(intended to denote an account)</em>
+<br/>
+<br/>
+<span class="nonterminal">qualifiedName</span> ::= <span class="nonterminal">prefixedName</span> | <span class="nonterminal">unprefixedName</span><br/>
+<span class="nonterminal">prefixedName</span> ::= <span class="nonterminal">prefix</span> <span class="name">:</span> <span class="nonterminal">localPart</span><br/>
+<span class="nonterminal">unprefixedName</span> ::= <span class="nonterminal">localPart</span><br/>
+<span class="nonterminal">prefix</span> ::= <em>a name without colon compatible with the <a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-NCName">NC_NAME</a> production
+[[!XML-NAMES]]</em><br/>
+<span class="nonterminal">localPart</span> ::= <em>a name without colon compatible with the <a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-NCName">NC_NAME</a> production
+[[!XML-NAMES]]</em>
+</div>
+
+
+<div class="note">Note that XML NC_NAME don't allow local identifiers to start with a number. Instead, should we use the productions used in SPARQL or TURTLE?</div>
+
+</section>
+
+<section id="expression-attribute">
+<h4>Attribute</h4>
+
+
+<p>An attribute's text matches the <span class="nonterminal">attribute</span> production.</p>
+
+<div class='grammar'>
+<span class="nonterminal">attribute</span> ::= <span class="nonterminal">qualifiedName</span><br/>
+</div>
+
+<p>The reserved attributes in the PROV namespace are the following.</p>
+
+<ol>
+<li> <span class="name">prov:label</span>
+<li> <span class="name">prov:location</span>
+<li> <span class="name">prov:role</span>
+<li> <span class="name">prov:steps</span>
+<li> <span class="name">prov:type</span>
+</ol>
+
+
+</section>
+
+
+
+
+
+<section id="expression-literal">
+<h4>Literal</h4>
+
+<p>A Literal's text matches the <span class="nonterminal">Literal</span> production.</p>
+
+<div class='grammar'>
+<span class="nonterminal">Literal</span> ::= <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><br/>
+<span class="nonterminal">convenienceNotation</span> ::= <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 " (U+22) and \ (U+5C) occur only in pairs of the form \" (U+5C, U+22) and \\ (U+5C,
+U+5C), enclosed in a pair of " (U+22) characters</em><br/>
+<span class="nonterminal">intLiteral</span> ::= <em>a finite-length sequence of decimal digits (#x30-#x39) with an optional leading negative sign (-)</em>
+</div>
+
+<p>The non terminals <span class="nonterminal">stringLiteral</span> and
+<span class="nonterminal">intLiteral</span>
+are syntactic sugar for quoted strings with datatype <span class="name">xsd:string</span> and <span class="name">xsd:int</span>, respectively.
+</p>
+
+<p> In particular, a PROV-DM 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-DM.</p>
+
+<section id="expression-types">
+<h4>Reserved Type Values</h4>
+
+<p>The reserved type values in the PROV namespace are the following.</p>
+
+<ol>
+<li> <span class="name">prov:AccountEntity</span>
+<li> <span class="name">prov:ComputingSystem</span>
+<li> <span class="name">prov:Human</span>
+<li> <span class="name">prov:Organization</span>
+<li> <span class="name">prov:Plan</span>
+<li> <span class="name">prov:Collection</span>
+<li> <span class="name">prov:EmptyCollection</span>
+</ol>
+
+</section>
+
+<section id="expression-Time">
+<h4>Time Values</h4>
+
+<p><dfn id="dfn-time">Time instants</dfn> are defined according to xsd:dateTime [[!XMLSCHEMA-2]].</p>
+
+
+
+
+</section>
+
+
+</section>
+
+
+
+
+
+
+
+
+
+
+
+
+
+</section>
+</section>
+
+<section id="common-relations">
+<h2>Common Relations</h2>
+
+<div class="note">
+TO ADD
+</div>
+</section>
+
+
+
+
+
+<section id="ExpressionContainer">
+<h4>Expression Container</h4>
+
+<p>An <dfn id="dfn-ExpressionContainer">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 ([[PROV-AQ]]).</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="#data-model-concepts">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:
+<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: http://example.org/,
+
+ 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> [[PROV-AQ]].
+</p>
+</div>
+
+
+
+<div class='issue'>
+Clarify what records are. This is <a href="http://www.w3.org/2011/prov/track/issues/208">ISSUE-208</a>. </div>
+</section>
+
+
+<section id="account">
+<h3>Account</h3>
+
+<p>PROV-DM has introduced a notion of account by which a set of provenance descriptions can be bundled up and named. PROV-DM <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 <span class="name">id</span> 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> ::=
+<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: http://example.org/,
+
+ 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: http://example.org/,
+ ...
+
+ 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:AccountEntity" %% 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:AccountEntity</span>.
+</p>
+</div>
+
+</section>
+
+<!-- no longer necessary to say that.
+
+<p>All the records in <span class="name">recs</span> are implictly wrapped in a default account, scoping all the record identifiers they declare directly, and constituting a toplevel
+account, in the hierarchy of accounts. Consequently, every provenance record is always expressed in the context of an account, either explicitly in an asserted account, or implicitly in a
+container's default account.</p>
+
+-->
+
+
+</section>
+
+
+
+ </body></html>