XSB: Extending Prolog with Tabled Logic Programming

@article{Swift2011XSBEP,
  title={XSB: Extending Prolog with Tabled Logic Programming},
  author={T. Swift and David Scott Warren},
  journal={Theory and Practice of Logic Programming},
  year={2011},
  volume={12},
  pages={157 - 187}
}
  • T. Swift, D. Warren
  • Published 22 December 2010
  • Computer Science
  • Theory and Practice of Logic Programming
Abstract The paradigm of Tabled Logic Programming (TLP) is now supported by a number of Prolog systems, including XSB, YAP Prolog, B-Prolog, Mercury, ALS, and Ciao. The reasons for this are partly theoretical: tabling ensures termination and optimal known complexity for queries to a large class of programs. However, the overriding reasons are practical. TLP allows sophisticated programs to be written concisely and efficiently, especially when mechanisms such as tabled negation and call and… 
JPL : Implementation of a Prolog System Supporting Incremental Tabulation
TLDR
JPL is an approach to support incremental tabulation for logic programs under non-monotonic logic to cache the proof generated by the deductive inference engine rather than the end results.
Probabilistic Inference in SWI-Prolog
TLDR
This paper shows how SWI-Prolog has been extended to include correct answer subsumption and how the PITA transformation has been changed to use SWI -Prolog implementation.
Batched evaluation of linear tabled logic programs
TLDR
Experimental results show that the combination of the DRA and DRE strategies can effectively reduce the execution time for batched evaluation.
Design and implementation of a modular interface to integrateCLP and tabled execution
TLDR
The requirements that a constraint solver must fulfill in order to be interfaced with a tabling system are examined, and a framework, which is called Mod TCLP, is proposed with a minimal set of operations which the constraint solvers has to provide to the tabling engine.
QUERY PROOF STRUCTURE CACHING FOR INCREMENTAL EVALUATION OF TABLED PROLOG PROGRAMS
TLDR
This paper uses the justification-based truth-maintenance system to support the incremental evaluation of tabled Prolog Programs and favors the dynamic rules based logic systems.
A Hitchhiker's Guide to Reinventing a Prolog Machine
TLDR
This work takes a fresh, “clean-room” look at implementing Prolog by deriving its translation to an executable representation and its execution algorithm from a simple Horn Clause meta-interpreter, and discusses similarities to existing Prolog abstract machines.
Delimited continuations in Prolog: semantics, use, and implementation in the WAM
TLDR
An implementation of a delimited continuations is shown in the context of the WAM, and more particular in hProlog, and the constructs are compared with similar ones in BinProlog and Haskell.
Incremental Tabling for Query-Driven Propagation of Logic Program Updates
TLDR
This approach reconciles high-level top-down deliberative reasoning about a query, with autonomous low-level bottom-up world reactivity to ongoing updates, and it might be adopted elsewhere for reasoning in logic.
Tabling with Sound Answer Subsumption
TLDR
It is shown that the different implementations indeed fail to produce least fixed points for some programs, and a formal framework is provided that generalises the existing approaches and a soundness criterion is established that explains for which programs the approach is sound.
...
...

References

SHOWING 1-10 OF 123 REFERENCES
Achieving scalability in parallel tabled logic programs
TLDR
This work proves that parallel tabling is indeed scalable for real applications by experimenting the OPTYap parallel tabled system on a scalable shared-memory machine.
An abstract machine for tabled execution of fixed-order stratified logic programs
TLDR
This article describes the architecture of the SLG-WAM for a powerful class of programs, the class of fixed-order dynamically stratified programs, and offers a detailed description of the algorithms, data structures, and instructions that the WAM adds, and a performance analysis of engine overhead due to the extensions.
Tabling for non‐monotonic programming
  • T. Swift
  • Computer Science
    Annals of Mathematics and Artificial Intelligence
  • 2004
TLDR
This paper describes tabling as it is implemented in the XSB system and shows how it can be used to construct meta‐interpreters (or preprocessors) for two sample formalisms: the Well‐Founded Semantics with Explicit Negation, and Generalized Annotated Logic Programs.
Heap Memory Management in Prolog with Tabling: Principles and Practice
TLDR
This system draws on the previous experience of compiling Prolog to C in the wamcc system and of compiling finite domain constraints in the clp(FD) system and is based on a low-level mini-assembly platform-independent language that makes it possible to avoid compiling C code, and thus drastically reduces compilation time.
Semantics-based program analysis for logic-based languages using XSB
TLDR
This article describes a simple and efficient way of using a logic programming language with builtin tabulation for general purpose semantics-based program analysis using XSB, and demonstrates that this approach competitively compares with most of the existing special purpose abstract interpretation tools for logic programs.
Efficient Access Mechanisms for Tabled Logic Programs
A New Formulation of Tabled Resolution with Delay
TLDR
The usefulness of the forest of trees paradigm for motivating tabling optimizations is shown by formalizing the concept of relevance within a tabled evaluation.
A Space Efficient Engine for Subsumption-Based Tabled Evaluation of Logic Programs
TLDR
Time-Stamped Trie (TST) is presented, a alternative data structure for organizing answer tables in subsumption-based tabling that relaxes the retrieval order, and yet ensures that all answers will be eventually retrieved.
Understanding Memory Management in Prolog Systems
TLDR
A methodology to compare the memory performance of Prolog based systems is presented, and it is used to compare two different WAM-based systems, namely XSB and Yap, and a scheme is proposed that can improve the performance of sliding-based garbage collectors is proposed.
A Simple and Efficient Implementation of Concurrent Local Tabling
TLDR
Algorithms to share completed tables among threads based on Concurrent Local SLG evaluation (SLGCL), which should be implementable by any tabling systems that uses Local evaluation based on the SLG-WAM or Chat engine, and may also be applicable to those using linear tabling.
...
...