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