-
Notifications
You must be signed in to change notification settings - Fork 20
SPARQL Errata
This page is a collection of suspected errata for the SPARQL specifications.
See also the sparql-errata page of known and reported errata.
The table defines a namespace sfn:
that is never used.
With RDF 1.1, literals of datatype rdf:langString
must have non-empty language tag. So, writing "foo"^^rdf:langString
creates something that is not valid RDF (1.1). SPARQL needs language that stops this from happening. This section may or may not be the right place for that language. (Incidentally, the Turtle spec has the same problem.)
A plain literal is lower than an RDF literal with type xsd:string of the same lexical form.
With RDF 1.1, a plain literal and a literal with type xsd:string
are the same thing, so one cannot be lower than the other.
Furthermore, there are several occurrences of a language tag @en_gb
. This needs to be @en-gb
.
An ASK query does not include ORDER BY, LIMIT or OFFSET.
But the grammar allows all three, the Grammar Notes don't forbid them, and at least OFFSET is potentially useful with ASK. So it makes sense to assume the grammar is correct.
Apart from BOUND, COALESCE, NOT EXISTS and EXISTS, all functions and operators operate on RDF Terms and will produce a type error if any arguments are unbound.
This list is incomplete. IF, IN, NOT IN, || and && do not necessarily produce a type error if an argument is unbound.
Any expression other than logical-or (
||
) or logical-and (&&
) that encounters an error will produce that error.
This list is incomplete. BOUND, COALESCE, IN, NOT IN, and possibly IF (depending on the defintion of “encounter”) do not necessarily produce an error when encountering an error.
Errors in comparisons cause the NOT IN expression to raise an error if the RDF term being tested is not found to be in the list elsewhere in the list of terms.
The sentence is not grammatical.
“superceeds” should be “supersedes”.
With RDF 1.1, literals of datatype rdf:langString
must have non-empty language tag. So, this call creates something that is not valid RDF (1.1):
strDT("foo", rdf:langString)
This special case should be a type error.
Editorial: s/simpification/simplification/
The translation of GroupGraphPattern initialises a variable “FS” but never uses it.
Near the end of the section, the translation of inline data should result in a ToMultiSet(data)
.
Translation of a trailing VALUES
already uses this form.
For each
DataBlock
, form a solution mapping from the variable in the corresponding position in list of variables (or single variable), omitting a binding if the[DataBlockValue](ttps://www.w3.org/TR/sparql11-query/#rDataBlockValue)
is the wordUNDEF
.Combine each solution mappings into a solution sequence S, and apply
ToMultiSet
. The result is ToMultiset(S)
The text in 18.2.4.3 then needs to be aligned: ToMultiSet(data)
becomes translate(data)
.
Comments in SPARQL queries take the form of '#', outside an IRI or string
This is insufficiently precise. AIUI, the intention is that a #
character in the local part of a prefixed name ends the prefixed name and starts a comment, except if the character is escaped as \#
. It would be more accurate to say: “outside of the productions String
, IRIREF
and PN_LOCAL_ESC
. (Incidentally, the Turtle spec has the same problem.)
In addition to the codepoint escape sequences, the following escape sequences any string production
The sentence is not grammatical.
Regarding the serialisation of IRIs in the TSV format, the spec only states that “IRIs [are] enclosed in <...>
”. This phrasing would permit the use of relative IRIs, although that appears not to be intended.
For clarity, the section could also state that datatype IRIs on literals must be written in their full <...>
form. Prefix mappings are not available in this format.