The development of SWI-Prolog started at the University of Amsterdam. It
was deployed in numerous research projects funded by the European union
as well as the Dutch government. Over these projects lessons learned
were reflected in the evolving SWI-Prolog system and its libraries.
Developed in an application context rather than a language design
context, caused the system to stress support for running and developing
large applications in international teams.
Because SWI-Prolog was a means to an end for the research context in
which it was developed it was quickly released for free under a, then
common, academic use license. Free access, good portability, an early
port to MS-Windows and an easy to use environment caused the system to
become dominant in education and, later, research.
Involvement of commercial users has greatly matured the system. With
their funding and contributions to the software in kind, SWI-Prolog
got its first garbage collector, mature multi-threading support,
improved memory management, support for unbounded integer and rational
number arithmetic, ODBC interface, SSL (TLS) support, advanced tabling
support, documentation generation, unit testing and much more. See also the
The development of the SWISH web IDE
that commonly serves hundreds (with peaks well over thousand) of students
simultaneously on a single server have given SWI-Prolog and Prolog in
general new perspective for education. Running 24x7 on a single server
while so many students running very diverse and often broken programs has
greatly improved robustness and scalability.
As a result, a great deal of the development work as well as positioning
SWI-Prolog primarily as a robust and scalable application development
platform fits poorly in an academic setting. This is why I started
SWI-Prolog Solutions b.v.
Jan Wielemaker, PhD