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 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
  • 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.