/* * Created on Dec 4, 2004 * */ package aima.logic.propositional.visitors; import java.util.Set; import aima.logic.propositional.parsing.ast.Sentence; import aima.logic.propositional.parsing.ast.Symbol; import aima.util.SetOps; /** * @author Ravi Mohan * */ public class SymbolClassifier { public Set getPositiveSymbolsIn(Sentence sentence) { return new PositiveSymbolCollector().getPositiveSymbolsIn(sentence); } public Set getNegativeSymbolsIn(Sentence sentence) { return new NegativeSymbolCollector().getNegativeSymbolsIn(sentence); } public Set getPureNegativeSymbolsIn(Sentence sentence) { Set allNegatives = getNegativeSymbolsIn(sentence); Set allPositives = getPositiveSymbolsIn(sentence); return new SetOps().difference(allNegatives, allPositives); } public Set getPurePositiveSymbolsIn(Sentence sentence) { Set allNegatives = getNegativeSymbolsIn(sentence); Set allPositives = getPositiveSymbolsIn(sentence); return new SetOps().difference(allPositives, allNegatives); } public Set getPureSymbolsIn(Sentence sentence) { Set allPureNegatives = getPureNegativeSymbolsIn(sentence); Set allPurePositives = getPurePositiveSymbolsIn(sentence); return new SetOps().union(allPurePositives, allPureNegatives); } public Set getImpureSymbolsIn(Sentence sentence) { Set allNegatives = getNegativeSymbolsIn(sentence); Set allPositives = getPositiveSymbolsIn(sentence); return new SetOps().intersection(allPositives, allNegatives); } public Set getSymbolsIn(Sentence sentence) { return new SymbolCollector().getSymbolsIn(sentence); } }