- 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