|This article may rely excessively on sources too closely associated with the subject, potentially preventing the article from being verifiable and neutral. (June 2014)|
|Original author(s)||Jan Wielemaker|
|Developer(s)||Jan Wielemaker, Anjo Anjewierden, etc|
|Stable release||7.2.3 / August 25, 2015|
|Preview release||7.3.2 / June 4, 2015|
|Written in||C, Prolog|
SWI-Prolog is a free implementation of the programming language Prolog, commonly used for teaching and semantic web applications. It has a rich set of features, libraries for constraint logic programming, multithreading, unit testing, GUI, interfacing to Java, ODBC and others, literate programming, a web server, SGML, RDF, RDFS, developer tools (including an IDE with a GUI debugger and GUI profiler), and extensive documentation.
SWI-Prolog has been under continuous development since 1987. Its main author is Jan Wielemaker.
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 is employed. The name of this group has changed to HCS (Human-Computer Studies).
Through the Pengines system SWI-Prolog queries may be distributed over several servers and web pages.
XPCE is a platform independent object oriented GUI toolkit for SWI-Prolog, Lisp and other interactive and dynamically typed languages. Although XPCE was designed to be language-independent, it has gained popularity most with Prolog. The development XPCE graphic toolkit started in 1987, together with SWI-Prolog.
PceEmacs is a SWI-Prolog builtin editor. PceEmacs is an Emacs clone implemented in Prolog (and XPCE). It supports proper indentation, syntax highlighting, full syntax checking by calling the SWI-Prolog parser, warning for singleton variables and finding predicate definitions based on the source-information from the Prolog database.