PrologSolverFactory

The SolverFactory for :solve-prolog, 2P-Kt's ISO-standard, SLD-NF resolution engine.

This is the factory that ultimately backs the Solver.prolog property declared in :solve. That property locates this object at runtime -- by fully-qualified class name on the JVM, by module lookup on JS -- rather than depending on :solve-prolog directly, which is why this object must remain a top-level, no-argument-constructible object named exactly PrologSolverFactory in this package. Most callers should go through Solver.prolog rather than referencing this object directly; it is public mainly so those lookups, and the it.unibo.tuprolog.solve.problog and other resolution strategies that build on top of the prolog engine, have something to find and construct.

Every Solver/MutableSolver produced here resolves goals with the explicit, inspectable finite-state machine documented under it.unibo.tuprolog.solve.prolog.fsm (see PrologExecutionContext and SolutionIterator for the two pieces that make it tick), rather than via the host language's call stack -- see the "state-machine" explanation page in the project documentation for the full rationale and its grounding in Ciatto's 2021 paper on modelling a Prolog solver as a state machine.

See also

Properties

Link copied to clipboard
open override val defaultBuiltins: Library
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
open override fun mutableSolverOf(unificator: Unificator, libraries: Runtime, flags: FlagStore, staticKb: Theory, dynamicKb: Theory, inputs: InputStore, outputs: OutputStore): MutableSolver
open override fun mutableSolverOf(unificator: Unificator, libraries: Runtime, flags: FlagStore, staticKb: Theory, dynamicKb: Theory, stdIn: InputChannel<String>, stdOut: OutputChannel<String>, stdErr: OutputChannel<String>, warnings: OutputChannel<Warning>): MutableSolver
Link copied to clipboard
open fun mutableSolverWithDefaultBuiltins(unificator: Unificator, otherLibraries: Runtime, flags: FlagStore, staticKb: Theory, dynamicKb: Theory, stdIn: InputChannel<String>, stdOut: OutputChannel<String>, stdErr: OutputChannel<String>, warnings: OutputChannel<Warning>): MutableSolver
Link copied to clipboard
Link copied to clipboard
open override fun solverOf(unificator: Unificator, libraries: Runtime, flags: FlagStore, staticKb: Theory, dynamicKb: Theory, inputs: InputStore, outputs: OutputStore): Solver
open override fun solverOf(unificator: Unificator, libraries: Runtime, flags: FlagStore, staticKb: Theory, dynamicKb: Theory, stdIn: InputChannel<String>, stdOut: OutputChannel<String>, stdErr: OutputChannel<String>, warnings: OutputChannel<Warning>): Solver
Link copied to clipboard
open fun solverWithDefaultBuiltins(unificator: Unificator, otherLibraries: Runtime, flags: FlagStore, staticKb: Theory, dynamicKb: Theory, stdIn: InputChannel<String>, stdOut: OutputChannel<String>, stdErr: OutputChannel<String>, warnings: OutputChannel<Warning>): Solver