realigined prov-n to new syntax for optionals
authorPaolo Missier <pmissier@acm.org>
Thu, 10 May 2012 17:38:16 +0100
changeset 2753 35152ada3566
parent 2752 6952372704f6
child 2754 b83745fb1715
realigined prov-n to new syntax for optionals
model/prov-n.html
--- a/model/prov-n.html	Thu May 10 15:13:01 2012 +0100
+++ b/model/prov-n.html	Thu May 10 17:38:16 2012 +0100
@@ -506,15 +506,14 @@
 <section id="prov-n-standard-terms"> 
 <h3>Identifiers and attributes</h3>
 
-<p>Most expressions defined in the grammar include the use of two terms: an identifier for the predicate, and a set of attribute-value pairs, delimited by square brackets. Both are optional (unless specified otherwise). By convention, the identifier is the first term in any expression, and the  set of attribute-value pairs is the last. </p>
-Consistent with the convention on optional terms, the  '<span class="name">-</span>' marker can be used when the identifier is not available. Additionally, the grammar rules are defined in such a way that the optional identifier can be omitted altogether with no ambiguity arising.
+<p>Most expressions defined in the grammar include the use of two terms: an identifier for the predicate, and a set of attribute-value pairs, delimited by square brackets. Both are optional (unless specified otherwise). By convention, the identifier is the first term in any expression, followed by a semi-colon ';' and the  set of attribute-value pairs is the last. </p>
 
 <div class="anexample">
-<p>Derivation has an optional identifier. In the first expression, the identifier is not available. It is explicit in the second, and marked by a <span class="name">-</span> in the third.</p>
+<p>Derivation has an optional identifier. In the first expression, the identifier is not available, while it is explicit in the second. The third example shows that one can optionally indicate the missing identifier using the <span class="name">-</span> marker.</p>
 <pre class="codeexample" >
 wasDerivedFrom(e2, e1)
-wasDerivedFrom(d, e2, e1)
-wasDerivedFrom(-, e2, e1)
+wasDerivedFrom(d; e2, e1)
+wasDerivedFrom(-; e2, e1)
 </pre>
 </div>
 
@@ -676,20 +675,19 @@
 <span class="nonterminal">usageExpression</span>&nbsp;::=  
 <span class="name">used</span>
 <span class="name">(</span>
-<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
-<span class="nonterminal">aIdentifier</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">;</span> </span>
+<span class="nonterminal">aIdentifier</span> (
 <span class="name">,</span>
-<span class="nonterminal">eIdentifier</span>
-<span class="name">,</span> ( <span class="nonterminal">time</span> | <span class="name">-</span> ) 
+( <span class="nonterminal">eIdentifier</span> )
+<span class="name">,</span> ( <span class="nonterminal">time</span> | <span class="name">-</span> ))?
 <span class="nonterminal">optional-attribute-values</span>
 <span class="name">)</span><br/>
 </div>
 
-
 <div class="anexample">
   
 <pre class="codeexample">
-used(ex:u1, ex:act2, ar3:0111, 2011-11-16T16:00:00, [ex:fct="load"])
+used(ex:u1; ex:act2, ar3:0111, 2011-11-16T16:00:00, [ex:fct="load"])
  </pre>
 <p>  Here <span class="name">ex:u1</span> is the optional usage identifier,  <span class="name">ex:act2</span> is the identifier of the using activity,
   <span class="name">ar3:0111</span> is the identifier of the entity being used,
@@ -697,11 +695,11 @@
 The remaining examples show cases where some of the optionals are omitted.
 
   <pre class="codeexample">
-used(ex:act2, ar3:0111, -)
+used(ex:act2, ar3:0111)
 used(ex:act2, ar3:0111, 2011-11-16T16:00:00)
 used(a1,e1, -, [ex:fct="load"])
-used(ex:u1, ex:act2, ar3:0111, -)
-used(-, ex:act2, ar3:0111, -)
+used(ex:u1; ex:act2, ar3:0111)
+used(-, ex:act2, ar3:0111)
 </pre>
 </div>
 
@@ -714,11 +712,11 @@
 <span class="nonterminal">startExpression</span>&nbsp;::= 
 <span class="name">wasStartedBy</span>
 <span class="name">(</span>
-<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
-<span class="nonterminal">aIdentifier</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">;</span> </span>
+<span class="nonterminal">aIdentifier</span> (
 <span class="name">,</span>
 ( <span class="nonterminal">eIdentifier</span> | <span class="name">-</span> )
-<span class="name">,</span> ( <span class="nonterminal">time</span> | <span class="name">-</span> )
+<span class="name">,</span> ( <span class="nonterminal">time</span> | <span class="name">-</span> ))?
 <span class="nonterminal">optional-attribute-values</span>
 <span class="name">)</span>
 </div>
@@ -726,7 +724,7 @@
 <div class="anexample">
 
   <pre class="codeexample">
-wasStartedBy(s, ex:act2, ar3:0111, 2011-11-16T16:00:00, [ex:param="a"])
+wasStartedBy(s; ex:act2, ar3:0111, 2011-11-16T16:00:00, [ex:param="a"])
   </pre>
   <p>Here <span class="name">s</span> is the optional start identifier,  <span class="name">ex:act2</span> is the identifier of the starting activity,
   <span class="name">ar3:0111</span> is the identifier of the entity that triggered the activity start,
@@ -734,13 +732,12 @@
   The remaining examples show cases where some of the optionals are omitted.
   
   <pre class="codeexample">
-wasStartedBy(ex:act2, ar3:0111, -)
+wasStartedBy(ex:act2, ar3:0111)
 wasStartedBy(ex:act2, ar3:0111, 2011-11-16T16:00:00)
 wasStartedBy(ex:act2, -, 2011-11-16T16:00:00)
-wasStartedBy(ex:act2, -, -)
-wasStartedBy(ex:act2, -, -, [ex:param="a"])
-wasStartedBy(s, ex:act2, ar3:0111, 2011-11-16T16:00:00)
-wasStartedBy(-, ex:act2, ar3:0111, 2011-11-16T16:00:00)
+wasStartedBy(ex:act2)
+wasStartedBy(ex:act2, [ex:param="a"])
+wasStartedBy(s; ex:act2, ar3:0111, 2011-11-16T16:00:00)
 </pre>
 </div>
 
@@ -757,11 +754,11 @@
 <span class="nonterminal">endExpression</span>&nbsp;::= 
 <span class="name">wasEndedBy</span>
 <span class="name">(</span>
-<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
-<span class="nonterminal">aIdentifier</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">;</span> </span>
+<span class="nonterminal">aIdentifier</span> (
 <span class="name">,</span>
 ( <span class="nonterminal">eIdentifier</span> | <span class="name">-</span> )
-<span class="name">,</span> ( <span class="nonterminal">time</span> | <span class="name">-</span> )
+<span class="name">,</span> ( <span class="nonterminal">time</span> | <span class="name">-</span> ))?
 <span class="nonterminal">optional-attribute-values</span>
 <span class="name">)</span>
 </div>
@@ -769,7 +766,7 @@
 <div class="anexample">
 
     <pre class="codeexample">
-wasEndedBy(s, ex:act2, ex:trigger, 2011-11-16T16:00:00, [ex:param="a"])
+wasEndedBy(s; ex:act2, ex:trigger, 2011-11-16T16:00:00, [ex:param="a"])
   </pre>
 <p>  Here <span class="name">s</span> is the optional start identifier,  <span class="name">ex:act2</span> is the identifier of the ending activity,
   <span class="name">ex:trigger</span> is the identifier of the entity that triggered the activity end,
@@ -778,13 +775,12 @@
 
   
 <pre class="codeexample">
-wasEndedBy(ex:act2, ex:trigger, -)
+wasEndedBy(ex:act2, ex:trigger)
 wasEndedBy(ex:act2, ex:trigger, 2011-11-16T16:00:00)
 wasEndedBy(ex:act2, -, 2011-11-16T16:00:00)
 wasEndedBy(ex:act2, -, 2011-11-16T16:00:00, [ex:param="a"])
-wasEndedBy(e,ex:act2, -, -)
+wasEndedBy(e,ex:act2)
 wasEndedBy(e, ex:act2, ex:trigger, 2011-11-16T16:00:00)
-wasEndedBy(-, ex:act2, ex:trigger, 2011-11-16T16:00:00)
 </pre>
 </div>
 
@@ -803,32 +799,32 @@
 <span class="nonterminal">invalidationExpression</span>&nbsp;::=  
 <span class="name">wasInvalidatedBy</span>
 <span class="name">(</span>
-<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
-<span class="nonterminal">eIdentifier</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">;</span> </span>
+<span class="nonterminal">aIdentifier</span> (
 <span class="name">,</span>
-( <span class="nonterminal">aIdentifier</span> | <span class="name">-</span> )
-<span class="name">,</span> ( <span class="nonterminal">time</span> | <span class="name">-</span> )
+( <span class="nonterminal">eIdentifier</span> | <span class="name">-</span> )
+<span class="name">,</span> ( <span class="nonterminal">time</span> | <span class="name">-</span> ))?
 <span class="nonterminal">optional-attribute-values</span>
-<span class="name">)</span><br/>
+<span class="name">)</span>
 </div>
 </div>
 
 <div class="anexample">
 
 <pre class="codeexample">
-wasInvalidatedBy(ex:i1, tr:WD-prov-dm-20111215, ex:edit1, 2011-11-16T16:00:00,  [ex:fct="save"])
+wasInvalidatedBy(ex:i1; tr:WD-prov-dm-20111215, ex:edit1, 2011-11-16T16:00:00,  [ex:fct="save"])
 </pre>
 <p>  Here <span class="name">ex:i1</span> is the optional invalidation identifier, <span class="name">tr:WD-prov-dm-20111215</span> is the identifier of the entity being invalidated,
   <span class="name">ex:edit1</span> is the optional identifier of the invalidating activity, <span class="name">2011-11-16T16:00:00</span> is the optional invalidation time, and <span class="name"> [ex:fct="save"]</span> are optional attributes. </p>
 The remaining examples show cases where some of the optionals are omitted.
   
 <pre class="codeexample">
-wasInvalidatedBy(tr:WD-prov-dm-20111215, ex:edit1, -)
+wasInvalidatedBy(tr:WD-prov-dm-20111215, ex:edit1)
 wasInvalidatedBy(tr:WD-prov-dm-20111215, ex:edit1, 2011-11-16T16:00:00)
 wasInvalidatedBy(e2, a1, -, [ex:fct="save"])     
 wasInvalidatedBy(e2, -, -, [ex:fct="save"])     
-wasInvalidatedBy(ex:i1, tr:WD-prov-dm-20111215, ex:edit1, -)
-wasInvalidatedBy(-, tr:WD-prov-dm-20111215, ex:edit1, -)
+wasInvalidatedBy(ex:i1; tr:WD-prov-dm-20111215, ex:edit1)
+wasInvalidatedBy(tr:WD-prov-dm-20111215, ex:edit1)
 </pre>
 </div>
 
@@ -983,21 +979,19 @@
 <span class="nonterminal">associationExpression</span>&nbsp;::= 
 <span class="name">wasAssociatedWith</span>
 <span class="name">(</span>
-<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
-<span class="nonterminal">aIdentifier</span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">;</span> </span>
+<span class="nonterminal">aIdentifier</span> 
 <span class="name">,</span> 
-( <span class="nonterminal">agIdentifier</span>  | <span class="name">-</span> )
+( <span class="nonterminal">agIdentifier</span>  | <span class="name">-</span> )  (
 <span class="name">,</span> 
-( <span class="nonterminal">eIdentifier</span>  | <span class="name">-</span> )
+( <span class="nonterminal">eIdentifier</span>  | <span class="name">-</span> ))?
 <span class="nonterminal">optional-attribute-values</span>
 <span class="name">)</span>
 </div>
 
-
-
 <div class="anexample">
 <pre class="codeexample">
-wasAssociatedWith(ex:agas, ex:a1, ex:ag1, ex:e1, [ex:param1="a", ex:param2="b"])
+wasAssociatedWith(ex:agas; ex:a1, ex:ag1, ex:e1, [ex:param1="a", ex:param2="b"])
   </pre>
 
 <p>  Here <span class="name">ex:agas</span> is the optional attribution identifier,
@@ -1011,12 +1005,11 @@
   
 <pre class="codeexample">
 wasAssociatedWith(ex:a1, -, ex:e1)
-wasAssociatedWith(ex:a1, ex:ag1, -)
+wasAssociatedWith(ex:a1, ex:ag1)
 wasAssociatedWith(ex:a1, ex:ag1, ex:e1)
 wasAssociatedWith(ex:a1, ex:ag1, ex:e1, [ex:param1="a", ex:param2="b"])
-wasAssociatedWith(a, ex:a1, -, ex:e1)
-wasAssociatedWith(-, ex:a1, -, ex:e1)
-wasAssociatedWith(-, ex:a1, ex:ag1, -)
+wasAssociatedWith(a; ex:a1, -, ex:e1)
+wasAssociatedWith(ex:a1, -, ex:e1)
 </pre>
 </div>
 
@@ -1031,20 +1024,21 @@
 <span class="nonterminal">responsibilityExpression</span>&nbsp;::= 
 <span class="name">actedOnBehalfOf</span>
 <span class="name">(</span>
-<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">,</span> </span>
+<span class="optional">( <span class="nonterminal">identifier</span> | <span class="name">-</span> ) <span class="name">;</span> </span>
 <span class="nonterminal">agIdentifier</span>
 <span class="name">,</span>
-<span class="nonterminal">agIdentifier</span>
+<span class="nonterminal">agIdentifier</span> (
 <span class="name">,</span>
-( <span class="nonterminal">aIdentifier</span> | <span class="name">-</span> )
+( <span class="nonterminal">aIdentifier</span> | <span class="name">-</span> ))?
 <span class="nonterminal">optional-attribute-values</span>
 <span class="name">)</span>
 </div>
 
+
 <div class="anexample">
 
   <pre class="codeexample">
-actedOnBehalfOf(act1, ag1, ag2, a, [prov:type="contract"])
+actedOnBehalfOf(act1; ag1, ag2, a, [prov:type="contract"])
   </pre>
 <p>  Here <span class="name">act1</span> is the optional attribution identifier,
   <span class="name">ag1</span> is the identifier for the subordinate agent,
@@ -1055,12 +1049,11 @@
 
 
 <pre class="codeexample">
-actedOnBehalfOf(ag1, ag2, -)
+actedOnBehalfOf(ag1, ag2)
 actedOnBehalfOf(ag1, ag2, a)
 actedOnBehalfOf(ag1, ag2, -, [prov:type="delegation"])
 actedOnBehalfOf(ag2, ag3, a, [prov:type="contract"])
-actedOnBehalfOf(r, ag2, ag3, a, [prov:type="contract"])
-actedOnBehalfOf(-, ag1, ag2, -)
+actedOnBehalfOf(r; ag2, ag3, a, [prov:type="contract"])
 </pre>
 </div>