de.fuberlin.wiwiss.d2rq.engine
Class TransformFilterCNF

java.lang.Object
  extended by com.hp.hpl.jena.sparql.algebra.TransformCopy
      extended by de.fuberlin.wiwiss.d2rq.engine.TransformFilterCNF
All Implemented Interfaces:
Transform

public class TransformFilterCNF
extends TransformCopy

Checks if any OpFilter can be split into more parts by translating it to Conjunctive Normal Form (CNF).

Author:
Herwig Leimer, Richard Cyganiak (richard@cyganiak.de)

Nested Class Summary
static class TransformFilterCNF.DeMorganLawApplyer
          Visitor for a filter-expression.
static class TransformFilterCNF.DistributiveLawApplyer
          Visitor for a filter-expression.
 
Field Summary
 
Fields inherited from class com.hp.hpl.jena.sparql.algebra.TransformCopy
COPY_ALWAYS, COPY_ONLY_ON_CHANGE
 
Constructor Summary
TransformFilterCNF()
           
 
Method Summary
 Op transform(OpFilter opFilter, Op subOp)
           
static ExprList translateFilterExpressionsToCNF(OpFilter opFilter)
          Translates all expressions of a filter to the conjunctive normalform.
 
Methods inherited from class com.hp.hpl.jena.sparql.algebra.TransformCopy
transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TransformFilterCNF

public TransformFilterCNF()
Method Detail

transform

public Op transform(OpFilter opFilter,
                    Op subOp)
Specified by:
transform in interface Transform
Overrides:
transform in class TransformCopy

translateFilterExpressionsToCNF

public static ExprList translateFilterExpressionsToCNF(OpFilter opFilter)
Translates all expressions of a filter to the conjunctive normalform. To get the conjunctive normalform of a term, first the law of DeMorgan and then the Distributive-law will be applied

Parameters:
opFilter - - a Filter with some expressions
Returns:
ExprList - every entry of the exprlist is in conjunctive normalform