package doser.entitydisambiguation.algorithms.rules;
import java.util.ArrayList;
import java.util.List;
import doser.entitydisambiguation.knowledgebases.EntityCentricKBDBpedia;
import doser.entitydisambiguation.algorithms.SurfaceForm;
import doser.entitydisambiguation.knowledgebases.AbstractKnowledgeBase;
public class RuleAdapation {
private List<AbstractRule> ruleChain;
public RuleAdapation() {
super();
this.ruleChain = new ArrayList<AbstractRule>();
}
public void addNoCandidatesCheckPluralRule(AbstractKnowledgeBase eckb) {
this.ruleChain.add(new NoCandidatesCheckPlural(eckb));
}
public void addNoCandidatesExpansionRule(AbstractKnowledgeBase eckb) {
this.ruleChain.add(new NoCandidatesExpansionRules(eckb));
}
public void addUnambiguousToAmbiguousRule(EntityCentricKBDBpedia eckb) {
this.ruleChain.add(new UnambiguousToAmbiguousRule(eckb));
}
public void addPatternRule(EntityCentricKBDBpedia eckb, String topic) {
if (topic != null) {
this.ruleChain.add(new PatternRule(eckb));
}
}
public void addContextRule(EntityCentricKBDBpedia eckb) {
this.ruleChain.add(new ContextRule(eckb));
}
public void performRuleChainBeforeCandidateSelection(List<SurfaceForm> rep) {
for (AbstractRule r : ruleChain) {
r.applyRule(rep);
}
}
}