
Rule Documentation

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 equalcomparision 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 valueequal with another constant value using a different representation, e.g. +01^^xsd:int is valueequal, 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.