Next: 1.0.0.0.1 Well-Founded Semantics
Up: The XSB System Version
Previous: Contents
Contents
Index
1. Introduction
XSB is a research-oriented, commercial-grade Logic Programming system
for Unix and Windows-based platforms. In addition to providing nearly
all functionality of ISO-Prolog, XSB includes the following features:
- Evaluation of queries according to the Well-Founded Semantics
[57] through full SLG resolution;
- A fully multi-threaded evaluation mechanism with thread-shared
static code, and that allows dynamic code and tables to be
thread-shared or thread-private.
- Constraint handling for tabled programs based on an engine-level
implementation of annotated variables and a package, clpqr for
handling real constraints, and the addition of Constraint Handling
Rules ;
- A variety of indexing techniques for asserted code
including variable-depth indexing on several alternate arguments,
fixed-depth indexing on combined arguments, trie-indexing. In
addition, both backtrackable and non-backtrackable updates to asserted
code are supported.
- A set of mature packages, to extend XSB to evaluate
F-logic [34] through the FLORA package, to model check
concurrent systems through the XMC system, to manage
ontologies through the Cold Dead Fish package, to support
literate programming through the xsbdoc package, and to
support answer set programming through the XASP package among
other features.
- A number of interfaces to other software systems, such a C, Java,
Perl, ODBC, SModels [43], and Oracle.
- Fast loading of large files by the load_dync
predicate, and by other means.
- A compiled HiLog implementation;
- Backtrackable updates through XSB's storage module that
support the semantics of transaction logic [6].
- Extensive pattern matching packages, and interfaces to libwww
routines, all of which are especially useful for Web applications.
- A novel transformation technique called unification
factoring that can improve program speed and indexing for compiled
code;
- Macro substitution for Prolog files via the xpp
preprocessor (included with the XSB distribution).
- Preprocessors and Interpreters so that XSB can be used to evaluate
programs that are based on advanced formalisms, such as extended logic
programs (according to the Well-Founded Semantics [2]);
Generalized Annotated Programs [35].
- Source code availability for portability and extensibility under
the GNU General Public Library License.
Though XSB can be used as a Prolog system1.1,
we avoid referring to XSB as such, because of the availability of SLG
resolution and the handling of HiLog terms. These facilities, while
seemingly simple, significantly extend its capabilities beyond those
of a typical Prolog system. We feel that these capabilities justify
viewing XSB as a new paradigm for Logic Programming. We briefly
discuss some of these features; others are discussed in Volumes 1 and
2 of the XSB manual, as well as the manuals for various XSB packages
such as FLORA, XMC, Cold Dead Fish, xsbdoc, and XASP.
Subsections
Next: 1.0.0.0.1 Well-Founded Semantics
Up: The XSB System Version
Previous: Contents
Contents
Index
Terrance Swift
2007-10-05