Add grammer notes
authorAndy Seaborne <andy.seaborne@apache.org>
Sat, 31 Aug 2013 16:12:12 +0100
changeset 1044 baeb5676942b
parent 1043 2658d5f94395
child 1045 f5afa2470413
Add grammer notes
trig/index.html
--- a/trig/index.html	Sat Aug 31 15:31:35 2013 +0100
+++ b/trig/index.html	Sat Aug 31 16:12:12 2013 +0100
@@ -346,7 +346,6 @@
 					  Each <code>@base</code> directive sets a new In-Scope Base URI, relative to the previous one.
 					</p>
 			</section>
-
           <section id="sec-escapes">
             <h3>Escape Sequences</h3>
 
@@ -498,15 +497,71 @@
 	      </tbody>
 	    </table>
 	    <p class="note">%-encoded sequences are in the <a href="#grammar-production-IRIREF">character range for IRIs</a> and are <a href="#grammar-production-PERCENT">explicitly allowed</a> in local names. These appear as a '%' followed by two hex characters and represent that same sequence of three characters. These sequences are <em>not</em> decoded during processing. A term written as <code>&lt;http://a.example/%66oo-bar&gt;</code> in TriG designates the IRI <code>http://a.example/%66oo-bar</code> and not IRI <code>http://a.example/foo-bar</code>. A term written as <code>ex:%66oo-bar</code> with a prefix <code>@prefix ex: &lt;http://a.example/&gt;</code> also designates the IRI <code>http://a.example/%66oo-bar</code>.</p>
-
+        
           </section>
-			<section id="grammar-ebnf">
-			  <h3>Grammar</h3>
+		  <section id="grammar-ebnf">
+			<h3>Grammar</h3>
+            
+            <p>The <abbr title="Extended Backus–Naur Form">EBNF</abbr> used here is defined in XML 1.0
+              [[!EBNF-NOTATION]]. Production labels consisting of a number and a final 'g' are unique to TriG. All Production labels consisting of only a number reference the production with that number in the Turtle grammar [[turtle]]. Production labels consisting of a number and a final 's', e.g. [<a href="http://www.w3.org/TR/sparql11-query/#rRDFLiteral"><span class="prodNo">60s</span></a>], reference the production with that number in the <a href="http://www.w3.org/TR/sparql11-query/#sparqlGrammar">SPARQL Query Language for RDF grammar</a> [[RDF-SPARQL-QUERY]].
+            </p>
 
-            <p>The <abbr title="Extended Backus–Naur Form">EBNF</abbr> used here is defined in XML 1.0
-            [[!EBNF-NOTATION]]. Production labels consisting of a number and a final 'g' are unique to TriG. All Production labels consisting of only a number reference the production with that number in the Turtle grammar [[turtle]]. Production labels consisting of a number and a final 's', e.g. [<a href="http://www.w3.org/TR/sparql11-query/#rRDFLiteral"><span class="prodNo">60s</span></a>], reference the production with that number in the <a href="http://www.w3.org/TR/sparql11-query/#sparqlGrammar">SPARQL Query Language for RDF grammar</a> [[RDF-SPARQL-QUERY]].
-            </p>
-            	<div data-include="trig-bnf.html"></div>
+
+	        <div>
+	          <p>Notes:</p>
+	          <ol>
+	            <li>
+		          Keywords in single quotes (
+                  '<code class="grammar-literal">@base</code>',
+                  '<code class="grammar-literal">@prefix</code>',
+                  '<code class="grammar-literal">a</code>',
+                  '<code class="grammar-literal">true</code>',
+                  '<code class="grammar-literal">false</code>') are
+                  case-sensitive.
+		          Keywords in double quotes (
+                  "<code class="grammar-literal">BASE</code>", 
+                  "<code class="grammar-literal">PREFIX</code>"
+                "<code class="grammar-literal">GRAPH</code>"
+                  ) are case-insensitive.
+	            </li>
+	            <li>
+		          Escape sequences markers <code>\u</code>, <code>\U</code>
+                  and those in <code><a
+href="#grammar-production-ECHAR">ECHAR</a></code> 
+                  are case sensitive.
+	            </li>
+	            <li>
+		          When tokenizing the input and choosing grammar rules, the longest match is chosen.
+	            </li>
+	            <li>
+		          The TriG grammar is LL(1) and LALR(1) when the rules with uppercased names are used as terminals.
+	            </li>
+	            <li>
+		          The entry point into the grammar is <code>trigDoc</code>.
+	            </li>
+	            <li>
+		          In signed numbers, no white space is allowed between the sign and the number.
+	            </li>
+	            <li>
+		          The
+		          <span style="font-size: smaller;">
+                    <span>[162s]</span>
+                    <span><code>ANON</code></span>
+                    <span>::=</span>
+                    <span>'<code class="grammar-literal">[</code>' <a href="#grammar-production-WS">WS</a><code class="grammar-star">*</code> '<code class="grammar-literal">]</code>'</span>
+		          </span>
+		          token allows any amount of white space and comments between <code class="grammar-literal">[]</code>s.
+		          The single space version is used in the grammar for clarity.		
+	            </li>
+	            <li>
+		          The strings '<a href="#grammar-production-prefixID"><code class="grammar-literal">@prefix</code></a>' and '<a href="#grammar-production-base"><code class="grammar-literal">@base</code></a>' match the pattern for <a href="#grammar-production-LANGTAG">LANGTAG</a>, though neither "<code class="grammar-literal">prefix</code>" nor "<code class="grammar-literal">base</code>" are <a href="http://www.iana.org/assignments/language-subtag-registry">registered language
+subtags</a>. 
+		          This specification does not define whether a quoted literal followed by either of these tokens (e.g. <code>"Z"@base</code>) is in the TriG language.
+	            </li>
+	          </ol>
+	        </div>
+            
+            <div data-include="trig-bnf.html"></div>
        
 
 			</section>