org.deri.iris.rules.optimisation
Class RemoveDuplicateLiteralOptimiser

java.lang.Object
  extended by org.deri.iris.rules.optimisation.RemoveDuplicateLiteralOptimiser
All Implemented Interfaces:
IRuleOptimiser

public class RemoveDuplicateLiteralOptimiser
extends Object
implements IRuleOptimiser

This optimiser removes duplicate literal, e.g. p(?X,?Y) :- q(?X), q(?X), r(?Y), not s(?Y), not s(?Y), ?X = ?Y, ?X = ?Y. ==>> p(?X,?Y) :- q(?X), r(?Y), not s(?Y), ?X = ?Y.


Constructor Summary
RemoveDuplicateLiteralOptimiser()
           
 
Method Summary
 IRule optimise(IRule rule)
          Optimise the rule.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RemoveDuplicateLiteralOptimiser

public RemoveDuplicateLiteralOptimiser()
Method Detail

optimise

public IRule optimise(IRule rule)
Description copied from interface: IRuleOptimiser
Optimise the rule.

Specified by:
optimise in interface IRuleOptimiser
Parameters:
rule - The rule to optimise.
Returns:
The optimised rule.