|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.deri.iris.rules.safety.StandardRuleSafetyProcessor
public class StandardRuleSafetyProcessor
A standard rule-safety processor that checks if all variables are limited, a la Ullman. If not, a rule unsafe exception is thrown.
| Constructor Summary | |
|---|---|
StandardRuleSafetyProcessor()
Default constructor. |
|
StandardRuleSafetyProcessor(boolean allowUnlimitedVariablesInNegatedOrdinaryPredicates,
boolean ternaryTargetsImplyLimited)
Constructor. |
|
| Method Summary | |
|---|---|
IRule |
process(IRule rule)
Process the rule. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public StandardRuleSafetyProcessor()
public StandardRuleSafetyProcessor(boolean allowUnlimitedVariablesInNegatedOrdinaryPredicates,
boolean ternaryTargetsImplyLimited)
allowUnlimitedVariablesInNegatedOrdinaryPredicates - Indicates if a rule can still be
considered safe if one or more variables occur
in negative ordinary predicates and nowhere else, e.g.
p(X) :- q(X), not r(Y)
if true, the above rule would be safeternaryTargetsImplyLimited - Indicates if ternary arithmetic built-ins can be
used to deduce limited variables, e.g.
p(Z) :- q(X, Y), X + Y = Z
if true, then Z would be considered limited.| Method Detail |
|---|
public IRule process(IRule rule)
throws RuleUnsafeException
IRuleSafetyProcessor
process in interface IRuleSafetyProcessorrule - The rule to process.
RuleUnsafeException
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||