Andy, was ARQ's run of the DAWG tests done with global strict mode on?
That would explain it...


On Mon, Apr 21, 2014 at 1:19 PM, Andy Seaborne <[email protected]> wrote:

> +1 to Paul.
>
> You can turn on global strict mode and it won't overload ?x + ?y in this
> way.  You'll get an error and so ?sum is undefined.
>
> You can't set strict mode on expression evauation per execution.  The
> expression evaluator does not know the context.
>
> There is never an implicit cast.  The lack of type information makes that
> impossible in general.  The other issue is casting is locale sensitive.
> 10,001 is what?
>
>         Andy
>
>
> On 21/04/14 20:22, Paul Gearon wrote:
>
>> This is an ARQ extension to SPARQL. The expression (?x + ?y AS ?sum) is
>> only defined for numbers, meaning that it is undefined for string values,
>> even if they can be converted. If a result is "undefined" then it can be
>> returned as anything.
>>
>> Someone thought that it would be a good idea to have + duplicate the
>> concat
>> operation when applied to strings.
>>
>> To explore further, section 17.5 points out that if a simple literal
>> (which
>> is now of type xsd:string) has a lexical value that is compatible with a
>> target type, then a cast may be made:
>> http://www.w3.org/TR/sparql11-query/#FunctionMapping
>>
>> Since the + operator is only defined for numbers, then it may seem
>> reasonable to assume that this an implicit cast should be performed for
>> the
>> strings "1" and "2", leading to a result of 3. However, casting is only
>> defined to occur when explicitly requested, as in: (xsd:integer(?x) +
>> xsd:integer(?y) AS ?sum).
>>
>> Regards,
>> Paul
>>
>>
>>
>> On Mon, Apr 21, 2014 at 1:39 PM, Tim Harsch <[email protected]> wrote:
>>
>>  Hi,
>>> I've been trying to figure out an issue with addition of strings in
>>> SPARQL.  According to the DAWG evaluation test at:
>>> http://www.w3.org/2009/sparql/docs/tests/summary.html#functions-plus-1
>>> "1" + "2" != "12", but ARQ run via Fuseki-1.0.1 would seem to disagree.
>>>  I
>>> also tried running the following similar query on dbpedia
>>> # :x6 :p "1" ; :q "2" .
>>> SELECT ?x ?y ( ?x + ?y AS ?sum)
>>> WHERE
>>> {
>>>    VALUES( ?x ?y ) {
>>>         ( "1" "2" )
>>>    }
>>> }
>>> ORDER BY ?x ?y ?sum
>>>
>>> and it seems to agree with the W3C expected results.  Is this a bug in
>>> ARQ?
>>>
>>> Thanks,
>>> Tim
>>>
>>>
>>
>

Reply via email to