Thank you very much Andy for your quick action.
 
>It will be in tonight's snapshot build of 2.7.5-SNAPSHOT (it builds at about 
>05:00 UTC)
 
When will Jena 2.7.5 be released?
 
>Not all algebra expressions can be turned into a query. If you are 
>manipulating the algebra, you can create forms OpAsQuery does not recognize.
 
Can I assume that all ops which are compiled from a sparql query can be turned 
back to a sparql query? For example, the following codes are always working 
fine:
 
          AlgebraGenerator ag = new AlgebraGenerator();
          Op op = ag.compile(query);
          Query query2 = OpAsQuery.asQuery(op);
 
 
The reason why we use these functions is that we want to add filters into the 
query in runtime, for example modifying the op by adding a filter expression 
(op = OpFilter.filter(e, op);), is this the best way to do that(adding a 
filter)?
 
Thanks, John
 

 

________________________________
 From: Andy Seaborne <[email protected]>
To: [email protected] 
Sent: Friday, October 26, 2012 6:19:00 PM
Subject: Re: ARQNotImplemented exception thrown by ARQ function calls
  
Oversight - I've just implemented it (it's not hard!).  It wil be in 
tonight's snapshot build of 2.7.5-SNAPSHOT (it builds at about 05:00 UTC)

https://repository.apache.org/content/repositories/snapshots/org/apache/jena/apache-jena/

By the way, you can execute algebra expressions directly:

DatasetGraph dsg = ...
QueryIterator qIter = Algebra.exec(op, dsg) ;

Not all algebra expressions can be turned into a query. If you are 
manipulating the algebra, you can create forms OpAsQuery does not recognize.

    Andy

On 26/10/12 22:24, John Liu wrote:
> I use some Jena arq apis to modify the query for adding filter in runtime.
>
> The query is
>
> PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
> PREFIX onto: <http://dbpedia.org/ontology/>
> SELECT * WHERE {
> ?p a onto:Place .
> ?p geo:l* ?loc .
> }
>
> There is valid card in the line "?p geo:l* ?loc ."
>
> The funcations I used are:
>
>      AlgebraGenerator ag = new AlgebraGenerator();
>      Op op = ag.compile(query);
>      op = OpFilter.filter(e, op);
>      Query query2 = OpAsQuery.asQuery(op);
>
> This query causes an ARQNotImplemented exception thrown in the last function 
> call. The exception stack trace is:
>
> com.hp.hpl.jena.sparql.ARQNotImplemented error occurred when handling the 
> REST data service.
> Not implemented: OpPath
>   at 
>com.hp.hpl.jena.sparql.algebra.OpAsQuery$Converter.visit(OpAsQuery.java:224)
>   at com.hp.hpl.jena.sparql.algebra.op.OpPath.visit(OpPath.java:73)
>   at 
>com.hp.hpl.jena.sparql.algebra.OpAsQuery$Converter.asElementGroup(OpAsQuery.java:97)
>   at 
>com.hp.hpl.jena.sparql.algebra.OpAsQuery$Converter.asElement(OpAsQuery.java:88)
>   at 
>com.hp.hpl.jena.sparql.algebra.OpAsQuery$Converter.visit(OpAsQuery.java:168)
>   at com.hp.hpl.jena.sparql.algebra.op.OpSequence.visit(OpSequence.java:75)
>   at 
>com.hp.hpl.jena.sparql.algebra.OpAsQuery$Converter.visit(OpAsQuery.java:473)
>   at com.hp.hpl.jena.sparql.algebra.op.OpSlice.visit(OpSlice.java:50)
>   at 
>com.hp.hpl.jena.sparql.algebra.OpAsQuery$Converter.asElementGroup(OpAsQuery.java:97)
>   at 
>com.hp.hpl.jena.sparql.algebra.OpAsQuery$Converter.asElement(OpAsQuery.java:88)
>   at 
>com.hp.hpl.jena.sparql.algebra.OpAsQuery$Converter.visit(OpAsQuery.java:310)
>   at com.hp.hpl.jena.sparql.algebra.op.OpFilter.visit(OpFilter.java:110)
>   at com.hp.hpl.jena.sparql.algebra.OpAsQuery.asQuery(OpAsQuery.java:50)
>
> The arq library I used is jena-arq-2.9.1 and the jean is jena-core-2.7.1
>
> My question is if this is bug in the arq functions? I have tested these 
> functions without adding the filter(the third call), but it still throws the 
> exception.
>
> If it isa bug, how can I file a defect to it?
>
> If it is not, how can I fix my code to avoid this exception.
>
> Thanks a lot for your help.
>
> John
>

Reply via email to