LUPOSDATE Logo

Rule Documentation

All Packages - Package Correct Operatorgraph - Package Logical Optimization - Package Physical OptimizationFRAMES - NO FRAMES

Rule Bound Variable in Optional

Short Description:

This rule corrects the operator graph after its generation from the abstract syntax tree, especially for the case that variables are used in filter expressions, which are bound outside of the OPTIONAL-clause.

See also:

Bound Variable in Union

Long Description:

This rule avoids failures in SPARQL queries like { ?X ?Y ?Z. Optional { ?X2 ?Y2 ?Z2. Filter(?X=?X2).} }

Let P1 = ?X ?Y ?Z. and P2 = ?X2 ?Y2 ?Z2. If we do not correct the operator graph after generating the operator graph from the abstract syntax tree, then the Filter-expression is evaluated on results of P2, which is every time false (as ?X is not bound). Thus, we have to correct the operator graph and first join P1 and P2 before the evaluation of the filter expression.We display the graphical representation of the general transformation rule in the below given figure:
Transformation rule BoundVarInOptional


All Packages - Package Correct Operatorgraph - Package Logical Optimization - Package Physical OptimizationFRAMES - NO FRAMES