pn_local_esc
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Tue, 10 Jul 2012 13:20:24 +0100
changeset 3860 a91e5fc0372d
parent 3859 435883c52aad
child 3861 06e89caa7957
child 3868 7aa2758e6622
child 3870 aa8abf6d2ee6
pn_local_esc
model/grammar/ll.html
model/grammar/ll.js
model/grammar/yack/prov-n-LL.bnf
model/grammar/yack/prov-n-LL.bnf.html
model/prov-n.html
--- a/model/grammar/ll.html	Tue Jul 10 10:37:37 2012 +0100
+++ b/model/grammar/ll.html	Tue Jul 10 13:20:24 2012 +0100
@@ -589,13 +589,23 @@
 | "?"<br/>
 | "#"<br/>
 | "$"<br/>
-| "!"</code></td>
+| "!"<br/>
+| <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-PN_CHARS_ESC">PN_CHARS_ESC</a></span></code></td>
 </tr>
 </tbody>
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-PERCENT" name="term-prov_n_LL-PERCENT"></a>[<span class="prodNo">65</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-PN_CHARS_ESC" name="term-prov_n_LL-PN_CHARS_ESC"></a>[<span class="prodNo">65</span>]&nbsp;&nbsp;&nbsp;</td>
+<td>&lt;<code class="production term">PN_CHARS_ESC</code>&gt;</td>
+<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
+<td><code class="content">"\\" ( "=" | "'" | "(" | ")" | "," | "-" | ":" | ";" | "[" | "]" | "." )</code></td>
+</tr>
+</tbody>
+
+<tbody class="term">
+<tr valign="baseline">
+<td><a id="term-prov_n_LL-PERCENT" name="term-prov_n_LL-PERCENT"></a>[<span class="prodNo">66</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PERCENT</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"%" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-HEX">HEX</a></span></code></td>
@@ -604,7 +614,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-HEX" name="term-prov_n_LL-HEX"></a>[<span class="prodNo">66</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-HEX" name="term-prov_n_LL-HEX"></a>[<span class="prodNo">67</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/>
@@ -615,7 +625,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-STRING_LITERAL" name="term-prov_n_LL-STRING_LITERAL"></a>[<span class="prodNo">67</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-STRING_LITERAL" name="term-prov_n_LL-STRING_LITERAL"></a>[<span class="prodNo">68</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">STRING_LITERAL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-STRING_LITERAL2">STRING_LITERAL2</a></span><br/>
@@ -625,7 +635,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-PREFX" name="term-prov_n_LL-PREFX"></a>[<span class="prodNo">68</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-PREFX" name="term-prov_n_LL-PREFX"></a>[<span class="prodNo">69</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PREFX</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-PN_PREFIX">PN_PREFIX</a></span></code></td>
@@ -634,7 +644,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-INT_LITERAL" name="term-prov_n_LL-INT_LITERAL"></a>[<span class="prodNo">69</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-INT_LITERAL" name="term-prov_n_LL-INT_LITERAL"></a>[<span class="prodNo">70</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">INT_LITERAL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">("-")? (<span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span>)+</code></td>
@@ -643,7 +653,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-QUALIFIED_NAME_LITERAL" name="term-prov_n_LL-QUALIFIED_NAME_LITERAL"></a>[<span class="prodNo">70</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-QUALIFIED_NAME_LITERAL" name="term-prov_n_LL-QUALIFIED_NAME_LITERAL"></a>[<span class="prodNo">71</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">QUALIFIED_NAME_LITERAL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"'" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-QUALIFIED_NAME">QUALIFIED_NAME</a></span> "'"</code></td>
@@ -652,7 +662,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-DIGIT" name="term-prov_n_LL-DIGIT"></a>[<span class="prodNo">71</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-DIGIT" name="term-prov_n_LL-DIGIT"></a>[<span class="prodNo">72</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>
@@ -661,7 +671,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-DATETIME" name="term-prov_n_LL-DATETIME"></a>[<span class="prodNo">72</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-DATETIME" name="term-prov_n_LL-DATETIME"></a>[<span class="prodNo">73</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">DATETIME</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> "-" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> "-" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> "T" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> (( "." <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> (( <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> (<span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span>)? ))? ))? (( "Z" | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-TIMEZONEOFFSET">TIMEZONEOFFSET</a></span> ))?</code></td>
@@ -670,7 +680,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-TIMEZONEOFFSET" name="term-prov_n_LL-TIMEZONEOFFSET"></a>[<span class="prodNo">73</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-TIMEZONEOFFSET" name="term-prov_n_LL-TIMEZONEOFFSET"></a>[<span class="prodNo">74</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">TIMEZONEOFFSET</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">( "+" | "-" ) <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span></code></td>
@@ -679,7 +689,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-IRI_REF" name="term-prov_n_LL-IRI_REF"></a>[<span class="prodNo">74</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-IRI_REF" name="term-prov_n_LL-IRI_REF"></a>[<span class="prodNo">75</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">IRI_REF</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"&lt;" (( [^&lt;&gt;\"{}|^`\\] - [#0000- ] | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-UCHAR">UCHAR</a></span> ))* "&gt;"</code></td>
@@ -688,7 +698,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-STRING_LITERAL2" name="term-prov_n_LL-STRING_LITERAL2"></a>[<span class="prodNo">75</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-STRING_LITERAL2" name="term-prov_n_LL-STRING_LITERAL2"></a>[<span class="prodNo">76</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">STRING_LITERAL2</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">'"' (( ( [^\"\\\n\r] ) | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-ECHAR">ECHAR</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-UCHAR">UCHAR</a></span> ))* '"'</code></td>
@@ -697,7 +707,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-STRING_LITERAL_LONG2" name="term-prov_n_LL-STRING_LITERAL_LONG2"></a>[<span class="prodNo">76</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-STRING_LITERAL_LONG2" name="term-prov_n_LL-STRING_LITERAL_LONG2"></a>[<span class="prodNo">77</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">STRING_LITERAL_LONG2</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">'"' (( ( [^\"\\\n\r] ) | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-ECHAR">ECHAR</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-UCHAR">UCHAR</a></span> ))* '"'</code></td>
@@ -706,7 +716,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-LANGTAG" name="term-prov_n_LL-LANGTAG"></a>[<span class="prodNo">77</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-LANGTAG" name="term-prov_n_LL-LANGTAG"></a>[<span class="prodNo">78</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">LANGTAG</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"@" ([a-zA-Z])+ (( "-" ([a-zA-Z0-9])+ ))*</code></td>
@@ -715,7 +725,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-UCHAR" name="term-prov_n_LL-UCHAR"></a>[<span class="prodNo">78</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-UCHAR" name="term-prov_n_LL-UCHAR"></a>[<span class="prodNo">79</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">UCHAR</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">( "\\u" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-HEX">HEX</a></span> )<br/>
@@ -725,7 +735,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-ECHAR" name="term-prov_n_LL-ECHAR"></a>[<span class="prodNo">79</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-ECHAR" name="term-prov_n_LL-ECHAR"></a>[<span class="prodNo">80</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">ECHAR</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"\\" [tbnrf\\\"']</code></td>
@@ -734,7 +744,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-NIL" name="term-prov_n_LL-NIL"></a>[<span class="prodNo">80</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-NIL" name="term-prov_n_LL-NIL"></a>[<span class="prodNo">81</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">NIL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"(" (( <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-WS">WS</a></span> ))* ")"</code></td>
@@ -743,7 +753,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-WS" name="term-prov_n_LL-WS"></a>[<span class="prodNo">81</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-WS" name="term-prov_n_LL-WS"></a>[<span class="prodNo">82</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">WS</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">" "<br/>
@@ -755,7 +765,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-ANON" name="term-prov_n_LL-ANON"></a>[<span class="prodNo">82</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-ANON" name="term-prov_n_LL-ANON"></a>[<span class="prodNo">83</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">ANON</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"[" (( <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-WS">WS</a></span> ))* "]"</code></td>
@@ -764,7 +774,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-PN_CHARS_BASE" name="term-prov_n_LL-PN_CHARS_BASE"></a>[<span class="prodNo">83</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-PN_CHARS_BASE" name="term-prov_n_LL-PN_CHARS_BASE"></a>[<span class="prodNo">84</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_CHARS_BASE</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">[A-Z]<br/>
@@ -786,7 +796,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-PN_CHARS_U" name="term-prov_n_LL-PN_CHARS_U"></a>[<span class="prodNo">84</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-PN_CHARS_U" name="term-prov_n_LL-PN_CHARS_U"></a>[<span class="prodNo">85</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_CHARS_U</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-PN_CHARS_BASE">PN_CHARS_BASE</a></span><br/>
@@ -796,7 +806,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-PN_CHARS" name="term-prov_n_LL-PN_CHARS"></a>[<span class="prodNo">85</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-PN_CHARS" name="term-prov_n_LL-PN_CHARS"></a>[<span class="prodNo">86</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_CHARS</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-PN_CHARS_U">PN_CHARS_U</a></span><br/>
@@ -810,7 +820,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-PN_PREFIX" name="term-prov_n_LL-PN_PREFIX"></a>[<span class="prodNo">86</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-PN_PREFIX" name="term-prov_n_LL-PN_PREFIX"></a>[<span class="prodNo">87</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_PREFIX</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-PN_CHARS_BASE">PN_CHARS_BASE</a></span> (( (( <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-PN_CHARS">PN_CHARS</a></span> | "." ))* <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-PN_CHARS">PN_CHARS</a></span> ))?</code></td>
@@ -819,7 +829,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-PASSED_TOKENS" name="term-prov_n_LL-PASSED_TOKENS"></a>[<span class="prodNo">87</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-PASSED_TOKENS" name="term-prov_n_LL-PASSED_TOKENS"></a>[<span class="prodNo">88</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production directive">PASSED TOKENS</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">([ \t\r\n])+<br/>
--- a/model/grammar/ll.js	Tue Jul 10 10:37:37 2012 +0100
+++ b/model/grammar/ll.js	Tue Jul 10 13:20:24 2012 +0100
@@ -590,13 +590,23 @@
 '| "?"<br/> ' + 
 '| "#"<br/> ' + 
 '| "$"<br/> ' + 
-'| "!"</code></td> ' + 
+'| "!"<br/> ' + 
+'| <span class="prod"><a class="grammarRef" href="#prod-PN_CHARS_ESC">PN_CHARS_ESC</a></span></code></td> ' + 
 '</tr> ' + 
 '</tbody> ' + 
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-PERCENT" name="prod-PERCENT"></a>[<span class="prodNo">65</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-PN_CHARS_ESC" name="prod-PN_CHARS_ESC"></a>[<span class="prodNo">65</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td>&lt;<code class="production term">PN_CHARS_ESC</code>&gt;</td> ' + 
+'<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><code class="content">"\\" ( "=" | "\'" | "(" | ")" | "," | "-" | ":" | ";" | "[" | "]" | "." )</code></td> ' + 
+'</tr> ' + 
+'</tbody> ' + 
+' ' + 
+'<tbody class="term"> ' + 
+'<tr valign="baseline"> ' + 
+'<td><a id="prod-PERCENT" name="prod-PERCENT"></a>[<span class="prodNo">66</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> ' + 
@@ -605,7 +615,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-HEX" name="prod-HEX"></a>[<span class="prodNo">66</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-HEX" name="prod-HEX"></a>[<span class="prodNo">67</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/> ' + 
@@ -616,7 +626,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-STRING_LITERAL" name="prod-STRING_LITERAL"></a>[<span class="prodNo">67</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-STRING_LITERAL" name="prod-STRING_LITERAL"></a>[<span class="prodNo">68</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">STRING_LITERAL</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content"><span class="prod"><a class="grammarRef" href="http://www.w3.org/TR/rdf-sparql-query/#rSTRING_LITERAL2">STRING_LITERAL2</a></span><br/> ' + 
@@ -626,7 +636,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-PREFX" name="prod-PREFX"></a>[<span class="prodNo">68</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-PREFX" name="prod-PREFX"></a>[<span class="prodNo">69</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="http://www.w3.org/TR/rdf-sparql-query/#rPN_PREFIX">PN_PREFIX</a></span></code></td> ' + 
@@ -635,7 +645,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-INT_LITERAL" name="prod-INT_LITERAL"></a>[<span class="prodNo">69</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-INT_LITERAL" name="prod-INT_LITERAL"></a>[<span class="prodNo">70</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">INT_LITERAL</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> ' + 
@@ -644,7 +654,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-QUALIFIED_NAME_LITERAL" name="prod-QUALIFIED_NAME_LITERAL"></a>[<span class="prodNo">70</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-QUALIFIED_NAME_LITERAL" name="prod-QUALIFIED_NAME_LITERAL"></a>[<span class="prodNo">71</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">QUALIFIED_NAME_LITERAL</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content">"\'" <span class="prod"><a class="grammarRef" href="#prod-QUALIFIED_NAME">QUALIFIED_NAME</a></span> "\'"</code></td> ' + 
@@ -653,7 +663,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-DIGIT" name="prod-DIGIT"></a>[<span class="prodNo">71</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-DIGIT" name="prod-DIGIT"></a>[<span class="prodNo">72</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> ' + 
@@ -662,7 +672,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-DATETIME" name="prod-DATETIME"></a>[<span class="prodNo">72</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-DATETIME" name="prod-DATETIME"></a>[<span class="prodNo">73</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">DATETIME</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> ' + 
@@ -671,7 +681,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-TIMEZONEOFFSET" name="prod-TIMEZONEOFFSET"></a>[<span class="prodNo">73</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-TIMEZONEOFFSET" name="prod-TIMEZONEOFFSET"></a>[<span class="prodNo">74</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> ' + 
@@ -680,7 +690,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-IRI_REF" name="prod-IRI_REF"></a>[<span class="prodNo">74</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-IRI_REF" name="prod-IRI_REF"></a>[<span class="prodNo">75</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">IRI_REF</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content">"&lt;" ( [^&lt;&gt;\"{}|^`\\] - [#0000- ] | <span class="prod"><a class="grammarRef" href="#prod-UCHAR">UCHAR</a></span> )* "&gt;"</code></td> ' + 
@@ -689,7 +699,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-STRING_LITERAL2" name="prod-STRING_LITERAL2"></a>[<span class="prodNo">75</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-STRING_LITERAL2" name="prod-STRING_LITERAL2"></a>[<span class="prodNo">76</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">STRING_LITERAL2</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content">\'"\' ( ( [^\"\\\n\r] ) | <span class="prod"><a class="grammarRef" href="http://www.w3.org/TR/rdf-sparql-query/#rECHAR">ECHAR</a></span> | <span class="prod"><a class="grammarRef" href="#prod-UCHAR">UCHAR</a></span> )* \'"\'</code></td> ' + 
@@ -698,7 +708,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-STRING_LITERAL_LONG2" name="prod-STRING_LITERAL_LONG2"></a>[<span class="prodNo">76</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-STRING_LITERAL_LONG2" name="prod-STRING_LITERAL_LONG2"></a>[<span class="prodNo">77</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">STRING_LITERAL_LONG2</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content">\'"\' ( ( [^\"\\\n\r] ) | <span class="prod"><a class="grammarRef" href="http://www.w3.org/TR/rdf-sparql-query/#rECHAR">ECHAR</a></span> | <span class="prod"><a class="grammarRef" href="#prod-UCHAR">UCHAR</a></span> )* \'"\'</code></td> ' + 
@@ -707,7 +717,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-LANGTAG" name="prod-LANGTAG"></a>[<span class="prodNo">77</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-LANGTAG" name="prod-LANGTAG"></a>[<span class="prodNo">78</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">LANGTAG</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content">"@" ([a-zA-Z])+ ( "-" ([a-zA-Z0-9])+ )*</code></td> ' + 
@@ -716,7 +726,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-UCHAR" name="prod-UCHAR"></a>[<span class="prodNo">78</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-UCHAR" name="prod-UCHAR"></a>[<span class="prodNo">79</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">UCHAR</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content">( "\\u" <span class="prod"><a class="grammarRef" href="#prod-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/> ' + 
@@ -726,7 +736,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-ECHAR" name="prod-ECHAR"></a>[<span class="prodNo">79</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-ECHAR" name="prod-ECHAR"></a>[<span class="prodNo">80</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">ECHAR</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content">"\\" [tbnrf\\\"\']</code></td> ' + 
@@ -735,7 +745,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-NIL" name="prod-NIL"></a>[<span class="prodNo">80</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-NIL" name="prod-NIL"></a>[<span class="prodNo">81</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">NIL</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content">"(" ( <span class="prod"><a class="grammarRef" href="#prod-WS">WS</a></span> )* ")"</code></td> ' + 
@@ -744,7 +754,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-WS" name="prod-WS"></a>[<span class="prodNo">81</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-WS" name="prod-WS"></a>[<span class="prodNo">82</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">WS</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content">" "<br/> ' + 
@@ -756,7 +766,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-ANON" name="prod-ANON"></a>[<span class="prodNo">82</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-ANON" name="prod-ANON"></a>[<span class="prodNo">83</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">ANON</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content">"[" ( <span class="prod"><a class="grammarRef" href="#prod-WS">WS</a></span> )* "]"</code></td> ' + 
@@ -765,7 +775,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-PN_CHARS_BASE" name="prod-PN_CHARS_BASE"></a>[<span class="prodNo">83</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-PN_CHARS_BASE" name="prod-PN_CHARS_BASE"></a>[<span class="prodNo">84</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">PN_CHARS_BASE</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content">[A-Z]<br/> ' + 
@@ -787,7 +797,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-PN_CHARS_U" name="prod-PN_CHARS_U"></a>[<span class="prodNo">84</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-PN_CHARS_U" name="prod-PN_CHARS_U"></a>[<span class="prodNo">85</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">PN_CHARS_U</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-PN_CHARS_BASE">PN_CHARS_BASE</a></span><br/> ' + 
@@ -797,7 +807,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-PN_CHARS" name="prod-PN_CHARS"></a>[<span class="prodNo">85</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-PN_CHARS" name="prod-PN_CHARS"></a>[<span class="prodNo">86</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">PN_CHARS</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content"><span class="prod"><a class="grammarRef" href="http://www.w3.org/TR/rdf-sparql-query/#rPN_CHARS_U">PN_CHARS_U</a></span><br/> ' + 
@@ -811,7 +821,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-PN_PREFIX" name="prod-PN_PREFIX"></a>[<span class="prodNo">86</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-PN_PREFIX" name="prod-PN_PREFIX"></a>[<span class="prodNo">87</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td>&lt;<code class="production term">PN_PREFIX</code>&gt;</td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-PN_CHARS_BASE">PN_CHARS_BASE</a></span> ( ( <span class="prod"><a class="grammarRef" href="http://www.w3.org/TR/rdf-sparql-query/#rPN_CHARS">PN_CHARS</a></span> | "." )* <span class="prod"><a class="grammarRef" href="http://www.w3.org/TR/rdf-sparql-query/#rPN_CHARS">PN_CHARS</a></span> )?</code></td> ' + 
@@ -820,7 +830,7 @@
 ' ' + 
 '<tbody class="term"> ' + 
 '<tr valign="baseline"> ' + 
-'<td><a id="prod-PASSED_TOKENS" name="prod-PASSED_TOKENS"></a>[<span class="prodNo">87</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
+'<td><a id="prod-PASSED_TOKENS" name="prod-PASSED_TOKENS"></a>[<span class="prodNo">88</span>]&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="production directive">PASSED TOKENS</code></td> ' + 
 '<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td> ' + 
 '<td><code class="content">([ \t\r\n])+<br/> ' + 
--- a/model/grammar/yack/prov-n-LL.bnf	Tue Jul 10 10:37:37 2012 +0100
+++ b/model/grammar/yack/prov-n-LL.bnf	Tue Jul 10 13:20:24 2012 +0100
@@ -194,7 +194,9 @@
 
 [100s] PN_LOCAL ::= ( PN_CHARS_U | [0-9] | PN_CHARS_OTHERS ) ( ( PN_CHARS | '.' | PN_CHARS_OTHERS )*  ( PN_CHARS | PN_CHARS_OTHERS ) ) ?
 
-[160s] PN_CHARS_OTHERS ::= PERCENT | '/' | '@' | '~' | '&' | '+'  | '*' | '?' | '#' | '$' | '!'
+[160s] PN_CHARS_OTHERS ::= PERCENT | '/' | '@' | '~' | '&' | '+'  | '*' | '?' | '#' | '$' | '!' | PN_CHARS_ESC
+
+PN_CHARS_ESC ::= '\\' ('=' | '\'' | '(' | ')' | ',' | '-'| ':'| ';' | '[' | ']'  | '.') 
 
 [161s] PERCENT ::= '%' HEX HEX
 
--- a/model/grammar/yack/prov-n-LL.bnf.html	Tue Jul 10 10:37:37 2012 +0100
+++ b/model/grammar/yack/prov-n-LL.bnf.html	Tue Jul 10 13:20:24 2012 +0100
@@ -588,13 +588,23 @@
 | "?"<br/>
 | "#"<br/>
 | "$"<br/>
-| "!"</code></td>
+| "!"<br/>
+| <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-PN_CHARS_ESC">PN_CHARS_ESC</a></span></code></td>
 </tr>
 </tbody>
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-PERCENT" name="term-prov_n_LL-PERCENT"></a>[<span class="prodNo">65</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-PN_CHARS_ESC" name="term-prov_n_LL-PN_CHARS_ESC"></a>[<span class="prodNo">65</span>]&nbsp;&nbsp;&nbsp;</td>
+<td>&lt;<code class="production term">PN_CHARS_ESC</code>&gt;</td>
+<td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
+<td><code class="content">"\\" ( "=" | "'" | "(" | ")" | "," | "-" | ":" | ";" | "[" | "]" | "." )</code></td>
+</tr>
+</tbody>
+
+<tbody class="term">
+<tr valign="baseline">
+<td><a id="term-prov_n_LL-PERCENT" name="term-prov_n_LL-PERCENT"></a>[<span class="prodNo">66</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PERCENT</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"%" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-HEX">HEX</a></span></code></td>
@@ -603,7 +613,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-HEX" name="term-prov_n_LL-HEX"></a>[<span class="prodNo">66</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-HEX" name="term-prov_n_LL-HEX"></a>[<span class="prodNo">67</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/>
@@ -614,7 +624,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-STRING_LITERAL" name="term-prov_n_LL-STRING_LITERAL"></a>[<span class="prodNo">67</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-STRING_LITERAL" name="term-prov_n_LL-STRING_LITERAL"></a>[<span class="prodNo">68</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">STRING_LITERAL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-STRING_LITERAL2">STRING_LITERAL2</a></span><br/>
@@ -624,7 +634,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-PREFX" name="term-prov_n_LL-PREFX"></a>[<span class="prodNo">68</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-PREFX" name="term-prov_n_LL-PREFX"></a>[<span class="prodNo">69</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PREFX</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-PN_PREFIX">PN_PREFIX</a></span></code></td>
@@ -633,7 +643,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-INT_LITERAL" name="term-prov_n_LL-INT_LITERAL"></a>[<span class="prodNo">69</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-INT_LITERAL" name="term-prov_n_LL-INT_LITERAL"></a>[<span class="prodNo">70</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">INT_LITERAL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">("-")? (<span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span>)+</code></td>
@@ -642,7 +652,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-QUALIFIED_NAME_LITERAL" name="term-prov_n_LL-QUALIFIED_NAME_LITERAL"></a>[<span class="prodNo">70</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-QUALIFIED_NAME_LITERAL" name="term-prov_n_LL-QUALIFIED_NAME_LITERAL"></a>[<span class="prodNo">71</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">QUALIFIED_NAME_LITERAL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"'" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-QUALIFIED_NAME">QUALIFIED_NAME</a></span> "'"</code></td>
@@ -651,7 +661,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-DIGIT" name="term-prov_n_LL-DIGIT"></a>[<span class="prodNo">71</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-DIGIT" name="term-prov_n_LL-DIGIT"></a>[<span class="prodNo">72</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>
@@ -660,7 +670,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-DATETIME" name="term-prov_n_LL-DATETIME"></a>[<span class="prodNo">72</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-DATETIME" name="term-prov_n_LL-DATETIME"></a>[<span class="prodNo">73</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">DATETIME</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> "-" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> "-" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> "T" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> (( "." <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> (( <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> (<span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span>)? ))? ))? (( "Z" | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-TIMEZONEOFFSET">TIMEZONEOFFSET</a></span> ))?</code></td>
@@ -669,7 +679,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-TIMEZONEOFFSET" name="term-prov_n_LL-TIMEZONEOFFSET"></a>[<span class="prodNo">73</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-TIMEZONEOFFSET" name="term-prov_n_LL-TIMEZONEOFFSET"></a>[<span class="prodNo">74</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">TIMEZONEOFFSET</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">( "+" | "-" ) <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> ":" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-DIGIT">DIGIT</a></span></code></td>
@@ -678,7 +688,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-IRI_REF" name="term-prov_n_LL-IRI_REF"></a>[<span class="prodNo">74</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-IRI_REF" name="term-prov_n_LL-IRI_REF"></a>[<span class="prodNo">75</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">IRI_REF</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"&lt;" (( [^&lt;&gt;\"{}|^`\\] - [#0000- ] | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-UCHAR">UCHAR</a></span> ))* "&gt;"</code></td>
@@ -687,7 +697,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-STRING_LITERAL2" name="term-prov_n_LL-STRING_LITERAL2"></a>[<span class="prodNo">75</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-STRING_LITERAL2" name="term-prov_n_LL-STRING_LITERAL2"></a>[<span class="prodNo">76</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">STRING_LITERAL2</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">'"' (( ( [^\"\\\n\r] ) | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-ECHAR">ECHAR</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-UCHAR">UCHAR</a></span> ))* '"'</code></td>
@@ -696,7 +706,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-STRING_LITERAL_LONG2" name="term-prov_n_LL-STRING_LITERAL_LONG2"></a>[<span class="prodNo">76</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-STRING_LITERAL_LONG2" name="term-prov_n_LL-STRING_LITERAL_LONG2"></a>[<span class="prodNo">77</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">STRING_LITERAL_LONG2</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">'"' (( ( [^\"\\\n\r] ) | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-ECHAR">ECHAR</a></span> | <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-UCHAR">UCHAR</a></span> ))* '"'</code></td>
@@ -705,7 +715,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-LANGTAG" name="term-prov_n_LL-LANGTAG"></a>[<span class="prodNo">77</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-LANGTAG" name="term-prov_n_LL-LANGTAG"></a>[<span class="prodNo">78</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">LANGTAG</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"@" ([a-zA-Z])+ (( "-" ([a-zA-Z0-9])+ ))*</code></td>
@@ -714,7 +724,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-UCHAR" name="term-prov_n_LL-UCHAR"></a>[<span class="prodNo">78</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-UCHAR" name="term-prov_n_LL-UCHAR"></a>[<span class="prodNo">79</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">UCHAR</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">( "\\u" <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-HEX">HEX</a></span> <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-HEX">HEX</a></span> )<br/>
@@ -724,7 +734,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-ECHAR" name="term-prov_n_LL-ECHAR"></a>[<span class="prodNo">79</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-ECHAR" name="term-prov_n_LL-ECHAR"></a>[<span class="prodNo">80</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">ECHAR</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"\\" [tbnrf\\\"']</code></td>
@@ -733,7 +743,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-NIL" name="term-prov_n_LL-NIL"></a>[<span class="prodNo">80</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-NIL" name="term-prov_n_LL-NIL"></a>[<span class="prodNo">81</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">NIL</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"(" (( <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-WS">WS</a></span> ))* ")"</code></td>
@@ -742,7 +752,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-WS" name="term-prov_n_LL-WS"></a>[<span class="prodNo">81</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-WS" name="term-prov_n_LL-WS"></a>[<span class="prodNo">82</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">WS</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">" "<br/>
@@ -754,7 +764,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-ANON" name="term-prov_n_LL-ANON"></a>[<span class="prodNo">82</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-ANON" name="term-prov_n_LL-ANON"></a>[<span class="prodNo">83</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">ANON</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">"[" (( <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-WS">WS</a></span> ))* "]"</code></td>
@@ -763,7 +773,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-PN_CHARS_BASE" name="term-prov_n_LL-PN_CHARS_BASE"></a>[<span class="prodNo">83</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-PN_CHARS_BASE" name="term-prov_n_LL-PN_CHARS_BASE"></a>[<span class="prodNo">84</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_CHARS_BASE</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">[A-Z]<br/>
@@ -785,7 +795,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-PN_CHARS_U" name="term-prov_n_LL-PN_CHARS_U"></a>[<span class="prodNo">84</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-PN_CHARS_U" name="term-prov_n_LL-PN_CHARS_U"></a>[<span class="prodNo">85</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_CHARS_U</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-PN_CHARS_BASE">PN_CHARS_BASE</a></span><br/>
@@ -795,7 +805,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-PN_CHARS" name="term-prov_n_LL-PN_CHARS"></a>[<span class="prodNo">85</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-PN_CHARS" name="term-prov_n_LL-PN_CHARS"></a>[<span class="prodNo">86</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_CHARS</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-PN_CHARS_U">PN_CHARS_U</a></span><br/>
@@ -809,7 +819,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-PN_PREFIX" name="term-prov_n_LL-PN_PREFIX"></a>[<span class="prodNo">86</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-PN_PREFIX" name="term-prov_n_LL-PN_PREFIX"></a>[<span class="prodNo">87</span>]&nbsp;&nbsp;&nbsp;</td>
 <td>&lt;<code class="production term">PN_PREFIX</code>&gt;</td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content"><span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-PN_CHARS_BASE">PN_CHARS_BASE</a></span> (( (( <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-PN_CHARS">PN_CHARS</a></span> | "." ))* <span class="prod"><a class="grammarRef" href="#prod-prov_n_LL-PN_CHARS">PN_CHARS</a></span> ))?</code></td>
@@ -818,7 +828,7 @@
 
 <tbody class="term">
 <tr valign="baseline">
-<td><a id="term-prov_n_LL-PASSED_TOKENS" name="term-prov_n_LL-PASSED_TOKENS"></a>[<span class="prodNo">87</span>]&nbsp;&nbsp;&nbsp;</td>
+<td><a id="term-prov_n_LL-PASSED_TOKENS" name="term-prov_n_LL-PASSED_TOKENS"></a>[<span class="prodNo">88</span>]&nbsp;&nbsp;&nbsp;</td>
 <td><code class="production directive">PASSED TOKENS</code></td>
 <td>&nbsp;&nbsp;&nbsp;::=&nbsp;&nbsp;&nbsp;</td>
 <td><code class="content">([ \t\r\n])+<br/>
--- a/model/prov-n.html	Tue Jul 10 10:37:37 2012 +0100
+++ b/model/prov-n.html	Tue Jul 10 13:20:24 2012 +0100
@@ -533,6 +533,10 @@
 
 </ul>
 </div>
+</section>
+
+<section id="main-productions">
+<h3>Main Productions</h3>
 
 The grammar is centered on nonterminals for various types of <a class="grammarRef" href="#prod-expression">expression</a>. The main production is introduced here below as it reflects the rationale for the design of the entire grammar. Note that parser developers may use the top level
 <a class="grammarRef" href="#prod-bundle">bundle</a>  nonterminal as a starting point instead.
@@ -2126,17 +2130,21 @@
 
 
 <p>A PROV qualified name <code class="content"><a class="grammarRef" href="#prod-QUALIFIED_NAME">QUALIFIED_NAME</a></code> has a more permissive syntax then XML's <code class="content"><a href="http://www.w3.org/TR/2009/REC-xml-names-20091208/#NT-QName">QName</a></code> [[!XML-NAMES]]
-and SPARQL <code class="content"><a href="http://www.w3.org/TR/2008/REC-rdf-sparql-query-20080115/#rPrefixedName">PrefixedName</a></code> [[!RDF-SPARQL-QUERY]]. It is a PROV requirement that the concatenation of the namespace with the local part results in a valid IRI [[!IRI]]. Given that 
-',' (comma),
+and SPARQL <code class="content"><a href="http://www.w3.org/TR/2008/REC-rdf-sparql-query-20080115/#rPrefixedName">PrefixedName</a></code> [[!RDF-SPARQL-QUERY]]. 
+
+<p>It is a PROV requirement that the concatenation of the namespace with the local part results in a valid IRI [[!IRI]]. 
+
+<p>Given that 
+'=' (equal),
 ''' (single quote),
-'"' (double quote),
-';' (semi-colon),
-':' (colon),
-'=' (equal),
 '(' (left bracket),
 ')' (right bracket),
+',' (comma),
+':' (colon),
+';' (semi-colon),
+'"' (double quote),
 '[' (left square bracket),
-']' (right square bracket) are used by the PROV notation as delimiters, they are not allowed in local parts. Instead, they can be %-escaped or incorporated in the IRI denoted by a prefix.
+']' (right square bracket) are used by the PROV notation as delimiters, they are not allowed in local parts. Instead, they can be escaped using the '\' (backslash character) as per production <code class="content"><a class="grammarRef" href="#prod-PN_CHARS_ESC">PN_CHARS_ESC</a></code>
 </p>
 
 
@@ -2150,6 +2158,7 @@
 <tbody class="grammar-ref" data-ref="prod-QUALIFIED_NAME"></tbody>
 <tbody class="grammar-ref" data-ref="prod-PN_LOCAL"></tbody>
 <tbody class="grammar-ref" data-ref="prod-PN_CHARS_OTHERS"></tbody>
+<tbody class="grammar-ref" data-ref="prod-PN_CHARS_ESC"></tbody>
 <tbody class="grammar-ref" data-ref="prod-PERCENT"></tbody>
 <tbody class="grammar-ref" data-ref="prod-HEX"></tbody>