W3C home > Mailing lists > Public > public-rdf-dawg-comments@w3.org > March 2005

Type Promotion

From: Geoff Chappell <geoff@sover.net>
Date: Fri, 18 Mar 2005 14:48:35 -0500
To: <public-rdf-dawg-comments@w3.org>
Message-ID: <005601c52bf3$7996cb20$6401a8c0@gsclaptop>

Section 11.1.1 of 2005-03-17 editor's draft states:

"In addition, any r:Literal may be is cast to xs:string or xs:numeric when
used as an argument to an operator expecting that type."

I think it's a mistake to automatically promote literals to numerics because
it will make it impractical for large triples stores to use indices to
efficiently implement operators.

For example:

#find all things within a certain longitude/latitude range
select ?s where { ?s tiger:long ?lon; tiger:lat ?lat. 
	filter ?lon > 44020278 && ?lon < 44123021
		&& ?lat > -73429239 && ?lat < -73249701}

(fyi, see http://labs.intellidimension.com/tiger/ for a more complete
example of this query in action)

The query processor will not be able to assume that it can use the index to
quickly access the desired values because there may be literal values that
are coercible into numeric values (alternatively, the triple store could
have attempted to coerce every literal on insertion and multiply indexed
those that could be, but that seems like an unnecessary and potentially
costly burden -- especially if the list of valid coercions grew). Instead
the query processor will have to get all values and winnow the results
according to the filter.

I'd recommend requiring an explicit cast for literal to numeric coercions.
 
Geoff Chappell
Received on Friday, 18 March 2005 19:48:52 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:14:48 GMT