Diff for /WWW/2001/sw/DataAccess/rq23/rq25.html between version 1.101 and 1.107

version 1.101, 2007/05/15 16:30:16 version 1.107, 2007/09/04 14:36:46
Line 557 
Line 557 
   </ul>    </ul>
   
 <h2>2 <a id="basicpatterns" name="basicpatterns">Making Simple Queries</a> (Informative)</h2>  <h2>2 <a id="basicpatterns" name="basicpatterns">Making Simple Queries</a> (Informative)</h2>
 <p>The SPARQL query language is based on matching graph patterns. Graph      <p>Most forms of SPARQL query contain a set of triple patterns called a <em>basic graph pattern</em>. Triple patterns are like RDF triples except that each of the subject, predicate and object may be a variable. A basic graph pattern <em>matches</em> a subgraph of the RDF data when <a href="#defn_RDFTerm">RDF terms</a> from that subgraph may be substituted for the variables and the result is RDF graph equivalent to the subgraph.</p>
 patterns contain triple patterns. Triple patterns are like RDF triples, but with the option  
 of a query variables in place of <a href="#defn_RDFTerm">RDF terms</a> in the subject,  
 predicate or object positions. Combining triple patterns gives a basic graph pattern,  
 where an exact match to a graph is needed.</p>  
 <h3>2.1 <a id="WritingSimpleQueries" name="WritingSimpleQueries">Writing a Simple  <h3>2.1 <a id="WritingSimpleQueries" name="WritingSimpleQueries">Writing a Simple
 Query</a></h3>  Query</a></h3>
 <p>The example below shows a SPARQL query to find the title of a book from the  <p>The example below shows a SPARQL query to find the title of a book from the
Line 752 
Line 749 
   </div>    </div>
   
 <h3>2.4 <a id="BlankNodesInResults" name="BlankNodesInResults">Blank Node Labels in Query Results</a></h3>  <h3>2.4 <a id="BlankNodesInResults" name="BlankNodesInResults">Blank Node Labels in Query Results</a></h3>
 <p>Query results can contain labeled blank nodes.</p>  <p>
     Query results can contain blank nodes. Blank nodes in the example
     result sets in this document are written in the form
     "_:" followed by a blank node label.
   </p>
   
 <p>Blank node labels are scoped to a result set (as defined in &quot;<a class="inform" href="http://www.w3.org/TR/rdf-sparql-XMLres/">SPARQL  <p>Blank node labels are scoped to a result set (as defined in &quot;<a class="inform" href="http://www.w3.org/TR/rdf-sparql-XMLres/">SPARQL
 Query Results XML Format</a>&quot;) or, for the <code>CONSTRUCT</code> query  Query Results XML Format</a>&quot;) or, for the <code>CONSTRUCT</code> query
 form, the result graph.  form, the result graph.
Line 986 
Line 988 
 is given in <a href="#grammar">appendix A</a>.</p>  is given in <a href="#grammar">appendix A</a>.</p>
 <h3>4.1 <a id="syntaxTerms" name="syntaxTerms">RDF Term Syntax</a></h3>  <h3>4.1 <a id="syntaxTerms" name="syntaxTerms">RDF Term Syntax</a></h3>
 <h4>4.1.1 <a id="QSynIRI" name="QSynIRI">Syntax for IRIs</a></h4>  <h4>4.1.1 <a id="QSynIRI" name="QSynIRI">Syntax for IRIs</a></h4>
 <p>The terms delimited by &quot;<code>&lt;&gt;</code>&quot; are IRI references [<a href="#rfc3987">RFC3987</a>];  
 the delimiters do not form part of the reference. IRI references stand for IRIs, either directly      <p>The <a href="#rIRIref">IRIref</a> production designates the set of IRIs [<a href="#rfc3987">RFC3987</a>]; IRIs are a generalization of URIs [<a href="#rfc3986">RFC3986</a>] and are fully compatible with URIs and URLs. The <a href="#rPrefixedName">PrefixedName</a> production designates a prefixed name. The mapping from a prefixed name to an IRI is described below. IRI references (relative or absolute IRIs) are designated by the <a href="#rIRI_REF">IRI_REF</a> production, where the '&lt;' and '&gt;' delimiters do not form part of the IRI reference.  Relative IRIs match the irelative-ref reference in section 2.2 ABNF for IRI References and IRIs in [<a href="#rfc3987">RFC3987</a>] and are resolved to IRIs as described below.</p>
 or relative to a base IRI. IRIs are a generalization of URIs [<a href="#rfc3986">RFC3986</a>]  
 and are fully compatible with URIs and URLs.</p>  
 <p>The SPARQL syntax provides two abbreviation mechanisms for IRIs: prefixed names  
 and relative IRIs.</p>  
 <p class="todo">@@Check this against the final grammar.</p>  <p class="todo">@@Check this against the final grammar.</p>
 <div class="grammarExtract">  <div class="grammarExtract">
   Grammar rules:<div class="grammarTable">    Grammar rules:<div class="grammarTable">
Line 1128 
Line 1127 
   <li><code>&quot;&quot;&quot;The librarian said, &quot;Perhaps you would enjoy &#39;War and Peace&#39;.&quot;&quot;&quot;&quot;</code></li>    <li><code>&quot;&quot;&quot;The librarian said, &quot;Perhaps you would enjoy &#39;War and Peace&#39;.&quot;&quot;&quot;&quot;</code></li>
   <li><code>1</code>, which is the same as <code>&quot;1&quot;^^xsd:integer</code></li>    <li><code>1</code>, which is the same as <code>&quot;1&quot;^^xsd:integer</code></li>
   <li><code>1.3</code>, which is the same as <code>&quot;1.3&quot;^^xsd:decimal</code></li>    <li><code>1.3</code>, which is the same as <code>&quot;1.3&quot;^^xsd:decimal</code></li>
     <li><code>1.300</code>, which is the same as <code>&quot;1.300&quot;^^xsd:decimal</code></li>
   <li><code>1.0e6</code>, which is the same as <code>&quot;1.0e6&quot;^^xsd:double</code></li>    <li><code>1.0e6</code>, which is the same as <code>&quot;1.0e6&quot;^^xsd:double</code></li>
   <li><code>true</code>, which is the same as <code>&quot;true&quot;^^xsd:boolean</code></li>    <li><code>true</code>, which is the same as <code>&quot;true&quot;^^xsd:boolean</code></li>
   <li><code>false</code>, which is the same as <code>&quot;false&quot;^^xsd:boolean</code></li>    <li><code>false</code>, which is the same as <code>&quot;false&quot;^^xsd:boolean</code></li>
Line 1271 
Line 1271 
     </table>      </table>
   </div>    </div>
 </div>  </div>
   
       <p>
     Tokens matching the productions <a href="#rINTEGER">INTEGER</a>, <a href="#rDECIMAL">DECIMAL</a>, <a href="#rDOUBLE">DOUBLE</a> and
     <a href="#rBooleanLiteral">BooleanLiteral</a> are equivalent to a typed
     literal with the lexical value of the token and the corresponding
     datatype (<code>xsd:integer</code>, <code>xsd:decimal</code>, <code>xsd:double</code>, <code>xsd:boolean</code>).
       </p>
   
 <h4>4.1.3 <a id="QSynVariables" name="QSynVariables">Syntax for Query Variables</a></h4>  <h4>4.1.3 <a id="QSynVariables" name="QSynVariables">Syntax for Query Variables</a></h4>
 <p>Query variables in SPARQL queries have global scope; use of a given variable  <p>Query variables in SPARQL queries have global scope; use of a given variable
 name anywhere in a query identifies the same variable. Variables are prefixed by  name anywhere in a query identifies the same variable. Variables are prefixed by
Line 1397 
Line 1405 
   </div>    </div>
 </div>  </div>
 <h3>4.2 <a id="QSynTriples" name="QSynTriples">Syntax for Triple Patterns</a></h3>  <h3>4.2 <a id="QSynTriples" name="QSynTriples">Syntax for Triple Patterns</a></h3>
 <p><a href="#defn_TriplePattern">Triple Patterns</a> are written as a list of subject,  <p><a href="#defn_TriplePattern">Triple Patterns</a> are written as a whitespace-separated list of a subject,
 predicate, object; there are abbreviated ways of writing some common triple pattern  predicate and object; there are abbreviated ways of writing some common triple pattern
 constructs.</p>  constructs.</p>
 <p>The following examples express the same query:</p>  <p>The following examples express the same query:</p>
 <pre class="query">  <pre class="query">
Line 1588 
Line 1596 
 conjunction: basic graph patterns, which combine triples patterns, and group  conjunction: basic graph patterns, which combine triples patterns, and group
 graph patterns, which combine all other graph patterns.</p>  graph patterns, which combine all other graph patterns.</p>
   
       <p>The outer-most graph pattern in a query is called the query pattern. It is grammatically identified by <code>GroupGraphPattern</code> in</p>
   
       <table>
   <tr valign="baseline">
     <td><code class="gRuleLabel">[13]&nbsp;&nbsp;</code></td>
     <td><code class="gRuleHead"><a href="#rWhereClause">WhereClause</a></code></td>
     <td>&nbsp;&nbsp;::=&nbsp;&nbsp;</td>
     <td><code class="gRuleBody"><span class="token">'WHERE'</span>? <a href="#rGroupGraphPattern">GroupGraphPattern</a></code></td>
   </tr>
       </table>
   
 <h3>5.1 <a id="BasicGraphPatterns" name="BasicGraphPatterns">Basic Graph Patterns</a></h3>  <h3>5.1 <a id="BasicGraphPatterns" name="BasicGraphPatterns">Basic Graph Patterns</a></h3>
   
 <p>Basic graph patterns are sets of triple patterns. SPARQL graph pattern  <p>Basic graph patterns are sets of triple patterns. SPARQL graph pattern
Line 2743 
Line 2762 
   <li>Blank nodes</li>    <li>Blank nodes</li>
   <li>IRIs</li>    <li>IRIs</li>
   <li>RDF literals</li>    <li>RDF literals</li>
   <li>A plain literal is lower than an RDF literal with type <code>xsd:string</code>  
   of the same lexical form.</li>  
 </ol>  </ol>
   
     <p>The relative order of literals with language tags or typed literals with different types is undefined.</p>      <p>A plain literal is lower than an RDF literal with type <code>xsd:string</code> of the same lexical form.</p>
   
       <p>SPARQL does not define a total ordering of all possible RDF terms. Here are a few examples of pairs of terms for which the relative order is undefined:</p>
   
       <ul>
         <li>"a" and "a"@en_gb (a simple literal and a literal with a language tag)</li>
         <li>"a"@en_gb and "b"@en_gb</li>
         <li>"a" and "1"^^xsd:integer (a simple literal and a literal with a supported data type)</li>
         <li>"1"^^my:integer and "2"^^my:integer (a supported data type and an unsupported data type)</li>
         <li>"1"^^xsd:integer and "2"^^my:integer</li>
       </ul>
   
     <p>This list of variable bindings is in ascending order:</p>      <p>This list of variable bindings is in ascending order:</p>
   
Line 3359 
Line 3386 
 is determined by the SPARQL query processor. The query pattern is used to create  is determined by the SPARQL query processor. The query pattern is used to create
 a result set. The <code>DESCRIBE</code> form takes each of the resources identified  a result set. The <code>DESCRIBE</code> form takes each of the resources identified
 in a solution, together with any resources directly named by IRI, and assembles  in a solution, together with any resources directly named by IRI, and assembles
 a single RDF graph by taking a &quot;description&quot; from the target RDF Dataset. The  a single RDF graph by taking a &quot;description&quot; which can come from any
   information available including the target RDF Dataset. The
 description is determined by the query service. The syntax <code>DESCRIBE *</code>  description is determined by the query service. The syntax <code>DESCRIBE *</code>
 is an abbreviation that describes all of the variables in a query.</p>  is an abbreviation that describes all of the variables in a query.</p>
   
Line 3641 
Line 3669 
     <p>The XQuery <a href="http://www.w3.org/TR/xquery/#id-ebv"> Effective Boolean Value</a> rules rely on the definition of XPath's <a href="http://www.w3.org/TR/xpath-functions/#func-boolean">fn:boolean</a>. The following rules reflect the rules for <code>fn:boolean</code> applied to the argument types present in SPARQL Queries:</p>      <p>The XQuery <a href="http://www.w3.org/TR/xquery/#id-ebv"> Effective Boolean Value</a> rules rely on the definition of XPath's <a href="http://www.w3.org/TR/xpath-functions/#func-boolean">fn:boolean</a>. The following rules reflect the rules for <code>fn:boolean</code> applied to the argument types present in SPARQL Queries:</p>
   
     <ul>      <ul>
         <li>The EBV of any literal whose type is <code>xsd:boolean</code>, <code>xsd:string</code> or <span class="type ">numeric</span> is false if the lexical form is not valid for that datatype (e.g. "abc"^^xsd:integer).</li>
       <li>If the argument is a <span class="type typedLiteral">typed literal</span> with a <span class="type datatype">datatype</span> of <code>xsd:boolean</code>, the EBV is the value of that argument.</li>        <li>If the argument is a <span class="type typedLiteral">typed literal</span> with a <span class="type datatype">datatype</span> of <code>xsd:boolean</code>, the EBV is the value of that argument.</li>
       <li>If the argument is a <span class="type plainLiteral">plain literal</span> or a <span class="type typedLiteral">typed literal</span> with a <span class="type datatype">datatype</span> of <code>xsd:string</code>, the EBV is false if the operand value has zero length; otherwise the EBV is true.</li>        <li>If the argument is a <span class="type plainLiteral">plain literal</span> or a <span class="type typedLiteral">typed literal</span> with a <span class="type datatype">datatype</span> of <code>xsd:string</code>, the EBV is false if the operand value has zero length; otherwise the EBV is true.</li>
       <li>If the argument is a <span class="type numeric">numeric</span> type or a <span class="type typedLiteral">typed literal</span> with a datatype derived from a <span class="type numeric">numeric</span> type, the EBV is false if the operand value is NaN or is numerically equal to zero; otherwise the EBV is true.</li>        <li>If the argument is a <span class="type numeric">numeric</span> type or a <span class="type typedLiteral">typed literal</span> with a datatype derived from a <span class="type numeric">numeric</span> type, the EBV is false if the operand value is NaN or is numerically equal to zero; otherwise the EBV is true.</li>
Line 5231 
Line 5260 
     <div class="algExample2">      <div class="algExample2">
       LeftJoin(<br/>        LeftJoin(<br/>
 &nbsp;&nbsp;&nbsp; Join(Z, BGP(?s :p1 ?v1)),<br/>  &nbsp;&nbsp;&nbsp; Join(Z, BGP(?s :p1 ?v1)),<br/>
 &nbsp;&nbsp;&nbsp; Join(Z, BGP(?s :p1 ?v1)) ),<br/>  &nbsp;&nbsp;&nbsp; Join(Z, BGP(?s :p2 ?v2)) ),<br/>
 &nbsp;&nbsp;&nbsp; true)  &nbsp;&nbsp;&nbsp; true)
     </div>      </div>
   
Line 5271 
Line 5300 
     <div class="algExample2">      <div class="algExample2">
       LeftJoin(<br/>        LeftJoin(<br/>
 &nbsp;&nbsp;&nbsp;&nbsp; Join(Z, BGP(?s :p1 ?v1)),<br/>  &nbsp;&nbsp;&nbsp;&nbsp; Join(Z, BGP(?s :p1 ?v1)),<br/>
 &nbsp;&nbsp;&nbsp;&nbsp; Join(Z, BGP(?s :p1 ?v1)),<br/>  &nbsp;&nbsp;&nbsp;&nbsp; Join(Z, BGP(?s :p2 ?v2)),<br/>
 &nbsp;&nbsp;&nbsp;&nbsp; (?v1&lt;3) )  &nbsp;&nbsp;&nbsp;&nbsp; (?v1&lt;3) )
     </div>      </div>
   
Line 5388 
Line 5417 
 cardinality function giving the number of occurrences of each element from the  cardinality function giving the number of occurrences of each element from the
 set in the multiset.</p>  set in the multiset.</p>
   
     <p>Write &#956; for solution mappings and </p>
   <p>Write &mu;<sub>0</sub> for the mapping such that dom(&mu;<sub>0</sub>) is the empty set.</p>    <p>Write &mu;<sub>0</sub> for the mapping such that dom(&mu;<sub>0</sub>) is the empty set.</p>
   
   <p>Write &Omega;<sub>0</sub> for the multiset consisting of exactly the empty mapping &mu;<sub>0,</sub> with    <p>Write &Omega;<sub>0</sub> for the multiset consisting of exactly the empty mapping &mu;<sub>0,</sub> with
Line 5409 
Line 5439 
     <p>If &mu;<sub>1</sub> and &mu;<sub>2</sub> are compatible then &mu;<sub>1</sub> <i>set-union</i> &mu;<sub>2</sub>      <p>If &mu;<sub>1</sub> and &mu;<sub>2</sub> are compatible then &mu;<sub>1</sub> <i>set-union</i> &mu;<sub>2</sub>
     is also a mapping. Write merge(&mu;<sub>1</sub>, &mu;<sub>2</sub>) for &mu;<sub>1</sub> <i>set-union</i> &mu;<sub>2</sub></p>      is also a mapping. Write merge(&mu;<sub>1</sub>, &mu;<sub>2</sub>) for &mu;<sub>1</sub> <i>set-union</i> &mu;<sub>2</sub></p>
   
   <p>Write card[&Omega;](&mu;) for the cardinality of &mu; in a multiset of mappings &Omega;.    <p>Write card[&Omega;](&mu;) for the cardinality of solution mapping &mu; in a multiset
   If &#956; is not a member of &#937;, cardinality is not defined.</p>    of mappings &#937;.</p>
   
   <h4>12.3.1 <a id="BGPsparql" name="BGPsparql">SPARQL Basic Graph Pattern Matching</a></h4>    <h4>12.3.1 <a id="BGPsparql" name="BGPsparql">SPARQL Basic Graph Pattern Matching</a></h4>
   
Line 5439 
Line 5469 
     <b>Definition: Basic Graph Pattern Matching</b>      <b>Definition: Basic Graph Pattern Matching</b>
     <p>Let BGP be a basic graph pattern and let G be an RDF graph.</p>      <p>Let BGP be a basic graph pattern and let G be an RDF graph.</p>
     <p>&#956; is a <b>solution</b> for BGP from G when there is a pattern instance      <p>&#956; is a <b>solution</b> for BGP from G when there is a pattern instance
     mapping P such that P(BGP) is a subgraph of G and &#956; is a restriction of P to      mapping P such that P(BGP) is a subgraph of G and &#956; is the restriction of P to
     the query variables in BGP.</p>      the query variables in BGP.</p>
     <p>card[&Omega;](&mu;) = card[&Omega;](number of distinct RDF instance mappings, &#963;,      <p>card[&Omega;](&mu;) = card[&Omega;](number of distinct RDF instance mappings, &#963;,
     such that P = &#956;(&#963;) is a pattern instance mapping and P(BGP) is a subgraph of G).</p>      such that P = &#956;(&#963;) is a pattern instance mapping and P(BGP) is a subgraph of G).</p>
Line 5540 
Line 5570 
   <div class="defn">    <div class="defn">
     <p><b>Definition: <a id="defn_algLeftJoin" name="defn_algLeftJoin">LeftJoin</a></b></p>      <p><b>Definition: <a id="defn_algLeftJoin" name="defn_algLeftJoin">LeftJoin</a></b></p>
   
     <p>Let &Omega;<sub>1</sub> and &Omega;<sub>2</sub> be multisets of solution mappings and F a filter. We define:</p>      <p>Let &Omega;<sub>1</sub> and &Omega;<sub>2</sub> be multisets of solution mappings and
       expr be an expression. We define:</p>
   
     <p>LeftJoin(&Omega;<sub>1</sub>, &Omega;<sub>2</sub>, expr) = Filter(expr, Join(&Omega;<sub>1</sub>,      <p>LeftJoin(&Omega;<sub>1</sub>, &Omega;<sub>2</sub>, expr) = Filter(expr, Join(&Omega;<sub>1</sub>,
     &Omega;<sub>2</sub>)) <i>set-union</i> Diff(&Omega;<sub>1</sub>, &Omega;<sub>2</sub>, expr)</p>      &Omega;<sub>2</sub>)) <i>set-union</i> Diff(&Omega;<sub>1</sub>, &Omega;<sub>2</sub>, expr)</p>
Line 5666 
Line 5697 
 D[i] : The graph with IRI i in dataset D  D[i] : The graph with IRI i in dataset D
 D[DFT] : the default graph of D  D[DFT] : the default graph of D
 P, P1, P2 : graph patterns  P, P1, P2 : graph patterns
 L : a solution sequence  L : a solution sequence</pre>
 </pre>  
   
   <div class="defn">    <div class="defn">
     <b>Definition: <a id="defn_evalFilter" name="defn_evalFilter">Evaluation of Filter(P, F)</a></b>      <b>Definition: <a id="defn_evalFilter" name="defn_evalFilter">Evaluation of Filter(F,
       P)</a></b>
     <pre class="code">      <pre class="code">
 eval(D(G), Filter(P, F)) = Filter(eval(D(G), F))</pre>  eval(D(G), Filter(F, P)) = Filter(F, eval(D(G),P))</pre>
   </div>    </div>
   
   <div class="defn">    <div class="defn">
     <b>Definition: <a id="defn_evalJoin" name="defn_evalJoin">Evaluation of Join(P1, P2, F)</a></b>      <b>Definition: <a id="defn_evalJoin" name="defn_evalJoin">Evaluation of
       Join(P1, P2)</a></b>
     <pre class="code">      <pre class="code">
 eval(D(G), Join(P1, P2)) = Join(eval(D(G), P1), eval(D(G), P2))</pre>  eval(D(G), Join(P1, P2)) = Join(eval(D(G), P1), eval(D(G), P2))</pre>
   </div>    </div>
Line 5704 
Line 5735 
   <div class="defn">    <div class="defn">
     <b>Definition: <a id="defn_evalGraph" name="defn_evalGraph">Evaluation of a Graph Pattern</a></b>      <b>Definition: <a id="defn_evalGraph" name="defn_evalGraph">Evaluation of a Graph Pattern</a></b>
     <pre class="code">      <pre class="code">
 eval(D(G), Graph(IRI,P)) = eval(D(D[IRI]), P)  if IRI is a graph name in D
   eval(D(G), Graph(IRI,P)) = eval(D(D[IRI]), P)</pre>
       <pre class="code">
   if IRI is not a graph name in D
   eval(D(G), Graph(IRI,P)) = the empty multiset</pre>
       <pre class="code">
 eval(D(G), Graph(var,P)) =  eval(D(G), Graph(var,P)) =
      Let R be the empty multiset       Let R be the empty multiset
      foreach IRI i in D       foreach IRI i in D
Line 7175 
Line 7211 
         <h2><a name="chlog" id="chlog">Change Log</a></h2>          <h2><a name="chlog" id="chlog">Change Log</a></h2>
         <p>Raw CVS log:</p>          <p>Raw CVS log:</p>
         <pre>          <pre>
  <!-- log starts on next line, not this one -->  
   
 $Log$  $Log$
 Revision 1.101  2007/05/15 16:30:16  eric  Revision 1.107  2007/09/04 14:36:46  eric
 ~ well-formed XML  ~ tentative answer to action X
   
   Revision 1.106  2007/08/31 13:42:56  eric
   + rule for EBV of <a href="http://www.w3.org/TR/rdf-mt/#illformedliteral">ill-formed</a> <code>xsd:boolean</code>, <code>xsd:string</code> or <span class="type ">numeric</span> in 11.2.2 <a href="#ebv">Effective Boolean Value</a> to address <a href="http://www.w3.org/mid/46B83B29.9020605@hpl.hp.com">JJC's suggestions</a>.
   
   Revision 1.105  2007/08/07 10:01:52  aseaborne
   Eval of Join had mistake in defn title
   
   Revision 1.104  2007/08/06 08:48:25  aseaborne
   [EDITORIAL] <a href="http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2007Aug/0000">2007Aug/0000</a>
   
   
   
   12.5 Evaluation semantics of Filter: Corrected to:
   
     eval(D(G), Filter(F, P)) = Filter(F, eval(D(G),P))
   
   Revision 1.103  2007/07/13 15:59:07  aseaborne
   [EDITORIAL]
   
   
   
   1/ 12.5 Evaluation semantics
   
      Explicitly note that GRAPH &lt;uri&gt; for &lt;uri&gt; not in the dataset is the empty multiset
   
   <a href="http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2007May/0016">2007May/0016</a>
   
   
 Revision 1.100  2007/05/10 17:18:15  eric  
 + SimonR's at-risk text from 6D4A1AC1-5F11-4D3C-8B20-8B1A1EDA1EF2@itee.uq.edu.au  
 + <a href="#modOrderBy">9.1 ORDER BY</a> explicity references <a href="#operatorExtensibility">11.3.1 Operator Extensibility</a>  
 - removed issue text: DESCRIBE may be further constrained in future versions...  
 ~ updated issue stylings  
 + <a href="#rPN_LOCAL">PN_LOCAL</a> references <a href="#notXmlQNames">Not all Prefixed Names are XML QNames</a>  
   
 Revision 1.99  2007/05/10 12:50:39  aseaborne  2a/ Style change for algebra examples.
 Added at-risk style to 'reduced' note in 12.4  
   
 Revision 1.98  2007/05/10 10:49:32  aseaborne  2b/ Fix cut&paste errors for algebra examples (optionals)
 Use 'solution' for 'answer' in 12.2.3  
   
 Revision 1.97  2007/05/10 09:38:38  aseaborne  <a href="http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2007Jul/0001">2007Jul/0001</a>
 Empty pattern is Z, noted it is the empty BGP  
   
 Revision 1.96  2007/05/03 17:32:42  lfeigenb  
 added at-risk notice to reduced text in section 12  
   
 Revision 1.95  2007/05/03 14:06:17  aseaborne  
 Add REDUCED into the SPARQL algebra  
   
 Revision 1.94  2007/05/02 18:19:14  eric  3/ 10.4: Note that the description can include any information the query processor chooses to include.
 + <a href="#modDuplicates">9.3 Duplicate Solutions</a>  
 ~ moved <code>DISTINT</code> and <code>REDUCED</code> into <a href="#modDistinct">9.3.1 DISTINCT</a> and <a href="#modReduced">9.3.2 REDUCED</a> respectively  
   
 Revision 1.93  2007/05/01 18:00:48  aseaborne  <a href="http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2007May/0023">2007May/0023</a>
 Formatting  
   
 Revision 1.92  2007/05/01 17:49:52  aseaborne  
 Prefixed name tidying  
   
 Revision 1.91  2007/05/01 16:52:44  aseaborne  
 Grammar update for decision on digits in localname (decision : telecon of 2007-05-01)  
   
 Some renaming to remove misleading qname terminology.  4/ 4.1.2: Add example:
   
 Revision 1.90  2007/05/01 09:13:41  aseaborne        1.300, which is the same as "1.300"^^xsd:decimal
 Fix ref link  
   
 Revision 1.89  2007/04/30 13:49:06  aseaborne  
 Changes in response to: <a  
 href="http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2007Apr/0007.html"  
 >2007Apr/0007</a>  
   
 + Added text to sec 5 intro to compare/contrast BGPs and groups.  
   
 + Added a forward pointer in 8.2 for GRAPH used in example.  5/ 12.3.1:
   
 + Removed "overall solution sequence" text from offset bullet item   Definition: Basic Graph Pattern Matching
   
 + Consistent use of "query form", not "result form"     "mu is s/a/the/ restriction ..."
   
 + Swappped ASK and DESCRIBE sections  
   
 + Sec 12.2.1: explicitly note the recursive transformation.  
   
 + Added explanation of ToList symbol  6/ 12.3
   
 + Added that project can't chnage the sequence order.     Add "solution mapping" in
   
 Revision 1.88  2007/04/29 23:48:53  eric  "Write card[omega](mu) for the cardinality of solution mapping mu ..."
 ~ fixed prototype of example aGeo:distance function per <a href="http://www.w3.org/mid/44AE7B72.8060606@hp.com">[Fwd: [SPARQL] candidate Recommendation]</a>  
   
 Revision 1.87  2007/04/28 20:30:54  eric  
 + REDUCED in <a href="#sparqlGrammar">A.8 Grammar</a> and <a href="#sparqlQuery">12.2 SPARQL Query</a> per <a href="http://www.w3.org/mid/6a8224ab0704240022p39c7dfe3ka11e968a55ec221@mail.gmail.com">Questions about REDUCED, LeftJoin, Join</a>  
   
 Revision 1.86  2007/04/26 14:36:54  eric  
 ~ [EDITORIAL] change section headings for 2.3.1-3:s/Matching/Matching Literals with/ per <a href="http://www.w3.org/mid/20070419132536.9D4994C4B@toro.w3.mag.keio.ac.jp">[SPARQL] i18n comment: Renaming Section on \"Matching Language Tags\"</a>  
 + Note that RDF has no empty language tags in ?<a href="#func-lang" class="SPARQLoperator">11.4.6 lang</a> per <a href="http://www.w3.org/mid/20070419132811.7B6D24C0F@toro.w3.mag.keio.ac.jp">[SPARQL] i18n comment: Modification in description of langMatches operator</a>  
 ~ [EDITORIAL] change order of term descriptions in <a href="#func-langMatches" class="SPARQLoperator">11.4.12 langMatches</a>  
   
 Revision 1.85  2007/04/22 17:31:17  eric  7/ Editorial from: <a
 ~ changed stylesheet back to TR/base  href="http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2007May/0035">2007May/0035</a>
 ~ s|<code>ASCENDING</code>}ascending} per <a href="http://www.w3.org/mid/4624FBA3.4060608@deri.org">Re: Last Call for comments on "SPARQL Query Language for RDF"</a>  
 ~ s|<code>DECENDING</code>}decending} per <a href="http://www.w3.org/mid/4624FBA3.4060608@deri.org">Re: Last Call for comments on "SPARQL Query Language for RDF"</a>  
 ~ changed wording of <a href="#modOrderBy">9.1 ORDER BY</a> per <a href="http://www.w3.org/mid/4624FBA3.4060608@deri.org">Re: Last Call for comments on "SPARQL Query Language for RDF"</a>  
   
 Revision 1.84  2007/04/22 00:08:18  eric    12.3: Remove "If mu is not a member of Omega, cardinality is not defined."
 + [CLARIFICATION] <a href="#func-langMatches" class="SPARQLoperator">langMatches</a> uses (or at least, always has)  [<a href="#rfc4647">RFC4647</a>] basic filtering.  
   Responds to comment <a href="http://www.w3.org/mid/4614C2B4.9070407@hpl.hp.com">11.4.12 langMatches</a> and <a href="http://www.w3.org/mid/20070419132811.7B6D24C0F@toro.w3.mag.keio.ac.jp">[SPARQL] i18n comment: Modification in description of langMatches operator</a>.  
   
 Revision 1.83  2007/04/21 03:01:31  eric  
 + ref to [<a href="#BCP47">BCP47</a>] in 2.3.1 <a href="#matchLangTags">Matching Language Tags</a> per comment <a href="http://www.w3.org/mid/20070419132419.9ACF74BAD@toro.w3.mag.keio.ac.jp">[SPARQL] i18n comment: Adding a reference to BCP47</a>  
 + [EDITORIAL] ref to <code class="gRuleHead"><a href="#rBlankNodePropertyList">BlankNodePropertyList</a></code> in 4.1.4 <a href="#QSynBlankNodes">Syntax for Blank Nodes</a> per comment <a href="http://www.w3.org/mid/4624FBA3.4060608@deri.org">Re: Last Call for comments on "SPARQL Query Language for RDF"</a>  
 ~ [EDITORIAL] wording change in 5.2.1 <a href="#emptyGroupPattern">Empty Group Pattern</a> per comment <a href="http://www.w3.org/mid/4624FBA3.4060608@deri.org">Re: Last Call for comments on "SPARQL Query Language for RDF"</a>  
 ~ [EDITORIAL] wording change in 7 <a href="#alternatives">Matching Alternatives</a> per comment <a href="http://www.w3.org/mid/4624FBA3.4060608@deri.org">Re: Last Call for comments on "SPARQL Query Language for RDF"</a>  
 ~ [EDITORIAL] wording change in 8 <a href="#rdfDataset">RDF Dataset</a> per comment <a href="http://www.w3.org/mid/4624FBA3.4060608@deri.org">Re: Last Call for comments on "SPARQL Query Language for RDF"</a>  
 ~ [EDITORIAL] typos  
 + normative ref to [<a href="#BCP47">BCP47</a>]per comment <a href="http://www.w3.org/mid/20070419132419.9ACF74BAD@toro.w3.mag.keio.ac.jp">[SPARQL] i18n comment: Adding a reference to BCP47</a>  
   
 Revision 1.82  2007/04/10 13:03:51  aseaborne  
 Fixed defn for diff (quatify over bothg clauses) and eval of graph  
   
 (cardinality).  8/ 12.4 LeftJoin: Replace "F a filter" with "expr is an expression"
   
 Add informative refrences.  Revision 1.102  2007/07/11 16:57:12  eric
   ~ [EDITORIAL, INFORMATIVE] <a href="#basicpatterns">Making Simple Queries</a> ? 1 following <a href="http://www.w3.org/mid/20070517200742.GB4091@w3.org">offer to pfps</a>.
   
 Revision 1.81  2007/04/09 16:43:40  aseaborne  ~ [EDITORIAL, INFORMATIVE] replaced <a href="#BlankNodesInResults">Blank Node Labels in Query Results</a> ? 1 with <a href="http://www.w3.org/mid/20070526210541.GF4091@w3.org">description of blank node lables used in the examples</a>.
 Changes in response to <a  
 href="http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2007Mar/0000"  
 >2007Mar/0008</a> as noted in <a  
 href="http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2007Apr/0004"  
 >2007Apr/0003</a>  
   
 Revision 1.80  2007/04/07 17:35:56  aseaborne  ~ [EDITORIAL] replaced <a href="#QSynIRI">Syntax for IRIs</a> ? 1 with <a href="http://www.w3.org/mid/20070518004333.GC4091@w3.org">ordered processing of IRI shorthand syntaxes</a>.
 Changes in response to <a  
 href="http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2007Mar/0008"  
 >2007Mar/0008</a> as noted in <a  
 href="http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2007Apr/0003"  
 >2007Apr/0003</a>  
   
 Revision 1.79  2007/04/04 09:30:37  aseaborne  + [EDITORIAL] <a href="#QSynLiterals">Syntax for Literals</a> new ? 5 has <a href="http://www.w3.org/mid/20070526210541.GF4091@w3.org">text</a> clarifying role of <a href="#rINTEGER">INTEGER</a>, <a href="#rDECIMAL">DECIMAL</a>, <a href="#rDOUBLE">DOUBLE</a> and <a href="#rBooleanLiteral">BooleanLiteral</a> productions.
 Fix eval defn of ToList and other modifiers (editorial)  
   
 Revision 1.78  2007/04/04 09:23:14  aseaborne  ~ [EDITORIAL] <a href="#QSynTriples">Syntax for Triple Patterns</a> ? 1: indicate that spo lists are <a href="http://www.w3.org/mid/20070518004333.GC4091@w3.org">not expressed as mathematical lists</a>.
 Fix eval defn of ToList and other modifiers (editorial)  
   
 Revision 1.77  2007/03/27 02:58:40  eric  + [EDITORIAL] <a href="#GraphPattern">Graph Patterns</a> ? 3: <a href="http://www.w3.org/mid/20070518004333.GC4091@w3.org">identify the term "query pattern"</a>.
 ~ fix variable name typo  
   
 </pre></div>  </pre></div>
   


Legend:

Removed from v.1.101  
changed lines
  Added in v.1.107