LUPOSDATE Logo

Rule Documentation

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

Rule Constant Propagation

Short Description:

This rule implements constant propagation.

See also:

Constant Propagation of filter with ORs, Variable Propagation

Long Description:

If there Filter expressions with a equal-comparision of a variable with a constant value, e.g. Filter(?X=<http://myURL.de>), then this constant value can be propagated to preceding (RDF3X/Hexastore) Index operators. Afterwards, the corresponding variable (here ?X) must be bound with the constant value (here <http://myURL.de>), e.g. ?X ?Y ?Z. Filter(?X=<http://myURL.de>) is transformed into <http://myURL.de> ?Y ?Z. AddBinding(?X=<http://myURL.de>). However, there are problems with this approach if the constant value can be value-equal with another constant value using a different representation, e.g. +01^^xsd:int is value-equal, but not identical to 1^^xsd:int. Thus, this transformation rule is not applied whenever the constant value is a numerical value or a language tagged literal.

The following figure contains the graphical representation of the transformation rule.


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