added auto generated productiosn
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Mon, 14 May 2012 11:03:05 +0100
changeset 2779 e4878f551e69
parent 2778 d594ef16a80f
child 2780 3401d63505de
added auto generated productiosn
model/grammar/Makefile
model/grammar/ll.js
model/prov-n.html
--- a/model/grammar/Makefile	Fri May 11 16:28:23 2012 +0100
+++ b/model/grammar/Makefile	Mon May 14 11:03:05 2012 +0100
@@ -24,9 +24,19 @@
 do.ll.html:
 	echo "<!DOCTYPE table [<!ENTITY nbsp   \"&#160;\">]> " > ll.html
 	cat yack/prov-n-LL.bnf.html >> ll.html
-	xpath ll.html .//a[@id]/../../..
-	xpath ll.html .//a/@id
-	xpath ll.html .//a[@id == "term-prov_n_LL-PASSED_TOKENS"]/@id
+#	xpath ll.html .//a[@id]/../../..
+#	xpath ll.html .//a/@id
+#	xpath ll.html .//a[@id == "term-prov_n_LL-PASSED_TOKENS"]/@id
+
+OUT.JS=ll.js
+IN.HTML=ll.html
+IN2.HTML=tmp/ll2.html
+
+do.ll.js: do.ll.html
+	@echo "grammar_string= " > $(OUT.JS)
+	@cat $(IN.HTML) | sed -e "s/\d039/\\\'/g" | sed -e "s/prod-prov_n_LL/prod/g"  | sed -e "s/term-prov_n_LL/prod/g" > $(IN2.HTML)
+	@cat $(IN2.HTML) | awk '{ print "'\''"  $$0 " '\'' + " }' >> $(OUT.JS)
+	@echo "' ' ;" >> $(OUT.JS)
 
 
 run1:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/model/grammar/ll.js	Mon May 14 11:03:05 2012 +0100
@@ -0,0 +1,605 @@
+grammar_string= 
+'<!DOCTYPE table [<!ENTITY nbsp   "&#160;">]>  ' + 
+'<table border="0"> ' + 
+'<tbody><tr><td colspan="4" class="grammarSection"><h3><a id="productions" name="productions">Productions</a>:</h3></td></tr></tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-bundle" name="prod-bundle"></a>[<span class="prodNo">1</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="production prod">bundle</code></td> ' + 
+'<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="content">"bundle" (<span class="prod"><a class="grammarRef" href="#prod-namespaceDeclarations">namespaceDeclarations</a></span>)? (<span class="prod"><a class="grammarRef" href="#prod-expression">expression</a></span>)* (( <span class="prod"><a class="grammarRef" href="#prod-namedBundle">namedBundle</a></span> (<span class="prod"><a class="grammarRef" href="#prod-namedBundle">namedBundle</a></span>)* ))? "endBundle"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-namedBundle" name="prod-namedBundle"></a>[<span class="prodNo">2</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="production prod">namedBundle</code></td> ' + 
+'<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="content">"bundle" <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> (<span class="prod"><a class="grammarRef" href="#prod-namespaceDeclarations">namespaceDeclarations</a></span>)? (<span class="prod"><a class="grammarRef" href="#prod-expression">expression</a></span>)* "endBundle"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-namespaceDeclarations" name="prod-namespaceDeclarations"></a>[<span class="prodNo">3</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="production prod">namespaceDeclarations</code></td> ' + 
+'<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="content">( <span class="prod"><a class="grammarRef" href="#prod-defaultNamespaceDeclaration">defaultNamespaceDeclaration</a></span> | <span class="prod"><a class="grammarRef" href="#prod-namespaceDeclaration">namespaceDeclaration</a></span> ) (<span class="prod"><a class="grammarRef" href="#prod-namespaceDeclaration">namespaceDeclaration</a></span>)*</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-namespaceDeclaration" name="prod-namespaceDeclaration"></a>[<span class="prodNo">4</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="production prod">namespaceDeclaration</code></td> ' + 
+'<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="content">"prefix" <span class="prod"><a class="grammarRef" href="#prod-QUALNAME">QUALNAME</a></span> <span class="prod"><a class="grammarRef" href="#prod-namespace">namespace</a></span></code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-namespace" name="prod-namespace"></a>[<span class="prodNo">5</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="production prod">namespace</code></td> ' + 
+'<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-IRI_REF">IRI_REF</a></span></code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-defaultNamespaceDeclaration" name="prod-defaultNamespaceDeclaration"></a>[<span class="prodNo">6</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="production prod">defaultNamespaceDeclaration</code></td> ' + 
+'<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="content">"default" <span class="prod"><a class="grammarRef" href="#prod-IRI_REF">IRI_REF</a></span></code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-expression" name="prod-expression"></a>[<span class="prodNo">7</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="production prod">expression</code></td> ' + 
+'<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="content">( <span class="prod"><a class="grammarRef" href="#prod-entityExpression">entityExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-activityExpression">activityExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-generationExpression">generationExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-usageExpression">usageExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-startExpression">startExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-endExpression">endExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-invalidationExpression">invalidationExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-communicationExpression">communicationExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-agentExpression">agentExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-associationExpression">associationExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-attributionExpression">attributionExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-responsibilityExpression">responsibilityExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-derivationExpression">derivationExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-tracedToExpression">tracedToExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-hadOriginalSourceExpression">hadOriginalSourceExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-quotationExpression">quotationExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-revisionExpression">revisionExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-alternateExpression">alternateExpression</a></span> | <span class="prod"><a class="grammarRef" href="#prod-specializationExpression">specializationExpression</a></span> )</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-entityExpression" name="prod-entityExpression"></a>[<span class="prodNo">8</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="production prod">entityExpression</code></td> ' + 
+'<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="content">"entity" "(" <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-activityExpression" name="prod-activityExpression"></a>[<span class="prodNo">9</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-identifier">identifier</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-timeOrMarker">timeOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-timeOrMarker">timeOrMarker</a></span> ))? <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-generationExpression" name="prod-generationExpression"></a>[<span class="prodNo">10</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">"wasGeneratedBy" "(" <span class="prod"><a class="grammarRef" href="#prod-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-timeOrMarker">timeOrMarker</a></span> ))? <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-timeOrMarker" name="prod-timeOrMarker"></a>[<span class="prodNo">11</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-timeZZ">timeZZ</a></span> | "-" )</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-identifierOrMarker" name="prod-identifierOrMarker"></a>[<span class="prodNo">12</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-identifier">identifier</a></span> | "-" )</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-optionalIdentifier" name="prod-optionalIdentifier"></a>[<span class="prodNo">13</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-identifierOrMarker">identifierOrMarker</a></span> ";" ))?</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-usageExpression" name="prod-usageExpression"></a>[<span class="prodNo">14</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-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-timeOrMarker">timeOrMarker</a></span> ))? <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-startExpression" name="prod-startExpression"></a>[<span class="prodNo">15</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-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-timeOrMarker">timeOrMarker</a></span> ))? <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-endExpression" name="prod-endExpression"></a>[<span class="prodNo">16</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-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-timeOrMarker">timeOrMarker</a></span> ))? <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-invalidationExpression" name="prod-invalidationExpression"></a>[<span class="prodNo">17</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-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-timeOrMarker">timeOrMarker</a></span> ))? <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-communicationExpression" name="prod-communicationExpression"></a>[<span class="prodNo">18</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-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-agentExpression" name="prod-agentExpression"></a>[<span class="prodNo">19</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-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-attributionExpression" name="prod-attributionExpression"></a>[<span class="prodNo">20</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-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-associationExpression" name="prod-associationExpression"></a>[<span class="prodNo">21</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-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> ))? <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-responsibilityExpression" name="prod-responsibilityExpression"></a>[<span class="prodNo">22</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-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> ))? <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-derivationExpression" name="prod-derivationExpression"></a>[<span class="prodNo">23</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-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> ))? <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-revisionExpression" name="prod-revisionExpression"></a>[<span class="prodNo">24</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-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> ))? <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-quotationExpression" name="prod-quotationExpression"></a>[<span class="prodNo">25</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-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> ))? <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-hadOriginalSourceExpression" name="prod-hadOriginalSourceExpression"></a>[<span class="prodNo">26</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-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifierOrMarker">identifierOrMarker</a></span> ))? <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-tracedToExpression" name="prod-tracedToExpression"></a>[<span class="prodNo">27</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-optionalIdentifier">optionalIdentifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> <span class="prod"><a class="grammarRef" href="#prod-optionalAttributeValuePairs">optionalAttributeValuePairs</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-alternateExpression" name="prod-alternateExpression"></a>[<span class="prodNo">28</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-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-specializationExpression" name="prod-specializationExpression"></a>[<span class="prodNo">29</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-identifier">identifier</a></span> "," <span class="prod"><a class="grammarRef" href="#prod-identifier">identifier</a></span> ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-optionalAttributeValuePairs" name="prod-optionalAttributeValuePairs"></a>[<span class="prodNo">30</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-attributeValuePairs">attributeValuePairs</a></span> "]" ))?</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-identifier" name="prod-identifier"></a>[<span class="prodNo">31</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-QUALNAME">QUALNAME</a></span></code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-attribute" name="prod-attribute"></a>[<span class="prodNo">32</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-QUALNAME">QUALNAME</a></span></code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-attributeValuePairs" name="prod-attributeValuePairs"></a>[<span class="prodNo">33</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-attributeValuePair">attributeValuePair</a></span> (( "," <span class="prod"><a class="grammarRef" href="#prod-attributeValuePair">attributeValuePair</a></span> ))* )</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-attributeValuePair" name="prod-attributeValuePair"></a>[<span class="prodNo">34</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-attribute">attribute</a></span> "=" <span class="prod"><a class="grammarRef" href="#prod-literal">literal</a></span></code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-timeZZ" name="prod-timeZZ"></a>[<span class="prodNo">35</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-ISODATETIME">ISODATETIME</a></span></code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-literal" name="prod-literal"></a>[<span class="prodNo">36</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-StringLiteral">StringLiteral</a></span><br/> ' + 
+'| <span class="prod"><a class="grammarRef" href="#prod-QUALNAME_LITERAL">QUALNAME_LITERAL</a></span><br/> ' + 
+'| <span class="prod"><a class="grammarRef" href="#prod-INTLITERAL">INTLITERAL</a></span><br/> ' + 
+'| <span class="prod"><a class="grammarRef" href="#prod-StringLiteral">StringLiteral</a></span> "%%" <span class="prod"><a class="grammarRef" href="#prod-datatype">datatype</a></span></code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-datatype" name="prod-datatype"></a>[<span class="prodNo">37</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-IRI_REF">IRI_REF</a></span><br/> ' + 
+'| <span class="prod"><a class="grammarRef" href="#prod-QUALNAME">QUALNAME</a></span></code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="prod"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-StringLiteral" name="prod-StringLiteral"></a>[<span class="prodNo">38</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-STRING_LITERAL">STRING_LITERAL</a></span></code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-QUALNAME" name="prod-QUALNAME"></a>[<span class="prodNo">39</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td>&lt;<code class="production term">QUALNAME</code>&gt;</td> ' + 
+'<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="content">(( <span class="prod"><a class="grammarRef" href="#prod-PN_PREFIX">PN_PREFIX</a></span> ":" ))? <span class="prod"><a class="grammarRef" href="#prod-PN_LOCAL">PN_LOCAL</a></span><br/> ' + 
+'| <span class="prod"><a class="grammarRef" href="#prod-PN_PREFIX">PN_PREFIX</a></span> ":"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-PREFX" name="prod-PREFX"></a>[<span class="prodNo">40</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-PN_PREFIX">PN_PREFIX</a></span></code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-DIGIT" name="prod-DIGIT"></a>[<span class="prodNo">41</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> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-ISODATETIME" name="prod-ISODATETIME"></a>[<span class="prodNo">42</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-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> "-" <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> "-" <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> "T" <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> (( "." <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> (( <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> (<span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span>)? ))? ))? (( "Z" | <span class="prod"><a class="grammarRef" href="#prod-TIMEZONEOFFSET">TIMEZONEOFFSET</a></span> ))?</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-TIMEZONEOFFSET" name="prod-TIMEZONEOFFSET"></a>[<span class="prodNo">43</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-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-DIGIT">DIGIT</a></span></code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-IRI_REF" name="prod-IRI_REF"></a>[<span class="prodNo">44</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-UCHAR">UCHAR</a></span> ))* "&gt;"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-INTLITERAL" name="prod-INTLITERAL"></a>[<span class="prodNo">45</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-DIGIT">DIGIT</a></span>)+</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-STRING_LITERAL" name="prod-STRING_LITERAL"></a>[<span class="prodNo">46</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-ECHAR">ECHAR</a></span> | <span class="prod"><a class="grammarRef" href="#prod-UCHAR">UCHAR</a></span> ))* \'"\'</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-QUALNAME_LITERAL" name="prod-QUALNAME_LITERAL"></a>[<span class="prodNo">47</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td>&lt;<code class="production term">QUALNAME_LITERAL</code>&gt;</td> ' + 
+'<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="content">"\'" <span class="prod"><a class="grammarRef" href="#prod-QUALNAME">QUALNAME</a></span> "\'"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-UCHAR" name="prod-UCHAR"></a>[<span class="prodNo">48</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-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-HEX">HEX</a></span> )<br/> ' + 
+'| ( "\\U" <span class="prod"><a class="grammarRef" href="#prod-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-HEX">HEX</a></span> )</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-ECHAR" name="prod-ECHAR"></a>[<span class="prodNo">49</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> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-NIL" name="prod-NIL"></a>[<span class="prodNo">50</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-WS">WS</a></span> ))* ")"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-WS" name="prod-WS"></a>[<span class="prodNo">51</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/> ' + 
+'| "\t"<br/> ' + 
+'| "\r"<br/> ' + 
+'| "\n"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-ANON" name="prod-ANON"></a>[<span class="prodNo">52</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-WS">WS</a></span> ))* "]"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-PN_CHARS_BASE" name="prod-PN_CHARS_BASE"></a>[<span class="prodNo">53</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/> ' + 
+'| [a-z]<br/> ' + 
+'| [#00C0-#00D6]<br/> ' + 
+'| [#00D8-#00F6]<br/> ' + 
+'| [#00F8-#02FF]<br/> ' + 
+'| [#0370-#037D]<br/> ' + 
+'| [#037F-#1FFF]<br/> ' + 
+'| [#200C-#200D]<br/> ' + 
+'| [#2070-#218F]<br/> ' + 
+'| [#2C00-#2FEF]<br/> ' + 
+'| [#3001-#D7FF]<br/> ' + 
+'| [#F900-#FDCF]<br/> ' + 
+'| [#FDF0-#FFFD]<br/> ' + 
+'| [#10000-#EFFFF]</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-PN_CHARS_U" name="prod-PN_CHARS_U"></a>[<span class="prodNo">54</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-PN_CHARS_BASE">PN_CHARS_BASE</a></span><br/> ' + 
+'| "_"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-PN_CHARS" name="prod-PN_CHARS"></a>[<span class="prodNo">55</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-PN_CHARS_U">PN_CHARS_U</a></span><br/> ' + 
+'| "-"<br/> ' + 
+'| [0-9]<br/> ' + 
+'| <br/> ' + 
+'| [#0300-#036F]<br/> ' + 
+'| [#203F-#2040]</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-PN_PREFIX" name="prod-PN_PREFIX"></a>[<span class="prodNo">56</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-PN_CHARS_BASE">PN_CHARS_BASE</a></span> (( (( <span class="prod"><a class="grammarRef" href="#prod-PN_CHARS">PN_CHARS</a></span> | "." ))* <span class="prod"><a class="grammarRef" href="#prod-PN_CHARS">PN_CHARS</a></span> ))?</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-PN_LOCAL" name="prod-PN_LOCAL"></a>[<span class="prodNo">57</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-PN_CHARS_U">PN_CHARS_U</a></span> | [0-9] | <span class="prod"><a class="grammarRef" href="#prod-PN_CHARS_OTHERS">PN_CHARS_OTHERS</a></span> ) (( (( <span class="prod"><a class="grammarRef" href="#prod-PN_CHARS">PN_CHARS</a></span> | "." | <span class="prod"><a class="grammarRef" href="#prod-PN_CHARS_OTHERS">PN_CHARS_OTHERS</a></span> ))* ( <span class="prod"><a class="grammarRef" href="#prod-PN_CHARS">PN_CHARS</a></span> | <span class="prod"><a class="grammarRef" href="#prod-PN_CHARS_OTHERS">PN_CHARS_OTHERS</a></span> ) ))?</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-PN_CHARS_OTHERS" name="prod-PN_CHARS_OTHERS"></a>[<span class="prodNo">58</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td>&lt;<code class="production term">PN_CHARS_OTHERS</code>&gt;</td> ' + 
+'<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-PERCENT">PERCENT</a></span><br/> ' + 
+'| "/"<br/> ' + 
+'| "@"<br/> ' + 
+'| "~"<br/> ' + 
+'| "&amp;"<br/> ' + 
+'| "+"<br/> ' + 
+'| "?"<br/> ' + 
+'| "#"<br/> ' + 
+'| "$"</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-PERCENT" name="prod-PERCENT"></a>[<span class="prodNo">59</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-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-HEX">HEX</a></span></code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-HEX" name="prod-HEX"></a>[<span class="prodNo">60</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/> ' + 
+'| [A-F]<br/> ' + 
+'| [a-f]</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-PN_LOCAL_ESC" name="prod-PN_LOCAL_ESC"></a>[<span class="prodNo">61</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> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-PASSED_TOKENS" name="prod-PASSED_TOKENS"></a>[<span class="prodNo">62</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/> ' + 
+'| "#" ([^\r\n])*</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'</table> ' + 
+' ' + 
+' ' ;
--- a/model/prov-n.html	Fri May 11 16:28:23 2012 +0100
+++ b/model/prov-n.html	Mon May 14 11:03:05 2012 +0100
@@ -13,6 +13,9 @@
       .note { font-size:small; margin-left:50px }
      </style>
 
+    <script src="grammar/ll.js" class="remove"></script>
+
+
     <script src="http://dev.w3.org/2009/dap/ReSpec.js/js/respec.js" class="remove"></script> 
     <script src="http://www.w3.org/2007/OWL/toggles.js" class="remove"></script> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" class="remove"></script>
@@ -46,6 +49,26 @@
     }
     </script>
 
+
+    <script class="remove">
+      function updateGrammarRefs() {
+        $('.grammar-ref').each(function(index) {
+          var ref=$(this).attr('data-ref');
+          console.log( "updating grammar for " + ref);
+          $('#'+ref).parents("tbody").clone().appendTo($(this).parent());
+          // $(this).replaceWith(function() {return $('#'+ref).parents("tbody").clone()});
+        });
+      }
+
+      $(document).ready(function(){
+        // if grammar is in a string:
+        $('#grammar_div').html(grammar_string);
+        console.log( "updating grammar entries");
+        updateGrammarRefs();
+      });
+
+    </script>
+
     <script class="remove"> 
       var addExtraReferences = function() {
           for (var k in extraReferences)
@@ -197,6 +220,7 @@
   <body> 
 
     <section id="abstract">
+
 <p>
 PROV-DM, the PROV data model, is a data model for provenance that describes
 the entities, people and activities involved in
@@ -254,6 +278,8 @@
 
 
 
+
+
 <section id="introduction"> 
 <h2>Introduction</h2>
 
@@ -587,6 +613,17 @@
 </div>
 </div>
 
+
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-entityExpression"></div>
+<div class="grammar-ref" data-ref="prod-optionalAttributeValuePairs"></div>
+<div class="grammar-ref" data-ref="prod-attributeValuePairs"></div>
+<div class="grammar-ref" data-ref="prod-attributeValuePair"></div>
+</div>
+</table>
+
+
 <div class="anexample">
 <pre class="codeexample">
 entity(tr:WD-prov-dm-20111215, [ prov:type="document" ])
@@ -619,6 +656,13 @@
 </div>
 </div>
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-activityExpression"></div>
+</div>
+</table>
+
+
 <div class="anexample">
 <pre class="codeexample">
 activity(ex:a10, 2011-11-16T16:00:00, 2011-11-16T16:00:01, [prov:type="createFile"])
@@ -658,6 +702,14 @@
 </div>
 </div>
 
+
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-generationExpression"></div>
+<div class="grammar-ref" data-ref="prod-optionalIdentifier"></div>
+</div>
+</table>
+
 <div class="anexample">
 
 <pre class="codeexample">
@@ -681,10 +733,6 @@
 at least  one of <span class='attribute'>activity</span>, <span class='attribute'>time</span>, or  <span class='attribute'>attributes</span>  MUST be present.</p>
 
 
-<section id="test"> 
-<h2>Test (please ignore for now)</h2>
-<div class='grammar' data-name='entity' data-include='grammar/ll.html' data-oninclude='insertProductionGeneration'  ></div> 
-</section>
 
 
 </section>
@@ -705,6 +753,13 @@
 <span class="name">)</span><br/>
 </div>
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-usageExpression"></div>
+</div>
+</table>
+
+
 <div class="anexample">
   
 <pre class="codeexample">
@@ -742,6 +797,13 @@
 <span class="name">)</span>
 </div>
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-startExpression"></div>
+</div>
+</table>
+
+
 <div class="anexample">
 
   <pre class="codeexample">
@@ -784,6 +846,13 @@
 <span class="name">)</span>
 </div>
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-endExpression"></div>
+</div>
+</table>
+
+
 <div class="anexample">
 
     <pre class="codeexample">
@@ -830,6 +899,14 @@
 </div>
 </div>
 
+
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-invalidationExpression"></div>
+</div>
+</table>
+
+
 <div class="anexample">
 
 <pre class="codeexample">
@@ -871,6 +948,13 @@
 <span class="name">)</span>
 </div>
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-communicationExpression"></div>
+</div>
+</table>
+
+
 <div class="anexample">
 <pre class="codeexample">
 wasInformedBy(ex:inf1, ex:a1, ex:a2, [ex:param1="a", ex:param2="b"])
@@ -943,6 +1027,13 @@
 </div>
 </div>
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-agentExpression"></div>
+</div>
+</table>
+
+
 <div class="anexample">
 <pre class="codeexample">
 agent(ag4, [ prov:type="prov:Person", ex:name="David" ])
@@ -973,6 +1064,13 @@
 <span class="name">)</span> 
 </div>
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-attributionExpression"></div>
+</div>
+</table>
+
+
 <div class="anexample">
 
 <pre class="codeexample">
@@ -1010,6 +1108,13 @@
 <span class="name">)</span>
 </div>
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-associationExpression"></div>
+</div>
+</table>
+
+
 <div class="anexample">
 <pre class="codeexample">
 wasAssociatedWith(ex:agas; ex:a1, ex:ag1, ex:e1, [ex:param1="a", ex:param2="b"])
@@ -1056,6 +1161,12 @@
 </div>
 
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-responsibilityExpression"></div>
+</div>
+</table>
+
 <div class="anexample">
 
   <pre class="codeexample">
@@ -1106,6 +1217,13 @@
 <span class="name">)</span>
 </div>
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-derivationExpression"></div>
+</div>
+</table>
+
+
 
 <div class="anexample">
     <pre class="codeexample">
@@ -1154,6 +1272,12 @@
 <span class="name">)</span>
 </div>
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-revisionExpression"></div>
+</div>
+</table>
+
 
 <div class="anexample">
     <pre class="codeexample">
@@ -1202,6 +1326,14 @@
 </div>
 
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-quotationExpression"></div>
+</div>
+</table>
+
+
+
 <div class="anexample">
     <pre class="codeexample">
 wasQuotedFrom(quoteId1, ex:blockQuote,ex:blog,ex:Luc,ex:Paul,[])
@@ -1246,6 +1378,13 @@
 <span class="name">)</span> 
 </div>
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-hadOriginalSourceExpression"></div>
+</div>
+</table>
+
+
 
 <div class="anexample">
     <pre class="codeexample">
@@ -1284,6 +1423,12 @@
 </div>
 
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-tracedToExpression"></div>
+</div>
+</table>
+
 <div class="anexample">
     <pre class="codeexample">
 tracedTo(id,e2,e1,[ex:param="a"])
@@ -1320,6 +1465,14 @@
 <span class="name">)</span>  
 </div>
 
+
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-alternateExpression"></div>
+</div>
+</table>
+
+
 <div class="anexample">
 <pre class="codeexample">
 alternateOf(tr:WD-prov-dm-20111215,ex:alternate-20111215)
@@ -1342,6 +1495,12 @@
 <span class="name">)</span>  
 </div>
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-specializationExpression"></div>
+</div>
+</table>
+
 <div class="anexample">
 <pre class="codeexample">
 specializationOf(tr:WD-prov-dm-20111215,tr:prov-dm)
@@ -1611,6 +1770,16 @@
  <span class="name">default</span> <span class="nonterminal">IRI</span> <br/>
 </div>
 
+<table class="grammar">
+<div>
+<div class="grammar-ref" data-ref="prod-namespaceDeclarations"></div>
+<div class="grammar-ref" data-ref="prod-namespaceDeclaration"></div>
+<div class="grammar-ref" data-ref="prod-defaultNamespaceDeclaration"></div>
+<div class="grammar-ref" data-ref="prod-IRI_REF"></div>
+</div>
+</table>
+
+
 <p>In PROV-N, the following prefixes are reserved:
 <ul>
 <li>  <span class="name">prov</span>  denotes the PROV namespace with URI <span class="name">http://www.w3.org/ns/prov#</span></li>
@@ -1648,6 +1817,11 @@
  refers to the <a title="default namespace declaration">default namespace</a>.</p>
 
 <div class='grammar'>
+<span class="nonterminal">eIdentifier</span>&nbsp;::=  <span class="nonterminal">identifier</span><br/>
+<span class="nonterminal">aIdentifier</span>&nbsp;::=  <span class="nonterminal">identifier</span><br/>
+<span class="nonterminal">agIdentifier</span>&nbsp;::=  <span class="nonterminal">identifier</span><br/>
+<span class="nonterminal">gIdentifier</span>&nbsp;::=  <span class="nonterminal">identifier</span><br/>
+
 <span class="nonterminal">identifier</span>&nbsp;::=  <span class="nonterminal">QUALNAME</span><br/>
 <span class="nonterminal">eIdentifier</span>&nbsp;::=  <span class="nonterminal">identifier</span>  <em>(intended to denote an entity)</em><br/>
 <span class="nonterminal">aIdentifier</span>&nbsp;::=  <span class="nonterminal">identifier</span>  <em>(intended to denote an activity)</em><br/>
@@ -1674,6 +1848,21 @@
 
 <p>Qualified names <a class="grammarRef" href="#term-prov_n_LL-QUALNAME">QUALNAME</a> consist of a prefix and a local part. Prefixes follow the production <a class="grammarRef" href="http://www.w3.org/TR/rdf-sparql-query/#rPN_PREFIX">PN_PREFIX</a> defined by SPARQL [[!RDF-SPARQL-QUERY]]. Local parts have to be conformant with <a class="grammarRef" href="#term-prov_n_LL-PN_LOCAL">PN_LOCAL</a>, which extends the original SPARQL <a class="grammarRef" href="http://www.w3.org/TR/rdf-sparql-query/#rPN_LOCAL">PN_LOCAL</a> definition by allowing further characters and %-escaped charaters (see <a class="grammarRef" href="#term-prov_n_LL-PN_CHARS_OTHERS">PN_CHARS_OTHERS</a>).</p>
 
+ 
+<table class="grammar">
+<div>
+<div>
+<div class="grammar-ref" data-ref="prod-identifier"></div>
+<div class="grammar-ref" data-ref="prod-QUALNAME"></div>
+<div class="grammar-ref" data-ref="prod-PN_LOCAL"></div>
+<div class="grammar-ref" data-ref="prod-PN_CHARS_OTHERS"></div>
+<div class="grammar-ref" data-ref="prod-PERCENT"></div>
+<div class="grammar-ref" data-ref="prod-HEX"></div>
+</div></div>
+</table>
+
+<!--
+
 <table class="grammar">
 <tbody class="prod">
 <tr valign="baseline">
@@ -1737,6 +1926,8 @@
 </tbody>
 </table>
 
+-->
+
 <div class="anexample" id="anexample-qualified-name">
 <p>Examples of articles on the BBC Web site seen as  entities.</p>
 <pre class="codeexample">
@@ -1786,6 +1977,15 @@
 <span class="nonterminal">attribute</span>&nbsp;::=  <span class="nonterminal">qualifiedName</span><br/>
 </div>
 
+
+<table class="grammar">
+<div>
+<div>
+<div class="grammar-ref" data-ref="prod-attribute"></div>
+</div></div>
+</table>
+
+
 <p>The  reserved attributes in the PROV namespace are the following.</p>
 
 <ol>
@@ -1817,6 +2017,20 @@
 <span class="nonterminal">intLiteral</span> ::= <em>a finite-length non-empty sequence of decimal digits (#x30-#x39) with an optional leading negative sign (-)</em>
 </div>
 
+<table class="grammar">
+<div>
+<div>
+<div class="grammar-ref" data-ref="prod-literal"></div>
+<div class="grammar-ref" data-ref="prod-QUALNAME_LITERAL"></div>
+<div class="grammar-ref" data-ref="prod-INTLITERAL"></div>
+<div class="grammar-ref" data-ref="prod-StringLiteral"></div>
+<div class="grammar-ref" data-ref="prod-STRING_LITERAL"></div>
+</div></div>
+</table>
+
+
+
+
 <p>The non terminals <span class="nonterminal">stringLiteral</span> and
 <span class="nonterminal">intLiteral</span>
 are syntactic sugar for quoted strings with datatype <a href="http://www.w3.org/TR/xmlschema-2/#string"><span class="name">xsd:string</span></a> and <a href="http://www.w3.org/TR/xmlschema-2/#int"><span class="name">xsd:int</span></a>, respectively.
@@ -2090,6 +2304,13 @@
 -->
 </div>
 
+
+<div id="grammar_div" class="remove">
+<!-- grammar loaded from glossary.js will be hooked up here,
+     class remove, will remove this element from the final output.
+-->
+</div>
+
 <section class="appendix"> 
       <h2>Acknowledgements</h2> 
       <p>