Source: comments/2013Mar/0010
"Let V = empty multiset" ==> "Let V = empty set"
This change does not change the definition: V is only used as a set.
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.
These corrections have no normative status as they have not been incorporated in the specification through the Recommendation Track process. Ivan Herman, former 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↓.
None yet.
Source: comments/2013Mar/0010
"Let V = empty multiset" ==> "Let V = empty set"
This change does not change the definition: V is only used as a set.
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.
Report: public-rdf-dawg-comments/2013Aug/0004.html
In the grammar rule [83] PropertyListPathNotEmpty both object lists uses should be ObjectListPath.
Report: comments/2013May/0003
The explanatory expansion of IN
could clarify that the
left-hand side of the IN
is evaluated once only.
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).
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.
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/
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.
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.
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).
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.
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.
Report: public-sparql-dev/2015/Jun/0000.html.
Further comment following on from errata-query-7.
The second and third clauses in the explanatory expansion do not work
independently. When combined, they are the definition of Diff
.
The definition as Filter(expr, Join(Ω1, Ω2)) ∪ Diff(Ω1, Ω2,
expr)
is unaffected.
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. } } } }
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) )
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).
Report: public-rdf-dawg-comments/2015Jun/0001
The definition of Aggregation() should replace P by Group(exprlist, P) giving:
eval(D(G), Aggregation(exprlist, func, scalarvals, Group(exprlist, P))) = Aggregation(exprlist, func, scalarvals, eval(D(G), Group(exprlist, P)))
There is also a confusion in the definition of Aggregation, between multiset and set (section 18.5.1). In Definition: Aggregation replace "multiset of partial functions" by "set of partial functions".
Report: public-rdf-dawg-comments/2015Jun/0004
Clarification of the definition of Diff.
The definition of Diff should more clearly say that expressions that evaluate with an error are considered to be false.
One such working is "and expr(merge(μ, μ')) does not have an effective boolean value of true".
The definition of filter does not need the ", D(G)". It is correctly used in the evaluation of filter.
Report: public-sparql-dev/2015JulSep/0002
The terminology "unaggregated variables" in 18.2.4.1 needs defining or rewording.
Report: public-sparql-dev/2015OctDec/0035
GRAPH
use needs updating for blank nodes.
WHERE
clause, blank nodes should be allowed and
they would be a variable, like blank nodes written elsewhere in a WHERE
clause. Report: public-sparql-dev/2016JanMar/0005
Add suggestion ("SHOULD") that SAMPLE should return a defined value in preference to "undef" (i.e. when "error" is in the choice multiset).
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.
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).
Source: public-sparql-dev/2015AprJun/0014
This errata applies to the tests, not the specification itself.
Some SPARQL tests use "type": "typed-literal"
, where it
should be "type": "literal"
. e.g. json-res/jsonres01.srj.
"typed-literal"
existed in the pre-recommendation working
group note from the original SPARQL working group.
None yet.
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.
None yet.
None yet.