SWI-Prolog

SWI-Prolog is a free implementation of the programming language Prolog, commonly used for teaching and semantic web applications.

The name SWI is derived from Sociaal-Wetenschappelijke Informatica ("Social Science Informatics"), the former name of the group at the University of Amsterdam, where Wielemaker was employed when he initiated the development of SWI-Prolog.

SWI-Prolog-specific extensions aim at improving performance in several ways: ad hoc instructions are introduced to support unification, predicate invocation, some frequently used built-in predicates, arithmetic, control flow, and negation as failure.

[3] Constraint logic programming functionality came rather late in the lifetime of SWI-Prolog, because it lacked the basic support.

We mention SWI-Prolog's INCLP(R) library (De Koninck et al. 2006), which provides non-linear constraints over the reals and was implemented on top of CHR.

[7] XPCE is a platform-independent object-oriented[8] GUI toolkit for SWI-Prolog, Lisp and other interactive and dynamically typed languages.