Theory and Practice of Logic Programming vol:12 pages:67-96
SWI-Prolog is neither a commercial Prolog system nor a purely academic
enterprise, but increasingly a community project. The core system has
been shaped to its current form while being used as a tool for building
research prototypes, primarily for knowledge-intensive and
interactive systems. Community contributions have added
several interfaces and the constraint (CLP) libraries. Commercial
involvement has created the initial garbage collector, added several
interfaces and two development tools: PlDoc (a literate programming
documentation system) and PlUnit (a unit testing environment).
In this article we present SWI-Prolog as an integrating tool, supporting
a wide range of ideas developed in the Prolog community and acting as
glue between foreign resources. This article itself is the
glue between technical articles on SWI-Prolog, providing context and
experience in applying them over a longer period.