- From: Bob MacGregor <bmacgregor@siderean.com>
- Date: Mon, 28 Mar 2005 08:31:18 -0800
- To: andy.seaborne@hp.com
- CC: public-rdf-dawg-comments@w3.org
- Message-ID: <42483156.1080806@siderean.com>
In this extract of the grammar: |WhereClause| ::= |( 'where' )? GraphPattern <http://www.w3.org/2001/sw/DataAccess/rq23/#rGraphPattern>| |GraphPattern| ::= |'{' ( PatternElement <http://www.w3.org/2001/sw/DataAccess/rq23/#rPatternElement> ( '.' PatternElement <http://www.w3.org/2001/sw/DataAccess/rq23/#rPatternElement> )* ( '.' )? )? '}'| we see that placing curly braces around the arbument to WHERE is required. I'm hoping that is an unintentional mistake. Otherwise, writing SELECT ?x WHERE ?x P 5 is illegal. On the other hand, I see that the WHERE keyword is considered optional. I'd much prefer that it was mandatory. That would make the language slightly more rigid, but also increases its clarity. On a much more significant point: I'm wondering if the following comment is still true. <snip> > Seaborne, Andy wrote: > Originally, this was called OR but the working group noted that this leads to confusion because, in OWL DL: > { :x :p ?v } OR { :x :q ?w } > may be true as a boolean expression without being about to determine any values for either ?v and ?w. Hence the choice of a name which is supposed to > be more explicit as to the outcome. This seems to be a statement that SPARQL in general wants to shy away from a logic interpretation, and that specifically, it doesn't want to support logical disjunction. The reference above is to OWL DL, but it applies equally to KIF and any other logic that is sufficiently expressive. I see this as extremely short-sighted -- its basically saying that SPARQL doesn't want to be upward compatible with, e.g., the rule languages that are sure to follow downstream. It also is saying that SPARQL is distancing itself from OWL, i.e., that if it is applied to a graph that contains OWL assertions, it seeks to avoid triggering OWL-style inference. Frequently, whether or not inference occurs is the province of the underlying RDF/OWL store; not the query language. Making sense of the answers you would get back when applying a SPARQL query to an OWL reasoner will be a mess. The OWL equivalent of a disjunction operator is called 'unionOf', so I don't see how renaming 'OR' to 'UNION' has made things any clearer. Cheers, Bob
Received on Monday, 28 March 2005 16:32:09 UTC