updated yack grammar
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Thu, 10 May 2012 07:51:59 +0100
changeset 2743 53f3877f60d0
parent 2742 b93ae20cce4e
child 2744 ebb01b8064f5
updated yack grammar
model/grammar/yack/prov-n.bnf
model/grammar/yack/prov_n.html
model/grammar/yack/sample.in
--- a/model/grammar/yack/prov-n.bnf	Wed May 09 23:20:21 2012 +0100
+++ b/model/grammar/yack/prov-n.bnf	Thu May 10 07:51:59 2012 +0100
@@ -14,7 +14,11 @@
 [10] expression::=
         (   
 
-           entityExpression | activityExpression | generationExpression
+           entityExpression | activityExpression | generationExpression  | usageExpression
+         | startExpression | endExpression | invalidationExpression | communicationExpression | startByActivityExpression
+        | agentExpression |  associationExpression | attributionExpression | responsibilityExpression
+        | derivationExpression | tracedToExpression | hadOriginalSourceExpression | quotationExpression | revisionExpression
+        | alternateExpression | specializationExpression
         )
 
 
@@ -25,6 +29,56 @@
 generationExpression::=	"wasGeneratedBy" "(" ((identifier | "-") ";")? identifier ("," ((identifier) | "-") "," ( timeZZ | "-" ))? optionalAttributeValuePairs ")"
 
 
+usageExpression::=	"used" "(" ((identifier | "-") ";")?  identifier "," identifier ("," ( timeZZ | "-" ))? optionalAttributeValuePairs ")"
+
+startExpression::=	"wasStartedBy" "(" ((identifier | "-") ";")? identifier ("," ((identifier) | "-") "," ( timeZZ | "-" ))? optionalAttributeValuePairs ")"
+
+
+endExpression::=	"wasEndedBy" "(" ((identifier | "-") ";")? identifier ("," ((identifier) | "-") "," ( timeZZ | "-" ))? optionalAttributeValuePairs ")"
+
+
+invalidationExpression::=	"wasInvalidatedBy" "(" ((identifier | "-") ";")? identifier ("," ((identifier) | "-") "," ( timeZZ | "-" ))? optionalAttributeValuePairs ")"
+
+
+
+communicationExpression::=	"wasInformedBy" "(" ((identifier | "-") ";")? identifier "," identifier optionalAttributeValuePairs ")"
+
+
+startByActivityExpression::=	"wasStartedByActivity" "(" ((identifier | "-") ";")? identifier "," identifier optionalAttributeValuePairs ")"
+
+
+agentExpression::=	"agent" "(" identifier optionalAttributeValuePairs	")" 
+
+attributionExpression::=	"wasAttributedTo" "("  ((identifier | "-") ";")? identifier "," identifier optionalAttributeValuePairs ")"
+
+associationExpression::=	"wasAssociatedWith" "("  ((identifier | "-") ";")? identifier "," (identifier | "-") ("," (identifier | "-"))? optionalAttributeValuePairs ")"
+
+
+responsibilityExpression::=	"actedOnBehalfOf" "("   ((identifier | "-") ";")? identifier "," identifier (","  (identifier | "-"))? optionalAttributeValuePairs ")"
+
+
+
+derivationExpression::=	"wasDerivedFrom" "(" ((identifier | "-") ";")? identifier "," identifier ("," (identifier | "-") "," (identifier  | "-") "," (identifier | "-") )?	optionalAttributeValuePairs ")"
+
+
+
+revisionExpression::=	"wasRevisionOf" "("  ((identifier | "-") ";")? identifier "," identifier ("," (identifier | "-") "," (identifier  | "-") "," (identifier | "-") )?	optionalAttributeValuePairs ")"
+
+
+
+quotationExpression::=	"wasQuotedFrom" "("  ((identifier | "-") ";")? identifier "," identifier ("," (identifier | "-") "," (identifier  | "-") "," (identifier | "-") )?	optionalAttributeValuePairs ")"
+
+
+hadOriginalSourceExpression::=	"hadOriginalSource" "("  ((identifier | "-") ";")? identifier "," identifier ("," (identifier | "-") "," (identifier  | "-") "," (identifier | "-") )?	optionalAttributeValuePairs ")"
+
+
+tracedToExpression::=	"tracedTo" "("  ((identifier | "-") ";")? identifier "," identifier optionalAttributeValuePairs ')'
+
+alternateExpression::=	"alternateOf" "("  identifier "," identifier ")"
+
+specializationExpression::=	"specializationOf" "("  identifier "," identifier ")"
+
+
 optionalAttributeValuePairs::= ("," "[" attributeValuePairs "]")?
 
 identifier ::=QNAME
--- a/model/grammar/yack/prov_n.html	Wed May 09 23:20:21 2012 +0100
+++ b/model/grammar/yack/prov_n.html	Thu May 10 07:51:59 2012 +0100
@@ -140,7 +140,24 @@
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-entityExpression">entityExpression</a></span>
     | <span class="prod"><a class="grammarRef" href="#prod-prov_n-activityExpression">activityExpression</a></span>
-    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-generationExpression">generationExpression</a></span></code></td>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-generationExpression">generationExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-usageExpression">usageExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-startExpression">startExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-endExpression">endExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-invalidationExpression">invalidationExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-communicationExpression">communicationExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-startByActivityExpression">startByActivityExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-agentExpression">agentExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-associationExpression">associationExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-attributionExpression">attributionExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-responsibilityExpression">responsibilityExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-derivationExpression">derivationExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-tracedToExpression">tracedToExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-hadOriginalSourceExpression">hadOriginalSourceExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-quotationExpression">quotationExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-revisionExpression">revisionExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-alternateExpression">alternateExpression</a></span>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-specializationExpression">specializationExpression</a></span></code></td>
 </tr>
 </tbody>
 
@@ -250,17 +267,227 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-optionalAttributeValuePairs" name="prod-prov_n-optionalAttributeValuePairs"></a>[<span class="prodNo">27</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">optionalAttributeValuePairs</code></td>
+<td><a id="prod-prov_n-usageExpression" name="prod-prov_n-usageExpression"></a>[<span class="prodNo">27</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">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen22">gen22</a></span></code></td>
+<td><code class="content">    "used" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen16">gen16</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-gen26">gen26</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-gen21" name="prod-prov_n-gen21"></a>[<span class="prodNo">28</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen21</code></td>
+<td><a id="prod-prov_n-gen25" name="prod-prov_n-gen25"></a>[<span class="prodNo">28</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-gen10">gen10</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">29</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-gen25">gen25</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">30</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-gen16">gen16</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-gen20">gen20</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">31</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-gen16">gen16</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-gen20">gen20</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-invalidationExpression" name="prod-prov_n-invalidationExpression"></a>[<span class="prodNo">32</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">    "wasInvalidatedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen16">gen16</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-gen20">gen20</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-communicationExpression" name="prod-prov_n-communicationExpression"></a>[<span class="prodNo">33</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">    "wasInformedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen16">gen16</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-startByActivityExpression" name="prod-prov_n-startByActivityExpression"></a>[<span class="prodNo">34</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-gen16">gen16</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">35</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>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-attributionExpression" name="prod-prov_n-attributionExpression"></a>[<span class="prodNo">36</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-gen16">gen16</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">37</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-gen16">gen16</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-gen14">gen14</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen63">gen63</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-gen62" name="prod-prov_n-gen62"></a>[<span class="prodNo">38</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen62</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>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-gen63" name="prod-prov_n-gen63"></a>[<span class="prodNo">39</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen63</code></td>
+<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
+<td><code class="content">    
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen62">gen62</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">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">    "actedOnBehalfOf" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen16">gen16</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-gen63">gen63</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">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">    "wasDerivedFrom" "(" <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen16">gen16</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-gen77">gen77</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-gen76" name="prod-prov_n-gen76"></a>[<span class="prodNo">42</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen76</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> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen14">gen14</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen14">gen14</a></span></code></td>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-gen77" name="prod-prov_n-gen77"></a>[<span class="prodNo">43</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen77</code></td>
+<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
+<td><code class="content">    
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen76">gen76</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">44</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-gen16">gen16</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-gen77">gen77</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-quotationExpression" name="prod-prov_n-quotationExpression"></a>[<span class="prodNo">45</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-gen16">gen16</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-gen77">gen77</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-hadOriginalSourceExpression" name="prod-prov_n-hadOriginalSourceExpression"></a>[<span class="prodNo">46</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-gen16">gen16</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-gen77">gen77</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-tracedToExpression" name="prod-prov_n-tracedToExpression"></a>[<span class="prodNo">47</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-gen16">gen16</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">48</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>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-specializationExpression" name="prod-prov_n-specializationExpression"></a>[<span class="prodNo">49</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>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-optionalAttributeValuePairs" name="prod-prov_n-optionalAttributeValuePairs"></a>[<span class="prodNo">50</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-gen106">gen106</a></span></code></td>
+</tr>
+</tbody>
+
+<tbody class="prod">
+<tr valign="baseline">
+<td><a id="prod-prov_n-gen105" name="prod-prov_n-gen105"></a>[<span class="prodNo">51</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen105</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>
@@ -268,17 +495,17 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen22" name="prod-prov_n-gen22"></a>[<span class="prodNo">29</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen22</code></td>
+<td><a id="prod-prov_n-gen106" name="prod-prov_n-gen106"></a>[<span class="prodNo">52</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen106</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    
-    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen21">gen21</a></span></code></td>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen105">gen105</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">30</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-identifier" name="prod-prov_n-identifier"></a>[<span class="prodNo">53</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>
@@ -287,7 +514,7 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-attribute" name="prod-prov_n-attribute"></a>[<span class="prodNo">31</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-attribute" name="prod-prov_n-attribute"></a>[<span class="prodNo">54</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>
@@ -296,17 +523,17 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-attributeValuePairs" name="prod-prov_n-attributeValuePairs"></a>[<span class="prodNo">32</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-attributeValuePairs" name="prod-prov_n-attributeValuePairs"></a>[<span class="prodNo">55</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-gen25">gen25</a></span></code></td>
+<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen109">gen109</a></span></code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen23" name="prod-prov_n-gen23"></a>[<span class="prodNo">33</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen23</code></td>
+<td><a id="prod-prov_n-gen107" name="prod-prov_n-gen107"></a>[<span class="prodNo">56</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen107</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>
@@ -314,27 +541,27 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen24" name="prod-prov_n-gen24"></a>[<span class="prodNo">34</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen24</code></td>
+<td><a id="prod-prov_n-gen108" name="prod-prov_n-gen108"></a>[<span class="prodNo">57</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen108</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    
-    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen24">gen24</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen23">gen23</a></span></code></td>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen108">gen108</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen107">gen107</a></span></code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen25" name="prod-prov_n-gen25"></a>[<span class="prodNo">35</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen25</code></td>
+<td><a id="prod-prov_n-gen109" name="prod-prov_n-gen109"></a>[<span class="prodNo">58</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen109</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-gen24">gen24</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-gen108">gen108</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">36</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-attributeValuePair" name="prod-prov_n-attributeValuePair"></a>[<span class="prodNo">59</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>
@@ -343,7 +570,7 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-timeZZ" name="prod-prov_n-timeZZ"></a>[<span class="prodNo">37</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-timeZZ" name="prod-prov_n-timeZZ"></a>[<span class="prodNo">60</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>
@@ -352,7 +579,7 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-literal" name="prod-prov_n-literal"></a>[<span class="prodNo">38</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-literal" name="prod-prov_n-literal"></a>[<span class="prodNo">61</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-RDFLiteral">RDFLiteral</a></span>
@@ -362,17 +589,17 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-RDFLiteral" name="prod-prov_n-RDFLiteral"></a>[<span class="prodNo">39</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-RDFLiteral" name="prod-prov_n-RDFLiteral"></a>[<span class="prodNo">62</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">RDFLiteral</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">String</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen27">gen27</a></span></code></td>
+<td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-String">String</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen111">gen111</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">40</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen26</code></td>
+<td><a id="prod-prov_n-gen110" name="prod-prov_n-gen110"></a>[<span class="prodNo">63</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen110</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    "^^" <span class="prod"><a class="grammarRef" href="#prod-prov_n-IRIref">IRIref</a></span></code></td>
 </tr>
@@ -380,17 +607,17 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-gen27" name="prod-prov_n-gen27"></a>[<span class="prodNo">41</span>]&nbsp;&nbsp;&nbsp;</td>
-<td><code class="production prod">gen27</code></td>
+<td><a id="prod-prov_n-gen111" name="prod-prov_n-gen111"></a>[<span class="prodNo">64</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><code class="production prod">gen111</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>
+    | <span class="prod"><a class="grammarRef" href="#prod-prov_n-gen110">gen110</a></span></code></td>
 </tr>
 </tbody>
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-BooleanLiteral" name="prod-prov_n-BooleanLiteral"></a>[<span class="prodNo">42</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-BooleanLiteral" name="prod-prov_n-BooleanLiteral"></a>[<span class="prodNo">65</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">BooleanLiteral</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    "true"
@@ -400,7 +627,7 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-String" name="prod-prov_n-String"></a>[<span class="prodNo">43</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-String" name="prod-prov_n-String"></a>[<span class="prodNo">66</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">String</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>
@@ -409,7 +636,7 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-IRIref" name="prod-prov_n-IRIref"></a>[<span class="prodNo">44</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-IRIref" name="prod-prov_n-IRIref"></a>[<span class="prodNo">67</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">IRIref</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>
@@ -419,7 +646,7 @@
 
 <tbody class="prod">
 <tr valign="baseline">
-<td><a id="prod-prov_n-PrefixedName" name="prod-prov_n-PrefixedName"></a>[<span class="prodNo">45</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="prod-prov_n-PrefixedName" name="prod-prov_n-PrefixedName"></a>[<span class="prodNo">68</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production prod">PrefixedName</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">    <span class="prod"><a class="grammarRef" href="#prod-prov_n-PNAME_LN">PNAME_LN</a></span>
@@ -429,7 +656,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-QNAME" name="term-prov_n-QNAME"></a>[<span class="prodNo">46</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-QNAME" name="term-prov_n-QNAME"></a>[<span class="prodNo">69</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/>
@@ -439,7 +666,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PREFX" name="term-prov_n-PREFX"></a>[<span class="prodNo">47</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PREFX" name="term-prov_n-PREFX"></a>[<span class="prodNo">70</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>
@@ -448,7 +675,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-DIGIT" name="term-prov_n-DIGIT"></a>[<span class="prodNo">48</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-DIGIT" name="term-prov_n-DIGIT"></a>[<span class="prodNo">71</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>
@@ -457,7 +684,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-ISODATETIME" name="term-prov_n-ISODATETIME"></a>[<span class="prodNo">49</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-ISODATETIME" name="term-prov_n-ISODATETIME"></a>[<span class="prodNo">72</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>
@@ -466,7 +693,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-TIMEZONEOFFSET" name="term-prov_n-TIMEZONEOFFSET"></a>[<span class="prodNo">50</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-TIMEZONEOFFSET" name="term-prov_n-TIMEZONEOFFSET"></a>[<span class="prodNo">73</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>
@@ -475,7 +702,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PREFIX" name="term-prov_n-PREFIX"></a>[<span class="prodNo">51</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PREFIX" name="term-prov_n-PREFIX"></a>[<span class="prodNo">74</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>
@@ -484,7 +711,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">52</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-IRI_REF" name="term-prov_n-IRI_REF"></a>[<span class="prodNo">75</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>
@@ -493,7 +720,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PNAME_NS" name="term-prov_n-PNAME_NS"></a>[<span class="prodNo">53</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PNAME_NS" name="term-prov_n-PNAME_NS"></a>[<span class="prodNo">76</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PNAME_NS</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>
@@ -502,7 +729,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PNAME_LN" name="term-prov_n-PNAME_LN"></a>[<span class="prodNo">54</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PNAME_LN" name="term-prov_n-PNAME_LN"></a>[<span class="prodNo">77</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PNAME_LN</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-PNAME_NS">PNAME_NS</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n-PN_LOCAL">PN_LOCAL</a></span></code></td>
@@ -511,7 +738,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">55</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-STRING_LITERAL" name="term-prov_n-STRING_LITERAL"></a>[<span class="prodNo">78</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>
@@ -520,7 +747,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-UCHAR" name="term-prov_n-UCHAR"></a>[<span class="prodNo">56</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-UCHAR" name="term-prov_n-UCHAR"></a>[<span class="prodNo">79</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/>
@@ -530,7 +757,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-ECHAR" name="term-prov_n-ECHAR"></a>[<span class="prodNo">57</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-ECHAR" name="term-prov_n-ECHAR"></a>[<span class="prodNo">80</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>
@@ -539,7 +766,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-NIL" name="term-prov_n-NIL"></a>[<span class="prodNo">58</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-NIL" name="term-prov_n-NIL"></a>[<span class="prodNo">81</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>
@@ -548,7 +775,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-WS" name="term-prov_n-WS"></a>[<span class="prodNo">59</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-WS" name="term-prov_n-WS"></a>[<span class="prodNo">82</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/>
@@ -560,7 +787,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-ANON" name="term-prov_n-ANON"></a>[<span class="prodNo">60</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-ANON" name="term-prov_n-ANON"></a>[<span class="prodNo">83</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>
@@ -569,7 +796,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">61</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">84</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/>
@@ -591,7 +818,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">62</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">85</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/>
@@ -601,7 +828,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">63</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_CHARS" name="term-prov_n-PN_CHARS"></a>[<span class="prodNo">86</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/>
@@ -615,7 +842,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">64</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_PREFIX" name="term-prov_n-PN_PREFIX"></a>[<span class="prodNo">87</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>
@@ -624,7 +851,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">65</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PN_LOCAL" name="term-prov_n-PN_LOCAL"></a>[<span class="prodNo">88</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>
@@ -633,7 +860,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PLX" name="term-prov_n-PLX"></a>[<span class="prodNo">66</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PLX" name="term-prov_n-PLX"></a>[<span class="prodNo">89</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/>
@@ -643,7 +870,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-PERCENT" name="term-prov_n-PERCENT"></a>[<span class="prodNo">67</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PERCENT" name="term-prov_n-PERCENT"></a>[<span class="prodNo">90</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>
@@ -652,7 +879,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n-HEX" name="term-prov_n-HEX"></a>[<span class="prodNo">68</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-HEX" name="term-prov_n-HEX"></a>[<span class="prodNo">91</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/>
@@ -663,7 +890,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">69</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">92</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>
@@ -672,7 +899,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">70</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n-PASSED_TOKENS" name="term-prov_n-PASSED_TOKENS"></a>[<span class="prodNo">93</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/sample.in	Wed May 09 23:20:21 2012 +0100
+++ b/model/grammar/yack/sample.in	Thu May 10 07:51:59 2012 +0100
@@ -8,6 +8,12 @@
 
           wasGeneratedBy(g1; ex:e1, ex:a1, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
 
+          used(u; ex:a1, ex:e1, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
+
+          wasStartedBy(s1; ex:a1, ex:e1, 2001-10-26T21:32:52, [ex:param1="a", ex:param2="b"])
+
+          alternateOf(ex:e1, ex:e2)
+          specializationOf(ex:e1, ex:e2)
 
 endBundle