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, 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: 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: 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).
None yet.
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.