Getting Started with Prolog depends on your background and goal. Here
are some options.
- I don't know anything about Prolog and want to learn the language. Prolog is
quite different than any other programming language you may know. A background
in math and functional programming helps to some extend. Start with a good
introduction text. Examples are
Both are online text books that embed SWISH.
SWISH is an online version of SWI-Prolog. SWISH differs from a local SWI-Prolog
- As it runs on a shared server it enforces a sandbox that doesn't allow
running any dangerous code and rejects code it cannot prove to be safe.
- No state is maintained between queries.
- Input/output, concurrency and many other SWI-Prolog features are not or
only in a limited way supported.
- It does provide a nice web based interface that allows for rich output
based on HTML or high level vizualization libraries such as
- I've made my first steps at Prolog and want to start a real project. Start
with a local installation for your platform. Familiarise yourself with the
and the IDE tools such as the GUI debugger. Establish your debug/edit/reload cycle based on edit/1 and
make/0. The edit/1 primitive finds predicates, files, modules, etc. and hands
their position to the built-in editor PceEmacs or the editor of your choice.
SWI-Prolog comes with a lot of features
that may be useful to your project. Also consider the
- I know some Prolog and I want to use SWI-Prolog for data analysis. Here
SWISH may come really handy, but you do not want the limitations of the shared
SWISH server. You could consider a local installation of SWISH and R
for SWI-Prolog, either from source or (starting) from the
- I know some Prolog and I want to use SWI-Prolog as a (web) service. Start
with a local installation for your platform and the
Web application tutorial
- I consider using and deploying SWI-Prolog in a commercial project. You are
probably wondering about the support status, how to connect the Prolog component
to the other components of your company, where to find people, etc. You may send
an email to SWI-Prolog Solutions b.v. for information
or an appointment for a telco.