Re: isNumeric

On 2010-09-20, at 09:55, Axel Polleres wrote:

> On 20 Sep 2010, at 10:26, Andy Seaborne wrote:
>> 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.
> 
> Hmmm, I read up in the F2F minutes 
> http://www.w3.org/2009/sparql/meeting/2010-03-26#SUM
> and couldn't find it there... according to the current definition SUM just delegates to op:numeric-add
> which would error on non-numeric values, wouldn't it?
> 
> Note that Resolution http://www.w3.org/2009/sparql/meeting/2010-03-26#resolution_2
> doesn't cover that, since the argument passed is not an error, but just 
> the wrong datatype.
> 
> We might have that resolved otherwise somewhere, but frankly I can't find that.

My recollection matches Axels, but I don't have a clear memory of the discussions. I would expect to have to do a cast and/or coalesce to protect from type errors.

- Steve

-- 
Steve Harris, CTO, Garlik Limited
1-3 Halford Road, Richmond, TW10 6AW, UK
+44 20 8439 8203  http://www.garlik.com/
Registered in England and Wales 535 7233 VAT # 849 0517 11
Registered office: Thames House, Portsmouth Road, Esher, Surrey, KT10 9AD

Received on Monday, 27 September 2010 11:45:14 UTC