Package-level declarations
Types
Link copied to clipboard
abstract class AbstractSolver<E : ExecutionContext>(unificator: Unificator, libraries: Runtime, flags: FlagStore, initialStaticKb: Theory, initialDynamicKb: Theory, inputChannels: InputStore, outputChannels: OutputStore, trustKb: Boolean = false) : Solver
Base Solver implementation, factoring out the state-management concerns common to every resolution strategy (initializing and updating the current ExecutionContext, loading/partitioning the initial static and dynamic knowledge bases and running their directives, honouring SolveOptions.limit/SolveOptions.isEager) so that concrete solver modules (:solve-classic, :solve-streams, :solve-concurrent) only have to implement solveImpl (the actual resolution algorithm), initializeContext (to produce their own E subtype), and copy/clone.