W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > July to September 2010

Re: isNumeric

From: Andy Seaborne <andy.seaborne@epimorphics.com>
Date: Mon, 20 Sep 2010 09:26:26 +0100
Message-ID: <4C971AB2.2010802@epimorphics.com>
To: Axel Polleres <axel.polleres@deri.org>
CC: SPARQL Working Group <public-rdf-dawg@w3.org>


On 19/09/10 21:13, Axel Polleres wrote:
> Hi all,
>
> Don't we need something like a function isNumeric to test for a numeric argument?
> Seems to be handy, useful for instance for numeric aggregates, or no?
>
> It seems COALESCE together with a cast would work as well, but
> something like
>    SUM(IF(isNumeric(?X), ?X, 0))
> looks better - at least to me - than:
>      SUM(COALESCE(xs:double(?X) , 0))
>
> Opinions?
>
> Axel

I believe we eventually agreed that sum() would skip any evaluation 
errors of the summation as being more consistent in style for SPARQL. It 
makes it more consistent since you can always do:

sum(?X+0)

to make the check happen before the aggregate is called. We do not 
define any situation that causes a runtime evaluation error in SPARQL 
(systems may issue warnings or reject the query, of course).

PREFIX ex: <http://example.org/>
PREFIX rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT ?T (Sum(?Pr) AS ?P)
WHERE { ?Item rdf:type ?T; ex:price ?Pr }
GROUP BY ?T

We may want isNumeric, but it's not required here.

	Andy

PS The data and queries have several syntax errors.
Received on Monday, 20 September 2010 08:27:02 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:43 GMT