Did you know ... Search Documentation:
Getting Started

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 installation:

    • 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 C3.js
  • 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 SWI-Prolog toplevel 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 useful to your project. Also consider the add-ons.

  • 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 Docker images
  • 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