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