more on bundles
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Thu, 10 May 2012 13:07:21 +0100
changeset 2748 44ac7be5d9c9
parent 2747 b51c0b9cb399
child 2749 49ebd0bc89a1
more on bundles
model/grammar/Makefile
model/grammar/yack/prov-n-LL.bnf
model/grammar/yack/prov-n.bnf
model/grammar/yack/prov_n.html
model/grammar/yack/sample2.in
--- a/model/grammar/Makefile	Thu May 10 10:48:22 2012 +0100
+++ b/model/grammar/Makefile	Thu May 10 13:07:21 2012 +0100
@@ -20,4 +20,8 @@
 	cd yack; perl -Mprov_n -e test < sample2.in 3> sample2.trace
 
 
+run2:
+	cd yack; perl -Mprov_n -e test < sample3.in 3> sample3.trace
 
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/model/grammar/yack/prov-n-LL.bnf	Thu May 10 13:07:21 2012 +0100
@@ -0,0 +1,196 @@
+ 
+[2] bundle ::= "bundle" namespaceDeclarations? expression* (namedBundle namedBundle*)? "endBundle"
+
+[3] namedBundle ::= "bundle" identifier (namespaceDeclarations)? (expression)* "endBundle"
+
+[4] namespaceDeclarations ::=  (defaultNamespaceDeclaration | namespaceDeclaration) namespaceDeclaration*
+
+[5] namespaceDeclaration ::= "prefix" QNAME namespace
+
+[6] namespace ::= IRI_REF
+
+[7] defaultNamespaceDeclaration ::=     "default" IRI_REF
+
+[10] expression::=
+        (   
+
+           entityExpression | activityExpression | generationExpression  | usageExpression
+         | startExpression | endExpression | invalidationExpression | communicationExpression | startByActivityExpression
+        | agentExpression |  associationExpression | attributionExpression | responsibilityExpression
+        | derivationExpression | tracedToExpression | hadOriginalSourceExpression | quotationExpression | revisionExpression
+        | alternateExpression | specializationExpression
+        )
+
+
+[11] entityExpression::=	"entity" "(" identifier optionalAttributeValuePairs ")"
+
+[12] activityExpression::=	"activity" "(" identifier ("," timeOrMarker "," timeOrMarker)? optionalAttributeValuePairs ")"
+
+generationExpression::=	"wasGeneratedBy" "(" optionalIdentifier identifier ("," identifierOrMarker "," timeOrMarker)? optionalAttributeValuePairs ")"
+
+
+timeOrMarker::=(timeZZ | "-")
+
+identifierOrMarker::=(identifier | "-")
+
+optionalIdentifier::=(identifierOrMarker ";")?
+
+usageExpression::=	"used" "(" optionalIdentifier  identifier "," identifier ("," timeOrMarker)? optionalAttributeValuePairs ")"
+
+startExpression::=	"wasStartedBy" "(" optionalIdentifier identifier ("," identifierOrMarker "," timeOrMarker)? optionalAttributeValuePairs ")"
+
+
+
+
+endExpression::=	"wasEndedBy" "(" optionalIdentifier identifier ("," identifierOrMarker "," timeOrMarker)? optionalAttributeValuePairs ")"
+
+
+invalidationExpression::=	"wasInvalidatedBy" "(" optionalIdentifier identifier ("," identifierOrMarker "," timeOrMarker)? optionalAttributeValuePairs ")"
+
+
+
+communicationExpression::=	"wasInformedBy" "(" optionalIdentifier identifier "," identifier optionalAttributeValuePairs ")"
+
+
+startByActivityExpression::=	"wasStartedByActivity" "(" optionalIdentifier identifier "," identifier optionalAttributeValuePairs ")"
+
+
+agentExpression::=	"agent" "(" identifier optionalAttributeValuePairs	")" 
+
+attributionExpression::=	"wasAttributedTo" "("  optionalIdentifier identifier "," identifier optionalAttributeValuePairs ")"
+
+associationExpression::=	"wasAssociatedWith" "("  optionalIdentifier identifier "," identifierOrMarker ("," identifierOrMarker)? optionalAttributeValuePairs ")"
+
+
+responsibilityExpression::=	"actedOnBehalfOf" "("   optionalIdentifier identifier "," identifier (","  identifierOrMarker)? optionalAttributeValuePairs ")"
+
+
+
+derivationExpression::=	"wasDerivedFrom" "(" optionalIdentifier identifier "," identifier ("," identifierOrMarker "," identifierOrMarker "," identifierOrMarker )?	optionalAttributeValuePairs ")"
+
+
+
+revisionExpression::=	"wasRevisionOf" "("  optionalIdentifier identifier "," identifier ("," identifierOrMarker "," identifierOrMarker "," identifierOrMarker )?	optionalAttributeValuePairs ")"
+
+
+
+quotationExpression::=	"wasQuotedFrom" "("  optionalIdentifier identifier "," identifier ("," identifierOrMarker "," identifierOrMarker "," identifierOrMarker )?	optionalAttributeValuePairs ")"
+
+
+hadOriginalSourceExpression::=	"hadOriginalSource" "("  optionalIdentifier identifier "," identifier ("," identifierOrMarker "," identifierOrMarker "," identifierOrMarker )?	optionalAttributeValuePairs ")"
+
+
+tracedToExpression::=	"tracedTo" "("  optionalIdentifier identifier "," identifier optionalAttributeValuePairs ')'
+
+alternateExpression::=	"alternateOf" "("  identifier "," identifier ")"
+
+specializationExpression::=	"specializationOf" "("  identifier "," identifier ")"
+
+
+optionalAttributeValuePairs::= ("," "[" attributeValuePairs "]")?
+
+identifier ::=QNAME
+attribute ::=QNAME
+attributeValuePairs::=      (  | attributeValuePair ( "," attributeValuePair )* )
+
+attributeValuePair::= attribute '='  literal
+
+
+timeZZ::= ISODATETIME
+
+
+
+
+
+
+
+
+
+
+
+
+
+[13] literal ::= StringLiteral | INTLITERAL | StringLiteral "%%" datatype
+
+datatype::= IRI_REF | QNAME
+
+ 
+[66s] StringLiteral ::= STRING_LITERAL
+
+
+
+
+@terminals
+QNAME::= (PN_PREFIX ":")? PN_LOCAL | PN_PREFIX ":"
+
+PREFX::=  PN_PREFIX
+DIGIT::=[0-9]
+ISODATETIME::=  DIGIT DIGIT DIGIT DIGIT "-" DIGIT DIGIT "-" DIGIT DIGIT "T" DIGIT DIGIT ":" DIGIT DIGIT ":" DIGIT DIGIT ("." DIGIT (DIGIT DIGIT?)?)? ("Z" | TIMEZONEOFFSET)?
+
+TIMEZONEOFFSET::= ("+" | "-") DIGIT DIGIT ":" DIGIT DIGIT;
+
+
+
+ 
+[18] PREFIX ::= "@prefix" 
+
+[70s] IRI_REF ::= "<" ( [^<>\"{}|^`\\] - [#x00-#x20] | UCHAR )* ">" 
+ 
+ 
+INTLITERAL::= '-'? DIGIT+
+
+ 
+ 
+[149s] STRING_LITERAL ::= '"' ( ( [^#x22#x5C#xA#xD]) | ECHAR | UCHAR )* '"' 
+
+
+ 
+[19] UCHAR ::= ( "\\u" HEX HEX HEX HEX ) 
+ | ( "\\U" HEX HEX HEX HEX HEX HEX HEX HEX ) 
+
+[91s] ECHAR ::= "\\" [tbnrf\\\"'] 
+ 
+[92s] NIL ::= "(" (WS)* ")" 
+ 
+[93s] WS ::= " " 
+ | "\t" 
+ | "\r" 
+ | "\n" 
+[94s] ANON ::= "[" (WS)* "]" 
+ 
+[95s] PN_CHARS_BASE ::= [A-Z] 
+ | [a-z] 
+ | [#00C0-#00D6] 
+ | [#00D8-#00F6] 
+ | [#00F8-#02FF] 
+ | [#0370-#037D] 
+ | [#037F-#1FFF] 
+ | [#200C-#200D] 
+ | [#2070-#218F] 
+ | [#2C00-#2FEF] 
+ | [#3001-#D7FF] 
+ | [#F900-#FDCF] 
+ | [#FDF0-#FFFD] 
+ | [#10000-#EFFFF] 
+[96s] PN_CHARS_U ::= PN_CHARS_BASE 
+ | "_" 
+[98s] PN_CHARS ::= PN_CHARS_U 
+ | "-" 
+ | [0-9] 
+ | #00B7 
+ | [#0300-#036F] 
+ | [#203F-#2040] 
+[99s] PN_PREFIX ::= PN_CHARS_BASE ( ( PN_CHARS | "." )* PN_CHARS )? 
+ 
+[100s] PN_LOCAL ::= ( PN_CHARS_U | [0-9] | PLX ) ( ( PN_CHARS | '.' | PLX )*  ( PN_CHARS | PLX ) ) ?
+
+[160s] PLX ::= PERCENT | PN_LOCAL_ESC
+
+[161s] PERCENT ::= '%' HEX HEX
+
+[162s] HEX ::= [0-9] | [A-F] | [a-f]
+
+[163s] PN_LOCAL_ESC ::= '\\' ( '_' | '~' | '.' | '-' | '!' | '$' | '&' | "'" | '(' | ')' | '*' | '+' | ',' | ';' | '=' | ':' | '/' | '?' | '#' | '@' | '%' )
+ 
+@pass ::= [ \t\r\n]+ 
+ | "#" [^\r\n]* 
\ No newline at end of file
--- a/model/grammar/yack/prov-n.bnf	Thu May 10 10:48:22 2012 +0100
+++ b/model/grammar/yack/prov-n.bnf	Thu May 10 13:07:21 2012 +0100
@@ -24,63 +24,90 @@
 
 [11] entityExpression::=	"entity" "(" identifier optionalAttributeValuePairs ")"
 
-[12] activityExpression::=	"activity" "(" identifier ("," timeOrMarker "," timeOrMarker)? optionalAttributeValuePairs ")"
+[12] activityExpression::=	"activity" "(" identifier activityOptionals ")"
 
-generationExpression::=	"wasGeneratedBy" "(" optionalIdentifier identifier ("," identifierOrMarker "," timeOrMarker)? optionalAttributeValuePairs ")"
+
+activityOptionals ::= | "," "[" attributeValuePairs "]" | "," activityTimes ("," "[" attributeValuePairs "]")?
+activityTimes ::= timeOrMarker "," timeOrMarker
+
+
+generationExpression::=	"wasGeneratedBy" "("  identifier identifierAndTimeAndAttributeOptionals ")"
+| 	"wasGeneratedBy" "(" identifierOrMarker ";" identifier identifierAndTimeAndAttributeOptionals ")"
+
+identifierAndTimeAndAttributeOptionals ::= | "," "[" attributeValuePairs "]" | "," identifierOrMarker "," timeOrMarker ("," "[" attributeValuePairs "]")?
+
+identifierAndAttributeOptionals ::= | "," "[" attributeValuePairs "]" | "," identifierOrMarker ("," "[" attributeValuePairs "]")?
+
+threeIdentifiersAndAttributeOptionals ::= | "," "[" attributeValuePairs "]" | "," identifierOrMarker "," identifierOrMarker "," identifierOrMarker  ("," "[" attributeValuePairs "]")?
+
+timeAndAttributeOptionals ::= | "," "[" attributeValuePairs "]" | "," timeOrMarker ("," "[" attributeValuePairs "]")?
+
+
 
 
 timeOrMarker::=(timeZZ | "-")
 
 identifierOrMarker::=(identifier | "-")
 
-optionalIdentifier::=(identifierOrMarker ";")?
 
-usageExpression::=	"used" "(" optionalIdentifier  identifier "," identifier ("," timeOrMarker)? optionalAttributeValuePairs ")"
+usageExpression::=	"used" "("  identifier "," identifier timeAndAttributeOptionals ")"
+| "used" "(" identifierOrMarker ";"  identifier "," identifier timeAndAttributeOptionals ")"
 
-startExpression::=	"wasStartedBy" "(" optionalIdentifier identifier ("," identifierOrMarker "," timeOrMarker)? optionalAttributeValuePairs ")"
+startExpression::=	"wasStartedBy" "(" identifier identifierAndTimeAndAttributeOptionals ")"
+| "wasStartedBy" "(" identifierOrMarker ";" identifier identifierAndTimeAndAttributeOptionals ")"
 
 
 
 
-endExpression::=	"wasEndedBy" "(" optionalIdentifier identifier ("," identifierOrMarker "," timeOrMarker)? optionalAttributeValuePairs ")"
+endExpression::=	"wasEndedBy" "(" identifier identifierAndTimeAndAttributeOptionals ")"
+| "wasEndedBy" "(" identifierOrMarker ";" identifier identifierAndTimeAndAttributeOptionals ")"
 
 
-invalidationExpression::=	"wasInvalidatedBy" "(" optionalIdentifier identifier ("," identifierOrMarker "," timeOrMarker)? optionalAttributeValuePairs ")"
+invalidationExpression::=	"wasInvalidatedBy" "(" identifier identifierAndTimeAndAttributeOptionals ")"
+| "wasInvalidatedBy" "(" identifierOrMarker ";" identifier identifierAndTimeAndAttributeOptionals ")"
 
 
 
-communicationExpression::=	"wasInformedBy" "(" optionalIdentifier identifier "," identifier optionalAttributeValuePairs ")"
+communicationExpression::=	"wasInformedBy" "(" identifier "," identifier optionalAttributeValuePairs ")"
+| 	"wasInformedBy" "(" identifierOrMarker ";" identifier "," identifier optionalAttributeValuePairs ")"
 
 
-startByActivityExpression::=	"wasStartedByActivity" "(" optionalIdentifier identifier "," identifier optionalAttributeValuePairs ")"
+startByActivityExpression::=	"wasStartedByActivity" "(" identifier "," identifier optionalAttributeValuePairs ")"
+|	"wasStartedByActivity" "(" identifierOrMarker ";" identifier "," identifier optionalAttributeValuePairs ")"
 
 
 agentExpression::=	"agent" "(" identifier optionalAttributeValuePairs	")" 
 
-attributionExpression::=	"wasAttributedTo" "("  optionalIdentifier identifier "," identifier optionalAttributeValuePairs ")"
+attributionExpression::=	"wasAttributedTo" "("  identifier "," identifier optionalAttributeValuePairs ")"
+| "wasAttributedTo" "("  identifierOrMarker ";" identifier "," identifier optionalAttributeValuePairs ")"
 
-associationExpression::=	"wasAssociatedWith" "("  optionalIdentifier identifier "," identifierOrMarker ("," identifierOrMarker)? optionalAttributeValuePairs ")"
+associationExpression::=	"wasAssociatedWith" "("  identifier "," identifierOrMarker identifierAndAttributeOptionals ")"
+|"wasAssociatedWith" "("  identifierOrMarker ";" identifier "," identifierOrMarker identifierAndAttributeOptionals ")"
 
 
-responsibilityExpression::=	"actedOnBehalfOf" "("   optionalIdentifier identifier "," identifier (","  identifierOrMarker)? optionalAttributeValuePairs ")"
+responsibilityExpression::=	"actedOnBehalfOf" "("   identifier "," identifier identifierAndAttributeOptionals ")"
+| "actedOnBehalfOf" "("   identifierOrMarker ";" identifier "," identifier identifierAndAttributeOptionals ")"
 
 
 
-derivationExpression::=	"wasDerivedFrom" "(" optionalIdentifier identifier "," identifier ("," identifierOrMarker "," identifierOrMarker "," identifierOrMarker )?	optionalAttributeValuePairs ")"
+derivationExpression::=	"wasDerivedFrom" "(" identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
+| "wasDerivedFrom" "(" identifierOrMarker ";" identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
 
 
 
-revisionExpression::=	"wasRevisionOf" "("  optionalIdentifier identifier "," identifier ("," identifierOrMarker "," identifierOrMarker "," identifierOrMarker )?	optionalAttributeValuePairs ")"
-
+revisionExpression::=	"wasRevisionOf" "("  identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
+| "wasRevisionOf" "("  identifierOrMarker ";" identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
 
 
-quotationExpression::=	"wasQuotedFrom" "("  optionalIdentifier identifier "," identifier ("," identifierOrMarker "," identifierOrMarker "," identifierOrMarker )?	optionalAttributeValuePairs ")"
+quotationExpression::=	"wasQuotedFrom" "(" identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
+|	"wasQuotedFrom" "("  identifierOrMarker ";" identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
+
+hadOriginalSourceExpression::=	"hadOriginalSource" "("  identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
+| "hadOriginalSource" "("  identifierOrMarker ";" identifier "," identifier threeIdentifiersAndAttributeOptionals ")"
 
 
-hadOriginalSourceExpression::=	"hadOriginalSource" "("  optionalIdentifier identifier "," identifier ("," identifierOrMarker "," identifierOrMarker "," identifierOrMarker )?	optionalAttributeValuePairs ")"
-
-
-tracedToExpression::=	"tracedTo" "("  optionalIdentifier identifier "," identifier optionalAttributeValuePairs ')'
+tracedToExpression::=	"tracedTo" "("   identifier "," identifier optionalAttributeValuePairs ")"
+| "tracedTo" "("  identifierOrMarker ";" identifier "," identifier optionalAttributeValuePairs ")"
 
 alternateExpression::=	"alternateOf" "("  identifier "," identifier ")"
 
--- a/model/grammar/yack/prov_n.html	Thu May 10 10:48:22 2012 +0100
+++ b/model/grammar/yack/prov_n.html	Thu May 10 13:07:21 2012 +0100
@@ -175,22 +175,33 @@
 <td><a id="prod-prov_n-activityExpression" name="prod-prov_n-activityExpression"></a>[<span class="prodNo">17</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">activityExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "activity" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen11">gen11</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
+<td><code class="content">    "activity" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-activityOptionals">activityOptionals</a></span> ")"</code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen10" name="prod-prov_n-gen10"></a>[<span class="prodNo">18</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen10</code></td>
+<td><a id="prod-prov_n-activityOptionals" name="prod-prov_n-activityOptionals"></a>[<span class="prodNo">18</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">activityOptionals</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-timeOrMarker">timeOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-timeOrMarker">timeOrMarker</a></span></code></td>
+<td><code class="content">    
+    | "," "[" <span class="prod"><a class="grammarRef" href="#prod-prov_n-attributeValuePairs">attributeValuePairs</a></span> "]"
+    | "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-activityTimes">activityTimes</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen11">gen11</a></span></code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen11" name="prod-prov_n-gen11"></a>[<span class="prodNo">19</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-gen10" name="prod-prov_n-gen10"></a>[<span class="prodNo">19</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen10</code></td>
+<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
+<td><code class="content">    "," "[" <span class="prod"><a class="grammarRef" href="#prod-prov_n-attributeValuePairs">attributeValuePairs</a></span> "]"</code></td>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-gen11" name="prod-prov_n-gen11"></a>[<span class="prodNo">20</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">gen11</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    
@@ -200,45 +211,80 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-generationExpression" name="prod-prov_n-generationExpression"></a>[<span class="prodNo">20</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">generationExpression</code></td>
+<td><a id="prod-prov_n-activityTimes" name="prod-prov_n-activityTimes"></a>[<span class="prodNo">21</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">activityTimes</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "wasGeneratedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen13">gen13</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-gen12" name="prod-prov_n-gen12"></a>[<span class="prodNo">21</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen12</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-timeOrMarker">timeOrMarker</a></span></code></td>
+<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-timeOrMarker">timeOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-timeOrMarker">timeOrMarker</a></span></code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen13" name="prod-prov_n-gen13"></a>[<span class="prodNo">22</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen13</code></td>
+<td><a id="prod-prov_n-generationExpression" name="prod-prov_n-generationExpression"></a>[<span class="prodNo">22</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">generationExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    
-    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen12">gen12</a></span></code></td>
+<td><code class="content">    "wasGeneratedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierAndTimeAndAttributeOptionals">identifierAndTimeAndAttributeOptionals</a></span> ")"
+    | "wasGeneratedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierAndTimeAndAttributeOptionals">identifierAndTimeAndAttributeOptionals</a></span> ")"</code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-timeOrMarker" name="prod-prov_n-timeOrMarker"></a>[<span class="prodNo">23</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">timeOrMarker</code></td>
+<td><a id="prod-prov_n-identifierAndTimeAndAttributeOptionals" name="prod-prov_n-identifierAndTimeAndAttributeOptionals"></a>[<span class="prodNo">23</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">identifierAndTimeAndAttributeOptionals</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen14">gen14</a></span></code></td>
+<td><code class="content">    
+    | "," "[" <span class="prod"><a class="grammarRef" href="#prod-prov_n-attributeValuePairs">attributeValuePairs</a></span> "]"
+    | "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-timeOrMarker">timeOrMarker</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen11">gen11</a></span></code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen14" name="prod-prov_n-gen14"></a>[<span class="prodNo">24</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen14</code></td>
+<td><a id="prod-prov_n-identifierAndAttributeOptionals" name="prod-prov_n-identifierAndAttributeOptionals"></a>[<span class="prodNo">24</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">identifierAndAttributeOptionals</code></td>
+<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
+<td><code class="content">    
+    | "," "[" <span class="prod"><a class="grammarRef" href="#prod-prov_n-attributeValuePairs">attributeValuePairs</a></span> "]"
+    | "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen11">gen11</a></span></code></td>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-threeIdentifiersAndAttributeOptionals" name="prod-prov_n-threeIdentifiersAndAttributeOptionals"></a>[<span class="prodNo">25</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">threeIdentifiersAndAttributeOptionals</code></td>
+<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
+<td><code class="content">    
+    | "," "[" <span class="prod"><a class="grammarRef" href="#prod-prov_n-attributeValuePairs">attributeValuePairs</a></span> "]"
+    | "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen11">gen11</a></span></code></td>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-timeAndAttributeOptionals" name="prod-prov_n-timeAndAttributeOptionals"></a>[<span class="prodNo">26</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">timeAndAttributeOptionals</code></td>
+<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
+<td><code class="content">    
+    | "," "[" <span class="prod"><a class="grammarRef" href="#prod-prov_n-attributeValuePairs">attributeValuePairs</a></span> "]"
+    | "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-timeOrMarker">timeOrMarker</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen11">gen11</a></span></code></td>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-timeOrMarker" name="prod-prov_n-timeOrMarker"></a>[<span class="prodNo">27</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">timeOrMarker</code></td>
+<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
+<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen20">gen20</a></span></code></td>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-gen20" name="prod-prov_n-gen20"></a>[<span class="prodNo">28</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen20</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-timeZZ">timeZZ</a></span>
     | "-"</code></td>
@@ -247,17 +293,17 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-identifierOrMarker" name="prod-prov_n-identifierOrMarker"></a>[<span class="prodNo">25</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-identifierOrMarker" name="prod-prov_n-identifierOrMarker"></a>[<span class="prodNo">29</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">identifierOrMarker</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen15">gen15</a></span></code></td>
+<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen21">gen21</a></span></code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen15" name="prod-prov_n-gen15"></a>[<span class="prodNo">26</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen15</code></td>
+<td><a id="prod-prov_n-gen21" name="prod-prov_n-gen21"></a>[<span class="prodNo">30</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen21</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span>
     | "-"</code></td>
@@ -266,108 +312,67 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-optionalIdentifier" name="prod-prov_n-optionalIdentifier"></a>[<span class="prodNo">27</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">optionalIdentifier</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen17">gen17</a></span></code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-gen16" name="prod-prov_n-gen16"></a>[<span class="prodNo">28</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen16</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";"</code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-gen17" name="prod-prov_n-gen17"></a>[<span class="prodNo">29</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen17</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    
-    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen16">gen16</a></span></code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-usageExpression" name="prod-prov_n-usageExpression"></a>[<span class="prodNo">30</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-usageExpression" name="prod-prov_n-usageExpression"></a>[<span class="prodNo">31</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">usageExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "used" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen19">gen19</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-gen18" name="prod-prov_n-gen18"></a>[<span class="prodNo">31</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen18</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-timeOrMarker">timeOrMarker</a></span></code></td>
+<td><code class="content">    "used" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-timeAndAttributeOptionals">timeAndAttributeOptionals</a></span> ")"
+    | "used" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-timeAndAttributeOptionals">timeAndAttributeOptionals</a></span> ")"</code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen19" name="prod-prov_n-gen19"></a>[<span class="prodNo">32</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen19</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    
-    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen18">gen18</a></span></code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-startExpression" name="prod-prov_n-startExpression"></a>[<span class="prodNo">33</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-startExpression" name="prod-prov_n-startExpression"></a>[<span class="prodNo">32</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">startExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "wasStartedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen13">gen13</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-endExpression" name="prod-prov_n-endExpression"></a>[<span class="prodNo">34</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">endExpression</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "wasEndedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen13">gen13</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
+<td><code class="content">    "wasStartedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierAndTimeAndAttributeOptionals">identifierAndTimeAndAttributeOptionals</a></span> ")"
+    | "wasStartedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierAndTimeAndAttributeOptionals">identifierAndTimeAndAttributeOptionals</a></span> ")"</code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-invalidationExpression" name="prod-prov_n-invalidationExpression"></a>[<span class="prodNo">35</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">invalidationExpression</code></td>
+<td><a id="prod-prov_n-endExpression" name="prod-prov_n-endExpression"></a>[<span class="prodNo">33</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">endExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "wasInvalidatedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen13">gen13</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
+<td><code class="content">    "wasEndedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierAndTimeAndAttributeOptionals">identifierAndTimeAndAttributeOptionals</a></span> ")"
+    | "wasEndedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierAndTimeAndAttributeOptionals">identifierAndTimeAndAttributeOptionals</a></span> ")"</code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-communicationExpression" name="prod-prov_n-communicationExpression"></a>[<span class="prodNo">36</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">communicationExpression</code></td>
+<td><a id="prod-prov_n-invalidationExpression" name="prod-prov_n-invalidationExpression"></a>[<span class="prodNo">34</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">invalidationExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "wasInformedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
+<td><code class="content">    "wasInvalidatedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierAndTimeAndAttributeOptionals">identifierAndTimeAndAttributeOptionals</a></span> ")"
+    | "wasInvalidatedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierAndTimeAndAttributeOptionals">identifierAndTimeAndAttributeOptionals</a></span> ")"</code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-startByActivityExpression" name="prod-prov_n-startByActivityExpression"></a>[<span class="prodNo">37</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">startByActivityExpression</code></td>
+<td><a id="prod-prov_n-communicationExpression" name="prod-prov_n-communicationExpression"></a>[<span class="prodNo">35</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">communicationExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "wasStartedByActivity" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
+<td><code class="content">    "wasInformedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"
+    | "wasInformedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-agentExpression" name="prod-prov_n-agentExpression"></a>[<span class="prodNo">38</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-startByActivityExpression" name="prod-prov_n-startByActivityExpression"></a>[<span class="prodNo">36</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">startByActivityExpression</code></td>
+<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
+<td><code class="content">    "wasStartedByActivity" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"
+    | "wasStartedByActivity" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-agentExpression" name="prod-prov_n-agentExpression"></a>[<span class="prodNo">37</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">agentExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    "agent" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
@@ -376,117 +381,87 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-attributionExpression" name="prod-prov_n-attributionExpression"></a>[<span class="prodNo">39</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-attributionExpression" name="prod-prov_n-attributionExpression"></a>[<span class="prodNo">38</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">attributionExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "wasAttributedTo" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-associationExpression" name="prod-prov_n-associationExpression"></a>[<span class="prodNo">40</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">associationExpression</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "wasAssociatedWith" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen27">gen27</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-gen26" name="prod-prov_n-gen26"></a>[<span class="prodNo">41</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen26</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span></code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-gen27" name="prod-prov_n-gen27"></a>[<span class="prodNo">42</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen27</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    
-    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen26">gen26</a></span></code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-responsibilityExpression" name="prod-prov_n-responsibilityExpression"></a>[<span class="prodNo">43</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">responsibilityExpression</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "actedOnBehalfOf" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen27">gen27</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-derivationExpression" name="prod-prov_n-derivationExpression"></a>[<span class="prodNo">44</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">derivationExpression</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "wasDerivedFrom" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen31">gen31</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
+<td><code class="content">    "wasAttributedTo" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"
+    | "wasAttributedTo" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen30" name="prod-prov_n-gen30"></a>[<span class="prodNo">45</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen30</code></td>
+<td><a id="prod-prov_n-associationExpression" name="prod-prov_n-associationExpression"></a>[<span class="prodNo">39</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">associationExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span></code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-gen31" name="prod-prov_n-gen31"></a>[<span class="prodNo">46</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen31</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    
-    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen30">gen30</a></span></code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-revisionExpression" name="prod-prov_n-revisionExpression"></a>[<span class="prodNo">47</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">revisionExpression</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "wasRevisionOf" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen31">gen31</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
+<td><code class="content">    "wasAssociatedWith" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierAndAttributeOptionals">identifierAndAttributeOptionals</a></span> ")"
+    | "wasAssociatedWith" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierAndAttributeOptionals">identifierAndAttributeOptionals</a></span> ")"</code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-quotationExpression" name="prod-prov_n-quotationExpression"></a>[<span class="prodNo">48</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">quotationExpression</code></td>
+<td><a id="prod-prov_n-responsibilityExpression" name="prod-prov_n-responsibilityExpression"></a>[<span class="prodNo">40</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">responsibilityExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "wasQuotedFrom" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen31">gen31</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
+<td><code class="content">    "actedOnBehalfOf" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierAndAttributeOptionals">identifierAndAttributeOptionals</a></span> ")"
+    | "actedOnBehalfOf" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierAndAttributeOptionals">identifierAndAttributeOptionals</a></span> ")"</code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-hadOriginalSourceExpression" name="prod-prov_n-hadOriginalSourceExpression"></a>[<span class="prodNo">49</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">hadOriginalSourceExpression</code></td>
+<td><a id="prod-prov_n-derivationExpression" name="prod-prov_n-derivationExpression"></a>[<span class="prodNo">41</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">derivationExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "hadOriginalSource" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen31">gen31</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
+<td><code class="content">    "wasDerivedFrom" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-threeIdentifiersAndAttributeOptionals">threeIdentifiersAndAttributeOptionals</a></span> ")"
+    | "wasDerivedFrom" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-threeIdentifiersAndAttributeOptionals">threeIdentifiersAndAttributeOptionals</a></span> ")"</code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-tracedToExpression" name="prod-prov_n-tracedToExpression"></a>[<span class="prodNo">50</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">tracedToExpression</code></td>
+<td><a id="prod-prov_n-revisionExpression" name="prod-prov_n-revisionExpression"></a>[<span class="prodNo">42</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">revisionExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "tracedTo" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
+<td><code class="content">    "wasRevisionOf" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-threeIdentifiersAndAttributeOptionals">threeIdentifiersAndAttributeOptionals</a></span> ")"
+    | "wasRevisionOf" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-threeIdentifiersAndAttributeOptionals">threeIdentifiersAndAttributeOptionals</a></span> ")"</code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-alternateExpression" name="prod-prov_n-alternateExpression"></a>[<span class="prodNo">51</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-quotationExpression" name="prod-prov_n-quotationExpression"></a>[<span class="prodNo">43</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">quotationExpression</code></td>
+<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
+<td><code class="content">    "wasQuotedFrom" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-threeIdentifiersAndAttributeOptionals">threeIdentifiersAndAttributeOptionals</a></span> ")"
+    | "wasQuotedFrom" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-threeIdentifiersAndAttributeOptionals">threeIdentifiersAndAttributeOptionals</a></span> ")"</code></td>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-hadOriginalSourceExpression" name="prod-prov_n-hadOriginalSourceExpression"></a>[<span class="prodNo">44</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">hadOriginalSourceExpression</code></td>
+<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
+<td><code class="content">    "hadOriginalSource" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-threeIdentifiersAndAttributeOptionals">threeIdentifiersAndAttributeOptionals</a></span> ")"
+    | "hadOriginalSource" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-threeIdentifiersAndAttributeOptionals">threeIdentifiersAndAttributeOptionals</a></span> ")"</code></td>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-tracedToExpression" name="prod-prov_n-tracedToExpression"></a>[<span class="prodNo">45</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">tracedToExpression</code></td>
+<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
+<td><code class="content">    "tracedTo" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"
+    | "tracedTo" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifierOrMarker">identifierOrMarker</a></span> ";" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-alternateExpression" name="prod-prov_n-alternateExpression"></a>[<span class="prodNo">46</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">alternateExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    "alternateOf" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> ")"</code></td>
@@ -495,7 +470,7 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-specializationExpression" name="prod-prov_n-specializationExpression"></a>[<span class="prodNo">52</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-specializationExpression" name="prod-prov_n-specializationExpression"></a>[<span class="prodNo">47</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">specializationExpression</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    "specializationOf" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-identifier">identifier</a></span> ")"</code></td>
@@ -504,35 +479,16 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-optionalAttributeValuePairs" name="prod-prov_n-optionalAttributeValuePairs"></a>[<span class="prodNo">53</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-optionalAttributeValuePairs" name="prod-prov_n-optionalAttributeValuePairs"></a>[<span class="prodNo">48</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">optionalAttributeValuePairs</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen39">gen39</a></span></code></td>
+<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen11">gen11</a></span></code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen38" name="prod-prov_n-gen38"></a>[<span class="prodNo">54</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen38</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    "," "[" <span class="prod"><a class="grammarRef" href="#prod-prov_n-attributeValuePairs">attributeValuePairs</a></span> "]"</code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-gen39" name="prod-prov_n-gen39"></a>[<span class="prodNo">55</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen39</code></td>
-<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    
-    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen38">gen38</a></span></code></td>
-</tr>
-</tbody>
-
-<tbody class="prod">
-<tr valign="baseline">
-<td><a id="prod-prov_n-identifier" name="prod-prov_n-identifier"></a>[<span class="prodNo">56</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-identifier" name="prod-prov_n-identifier"></a>[<span class="prodNo">49</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">identifier</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-QNAME">QNAME</a></span></code></td>
@@ -541,7 +497,7 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-attribute" name="prod-prov_n-attribute"></a>[<span class="prodNo">57</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-attribute" name="prod-prov_n-attribute"></a>[<span class="prodNo">50</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">attribute</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-QNAME">QNAME</a></span></code></td>
@@ -550,17 +506,17 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-attributeValuePairs" name="prod-prov_n-attributeValuePairs"></a>[<span class="prodNo">58</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-attributeValuePairs" name="prod-prov_n-attributeValuePairs"></a>[<span class="prodNo">51</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">attributeValuePairs</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
-<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen42">gen42</a></span></code></td>
+<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen26">gen26</a></span></code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen40" name="prod-prov_n-gen40"></a>[<span class="prodNo">59</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen40</code></td>
+<td><a id="prod-prov_n-gen24" name="prod-prov_n-gen24"></a>[<span class="prodNo">52</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen24</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-attributeValuePair">attributeValuePair</a></span></code></td>
 </tr>
@@ -568,27 +524,27 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen41" name="prod-prov_n-gen41"></a>[<span class="prodNo">60</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen41</code></td>
+<td><a id="prod-prov_n-gen25" name="prod-prov_n-gen25"></a>[<span class="prodNo">53</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen25</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    
-    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen41">gen41</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen40">gen40</a></span></code></td>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen25">gen25</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen24">gen24</a></span></code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen42" name="prod-prov_n-gen42"></a>[<span class="prodNo">61</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen42</code></td>
+<td><a id="prod-prov_n-gen26" name="prod-prov_n-gen26"></a>[<span class="prodNo">54</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen26</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    
-    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-attributeValuePair">attributeValuePair</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen41">gen41</a></span></code></td>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-attributeValuePair">attributeValuePair</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen25">gen25</a></span></code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-attributeValuePair" name="prod-prov_n-attributeValuePair"></a>[<span class="prodNo">62</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-attributeValuePair" name="prod-prov_n-attributeValuePair"></a>[<span class="prodNo">55</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">attributeValuePair</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-attribute">attribute</a></span> "=" <span class="prod"><a class="grammarRef" href="#prod-prov_n-literal">literal</a></span></code></td>
@@ -597,7 +553,7 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-timeZZ" name="prod-prov_n-timeZZ"></a>[<span class="prodNo">63</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-timeZZ" name="prod-prov_n-timeZZ"></a>[<span class="prodNo">56</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">timeZZ</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-ISODATETIME">ISODATETIME</a></span></code></td>
@@ -606,7 +562,7 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-literal" name="prod-prov_n-literal"></a>[<span class="prodNo">64</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-literal" name="prod-prov_n-literal"></a>[<span class="prodNo">57</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">literal</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-StringLiteral">StringLiteral</a></span>
@@ -617,7 +573,7 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-datatype" name="prod-prov_n-datatype"></a>[<span class="prodNo">65</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-datatype" name="prod-prov_n-datatype"></a>[<span class="prodNo">58</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">datatype</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-IRI_REF">IRI_REF</a></span>
@@ -627,7 +583,7 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-StringLiteral" name="prod-prov_n-StringLiteral"></a>[<span class="prodNo">66</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-StringLiteral" name="prod-prov_n-StringLiteral"></a>[<span class="prodNo">59</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">StringLiteral</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-STRING_LITERAL">STRING_LITERAL</a></span></code></td>
@@ -636,7 +592,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-QNAME" name="term-prov_n-QNAME"></a>[<span class="prodNo">67</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-QNAME" name="term-prov_n-QNAME"></a>[<span class="prodNo">60</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">QNAME</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">(( <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_PREFIX">PN_PREFIX</a></span> ":" ))? <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_LOCAL">PN_LOCAL</a></span><br/>
@@ -646,7 +602,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PREFX" name="term-prov_n-PREFX"></a>[<span class="prodNo">68</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PREFX" name="term-prov_n-PREFX"></a>[<span class="prodNo">61</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PREFX</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_PREFIX">PN_PREFIX</a></span></code></td>
@@ -655,7 +611,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-DIGIT" name="term-prov_n-DIGIT"></a>[<span class="prodNo">69</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-DIGIT" name="term-prov_n-DIGIT"></a>[<span class="prodNo">62</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">DIGIT</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">[0-9]</code></td>
@@ -664,7 +620,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-ISODATETIME" name="term-prov_n-ISODATETIME"></a>[<span class="prodNo">70</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-ISODATETIME" name="term-prov_n-ISODATETIME"></a>[<span class="prodNo">63</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">ISODATETIME</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> "-" <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> "-" <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> "T" <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> (( "." <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> (( <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> (<span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span>)? ))? ))? (( "Z" | <span class="prod"><a class="grammarRef" href="#prod-prov_n-TIMEZONEOFFSET">TIMEZONEOFFSET</a></span> ))?</code></td>
@@ -673,7 +629,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-TIMEZONEOFFSET" name="term-prov_n-TIMEZONEOFFSET"></a>[<span class="prodNo">71</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-TIMEZONEOFFSET" name="term-prov_n-TIMEZONEOFFSET"></a>[<span class="prodNo">64</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">TIMEZONEOFFSET</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">( "+" | "-" ) <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span></code></td>
@@ -682,7 +638,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PREFIX" name="term-prov_n-PREFIX"></a>[<span class="prodNo">72</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PREFIX" name="term-prov_n-PREFIX"></a>[<span class="prodNo">65</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PREFIX</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"@prefix"</code></td>
@@ -691,7 +647,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-IRI_REF" name="term-prov_n-IRI_REF"></a>[<span class="prodNo">73</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-IRI_REF" name="term-prov_n-IRI_REF"></a>[<span class="prodNo">66</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">IRI_REF</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"&lt;" (( [^&lt;&gt;\"{}|^`\\] - [#0000- ] | <span class="prod"><a class="grammarRef" href="#prod-prov_n-UCHAR">UCHAR</a></span> ))* "&gt;"</code></td>
@@ -700,7 +656,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-INTLITERAL" name="term-prov_n-INTLITERAL"></a>[<span class="prodNo">74</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-INTLITERAL" name="term-prov_n-INTLITERAL"></a>[<span class="prodNo">67</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">INTLITERAL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">("-")? (<span class="prod"><a class="grammarRef" href="#prod-prov_n-DIGIT">DIGIT</a></span>)+</code></td>
@@ -709,7 +665,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-STRING_LITERAL" name="term-prov_n-STRING_LITERAL"></a>[<span class="prodNo">75</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-STRING_LITERAL" name="term-prov_n-STRING_LITERAL"></a>[<span class="prodNo">68</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">STRING_LITERAL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">'"' (( ( [^\"\\\n\r] ) | <span class="prod"><a class="grammarRef" href="#prod-prov_n-ECHAR">ECHAR</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n-UCHAR">UCHAR</a></span> ))* '"'</code></td>
@@ -718,7 +674,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-UCHAR" name="term-prov_n-UCHAR"></a>[<span class="prodNo">76</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-UCHAR" name="term-prov_n-UCHAR"></a>[<span class="prodNo">69</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">UCHAR</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">( "\\u" <span class="prod"><a class="grammarRef" href="#prod-prov_n-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-HEX">HEX</a></span> )<br/>
@@ -728,7 +684,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-ECHAR" name="term-prov_n-ECHAR"></a>[<span class="prodNo">77</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-ECHAR" name="term-prov_n-ECHAR"></a>[<span class="prodNo">70</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">ECHAR</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"\\" [tbnrf\\\"']</code></td>
@@ -737,7 +693,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-NIL" name="term-prov_n-NIL"></a>[<span class="prodNo">78</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-NIL" name="term-prov_n-NIL"></a>[<span class="prodNo">71</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">NIL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"(" (( <span class="prod"><a class="grammarRef" href="#prod-prov_n-WS">WS</a></span> ))* ")"</code></td>
@@ -746,7 +702,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-WS" name="term-prov_n-WS"></a>[<span class="prodNo">79</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-WS" name="term-prov_n-WS"></a>[<span class="prodNo">72</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">WS</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">" "<br/>
@@ -758,7 +714,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-ANON" name="term-prov_n-ANON"></a>[<span class="prodNo">80</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-ANON" name="term-prov_n-ANON"></a>[<span class="prodNo">73</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">ANON</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"[" (( <span class="prod"><a class="grammarRef" href="#prod-prov_n-WS">WS</a></span> ))* "]"</code></td>
@@ -767,7 +723,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PN_CHARS_BASE" name="term-prov_n-PN_CHARS_BASE"></a>[<span class="prodNo">81</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_CHARS_BASE" name="term-prov_n-PN_CHARS_BASE"></a>[<span class="prodNo">74</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_CHARS_BASE</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">[A-Z]<br/>
@@ -789,7 +745,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PN_CHARS_U" name="term-prov_n-PN_CHARS_U"></a>[<span class="prodNo">82</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_CHARS_U" name="term-prov_n-PN_CHARS_U"></a>[<span class="prodNo">75</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_CHARS_U</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS_BASE">PN_CHARS_BASE</a></span><br/>
@@ -799,7 +755,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PN_CHARS" name="term-prov_n-PN_CHARS"></a>[<span class="prodNo">83</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_CHARS" name="term-prov_n-PN_CHARS"></a>[<span class="prodNo">76</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_CHARS</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS_U">PN_CHARS_U</a></span><br/>
@@ -813,7 +769,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PN_PREFIX" name="term-prov_n-PN_PREFIX"></a>[<span class="prodNo">84</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_PREFIX" name="term-prov_n-PN_PREFIX"></a>[<span class="prodNo">77</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_PREFIX</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS_BASE">PN_CHARS_BASE</a></span> (( (( <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS">PN_CHARS</a></span> | "." ))* <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS">PN_CHARS</a></span> ))?</code></td>
@@ -822,7 +778,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PN_LOCAL" name="term-prov_n-PN_LOCAL"></a>[<span class="prodNo">85</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_LOCAL" name="term-prov_n-PN_LOCAL"></a>[<span class="prodNo">78</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_LOCAL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">( <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS_U">PN_CHARS_U</a></span> | [0-9] | <span class="prod"><a class="grammarRef" href="#prod-prov_n-PLX">PLX</a></span> ) (( (( <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS">PN_CHARS</a></span> | "." | <span class="prod"><a class="grammarRef" href="#prod-prov_n-PLX">PLX</a></span> ))* ( <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_CHARS">PN_CHARS</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n-PLX">PLX</a></span> ) ))?</code></td>
@@ -831,7 +787,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PLX" name="term-prov_n-PLX"></a>[<span class="prodNo">86</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PLX" name="term-prov_n-PLX"></a>[<span class="prodNo">79</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PLX</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n-PERCENT">PERCENT</a></span><br/>
@@ -841,7 +797,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PERCENT" name="term-prov_n-PERCENT"></a>[<span class="prodNo">87</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PERCENT" name="term-prov_n-PERCENT"></a>[<span class="prodNo">80</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PERCENT</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"%" <span class="prod"><a class="grammarRef" href="#prod-prov_n-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-HEX">HEX</a></span></code></td>
@@ -850,7 +806,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-HEX" name="term-prov_n-HEX"></a>[<span class="prodNo">88</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-HEX" name="term-prov_n-HEX"></a>[<span class="prodNo">81</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">HEX</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">[0-9]<br/>
@@ -861,7 +817,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PN_LOCAL_ESC" name="term-prov_n-PN_LOCAL_ESC"></a>[<span class="prodNo">89</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_LOCAL_ESC" name="term-prov_n-PN_LOCAL_ESC"></a>[<span class="prodNo">82</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_LOCAL_ESC</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"\\" ( "_" | "~" | "." | "-" | "!" | "$" | "&amp;" | "'" | "(" | ")" | "*" | "+" | "," | ";" | "=" | ":" | "/" | "?" | "#" | "@" | "%" )</code></td>
@@ -870,7 +826,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PASSED_TOKENS" name="term-prov_n-PASSED_TOKENS"></a>[<span class="prodNo">90</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PASSED_TOKENS" name="term-prov_n-PASSED_TOKENS"></a>[<span class="prodNo">83</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production directive">PASSED TOKENS</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">([ \t\r\n])+<br/>
--- a/model/grammar/yack/sample2.in	Thu May 10 10:48:22 2012 +0100
+++ b/model/grammar/yack/sample2.in	Thu May 10 13:07:21 2012 +0100
@@ -7,5 +7,61 @@
           activity(ex:a10)
           activity(ex:a10, [prov:type="createFile"])
 
+          wasGeneratedBy(-; ex:e1, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
+          wasGeneratedBy(-; ex:e1, ex:a1, -)
+          wasGeneratedBy(-; ex:e1, [ex:param1="a", ex:param2="b"])
+
+          wasStartedBy(s1; ex:a1, ex:e1, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
+          wasStartedBy(s1; ex:a1, ex:e1, -, [ex:param1="a", ex:param2="b"])
+          wasStartedBy(s1; ex:a1, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
+          wasStartedBy(s1; ex:a1, -, -, [ex:param1="a", ex:param2="b"])
+          wasStartedBy(s1; ex:a1, [ex:param1="a", ex:param2="b"])
+
+          wasStartedBy(s1; ex:a1, ex:e1, 2001-10-26T21:32:52)
+          wasStartedBy(s1; ex:a1, ex:e1, -)
+          wasStartedBy(s1; ex:a1, -, 2001-10-26T21:32:52)
+          wasStartedBy(s1; ex:a1, -, -)
+          wasStartedBy(s1; ex:a1)
+
+          wasStartedBy( ex:a1, ex:e1, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
+          wasStartedBy( ex:a1, ex:e1, -, [ex:param1="a", ex:param2="b"])
+          wasStartedBy( ex:a1, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
+          wasStartedBy( ex:a1, -, -, [ex:param1="a", ex:param2="b"])
+          wasStartedBy( ex:a1, [ex:param1="a", ex:param2="b"])
+
+
+          wasStartedBy( ex:a1, ex:e1, 2001-10-26T21:32:52)
+          wasStartedBy( ex:a1, ex:e1, -)
+          wasStartedBy( ex:a1, -, 2001-10-26T21:32:52)
+          wasStartedBy( ex:a1, -, -)
+          wasStartedBy( ex:a1)
+
+
+          wasEndedBy(s1; ex:a1, ex:e1, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
+          wasEndedBy(s1; ex:a1, ex:e1, -, [ex:param1="a", ex:param2="b"])
+          wasEndedBy(s1; ex:a1, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
+          wasEndedBy(s1; ex:a1, -, -, [ex:param1="a", ex:param2="b"])
+          wasEndedBy(s1; ex:a1, [ex:param1="a", ex:param2="b"])
+
+          wasEndedBy(s1; ex:a1, ex:e1, 2001-10-26T21:32:52)
+          wasEndedBy(s1; ex:a1, ex:e1, -)
+          wasEndedBy(s1; ex:a1, -, 2001-10-26T21:32:52)
+          wasEndedBy(s1; ex:a1, -, -)
+          wasEndedBy(s1; ex:a1)
+
+          wasEndedBy( ex:a1, ex:e1, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
+          wasEndedBy( ex:a1, ex:e1, -, [ex:param1="a", ex:param2="b"])
+          wasEndedBy( ex:a1, -, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
+          wasEndedBy( ex:a1, -, -, [ex:param1="a", ex:param2="b"])
+          wasEndedBy( ex:a1, [ex:param1="a", ex:param2="b"])
+
+
+          wasEndedBy( ex:a1, ex:e1, 2001-10-26T21:32:52)
+          wasEndedBy( ex:a1, ex:e1, -)
+          wasEndedBy( ex:a1, -, 2001-10-26T21:32:52)
+          wasEndedBy( ex:a1, -, -)
+          wasEndedBy( ex:a1)
+
+
 
 endBundle
\ No newline at end of file