On 30/08/12 17:32, Rob Vesse wrote:

On 8/30/12 2:45 AM, "Andy Seaborne" <[email protected]> wrote:

On 30/08/12 00:51, Rob Vesse wrote:
Is there a particular class responsible for this renaming?

The constants are in ARQConstants.

The rename engine is in com.hp.hpl.jena.sparql.engine.Rename

Our developers would like to know exactly what forms Jena will use for
variable names in the generated algebra as they've seen some other
strange
ones like ?*x as well as the ?/x

IIRC ?*gNNN get allocated for some quad conversion.  Can't remember what
exactly (non-simplified property paths in GRAPHs?)

Is there a specific reason?  (This is internal stuff that the systems
may change without notice.)

A decision was made at some point in time to communicate queries
internally within our system using the Jena algebra representation, then
people complain every time they see something from Jena they hadn't seen
before or expected (like the OpDisjunction I also asked about).

Ah - thank you for the background.  Makes sense.

So you're passing round algebra after optimization?

(disjunction) and ?/wacky only show up after the optimizer has run. The algebra-from-query is as in the SPARQL spec. ARQ introduces new operators to note certain features (e.g. (sequence) is a bunch of joins without scope issues).

        Andy



If the execution strategy is not the constant-memory one the released
OpExecutor uses (and TDB[released]), then renaming isn't necessary as it
"just happens" as a result of bottom up evaluation.  Converting to
global variables has some convenience though, such as debugging and not
needing to do internal projection.

I'm not sure if we could do away with renaming and as you said it does
have some advantages.

Rob


        Andy

Reply via email to