An evaluation manager for a concurrent semi-naive engine that runs
asynchronously in the background. Facts can be added to the evaluation after
the engine has started. Clients can also register listeners with the manager,
which are invoked when meaningful facts are derived.
Fields inherited from class edu.harvard.seas.pl.abcdatalog.engine.bottomup.concurrent.BottomUpEvalManager
Constructs a concurrent semi-naive evaluation manager that supports the
explicit addition of facts during evaluation. The argument marks the
predicates of the relations that are allowed to receive new facts.
extensiblePreds - the predicates of the relations that can be extended by new
Add a fact to this evaluation manager. If the evaluation manager has not
yet started evaluation, then this fact will be added to the evaluation
once it begins. If the evaluation has already been finished with
this.finishAsynchrousEval, the fact is ignored.
fact - the fact
IllegalArgumentException - if the given fact does not have a predicate that was
specified as "extensible" during construction.
Registers a listener with this manager. When a fact with predicate p is
derived during evaluation, the manager invokes the listener with that
fact. The listener can be called from an arbitrary thread. If the
listener is registered after evaluation is started, it will not be
invoked on any facts that have already been derived.