SWI-Prolog is the most popular and comprehensive implementation of the Prolog programming language. SWI-Prolog is notably strong in concurrency, communication with other languages and IT components, networking and support for network protocols and document formats. SWI-Prolog scales very well in terms of program size, data size and number of threads. SWI-Prolog implements all popular extensions to the Prolog language, such as constraints and tabling (including well founded semantics, incremental and concurrent tabling). It also provides less common extensions such as delimited continuations and engines that allow for developing novel control structures. A more elaborate list of features is available on the open source project page.

Prolog and notably SWI-Prolog is a versatile language. Applications range from data science, linked data, machine learning, robotics, business rule handling, software verification, testing and refactoring, natural language understanding (NLU), security, etc.

SWISH is a web based development environment inspired by Jupyter notebooks. It provides an environment where one or multiple users can have simultaneous access to Prolog resources. A SWISH instance can hosts notebooks that tell an executable story and programs that can be developed interactively on the web and used both from notebooks and through an API from several client languages. SWISH has been developed with education and data science pipelines in mind. It is an ideal platform for building in-house web-based user interfaces.

Public demos of SWISH are cplint, showing Prolog related machine learning and integration with R and Logic Production System (LPS)