On 16/11/11 17:00, Robert Vesse wrote:
Yes seeing as it is a sequence of joins I just used our Transform 
implementation to turn it back into a series of OpJoin's

Is there a standard place where you can turn specific optimizations on/off?

Either/or

1/ modifyOp of the query engine can pick and choose
   AKA call it yourself.

2/ some context keys control optimization -- see Optimize

Think of QueryEngineMain.modifyOp is a canned set of optimizations you can use or not as you choose.

(1) is better IMO - if you want detailed control, take control.

        Andy


Rob

-----Original Message-----
From: Andy Seaborne [mailto:[email protected]] On Behalf Of Andy 
Seaborne
Sent: Wednesday, November 16, 2011 12:18 AM
To: [email protected]
Subject: Re: SPARQL Algebra from Query Validator vs actual Query

On 16/11/11 01:46, Robert Vesse wrote:
We've noticed that for some queries the SPARQL Query Validator in
Fuseki will generate different algebra versus the query algebra we
see when processing it within our query engine.

The particular example we see is certain queries use join (OpJoin) in
the validator output but sequence (OpSequence) in the actual query
engine.

I haven't dived into the code yet to take a look at what's going on
but can anyone tell me quickly whether this is an expected behaviour?
e.g. does the validator only show the unoptimised algebra

Yes.

See also

arq.qparse --print=op   # Algebra
arq.qparse --print=opt  # Optimized (default config)

If you are writing a query engine, you get to choose what optimizations
are appropriate to your system.

"sequence" probably isn't suited to the Cray architecture but you can
implement it as a N-way join.

QueryEngineTDB.modifyOp
QueryEngineMain.modifyOp
Algebra.optimize

        Andy


Cheers,

Rob



Reply via email to