SWI-Prolog offers a comprehensive and portable free-software Prolog programming environment for more than 25 years now. It is widely used in research and education as well as for commercial applications. This is the official reference manual for the latest version of SWI-Prolog. SWI-Prolog aims to be a robust and scalable implementation with fair compatibility to the ISO Prolog standard. Version 7 extends the core language with strings, dicts and functional notation. These extensions optimize data interoperability with other IT systems and help bridging the gap to other programming languages. SWI-Prolog ships with a wide range of interface libraries, providing interfaces to other languages such as C and Java, databases, graphics and networking. It provides extensive support for managing HTML/SGML/XML and RDF documents. The system is particularly suited for server applications due to robust support for multi threading and HTTP server libraries. The SWI-Prolog development environment includes extensive editor support, graphical source-level debugger, autoloading and make facility. The SWI-Prolog editor and the PDT plugin for Eclipse provide alternative environments. This comprehensive manual gives an overview of the system and how to set-up programming projects with it, it describes the built-in predicates, module system, coroutining, threads, the Constraint Handling Rules library, the foreign language interface and how to generate runtime applications.
Jan Wielemaker is the lead developer of SWI-Prolog. He started the development in 1986 and released the first version through FTP in 1987. Since then, he further developed SWI-Prolog, both in the context of academic research projects at the University of Amsterdam and by integrating contributions from the user community. He received a PhD from the University of Amsterdam in 2009 on a thesis named "Logic programming for knowledge-intensive interactive applications". Since 2009, he works the VU University of Amsterdam.