Hello Ivan,

Thank you for that deep analysis and presentation of Virtuoso internals :)

It was very useful for me and I look forward to more of such
explorations with you and other developers.

Regards
Rajeev J Sebastian

On Jan 23, 2008 10:23 PM, Ivan Mikhailov <imikhai...@openlinksw.com> wrote:
> Rajeev,
>
> > What actually should have worked was "1"^^xsd:int ... since that was
> > the value in my sample data.
>
> I see. I'll check one more time.
>
> > Also, in Virtuoso, will there be equivalence between typed values ?
> > For e.g., in python, 1 == 1.0 works even thought first is integer and
> > second is a float
>
> Yes it works in FILTER(1 = 1.0) . It is not necessarily accurate in
> triple patterns, i.e. { <x> <y> 1 } and { <x> <y> 1.0 } will have
> different meaning for some RDF Views but same for some other; In
> addition, SPARQL optimizer can rewrite SELECT ?s ?p ?o ... WHERE
> { ?s ?p ?o . FILTER(?o = 1.0) }
> as more efficient
> SELECT ?s  ?p  (1.0) as ?o ... WHERE { ?s ?p 1.0 }
> thus the difference between FILTER(?o = 1.0) and FILTER(?o = 1) may
> disappear.
>
> In order to stress the importance of precise datatype, write that
> unambiguously (e.g. as FILTER ((?o = 1.0) && DATATYPE(?o) = xsd:double))
> when there's a need in such a precision.
>
> Arithmetic and type conversion for derived types (like xsd:int) is not
> complete. Virtuoso translates SPARQL into SQL and the list of datatypes
> of the resulting SQL engine is much shorter than list of xsd:...
> datatypes. We don't have even separate datatype for xsd:boolean, but
> types we do have are handled quite efficiently.
>
>
> Best Regards,
> Ivan Mikhailov.
> OpenLink Software.
>
>
>

Reply via email to