--- a/nquads/nquads-bnf.html	Wed Jul 03 07:10:12 2013 -0700
+++ b/nquads/nquads-bnf.html	Wed Jul 03 07:13:17 2013 -0700
@@ -43,32 +43,32 @@
     <td><a href='#grammar-production-STRING_LITERAL_QUOTE'>STRING_LITERAL_QUOTE</a> ('<code class='grammar-literal'>^^</code>' <a href='#grammar-production-IRIREF'>IRIREF</a> <code>| </code> '<code class='grammar-literal'>@</code>' <a href='#grammar-production-LANG'>LANG</a>)?</td>
 </tr>
 <tr><td colspan="5"><h4 id="terminals">Productions for terminals</h4></td></tr>
-            <tr id="grammar-production-LANG" data-grammar-original="[8]  LANG               ::= [a-zA-Z]+ ( "-" [a-zA-Z0-9]+ )*" data-grammar-expression="(',', [('+', ('[', 'a-zA-Z')), ('*', (',', [("'", '-'), ('+', ('[', 'a-zA-Z0-9'))]))])" class='grammar-token'>
-    <td>[8]</td>
-    <td><code>LANG</code></td>
+            <tr id="grammar-production-LANGTAG" data-grammar-original="[144s] LANGTAG          ::= "@" [a-zA-Z]+ ( "-" [a-zA-Z0-9]+ )*" data-grammar-expression="(',', [("'", '@'), ('+', ('[', 'a-zA-Z')), ('*', (',', [("'", '-'), ('+', ('[', 'a-zA-Z0-9'))]))])" class='grammar-token'>
+    <td>[144s]</td>
+    <td><code>LANGTAG</code></td>
     <td>::=</td>
-    <td>[<code class='grammar-chars'>a-zA-Z</code>]<code class='grammar-plus'>+</code> ('<code class='grammar-literal'>-</code>' [<code class='grammar-chars'>a-zA-Z0-9</code>]<code class='grammar-plus'>+</code>)<code class='grammar-star'>*</code></td>
+    <td>'<code class='grammar-literal'>@</code>' [<code class='grammar-chars'>a-zA-Z</code>]<code class='grammar-plus'>+</code> ('<code class='grammar-literal'>-</code>' [<code class='grammar-chars'>a-zA-Z0-9</code>]<code class='grammar-plus'>+</code>)<code class='grammar-star'>*</code></td>
 </tr>
-            <tr id="grammar-production-EOL" data-grammar-original="[9]  EOL                ::= [#xD#xA]+" data-grammar-expression="('+', ('[', '#xD#xA'))" class='grammar-token'>
-    <td>[9]</td>
+            <tr id="grammar-production-EOL" data-grammar-original="[8]  EOL                ::= [#xD#xA]+" data-grammar-expression="('+', ('[', '#xD#xA'))" class='grammar-token'>
+    <td>[8]</td>
     <td><code>EOL</code></td>
     <td>::=</td>
     <td>[<code class='grammar-chars'>#xD#xA</code>]<code class='grammar-plus'>+</code></td>
 </tr>
-            <tr id="grammar-production-WS" data-grammar-original="[10]  WS                 ::= [#x20#x9]" data-grammar-expression="('[', '#x20#x9')" class='grammar-token'>
-    <td>[10]</td>
+            <tr id="grammar-production-WS" data-grammar-original="[9] WS                 ::= [#x20#x9]" data-grammar-expression="('[', '#x20#x9')" class='grammar-token'>
+    <td>[9]</td>
     <td><code>WS</code></td>
     <td>::=</td>
     <td>[<code class='grammar-chars'>#x20#x9</code>]</td>
 </tr>
-            <tr id="grammar-production-IRIREF" data-grammar-original="[11] IRIREF ::=  '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'" data-grammar-expression="(',', [("'", '<'), ('*', ('|', [('[', '^#x00-#x20<>"{}|^`\\'), ('id', 'UCHAR')])), ("'", '>')])" class='grammar-token'>
-    <td>[11]</td>
+            <tr id="grammar-production-IRIREF" data-grammar-original="[10] IRIREF ::=  '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'" data-grammar-expression="(',', [("'", '<'), ('*', ('|', [('[', '^#x00-#x20<>"{}|^`\\'), ('id', 'UCHAR')])), ("'", '>')])" class='grammar-token'>
+    <td>[10]</td>
     <td><code>IRIREF</code></td>
     <td>::=</td>
     <td>'<code class='grammar-literal'><</code>' ([<code class='grammar-chars'>^#x00-#x20<>"{}|^`\</code>] <code>| </code> <a href='#grammar-production-UCHAR'>UCHAR</a>)<code class='grammar-star'>*</code> '<code class='grammar-literal'>></code>'</td>
 </tr>
-            <tr id="grammar-production-STRING_LITERAL_QUOTE" data-grammar-original="[12] STRING_LITERAL_QUOTE ::= '"' ( [^#x22#x5C#xA#xD] | ECHAR | UCHAR )* '"'" data-grammar-expression="(',', [("'", '"'), ('*', ('|', [('[', '^#x22#x5C#xA#xD'), ('id', 'ECHAR'), ('id', 'UCHAR')])), ("'", '"')])" class='grammar-token'>
-    <td>[12]</td>
+            <tr id="grammar-production-STRING_LITERAL_QUOTE" data-grammar-original="[11] STRING_LITERAL_QUOTE ::= '"' ( [^#x22#x5C#xA#xD] | ECHAR | UCHAR )* '"'" data-grammar-expression="(',', [("'", '"'), ('*', ('|', [('[', '^#x22#x5C#xA#xD'), ('id', 'ECHAR'), ('id', 'UCHAR')])), ("'", '"')])" class='grammar-token'>
+    <td>[11]</td>
     <td><code>STRING_LITERAL_QUOTE</code></td>
     <td>::=</td>
     <td>'<code class='grammar-literal'>"</code>' ([<code class='grammar-chars'>^#x22#x5C#xA#xD</code>] <code>| </code> <a href='#grammar-production-ECHAR'>ECHAR</a> <code>| </code> <a href='#grammar-production-UCHAR'>UCHAR</a>)<code class='grammar-star'>*</code> '<code class='grammar-literal'>"</code>'</td>
@@ -79,8 +79,8 @@
     <td>::=</td>
     <td>'<code class='grammar-literal'>_:</code>' (<a href='#grammar-production-PN_CHARS_U'>PN_CHARS_U</a> <code>| </code> [<code class='grammar-chars'>0-9</code>]) ((<a href='#grammar-production-PN_CHARS'>PN_CHARS</a> <code>| </code> '<code class='grammar-literal'>.</code>')<code class='grammar-star'>*</code> <a href='#grammar-production-PN_CHARS'>PN_CHARS</a>)?</td>
 </tr>
-            <tr id="grammar-production-UCHAR" data-grammar-original="[13] UCHAR ::= ( "\u" HEX HEX HEX HEX )| ( "\U" HEX HEX HEX HEX HEX HEX HEX HEX )" data-grammar-expression="('|', [(',', [("'", '\\u'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX')]), (',', [("'", '\\U'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX')])])" class='grammar-token'>
-    <td>[13]</td>
+            <tr id="grammar-production-UCHAR" data-grammar-original="[12] UCHAR ::= ( "\u" HEX HEX HEX HEX )| ( "\U" HEX HEX HEX HEX HEX HEX HEX HEX )" data-grammar-expression="('|', [(',', [("'", '\\u'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX')]), (',', [("'", '\\U'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX')])])" class='grammar-token'>
+    <td>[12]</td>
     <td><code>UCHAR</code></td>
     <td>::=</td>
     <td>'<code class='grammar-literal'>\u</code>' <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <code>| </code> '<code class='grammar-literal'>\U</code>' <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a></td>
--- a/nquads/nquads.bnf	Wed Jul 03 07:10:12 2013 -0700
+++ b/nquads/nquads.bnf	Wed Jul 03 07:13:17 2013 -0700
@@ -8,16 +8,16 @@
 
 @terminals
 
-[8]  LANG               ::= [a-zA-Z]+ ( "-" [a-zA-Z0-9]+ )*
+[144s] LANGTAG          ::= "@" [a-zA-Z]+ ( "-" [a-zA-Z0-9]+ )* 
 
-[9]  EOL                ::= [#xD#xA]+
-[10]  WS                 ::= [#x20#x9]
+[8]  EOL                ::= [#xD#xA]+
+[9] WS                 ::= [#x20#x9]
 
-[11] IRIREF ::=  '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'
-[12] STRING_LITERAL_QUOTE ::= '"' ( [^#x22#x5C#xA#xD] | ECHAR | UCHAR )* '"' 
+[10] IRIREF ::=  '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'
+[11] STRING_LITERAL_QUOTE ::= '"' ( [^#x22#x5C#xA#xD] | ECHAR | UCHAR )* '"' 
 
 [141s] BLANK_NODE_LABEL ::= '_:' ( PN_CHARS_U | [0-9] ) ((PN_CHARS|'.')* PN_CHARS)?
-[13] UCHAR ::= ( "\u" HEX HEX HEX HEX ) 
+[12] UCHAR ::= ( "\u" HEX HEX HEX HEX ) 
  | ( "\U" HEX HEX HEX HEX HEX HEX HEX HEX ) 
 [153s] ECHAR ::= "\" [tbnrf"'] 
 [157s] PN_CHARS_BASE    ::= [A-Z] 
--- a/rdf-turtle/n-prime-bnf.html	Wed Jul 03 07:10:12 2013 -0700
+++ b/rdf-turtle/n-prime-bnf.html	Wed Jul 03 07:13:17 2013 -0700
@@ -36,33 +36,33 @@
     <td>::=</td>
     <td><a href='#grammar-production-STRING_LITERAL_QUOTE'>STRING_LITERAL_QUOTE</a> ('<code class='grammar-literal'>^^</code>' <a href='#grammar-production-IRIREF'>IRIREF</a> <code>| </code> '<code class='grammar-literal'>@</code>' <a href='#grammar-production-LANG'>LANG</a>)?</td>
 </tr>
-<tr><td colspan="4"><h4 id="terminals">Productions for terminals</h4></td></tr>
-            <tr id="grammar-production-LANG" data-grammar-original="[7]  LANG               ::= [a-zA-Z]+ ( "-" [a-zA-Z0-9]+ )*" data-grammar-expression="(',', [('+', ('[', 'a-zA-Z')), ('*', (',', [("'", '-'), ('+', ('[', 'a-zA-Z0-9'))]))])" class='grammar-token'>
+<tr><td colspan="5"><h4 id="terminals">Productions for terminals</h4></td></tr>
+            <tr id="grammar-production-LANGTAG" data-grammar-original="[144s] LANGTAG          ::= "@" [a-zA-Z]+ ( "-" [a-zA-Z0-9]+ )*" data-grammar-expression="(',', [("'", '@'), ('+', ('[', 'a-zA-Z')), ('*', (',', [("'", '-'), ('+', ('[', 'a-zA-Z0-9'))]))])" class='grammar-token'>
+    <td>[144s]</td>
+    <td><code>LANGTAG</code></td>
+    <td>::=</td>
+    <td>'<code class='grammar-literal'>@</code>' [<code class='grammar-chars'>a-zA-Z</code>]<code class='grammar-plus'>+</code> ('<code class='grammar-literal'>-</code>' [<code class='grammar-chars'>a-zA-Z0-9</code>]<code class='grammar-plus'>+</code>)<code class='grammar-star'>*</code></td>
+</tr>
+            <tr id="grammar-production-EOL" data-grammar-original="[7]  EOL                ::= [#xD#xA]+" data-grammar-expression="('+', ('[', '#xD#xA'))" class='grammar-token'>
     <td>[7]</td>
-    <td><code>LANG</code></td>
-    <td>::=</td>
-    <td>[<code class='grammar-chars'>a-zA-Z</code>]<code class='grammar-plus'>+</code> ('<code class='grammar-literal'>-</code>' [<code class='grammar-chars'>a-zA-Z0-9</code>]<code class='grammar-plus'>+</code>)<code class='grammar-star'>*</code></td>
-</tr>
-            <tr id="grammar-production-EOL" data-grammar-original="[8]  EOL                ::= [#xD#xA]+" data-grammar-expression="('+', ('[', '#xD#xA'))" class='grammar-token'>
-    <td>[8]</td>
     <td><code>EOL</code></td>
     <td>::=</td>
     <td>[<code class='grammar-chars'>#xD#xA</code>]<code class='grammar-plus'>+</code></td>
 </tr>
-            <tr id="grammar-production-WS" data-grammar-original="[9]  WS                 ::= [#x20#x9]" data-grammar-expression="('[', '#x20#x9')" class='grammar-token'>
-    <td>[9]</td>
+            <tr id="grammar-production-WS" data-grammar-original="[8]  WS                 ::= [#x20#x9]" data-grammar-expression="('[', '#x20#x9')" class='grammar-token'>
+    <td>[8]</td>
     <td><code>WS</code></td>
     <td>::=</td>
     <td>[<code class='grammar-chars'>#x20#x9</code>]</td>
 </tr>
-            <tr id="grammar-production-IRIREF" data-grammar-original="[10] IRIREF ::=  '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'" data-grammar-expression="(',', [("'", '<'), ('*', ('|', [('[', '^#x00-#x20<>"{}|^`\\'), ('id', 'UCHAR')])), ("'", '>')])" class='grammar-token'>
-    <td>[10]</td>
+            <tr id="grammar-production-IRIREF" data-grammar-original="[9] IRIREF ::=  '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'" data-grammar-expression="(',', [("'", '<'), ('*', ('|', [('[', '^#x00-#x20<>"{}|^`\\'), ('id', 'UCHAR')])), ("'", '>')])" class='grammar-token'>
+    <td>[9]</td>
     <td><code>IRIREF</code></td>
     <td>::=</td>
     <td>'<code class='grammar-literal'><</code>' ([<code class='grammar-chars'>^#x00-#x20<>"{}|^`\</code>] <code>| </code> <a href='#grammar-production-UCHAR'>UCHAR</a>)<code class='grammar-star'>*</code> '<code class='grammar-literal'>></code>'</td>
 </tr>
-            <tr id="grammar-production-STRING_LITERAL_QUOTE" data-grammar-original="[11] STRING_LITERAL_QUOTE ::= '"' ( [^#x22#x5C#xA#xD] | ECHAR | UCHAR )* '"'" data-grammar-expression="(',', [("'", '"'), ('*', ('|', [('[', '^#x22#x5C#xA#xD'), ('id', 'ECHAR'), ('id', 'UCHAR')])), ("'", '"')])" class='grammar-token'>
-    <td>[11]</td>
+            <tr id="grammar-production-STRING_LITERAL_QUOTE" data-grammar-original="[10] STRING_LITERAL_QUOTE ::= '"' ( [^#x22#x5C#xA#xD] | ECHAR | UCHAR )* '"'" data-grammar-expression="(',', [("'", '"'), ('*', ('|', [('[', '^#x22#x5C#xA#xD'), ('id', 'ECHAR'), ('id', 'UCHAR')])), ("'", '"')])" class='grammar-token'>
+    <td>[10]</td>
     <td><code>STRING_LITERAL_QUOTE</code></td>
     <td>::=</td>
     <td>'<code class='grammar-literal'>"</code>' ([<code class='grammar-chars'>^#x22#x5C#xA#xD</code>] <code>| </code> <a href='#grammar-production-ECHAR'>ECHAR</a> <code>| </code> <a href='#grammar-production-UCHAR'>UCHAR</a>)<code class='grammar-star'>*</code> '<code class='grammar-literal'>"</code>'</td>
@@ -73,8 +73,8 @@
     <td>::=</td>
     <td>'<code class='grammar-literal'>_:</code>' (<a href='#grammar-production-PN_CHARS_U'>PN_CHARS_U</a> <code>| </code> [<code class='grammar-chars'>0-9</code>]) ((<a href='#grammar-production-PN_CHARS'>PN_CHARS</a> <code>| </code> '<code class='grammar-literal'>.</code>')<code class='grammar-star'>*</code> <a href='#grammar-production-PN_CHARS'>PN_CHARS</a>)?</td>
 </tr>
-            <tr id="grammar-production-UCHAR" data-grammar-original="[12] UCHAR ::= ( "\u" HEX HEX HEX HEX )| ( "\U" HEX HEX HEX HEX HEX HEX HEX HEX )" data-grammar-expression="('|', [(',', [("'", '\\u'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX')]), (',', [("'", '\\U'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX')])])" class='grammar-token'>
-    <td>[12]</td>
+            <tr id="grammar-production-UCHAR" data-grammar-original="[11] UCHAR ::= ( "\u" HEX HEX HEX HEX )| ( "\U" HEX HEX HEX HEX HEX HEX HEX HEX )" data-grammar-expression="('|', [(',', [("'", '\\u'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX')]), (',', [("'", '\\U'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX'), ('id', 'HEX')])])" class='grammar-token'>
+    <td>[11]</td>
     <td><code>UCHAR</code></td>
     <td>::=</td>
     <td>'<code class='grammar-literal'>\u</code>' <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <code>| </code> '<code class='grammar-literal'>\U</code>' <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a> <a href='#grammar-production-HEX'>HEX</a></td>
--- a/rdf-turtle/n-prime.bnf	Wed Jul 03 07:10:12 2013 -0700
+++ b/rdf-turtle/n-prime.bnf	Wed Jul 03 07:13:17 2013 -0700
@@ -7,16 +7,16 @@
 
 @terminals
 
-[7]  LANG               ::= [a-zA-Z]+ ( "-" [a-zA-Z0-9]+ )*
+[144s] LANGTAG          ::= "@" [a-zA-Z]+ ( "-" [a-zA-Z0-9]+ )* 
 
-[8]  EOL                ::= [#xD#xA]+
-[9]  WS                 ::= [#x20#x9]
+[7]  EOL                ::= [#xD#xA]+
+[8]  WS                 ::= [#x20#x9]
 
-[10] IRIREF ::=  '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'
-[11] STRING_LITERAL_QUOTE ::= '"' ( [^#x22#x5C#xA#xD] | ECHAR | UCHAR )* '"' 
+[9] IRIREF ::=  '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'
+[10] STRING_LITERAL_QUOTE ::= '"' ( [^#x22#x5C#xA#xD] | ECHAR | UCHAR )* '"' 
 
 [141s] BLANK_NODE_LABEL ::= '_:' ( PN_CHARS_U | [0-9] ) ((PN_CHARS|'.')* PN_CHARS)?
-[12] UCHAR ::= ( "\u" HEX HEX HEX HEX ) 
+[11] UCHAR ::= ( "\u" HEX HEX HEX HEX ) 
  | ( "\U" HEX HEX HEX HEX HEX HEX HEX HEX ) 
 [153s] ECHAR ::= "\" [tbnrf"'] 
 [157s] PN_CHARS_BASE    ::= [A-Z]