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)