account in prov-asn
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Wed, 15 Feb 2012 20:48:00 +0000
changeset 1582 134e9aad967d
parent 1581 bd6933ecb0bd
child 1583 05cac56c4398
account in prov-asn
model/working-copy/prov-asn.html
--- 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>&nbsp;::=  
+<span class="name">account</span> 
+<span class="name">(</span> 
+<span class="nonterminal">identifier</span> 
+<span class="name">,</span> 
+<span class="plus">
+<span class="nonterminal">expression</span> </span>
+<span class="name">)</span> 
+</div>
+
+<p>It is also useful to package up one or more account expressions in an expression container, for interchange purpose. Hence,  <span class="nonterminal">expressionContainer</span> is revised as follows. </p>
+
+<div class='grammar'>
+<span class="nonterminal">expressionContainer</span> ::=  
+<span class="name">container</span> 
+<span class="nonterminal">namespaceDeclarations</span> 
+<span class="plus"> <span class="nonterminal">expression</span> </span>
+<span class="name">endContainer</span>   <br/>
+| <span class="name">container</span> 
+<span class="nonterminal">namespaceDeclarations</span> 
+<span class="plus"> <span class="nonterminal">accountExpression</span> </span>
+<span class="name">endContainer</span>  
+</div>
 
 
-<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>