--- a/model/working-copy/prov-asn.html Wed Feb 15 17:32:13 2012 +0000
+++ b/model/working-copy/prov-asn.html Wed Feb 15 20:48:00 2012 +0000
@@ -944,6 +944,7 @@
<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>
@@ -991,46 +992,40 @@
</section>
-<section id="bundle">
-<h3>Bundle</h3>
-
-<div class="note">
-Has not been edited yet.
-</div>
<section id="ExpressionContainer">
<h4>Expression Container</h4>
-<p>A <dfn id="dfn-ExpressionContainer">expression container</dfn> is a house-keeping construct of PROV-ASN capable of bundling PROV-ASN <a title="expression">expressions</a> and namespace declarations. An expression container forms a self-contained bundle of provenance descriptions for the purpose of <em>exchanging</em> them. An expression container can be the
-mechanism to package up PROV-ASN <a title="record">expressions</a> in response to a request for the provenance of something ([[PROV-AQ]]).</p>
+<p>An <dfn id="dfn-ExpressionContainer">expression container</dfn> is a house-keeping construct of PROV-ASN capable of packaging up PROV-ASN <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-ASN <a title="record">expressions</a> in response to a request for the provenance of something ([[PROV-AQ]]).</p>
-<p> Given that an expression container is the root of a provenance record, it is not defined as a PROV-ASN expression (production <span class="nonterminal">expression</span>), since otherwise it could occur at arbitrary levels of nesting.</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-ASN expression (<a href="#data-model-concepts">production <span class="nonterminal">expression</span></a>).</p>
-<p>An expression container, written <span class="name">container decls recs endContainer</span> in PROV-ASN, contains:
+<p>An expression container, written <span class="name">container decls exprs endContainer</span> in PROV-ASN, 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">recs</span>;</li>
-<li><em>records</em>: a non-empty set of records <span class="name">recs</span>.</li>
+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>A expression container's text matches the <span class="nonterminal">expressionContainer</span> production.</p>
+<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">record</span> </span>
+<span class="plus"> <span class="nonterminal">expression</span> </span>
<span class="name">endContainer</span>
</div>
<div class="anexample">
<p>
-The following container contains records related to the provenance of entity
+The following container contains expressions related to the provenance of entity
<span class="name">e2</span>.
</p>
<pre class="codeexample">
@@ -1047,8 +1042,7 @@
endContainer
</pre>
-<p>This container could for instance be returned by querying a provenance store for the provenance of entity <span class="name">e2</span> [[PROV-AQ]]. All these assertions are implicitly
-wrapped in a default account. In the absence of an explicit account, such provenance records remain unattributed.
+<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>
@@ -1059,31 +1053,49 @@
</section>
-<p>In this section, two constructs are introduced to group
-PROV-DM records. The first
-one, <a>account record</a> is itself a
-record, whereas the second
-one <a>expression container</a> is not.
-</p>
+<section id="account">
+<h3>Account</h3>
-<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>
+<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>
-<section id="expression-Account">
-<h3>Account Expression</h3>
+<p>Given that the primary motivation for PROV-ASN is to provide a notation aimed at human consumption, it is therefore appropriate to introduce a notation for account, which would include an account name and a bundle of expressions.</p>
-<p>It is common for multiple provenance records to co-exist. For instance, when emailing
- a file, there could be a provenance record kept by the mail client,
- and another by the mail server. Such provenance records may provide different explanations about something happening in the world, because they are created by different parties or observed
-by different witnesses. A given party could also create multiple provenance records about an execution, to capture different levels of details, targeted at different end-users: the
-programmer of an experiment may be interested in a detailed log of execution, while the scientists may focus more on the scientific-level description. Given that multiple provenance
-records can co-exist, it is important to know who asserted these records. </p>
+<p>An account, written <span class="name">account(id, exprs)</span> in PROV-ASN, 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-ASN, 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>
-<p><em>All the rest removed</em></p>
<div class="anexample">
<p>
@@ -1092,8 +1104,8 @@
container
prefix ex: http://example.org/,
- account(ex:acc1,http://example.org/asserter1,...)
- account(ex:acc2,http://example.org/asserter1,...)
+ 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-ASN serialization of the provenance of
@@ -1102,8 +1114,41 @@
</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>