Hello Percy,

It's not a bug, it's an implementation feature. Virtuoso does not
distinguish equal values of different numeric types when check triples
for uniqueness and when object variable from one SPARQL triple pattern
appears in other triple pattern. It's a roll of dice, what of two equal
values is stored, 2 (i.e. "2"^^xsd:integer) or "2"^^xsd:int . The only
useful support for different numeric types is range checks for them, so
"1000000"^xsd:byte will not be stored as a number, instead it will be
stored as a weird strict-typed "1000000"^xsd:byte not equal to any valid
numeric value.

The thing is done this way because it would be really inconvenient to
use RDF Views, i.e., mappings of relational data to RDF. There is only
one SQL integer for more than a handful of XSD integers, fixed- and
floating-point arithmetic does not match exactly as well.

Non-numeric types are kept accurately, so xsd:string and xsd:String will
always differ from each other and from untyped. Languages are kept
accurately as well.

Best Regards,

Ivan Mikhailov
OpenLink Software
http://virtuoso.openlinksw.com

On Thu, 2012-02-23 at 18:49 -0200, Percy Enrique Rivera Salas wrote:
> All,
> 
> I successfully inserted the data below, with explicit datatypes
> through the Sparql Endpoint (WebBrowser), I also tried using the iSQL
> and Conductor Importer
> 
>         insert data into <teste_datatype>
>         {
>         <subject> <predicate> "string",
>                               "string"^^xsd:string,
>                               "string"^^xsd:String,
>                               "1"^^xsd:int,
>                               "1"^^xsd:integer,
>                                2,
>                               "2"^^xsd:int.
>         }
> 
> But, after the following query execution
> 
>         select  * 
>         from <teste_datatype>
>         where {?s ?p ?o}
> 
> I got these triples
> 
>            s
>            p
>            o
> subject
> predicate
> "1"^^<http://www.w3.org/2001/XMLSchema#int>
> subject
> predicate
> 2
> subject
> predicate
> "string"^^<http://www.w3.org/2001/XMLSchema#string>
> subject
> predicate
> "string"^^<http://www.w3.org/2001/XMLSchema#String>
> subject
> predicate
> string
> 
> I would expected something like
> 
>            s
>            p
>            o
> subject
> predicate
> 1
> subject
> predicate
> 2
> subject
> predicate
> string
> 
> Is this a bug? or am I doing something wrong?
> 
> Best Regards,
> 
> Percy



Reply via email to