--- 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 \" \">]> " > 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 " ">]> ' +
+'<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>] </td> ' +
+'<td><code class="production prod">bundle</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">namedBundle</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">namespaceDeclarations</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">namespaceDeclaration</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">namespace</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">defaultNamespaceDeclaration</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">expression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">entityExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">activityExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">generationExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">timeOrMarker</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">identifierOrMarker</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">optionalIdentifier</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">usageExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">startExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">endExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">invalidationExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">communicationExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">agentExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">attributionExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">associationExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">responsibilityExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">derivationExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">revisionExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">quotationExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">hadOriginalSourceExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">tracedToExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">alternateExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">specializationExpression</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">optionalAttributeValuePairs</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">identifier</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">attribute</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">attributeValuePairs</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">attributeValuePair</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">timeZZ</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">literal</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">datatype</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><code class="production prod">StringLiteral</code></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">QUALNAME</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">PREFX</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">DIGIT</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">ISODATETIME</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">TIMEZONEOFFSET</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">IRI_REF</code>></td> ' +
+'<td> ::= </td> ' +
+'<td><code class="content">"<" (( [^<>\"{}|^`\\] - [#0000- ] | <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-INTLITERAL" name="prod-INTLITERAL"></a>[<span class="prodNo">45</span>] </td> ' +
+'<td><<code class="production term">INTLITERAL</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">STRING_LITERAL</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">QUALNAME_LITERAL</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">UCHAR</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">ECHAR</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">NIL</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">WS</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">ANON</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">PN_CHARS_BASE</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">PN_CHARS_U</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">PN_CHARS</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">PN_PREFIX</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">PN_LOCAL</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">PN_CHARS_OTHERS</code>></td> ' +
+'<td> ::= </td> ' +
+'<td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-PERCENT">PERCENT</a></span><br/> ' +
+'| "/"<br/> ' +
+'| "@"<br/> ' +
+'| "~"<br/> ' +
+'| "&"<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>] </td> ' +
+'<td><<code class="production term">PERCENT</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">HEX</code>></td> ' +
+'<td> ::= </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>] </td> ' +
+'<td><<code class="production term">PN_LOCAL_ESC</code>></td> ' +
+'<td> ::= </td> ' +
+'<td><code class="content">"\\" ( "_" | "~" | "." | "-" | "!" | "$" | "&" | "\'" | "(" | ")" | "*" | "+" | "," | ";" | "=" | ":" | "/" | "?" | "#" | "@" | "%" )</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>] </td> ' +
+'<td><code class="production directive">PASSED TOKENS</code></td> ' +
+'<td> ::= </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> ::= <span class="nonterminal">identifier</span><br/>
+<span class="nonterminal">aIdentifier</span> ::= <span class="nonterminal">identifier</span><br/>
+<span class="nonterminal">agIdentifier</span> ::= <span class="nonterminal">identifier</span><br/>
+<span class="nonterminal">gIdentifier</span> ::= <span class="nonterminal">identifier</span><br/>
+
<span class="nonterminal">identifier</span> ::= <span class="nonterminal">QUALNAME</span><br/>
<span class="nonterminal">eIdentifier</span> ::= <span class="nonterminal">identifier</span> <em>(intended to denote an entity)</em><br/>
<span class="nonterminal">aIdentifier</span> ::= <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> ::= <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>