- From: Jeff Z. Pan <jpan@csd.abdn.ac.uk>
 - Date: Mon, 05 Dec 2005 00:02:07 +0000
 - To: Jacco.van.Ossenbruggen@cwi.nl
 - Cc: jjc@hpl.hp.com, public-swbp-wg@w3.org
 
Jacco,
> Jeff, we discussed this during the teleconf, but were not sufficiently
> clear on how your mappings will look like and how an we could guarantee
> interoperable behavior (for example in terms of the behavior of the
> SPARQL example posted by Jeremy).
>
> Could you be more precise and give an example of the proposed mappings?
An exmaple approaximate mapping can be
(*) "1.3"^^xsd:decimal owlx:mapsTo "1.3"^^xsd:float .
Given the following data
eg:car1 eg:engineSizeInLitres "1.3"^^xsd:decimal .
eg:car2 eg:engineSizeInLitres "1.2999999523"^^xsd:float .
eg:car2 eg:engineSizeInLitres "1.299999999999999822"^^xsd:decimal .
we consider two SPARQL queries A and B.
1) Query A:
 SELECT  ?x ?size
 WHERE   { ?x eg:engineSizeInLitres ?size .
           FILTER (?size = "1.3"^^xsd:decimal) . }
where the "=" operation supports the type promotion/approximate mapping (*).
Query result:
eg:car1 "1.3"^^xsd:decimal
eg:car2 "1.2999999523"^^xsd:float
Note that "1.3"^^xsd:decimal can be promoted/mapped to "1.3"^^xsd:float
according to (*), and that "1.3"^^xsd:float and "1.2999999523"^^xsd:float
represent the same value. Note also that if we use the "primitive equality"
approach,
eg:car2 "1.2999999523"^^xsd:float
would not in the result because "1.3"^^xsd:decimal and "1.2999999523"^^xsd:float
represent different values.
2) Query B:
 SELECT  ?x ?size
 WHERE   {?x eg:engineSizeInLitres "1.3"^^xsd:float .}
Query result:
eg:car2 "1.2999999523"^^xsd:float.
Note that in this query we only consider equality and no type
promotions/approximate mappings are allowed. If we use the "primitive equality"
approach for this query, the result would be the same.
Jeff
--
Dr. Jeff Z. Pan (http://www.csd.abdn.ac.uk/~jpan/)
Department of Computing Science, The University of Aberdeen
Received on Monday, 5 December 2005 00:18:09 UTC