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.