Changes required to implement PREFIX and BASE as not At Risk
authorGavin Carothers <gavin@carothers.name>
Thu, 12 Dec 2013 08:00:00 -0800
changeset 1558 7153257b5d27
parent 1557 39851541bf3d
child 1560 cc0e0a0cd166
Changes required to implement PREFIX and BASE as not At Risk
rdf-turtle/index.html
--- a/rdf-turtle/index.html	Thu Dec 12 15:02:08 2013 +0000
+++ b/rdf-turtle/index.html	Thu Dec 12 08:00:00 2013 -0800
@@ -123,26 +123,7 @@
     .separated tbody tr td.r { text-align: right; padding: .5em; }
     .grammar td { font-family: monospace; vertical-align: top; }
     .grammar-literal { color: gray;}
-    .atrisk {
-    padding:    1em;
-    margin: 1em 0em 0em;
-    border: 1px solid #f00;
-    background: #ffc;
-}
-
-/* .atrisk::before */
-.atrisktext
-{
-    /* content:    "Feature At Risk"; */
-    display:    block;
-    width:  150px;
-    margin: -1.5em 0 0.5em 0;
-    font-weight:    bold;
-    border: 1px solid #f00;
-    background: #fff;
-    padding:    3px 1em;
-}
-.grammar_comment { color: #A52A2A; font-style: italic; }
+	.grammar_comment { color: #A52A2A; font-style: italic; }
     </style> 
 	
     </head>
@@ -266,15 +247,15 @@
 			   		<a href="../rdf-concepts/index.html#dfn-iri">IRIs</a> may be written as relative or absolute IRIs or prefixed names. 
 				  	Relative and absolute IRIs are enclosed in '&lt;' and '&gt;' and may contain <a href="#numeric">numeric escape sequences</a> (described below). For example <code>&lt;http://example.org/#green-goblin&gt;</code>.
 				</p>
-				<p>Relative IRIs like <code>&lt;#green-goblin&gt;</code> are resolved relative to the current base IRI. A new base IRI can be defined using the '<code>@base</code>' directive. Specifics of this operation are defined in <a href="#sec-iri-references" class="sectionRef"></a> </p>
+				<p>Relative IRIs like <code>&lt;#green-goblin&gt;</code> are resolved relative to the current base IRI. A new base IRI can be defined using the '<code>@base</code>' or '<code>BASE</code>' directive. Specifics of this operation are defined in <a href="#sec-iri-references" class="sectionRef"></a> </p>
 				<p>
 				  The token '<code>a</code>' in the predicate position of a Turtle triple represents the IRI <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</code> .
 				</p>
 
 				<p>
 				  A <em id="prefixed-name">prefixed name</em> is a prefix label and a local part, separated by a colon ":".
-				  A prefixed name is turned into an IRI by concatenating the IRI associated with the prefix and the local part. The '<code>@prefix</code>' directive associates a prefix label with an IRI.
-				  Subsequent '<code>@prefix</code>' directives may re-map the same prefix label. </p>
+				  A prefixed name is turned into an IRI by concatenating the IRI associated with the prefix and the local part. The '<code>@prefix</code>' or '<code>PREFIX</code>' directive associates a prefix label with an IRI.
+				  Subsequent '<code>@prefix</code>' or '<code>PREFIX</code>' directives may re-map the same prefix label. </p>
 
 				  <p>
 				  	To write <code>http://www.perceive.net/schemas/relationship/enemyOf</code> using a prefixed name: </p>
@@ -309,9 +290,15 @@
 @base <http://one.example/> .
 <subject2> <predicate2> <object2> .     # relative IRIs, e.g. http://one.example/subject2
 
+BASE <http://one.example/>
+<subject2> <predicate2> <object2> .     # relative IRIs, e.g. http://one.example/subject2
+
 @prefix p: <http://two.example/> .
 p:subject3 p:predicate3 p:object3 .     # prefixed name, e.g. http://two.example/subject3
 
+PREFIX p: <http://two.example/>
+p:subject3 p:predicate3 p:object3 .     # prefixed name, e.g. http://two.example/subject3
+
 @prefix p: <path/> .                    # prefix p: now stands for http://one.example/path/
 p:subject4 p:predicate4 p:object4 .     # prefixed name, e.g. http://one.example/path/subject4
 
@@ -322,6 +309,9 @@
 
 <http://伝言.example/?user=أكرم&amp;channel=R%26D> a :subject8 . # a multi-script subject IRI .
 </script></pre>
+        <div class="note">
+          <p>The '<code>@prefix</code>' and '<code>@base</code>' directives require a trailing '<code>.</code>' after the IRI, the equalivent '<code>PREFIX</code>' and '<code>BASE</code>' must not have a trailing '<code>.</code>' after the IRI part of the directive.
+        </div>
 	</section>
 
 
@@ -542,7 +532,7 @@
 
           <p>An example of an RDF collection of two literals.</p>
           <pre class="example"><script type="text/turtle">
[email protected] : <http://example.org/stuff/1.0/> .
+PREFIX : <http://example.org/stuff/1.0/>
 :a :b ( "apple" "banana" ) .
           </script></pre>
           <p>which is short for (<a href="examples/example2.ttl">example2.ttl</a>):</p>
@@ -576,7 +566,7 @@
 
           <p>RDF collections can be nested and can involve other syntactic forms:</p>
 
-          <pre class="example untested"><script type="text/turtle">@prefix : <http://example.org/stuff/1.0/> .
+          <pre class="example untested"><script type="text/turtle">PREFIX : <http://example.org/stuff/1.0/>
 (1 [:p :q] ( 2 ) ) :p2 :q2 .</script></pre>
 
           <p>is syntactic sugar for:</p><pre class="example untested"><script type="text/turtle">@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@@ -603,7 +593,7 @@
 
     <li>SPARQL permits variables (<code>?</code><em>name</em> or <code>$</code><em>name</em>) in any part of the triple of the form.</li>
     <li>Turtle allows <a href="#grammar-production-directive">prefix and base declarations</a> anywhere outside of a triple. In SPARQL, they are only allowed in the <a href="http://www.w3.org/TR/sparql11-query/#rPrologue">Prologue</a> (at the start of the SPARQL query).</li>
-    <li>SPARQL uses case insensitive keywords, except for '<code>a</code>'. Turtle's prefix and base declarations are case sensitive.</li>
+    <li>SPARQL uses case insensitive keywords, except for '<code>a</code>'. Turtle's <code>@prefix</code> and <code>@base</code> declarations are case sensitive, the SPARQL dervied <code>PREFIX</code> and <code>BASE</code> are case insensitive.</li>
     <li>'<code>true</code>' and '<code>false</code>' are case insensitive in SPARQL and case sensitive in Turtle. <code>TrUe</code> is not a valid boolean value in Turtle.</li>
 
       </ol>
@@ -674,11 +664,11 @@
 					  Characters additionally allowed in IRI references are treated in the same way that unreserved characters are treated in URI references, per section 6.5 of <a href="http://www.ietf.org/rfc/rfc3987.txt" class="norm">Internationalized Resource Identifiers (IRIs)</a> [<a href="#rfc3987">RFC3987</a>].
 					</p>
 					<p>
-					  The <code>@base</code> directive defines the Base IRI used to resolve relative IRIs per RFC3986 section 5.1.1, "Base URI Embedded in Content".
+					  The <code>@base</code> or <code>BASE</code> directive defines the Base IRI used to resolve relative IRIs per RFC3986 section 5.1.1, "Base URI Embedded in Content".
 					  Section 5.1.2, "Base URI from the Encapsulating Entity" defines how the In-Scope Base IRI may come from an encapsulating document, such as a SOAP envelope with an xml:base directive or a mime multipart document with a Content-Location header.
 					  The "Retrieval URI" identified in 5.1.3, Base "URI from the Retrieval URI", is the URL from which a particular Turtle document was retrieved.
 					  If none of the above specifies the Base URI, the default Base URI (section 5.1.4, "Default Base URI") is used.
-					  Each <code>@base</code> directive sets a new In-Scope Base URI, relative to the previous one.
+					  Each <code>@base</code> or <code>BASE</code> directive sets a new In-Scope Base URI, relative to the previous one.
 					</p>
 			</section>
 
@@ -813,7 +803,7 @@
 	      </thead>
 	      <tbody>
 		<tr>
-		  <td class="r"><span style="font-weight:bold;">IRI</span>s, used as <a href="#grammar-production-IRIref">RDF terms</a> or as in <a href="#grammar-production-prefixID">@prefix</a> or <a href="#grammar-production-base">@base</a> declarations</td>
+		  <td class="r"><span style="font-weight:bold;">IRI</span>s, used as <a href="#grammar-production-IRIref">RDF terms</a> or as in <a href="#grammar-production-prefixID">@prefix</a>, <a href="#grammar-production-sparqlPrefix">PREFIX</a>, <a href="#grammar-production-base">@base</a>, or <a href="#grammar-production-sparqlBase">BASE</a>  declarations</td>
 		  <td style="background-color: green; border:1px solid black;">yes</td>
 		  <td>no</td>
 		  <td>no</td>
@@ -837,13 +827,6 @@
           </section>
           <section id="sec-grammar-grammar">
           <h3>Grammar</h3>
-            <div class="atrisk"><p class="atrisktext">Feature At Risk</p>
-            	<p>The RDF Working Group proposes to make the following changes to align Turtle with SPARQL.</p>
-            	<ul>
-            	<li>The addition of <a href="#grammar-production-sparqlPrefix">sparqlPrefix</a> and <a href="#grammar-production-sparqlBase">sparqlBase</a> which allow for using SPARQL style <code>BASE</code> and <code>PREFIX</code> directives in a Turtle document.</li>
-            	</ul>
-            	<p>Feedback, both positive and negative, is invited by sending email to mailing list <a href="mailto:[email protected]">[email protected]</a> (<a href="mailto:[email protected]?subject=subscribe">subscribe</a>, <a href="http://lists.w3.org/Archives/Public/public-rdf-comments/">archives</a>).</p>
-            </div>
             <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 '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>
@@ -1136,12 +1119,12 @@
           <dd>No widely deployed applications are known to use this media type. It may be used by some web services and clients consuming their data.</dd>
           <dt>Additional information:</dt>
           <dt>Magic number(s):</dt>
-          <dd>Turtle documents may have the strings '@prefix' or '@base' (case dependent) near the beginning of the document.</dd>
+          <dd>Turtle documents may have the strings '@prefix' or '@base' (case dependent) or the strings 'PREFIX' or 'BASE' (case independent) near the beginning of the document.</dd>
           <dt>File extension(s):</dt>
           <dd>".ttl"</dd>
 
           <dt>Base URI:</dt>
-          <dd>The Turtle '@base &lt;IRIref&gt;' term can change the current base URI for relative IRIrefs in the query language that are used sequentially later in the document.</dd>
+          <dd>The Turtle '@base &lt;IRIref&gt;' or 'BASE &lt;IRIref&gt;' term can change the current base URI for relative IRIrefs in the query language that are used sequentially later in the document.</dd>
           <dt>Macintosh file type code(s):</dt>
           <dd>&quot;TEXT&quot;</dd>
           <dt>Person &amp; email address to contact for further information:</dt>
@@ -1184,19 +1167,29 @@
 
       </section>
       <section id="sec-changelog" class="appendix">
-      <h2>Changes since the last publication of this document</h2>
-
+      <h2>Change Log</h2>
+      <section>
+      <h2>Changes from Candidate Recommendation 19 February 2013 to this version</h2>
       <ul>
+      	<li>The addition of <a href="#grammar-production-sparqlPrefix">sparqlPrefix</a> and <a href="#grammar-production-sparqlBase">sparqlBase</a> which allow for using SPARQL style <code>BASE</code> and <code>PREFIX</code> directives in a Turtle document. No longer at risk.</li>
+	    </ul>
+      </section>
+      <section>
+      <h3>Changes in Working Drafts to Candidate Recommendation</h3>
+        <ul>
       		<li>Renaming for STRING_* productions to STRING_LITERAL_QUOTE sytle names rather than numbers
       		<li>Local part of prefix names can now include ":"
-			<li>Turtle in HTML
-			<li>Renaming of grammar tokens and rules around IRIs
-			<li>Reserved character escape sequences
-			<li>String escape sequences limited to strings
-			<li>Numeric escape sequences limited to IRIs and Strings
-			<li>Support top-level blank-predicate-object lists
-			<li>Whitespace required between @prefix and prefix label
-	  </ul>
+    			<li>Turtle in HTML
+    			<li>Renaming of grammar tokens and rules around IRIs
+    			<li>Reserved character escape sequences
+    			<li>String escape sequences limited to strings
+    			<li>Numeric escape sequences limited to IRIs and Strings
+    			<li>Support top-level blank-predicate-object lists
+    			<li>Whitespace required between @prefix and prefix label
+    	  </ul>
+      </section>
+      <section>
+      <h3>Other changes</h3>
 
       <p>Other changes since the Team Submission
       <a href="http://www.w3.org/TeamSubmission/2008/SUBM-turtle-20080114">W3C Turtle Submission 2008-01-14</a>
@@ -1220,6 +1213,7 @@
             <li>explicitly allowed re-use of the same prefix.</li>
           <li>Added <a href="#sec-parsing">parsing rules</a>.</li>
             </ul>
+      </section>
 
       </section>