292
292
<h2>Abstract</h2>
293
293
<p>
294
294
RDF is a directed, labeled graph data model for representing information in the
295
- Web. This specification defines the syntax and semantics of the SPARQL query language for
295
+ Web. This specification defines the syntax and semantics of the SPARQL Query Language for
296
296
RDF. SPARQL can be used to express queries across diverse data sources, whether the data is
297
297
stored natively as RDF or viewed as RDF via middleware. SPARQL contains capabilities for
298
298
querying required and optional graph patterns along with their conjunctions and
@@ -319,11 +319,11 @@ <h2>Introduction</h2>
319
319
RDF is a directed, labeled graph data model for representing information in the Web. RDF is
320
320
often used to represent, among other things, personal information, social networks, metadata
321
321
about digital artifacts, as well as to provide a means of integration over disparate sources of
322
- information. This specification defines the syntax and semantics of the SPARQL query language
322
+ information. This specification defines the syntax and semantics of the SPARQL Query Language
323
323
for RDF.
324
324
</p>
325
325
<p>
326
- The SPARQL query language for RDF is designed to meet the use cases and
326
+ The SPARQL Query Language for RDF is designed to meet the use cases and
327
327
requirements identified by the RDF Data Access Working Group in [[RDF-DAWG-UC]],
328
328
the SPARQL 1.1 Working Group in [[SPARQL-FEATURES]], and the RDF-star Working Group.
329
329
</p>
@@ -335,7 +335,7 @@ <h3>Document Outline</h3>
335
335
</p>
336
336
<p>
337
337
This section of the document, <a href="#introduction">section 1</a>, introduces the SPARQL
338
- query language specification. It presents the organization of this specification document and
338
+ Query Language specification. It presents the organization of this specification document and
339
339
the conventions used throughout the specification.
340
340
</p>
341
341
<p>
@@ -5315,7 +5315,7 @@ <h4>Operator Extensibility</h4>
5315
5315
</section>
5316
5316
<section id="SparqlOps">
5317
5317
<h3>Function Definitions</h3>
5318
- <p>This section defines the operators and functions introduced by the SPARQL Query language.
5318
+ <p>This section defines the operators and functions introduced by the SPARQL query language.
5319
5319
The examples show the behavior of the operators as invoked by the appropriate grammatical
5320
5320
constructs.</p>
5321
5321
<section id="func-forms">
@@ -10513,30 +10513,49 @@ <h4>Notes</h4>
10513
10513
<h2>SPARQL Grammar</h2>
10514
10514
<p>The SPARQL grammar covers both SPARQL Query and [[[SPARQL11-UPDATE]]].</p>
10515
10515
<section id="queryString">
10516
- <h3>SPARQL Request String</h3>
10516
+ <h3>SPARQL String</h3>
10517
10517
<p>
10518
- A <dfn data-lt="SPARQLRequestString">SPARQL Request String</dfn> is
10519
- a <a>SPARQL Query String</a> or <a>SPARQL Update String</a> and is a Unicode character string
10520
- (c.f. section 6.1 String concepts of [[CHARMOD]]) in the language defined by the following
10521
- grammar.</p>
10518
+ <span id="defn_SPARQLRequestString"></span>
10519
+ A <dfn>SPARQL string</dfn> is an
10520
+ <a data-cite="RDF12-CONCEPTS#dfn-rdf-string">RDF string</a> that
10521
+ conforms to the grammar given in this section.
10522
+ </p>
10523
+ <p class="note">
10524
+ An <a data-cite="RDF12-CONCEPTS#dfn-rdf-string">RDF string</a> is
10525
+ a sequence of
10526
+ <a data-cite="I18N-GLOSSARY#dfn-code-point" class="lint-ignore">Unicode code points</a>
10527
+ which are <a data-cite="I18N-GLOSSARY#dfn-scalar-value" class="lint-ignore">Unicode scalar values</a>.
10528
+ Unicode scalar values do not include the
10529
+ <a data-cite="I18N-GLOSSARY#dfn-surrogate" class="lint-ignore">surrogate code points</a>.
10530
+ </p>
10522
10531
<p>
10523
- A <dfn data-lt="SPARQLQueryString">SPARQL Query String</dfn> starts
10524
- at the <a href="#rQueryUnit">QueryUnit</a> production.</p>
10532
+ <span id="defn_SPARQLQueryString"></span>
10533
+ A <dfn>SPARQL query string</dfn> is a
10534
+ <a>SPARQL string</a> that conforms to the grammar starting at
10535
+ the <a href="#rQueryUnit">QueryUnit</a> production.
10536
+ </p>
10525
10537
<p>
10526
- A <dfn data-lt="SPARQLUpdateString">SPARQL Update String</dfn> starts
10527
- at the <a href="#rUpdateUnit">UpdateUnit</a> production.</p>
10528
- <p>For compatibility with future versions of Unicode, the characters in this string may
10538
+ <span id="defn_SPARQLUpdateString"></span>
10539
+ A <dfn>SPARQL update string</dfn> is a
10540
+ <a>SPARQL string</a> that conforms to the grammar starting at
10541
+ the <a href="#rUpdateUnit">UpdateUnit</a> production.
10542
+ </p>
10543
+ <p>
10544
+ For compatibility with future versions of Unicode, the characters in this string may
10529
10545
include Unicode codepoints that are unassigned as of the date of this publication (see
10530
10546
[[[UAX31]]] [[UAX31]] section 4 Pattern Syntax). For productions with excluded character
10531
10547
classes (for example <code>[^<>'{}|^`]</code>), the characters are excluded from the
10532
- range <code>#x0 - #x10FFFF</code>.</p>
10548
+ range <code>#x0 - #x10FFFF</code>.
10549
+ </p>
10533
10550
</section>
10534
10551
10535
10552
<section id="codepointEscape">
10536
10553
<h3>Codepoint Escape Sequences</h3>
10537
- <p>A SPARQL Query String is processed for codepoint escape sequences before parsing by the
10554
+ <p>
10555
+ A <a>SPARQL string</a> is processed for codepoint escape sequences before parsing by the
10538
10556
grammar defined in EBNF below. The codepoint escape sequences for a SPARQL query string
10539
- are:</p>
10557
+ are:
10558
+ </p>
10540
10559
<span class="doc-ref" id="table68"></span>
10541
10560
<table title="Codepoint escapes">
10542
10561
<colgroup>
@@ -10554,15 +10573,19 @@ <h3>Codepoint Escape Sequences</h3>
10554
10573
<a href="#HEX">HEX</a> <a href="#HEX">HEX</a>
10555
10574
</td>
10556
10575
<td>A Unicode code point in the range U+0 to U+FFFF inclusive corresponding to the
10557
- encoded hexadecimal value.</td>
10576
+ encoded hexadecimal value, excluding U+D800 to U+DFFF, the
10577
+ <a data-cite="I18N-GLOSSARY#dfn-surrogate">surrogate code points</a>.
10578
+ </td>
10558
10579
</tr>
10559
10580
<tr>
10560
10581
<td>
10561
10582
<span class="token">'\U'</span> <a href="#HEX">HEX</a> <a href="#HEX">HEX</a>
10562
10583
<a href="#HEX">HEX</a> <a href="#HEX">HEX</a> <a href="#HEX">HEX</a> <a href="#HEX">HEX</a> <a href="#HEX">HEX</a> <a href="#HEX">HEX</a>
10563
10584
</td>
10564
10585
<td>A Unicode code point in the range U+0 to U+10FFFF inclusive corresponding to the
10565
- encoded hexadecimal value.</td>
10586
+ encoded hexadecimal value, excluding U+D800 to U+DFFF, the
10587
+ <a data-cite="I18N-GLOSSARY#dfn-surrogate">surrogate code points</a>.
10588
+
10566
10589
</tr>
10567
10590
</tbody>
10568
10591
</table>
@@ -10575,13 +10598,16 @@ <h3>Codepoint Escape Sequences</h3>
10575
10598
<ab\u00E9xy> # Codepoint 00E9 is Latin small e with acute - é
10576
10599
\u03B1:a # Codepoint x03B1 is Greek small alpha - α
10577
10600
a\u003Ab # a:b -- codepoint x3A is colon</pre>
10578
- <p>Codepoint escape sequences can appear anywhere in the query string. They are processed
10601
+ <p>
10602
+ Codepoint escape sequences can appear anywhere in the query string. They are processed
10579
10603
before parsing based on the grammar rules and so may be replaced by codepoints with
10580
- significance in the grammar, such as "<code>:</code>" marking a prefixed name.</p>
10604
+ significance in the grammar, such as "<code>:</code>" marking a prefixed name.
10605
+ </p>
10581
10606
<p>These escape sequences are not included in the grammar below. Only escape sequences for
10582
10607
characters that would be legal at that point in the grammar may be given. For example, the
10583
10608
variable "<code>?x\u0020y</code>" is not legal (<code>\u0020</code> is a space and is not
10584
- permitted in a variable name).</p>
10609
+ permitted in a variable name).
10610
+ </p>
10585
10611
</section>
10586
10612
<section id="whitespace">
10587
10613
<h3>White Space</h3>
@@ -10629,22 +10655,22 @@ <h3>Blank Nodes and Blank Node Identifiers</h3>
10629
10655
<li><code><a href="#rDeleteData">DELETE DATA</a></code></li>
10630
10656
<li>a <code><a href="#rDeleteClause">DeleteClause</a></code></li>
10631
10657
</ul>
10632
- <p>in a <a data-cite="SPARQL11-UPDATE#terminology">SPARQL Update
10658
+ <p>in a <a data-cite="SPARQL11-UPDATE#terminology">SPARQL update
10633
10659
request</a>.
10634
10660
</p>
10635
10661
<p>
10636
10662
<a data-cite="RDF12-CONCEPTS#dfn-blank-node-identifier">Blank node identifiers</a>
10637
- are scoped to the <a>SPARQL Request String </a> in which they occur.
10663
+ are scoped to the <a>SPARQL string </a> in which they occur.
10638
10664
Different uses of the same blank node identifier in a request
10639
10665
string refer to the same blank node. Fresh blank nodes are generated for each request;
10640
10666
blank nodes can not be referenced by identifier across requests.</p>
10641
10667
<p>The same blank node identifier can not be used in:</p>
10642
10668
<ul>
10643
10669
<li>two separate basic graph patterns in a SPARQL Query</li>
10644
- <li>two <code><a href="#rModify">WHERE</a></code> clauses within a single SPARQL Update
10670
+ <li>two <code><a href="#rModify">WHERE</a></code> clauses within a single SPARQL update
10645
10671
request</li>
10646
10672
<li>two <code><a href="#rInsertData">INSERT DATA</a></code> operations within a single
10647
- SPARQL Update request</li>
10673
+ SPARQL update request</li>
10648
10674
</ul>
10649
10675
<p>Note that the same blank node identifier can occur in different
10650
10676
<a href="#rQuadPattern">QuadPattern</a> clauses in a [[[SPARQL11-UPDATE]]] request.</p>
@@ -10723,8 +10749,8 @@ <h3>Grammar</h3>
10723
10749
<li>Escape sequences are case sensitive.</li>
10724
10750
<li>When tokenizing the input and choosing grammar rules, the longest match is chosen.</li>
10725
10751
<li>The SPARQL grammar is LL(1) when the rules with uppercased names are used as terminals.</li>
10726
- <li>There are two entry points into the grammar: <code>QueryUnit</code> for SPARQL queries,
10727
- and <code>UpdateUnit</code> for SPARQL Update requests .</li>
10752
+ <li>There are two entry points into the grammar: <code>QueryUnit</code> for the SPARQL query language
10753
+ and <code>UpdateUnit</code> for the SPARQL update language .</li>
10728
10754
<li>In signed numbers, no white space is allowed between the sign and the number.
10729
10755
The <code><a href="#rAdditiveExpression">AdditiveExpression</a></code> grammar rule allows for this by
10730
10756
covering the two cases of an expression followed by a signed number. These
@@ -12126,7 +12152,7 @@ <h3>Grammar</h3>
12126
12152
<section id="conformance">
12127
12153
<h2>Conformance</h2>
12128
12154
<p>See Section <a href="#grammar">19 SPARQL Grammar</a> regarding conformance of
12129
- <a>SPARQL Query strings</a>, and section
12155
+ <a>SPARQL query strings</a>, and section
12130
12156
<a href="#QueryForms">16 Query Forms</a> for conformance of query results.
12131
12157
See section <a href="#mediaType">22. Internet Media Type</a> for conformance
12132
12158
to the application/sparql-query media type.</p>
0 commit comments