Ah, of course. Thanks Andy. Have changed the query to use BIND as suggested and 
working now :)

rob

On 28 Aug 2012, at 10:38, Andy Seaborne <[email protected]> wrote:

> 
> LET is an ARQ-extension and Fuseki is parsing with extensions enabled.
> 
> In this case, BIND does the same thing.    BIND is SPARQL 1.1
> 
> So either tell the command line the query is ARQ-extended SPARQL 1.1 (one of 
> file extension .arq, --format ARQ, use the comman arq.arq)
> 
> or use
> 
> BIND( fn:concat(?lat, ",", ?long) ) AS ?point)
> 
> You can also use a subquery:
> 
> CONSTRUCT {
>   ?thing georss:point ?point
> } WHERE {
>   { SELECT ?thing ( fn:concat(?lat, ",", ?long) ) AS ?point)
>     {
>       ?thing geo:lat ?lat .
>       ?thing geo:long ?long .
>     } LIMIT 1
>   }
> }
> 
>    Andy
> 
> On 28/08/12 10:19, Rob Styles wrote:
>> Hi all,
>> 
>> I have a Sparql query converting lat/long into a georss point:
>> 
>> PREFIX georss: <http://www.georss.org/georss/>
>> PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
>> PREFIX fn: <http://www.w3.org/2005/xpath-functions#>
>> 
>> CONSTRUCT {
>>   ?thing georss:point ?point
>> } WHERE {
>>   ?thing geo:lat ?lat .
>>   ?thing geo:long ?long .
>>   LET ( ?point := fn:concat(?lat, ",", ?long) )
>> }
>> LIMIT 1
>> 
>> This works correctly when posting through the fuseki control panel. When I 
>> try to run this using the command line tools in Jena, either bin/sparql or 
>> tdbquery I get
>> 
>> Lexical error at line 10, column 6.  Encountered: " " (32), after : "LET"
>> 
>> Messing with parentheses and whitespace makes not material difference. Would 
>> it be that the Jena tools are working at 1.0 and fuseki at 1.1?
>> 
>> I need to run this on command line as without the limit 1 it will be a 
>> long-running query.
>> 
>> Is there a way to run this, or other suggestions for equivalent 
>> functionality? Some kind of inference rule?
>> 
>> rob
>> 
> 

Reply via email to