major technical: underspecified errors

The document specifies almost no exceptions, errors or warnings.
This seems unrealistic and unhelpful.  The entire syntax should be
reviewed so that appropriate syntax and run-time errors are defined.
Failing to specify this will not be good for portability because
different implementations will make different judgments about what are
the appropriate errors.  A good place to start would be to ask participants
who are developing implementations to submit their lists of errors.

Specifically with regard to syntax errors, is it true that
any string conforming to the EBNF is a valid query?  For example,
section 9. "Specifying RDF datasets",
is it a syntax error to name the same dataset twice?  For example,
SELECT ?x FROM NAMED <xyz> FROM NAMED <xyz> WHERE { ?x a w:idget }. 
Is this permitted?
If so, does it effectively create a copys, so that every solution
appears twice?

Also in this section,
there is no mention of any syntax or runtime checks that an IRI
actually identifies a graph.  Possibly the interpretation of an IRI that
does not identify a graph is that the graph is empty.  However, this would
be a disservice to the user since it would not alert the user to
a typo in spelling a graph IRI.  It would be better to specify an error.
Presumably the list of acceptable IRIs would be implementation-defined.

Turning to run-time errors, are there any other than type errors?
I see no mention of common arithmetic run-time errors (divide by zero,
overflow).  The cast operations presumably have run-time errors too.
(This should be noted in Table 11.2 "SPARQL constructor functions",
that a run-time error may happen for those casts that are "dependent on
the lexical value (M)".)  Are there any other run-time errors?

Fred Zemke

Received on Thursday, 12 January 2006 21:41:21 UTC