Re: data-r2 version of SPARQL tests

Ivan Mikhailov wrote on 04/15/2007 11:59:51 AM:

> Hello,
> 
> I've tried data-r2 with my SPARQL-to-SQL front-end translator and I see 
an
> issue with datatype(). Did I miss anything?
> 
> 
> Query data-r2/expr-builtin/q-datatype-2.rq
> 
> PREFIX : <http://example/>
> PREFIX  xsd:    <http://www.w3.org/2001/XMLSchema#>
> SELECT ?x
> { ?x :p ?v .
>   FILTER(  datatype(?v) != <http://example/NotADataTypeIRI> )
> }
> 
> Source data data-r2/expr-builtin/data-builtin-2.ttl
> 
> @prefix : <http://example/> .
> @prefix  xsd:    <http://www.w3.org/2001/XMLSchema#> .
> 
> :x1 :p  "string" .
> :x2 :p  "string"^^xsd:string .
> :x3 :p  "string"@en .
> :x4 :p  "lex"^^:unknownType .
> :x5 :p  1234 .
> :x6 :p  <http://example/iri> .
> :x7 :p  _:bNode .
> 
> 
> The expected result set does not contain binding for :x3 :p  "string"@en 
.
> http://www.w3.org/TR/rdf-concepts/ says that "A plain literal is a 
string
> combined with an optional language tag."
> http://www.w3.org/TR/rdf-sparql-query/ , 11.4.7, says that "datatype ...
> returns the datatype IRI of typedLit; returns xsd:string if the the
> parameter is a simple literal."

Hi Ivan,

"simple literal" is defined in 
http://www.w3.org/TR/rdf-sparql-query/#operandDataTypes :

"""
# simple literal denotes a plain literal with no language tag.
"""


> So I believe that "string"@en has datatype xsd:string that is not equal 
to
> <http://example/NotADataTypeIRI> and it should be reflected in the 
resulting
> data set.

"string"@en has a datatype, and so is not of an acceptable type for 
datatype(). Therefore, datatype() returns an error which propagates to the 
top of the FILTER and eliminates :x3 as a possible binding for ?x.

hope this helps,
Lee


> Query data-r2/expr-builtin/q-datatype-3.rq demonstrates the issue 
similar to
> the previous one.
> 
> 
> 
> Best Regards,
> Ivan Mikhailov
> OpenLink Software.
> 
> 

Received on Sunday, 15 April 2007 17:56:43 UTC