- From: Arjohn Kampman <arjohn.kampman@aduna-software.com>
- Date: Thu, 30 Aug 2007 09:00:06 +0200
- To: public-rdf-dawg-comments@w3.org
Dear working group, The open-world/open-cmp-02 doesn't appear to be compliant with the current SPARQL spec. This particular test evaluates the following query: PREFIX : <http://example/> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> SELECT ?x ?v1 ?v2 { ?x :p [ :v1 ?v1 ; :v2 ?v2 ] . FILTER ( ?v1 <= ?v2 || ?v1 > ?v2 ) } on this data set: @prefix : <http://example/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . :x1 :p [ :v1 "v1" ; :v2 "v2" ] . :x2 :p [ :v1 1 ; :v2 "v2" ] . :x3 :p [ :v1 "x"^^:unknown ; :v2 "x"^^:unknown ] . :x4 :p [ :v1 <test:abc> ; :v2 <test:abc> ] . :x5 :p [ :v1 "2006-08-23T09:00:00+01:00"^^xsd:dateTime ; :v2 "2006-08-22"^^xsd:date ]. The test specifies that both :x1 and :x3 are results of this query. The :x1 is clear, it compares two plain literals. However, I wouldn't expect the :x3 result here. The operator table in the SPARQL spec defines various operand types for the '<=' operator, but literals with arbitrary datatypes are not among them. So, based on the contents of this table, I would say that "x"^^:unknown is not a valid operand for the '<=' operator. This particular literal does, of course, match the equals part of the operator, as defined for the '=' operator on RDF terms. But this query uses the '<=' operator, and not '='. If '?a <= ?b' is supposed to be semantically equivalent to '?a = ?b || ?a < ?b' -- which would make :x3 a valid result -- than the spec should state this somewhere. I would be grateful if you could clear this up for me, Arjohn
Received on Thursday, 30 August 2007 08:13:30 UTC