public class BFRuleContext extends Object implements RuleContext
Constructor and Description |
---|
BFRuleContext(ForwardRuleInfGraphI graph)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
add(Triple t)
Add a triple to a temporary "pending" store, ready to be added to added to the
deductions graph and the processing stack later.
|
void |
addTriple(Triple t)
Add a triple to the stack of triples to waiting to be processed by the rule engine.
|
boolean |
contains(Node s,
Node p,
Node o)
Return true if the triple pattern is already in either the graph or the stack.
|
boolean |
contains(Triple t)
Return true if the triple is already in either the graph or the stack.
|
ClosableIterator<Triple> |
find(Node s,
Node p,
Node o)
In some formulations the context includes deductions that are not yet
visible to the underlying graph but need to be checked for.
|
void |
flushPending()
Take all the pending triples and add them to both the given graph and
to the processing stack.
|
BindingEnvironment |
getEnv()
Returns the current variable binding environment for the current rule.
|
BindingStack |
getEnvStack()
Variant of the generic getEnv interface specific to the basic
forward rule system.
|
InfGraph |
getGraph()
Returns the graph.
|
Triple |
getNextTriple()
Return the next triple to be added to the graph, removing it from
the stack.
|
Rule |
getRule()
Returns the rule.
|
void |
remove(Triple t)
Remove a triple from the deduction graph (and the original graph if relevant).
|
void |
resetEnv(int newSize)
Reset the binding environment back to empty.
|
void |
setRule(Rule rule)
Sets the rule.
|
void |
silentAdd(Triple t)
Assert a new triple in the deduction graph, bypassing any processing machinery.
|
public BFRuleContext(ForwardRuleInfGraphI graph)
graph
- the inference graph which owns this context.public BindingEnvironment getEnv()
getEnv
in interface RuleContext
public BindingStack getEnvStack()
public InfGraph getGraph()
getGraph
in interface RuleContext
public Rule getRule()
getRule
in interface RuleContext
public void setRule(Rule rule)
setRule
in interface RuleContext
rule
- The rule to setpublic void addTriple(Triple t)
public void add(Triple t)
This is needed to prevent concurrent modification exceptions which searching the deductions for matches to a given rule.
add
in interface RuleContext
public void flushPending()
public boolean contains(Triple t)
contains
in interface RuleContext
public boolean contains(Node s, Node p, Node o)
contains
in interface RuleContext
public ClosableIterator<Triple> find(Node s, Node p, Node o)
find
in interface RuleContext
public Triple getNextTriple()
public void resetEnv(int newSize)
newSize
- the number of variables needed for processing the new rulepublic void silentAdd(Triple t)
silentAdd
in interface RuleContext
public void remove(Triple t)
remove
in interface RuleContext
Licenced under the Apache License, Version 2.0