W3C

Errata in SPARQL 1.1

$Id: errata.html,v 1.30 2015-03-08 00:00:22 aseaborne Exp $

Introduction

This document records errata and corrections suggested by the community in the SPARQL 1.1 specification as published on the 21 March 2013. Actual changes to a W3C Recommendation must be approved by a chartered W3C Working Group and the W3C Advisory Committee.

  1. Errata for SPARQL 1.1 Overview
  2. Errata for SPARQL 1.1 Query Language
  3. Errata for SPARQL 1.1 Update
  4. Errata for SPARQL 1.1 Service Description
  5. Errata for SPARQL 1.1 Federated Query
  6. Errata for SPARQL 1.1 Query Results JSON Format
  7. Errata for SPARQL 1.1 Query Results CSV and TSV Formats
  8. Errata for SPARQL Query Results XML Format (Second Edition)
  9. Errata for SPARQL 1.1 Entailment Regimes
  10. Errata for SPARQL 1.1 Protocol
  11. Errata for SPARQL 1.1 Graph Store HTTP Protocol

These corrections have no normative status as they have not been incorporated in the specification through the Recommendation Track process. Ivan Herman, Semantic Web Activity lead, is the editor of this document. Note that the SPARQL Working Group has closed; there may be issues relating to the SPARQL specifications which are not currently listed here. If you find something in one of the documents listed above that you believe may be an error and wish to have it recorded here, please post your discovery to the public-rdf-dawg-comments mailing list, cc-ing to the editor of this document, Ivan Herman. The community has the possibility to react on the post and, typically after 5-6 business days and unless the community strongly objects for the discovery to be recorded as an official erratum, the entry is added to this list by the editor.

The errata are separated into eleven sections, corresponding to the eleven parts of the specification.

Three kinds of changes are highlighted: new, added text, changed text, and deleted text.


Errata for SPARQL 1.1 Overview

None yet.

Errata for SPARQL 1.1 Query Language

errata-query-1

Source: comments/2013Mar/0010

Definition of ALP

"Let V = empty multiset" ==> "Let V = empty set"

This change does not change the definition: V is only used as a set.

errata-query-2

Report: public-sparql-dev/2013AprJun/0002

In the translation of group graph patterns, the text:

For each element E in the GroupGraphPattern

should indicate that elements are processed in lexical (parse) order.

errata-query-3

Report: public-rdf-dawg-comments/2013Aug/0004.html

In the grammar rule [83] PropertyListPathNotEmpty both object lists uses should be ObjectListPath.

clarification-query-1

Report: comments/2013May/0003

The explanatory expansion of IN could clarify that the left-hand side of the IN is evaluated once only.

clarification-query-2

Report: public-rdf-dawg-comments/2013Jul/0004

Section 17.3.1 says "defined above" but there is a case of an error where extension is possible below in 17.4.1.7 (RDFterm-equals).

editorial-query-1

Report: public-rdf-dawg-comments/2013Aug/0007

In #defn_evalGraph, the line

R := Union(R, Join( eval(D(D[i]), P) , Ω(?var->i) )
is missing a right parenthesis.

editorial-query-2

Report: public-rdf-dawg-comments/2013Aug/0007

In #defn_algJoin, in the line

Join(Ω1, Ω2) = { merge(μ1, μ2) | μ1 in Ω1and μ2 in Ω2, and μ1 and μ2 are compatible }
there should be a space: s/Ω1and/Ω1 and/

errata-query-4

Report: discussion in thread public-rdf-dawg-comments/2013Aug/0010.html

CONCAT refers fn:concat for it's defintion but fn:concat is only defined for 2 or more arguments whereas CONCAT alsp allows zero arguments and one argument.

The suggested fix is to extend the definition of CONCAT to be:

See also the definition of GROUP_CONCAT.

editorial-query-3

Report: discussion in thread public-rdf-dawg-comments/2013Aug/0024.html

In Section 19.6, Bulletpoint 2 "DELETE DATA" links to "DELETE WHERE" (footnote 40) instead of footnote 39.

errata-query-5

Report: discussion in thread public-rdf-dawg-comments/2013Sep/0000.html

Need to note that aggregate functions are not allowed inside aggregate functions - add a note to the grammar notes (19.8).

errata-query-6

Report: public-sparql-dev/2013OctDec/0001 and analysis public-sparql-dev/2013OctDec/0004.

Lack of clarity on aggregate processing in the presence of errors in the aggregated expression. Affects MAX; the others end up with the same result for different reasons.

errata-query-7

Report: public-sparql-dev/2014May/0000.html.

In the expansion of LeftJoin:

LeftJoin(Ω1, Ω2, expr) =
    { merge(μ1, μ2) | μ1 in Ω1 and μ2 in Ω2, μ1 and μ2 are compatible and expr(merge(μ1, μ2)) is true }
∪
    { μ1 | μ1 in Ω1, ∀ μ2 in Ω2, μ1 and μ2 are not compatible, or Ω2 is empty }
∪
    { μ1 | μ1 in Ω1, ∃ μ2 in Ω2, μ1 and μ2 are compatible and expr(merge(μ1, μ2)) is false. }

The last clause should read:

  { μ1 | μ1 in Ω1, ∀ μ2 in Ω2, μ1 and μ2 are compatible and expr(merge(μ1, μ2)) is false }

The definition as Filter(expr, Join(Ω1, Ω2)) ∪ Diff(Ω1, Ω2, expr) is unaffected.

errata-query-8

Report: gist-github:/kasei/2543d93652016e0bb860

The definition of Substituteshould exclude varaibles not visible at the outermost level of the graph pattern. That is, a variable used inside a nested SELECT that is not in it's projection, should be considered a different variable. Similarly, with embedded NOT EXISTS/EXISTS expressions, variables used only within that expression, are "hidden" (these are an a nested "ASK" query).

SELECT ?s WHERE {
    ?s :p ?value .
    FILTER EXISTS {
        ?s :p ?count
        {
            SELECT (COUNT(*) AS ?count) WHERE {
                ?s :p ?other # Hidden by projection ?s : should be same-as ?anything.
            }
        }
    }
}

errata-query-9

Report: public-sparql-dev/2014OctDec/0005

The BIND example for { ?s :p ?v . {} BIND (2*?v AS ?v2) } should be:

Extend( BGP(?s :p ?v), ?v2, 2*?v )

A pattern of { BIND(2*?v AS ?v2) ?s :p ?v } would be:

Join(
   Extend( {} , ?v2, 2*?v )
   BGP(?s :p ?v)
)

errata-query-10

Report: Apache jena users mailing list 2014-12-23

The definition of substitute operation should deal with variables in the bindings set formed from any VALUES clauses.

substitute also needs to be aware of inner scoped, variables with the same name (e.g. inside nested SELECTs).

Errata for SPARQL 1.1 Update

errata-update-1

Report: 2015Mar/0001

The example in section 3.1.3.1 has

        FILTER ( ?date > "1970-01-01T00:00:00-02:00"^^xsd:dateTime )
      

The test is the wrong way round: it should be:

        FILTER ( ?date < "1970-01-01T00:00:00-02:00"^^xsd:dateTime )
      

The text above and example data are correct.

Errata for SPARQL 1.1 Service Description

errata-sd-1

Source: public-rdf-dawg-comments/2013Apr/0000.html

Wrong/missing link in section 1.1.

Errata for SPARQL 1.1 Federated Query

errata-fq-1

Source: public-rdf-dawg-comments/2013Apr/0007.html

The last queryGroup example in section 2.4 of the document is not the right example (missing VALUES).

Errata for SPARQL 1.1 Query Results JSON Format

None yet.

Errata for SPARQL 1.1 Query Results CSV and TSV Formats

None yet.

Errata for SPARQL Query Results XML Format (Second Edition)

errata-results-xml-1

Report: public-rdf-dawg-comments/2013Aug/0004.html

Incorrect XML namespaces.

Errata for SPARQL 1.1 Entailment Regimes

errata-entailment-1

Report: public-rdf-dawg-comments/2014Feb/0001.html

The rdf:type labelled edge in Figure 1 (Section 1.2) from ex:MITPress to rdf:Property should go from ex:publishes to rdf:Property.

Errata for SPARQL 1.1 Protocol

None yet.

Errata for SPARQL 1.1 Graph Store HTTP Protocol

None yet.

  翻译: