The Prolog Dictionary

© Bill Wilson, 1998-2020 Contact

This version of the Prolog dictionary assumes the syntax of SWI Prolog. Some examples assume a Unix command interpreter, as in Linux and MacOS X/Terminal.

You should use The Prolog Dictionary to clarify or revise concepts that you have already met. The Prolog Dictionary is not a suitable way to begin to learn about Prolog. That said, this dictionary is designed to be used by beginner and intermediate Prolog programmers. Further information on Prolog can be found in the SWI Prolog documentation linked above.

Other related dictionaries:
The AI Dictionary - URL:
The Machine Learning Dictionary - URL:
The NLP Dictionary (Natural Language Processing) - URL:

The URL of this Prolog Dictionary is

Topics Covered

To see the topic index, click on the link in the menu at left.

This dictionary was originally designed to cover the Prolog concepts covered in a Prolog programming module in a course at the University of New South Wales, Sydney. It has subsequently been expanded but does not pretend to be exhaustive in its coverage of say ISO Prolog, let alone SWI Prolog. Both of these have hundreds of built-in predicates. In particular, it does not currently cover certain concepts underlying Prolog (resolution, etc.) Once you understand everything in the Prolog Dictionary, you should certainly be ready to dive into the documentation that comes with your favourite Prolog interpreter.

If the thing you are looking for is not in the index of this dictionary, you could try starting the Prolog interpreter, and then using the apropos query. For example, if you are trying to work out how to do something with directories (also known as folders, depending on your operating system), then you could try typing:

This should get you a list of Prolog predicates that have to do with directories. You can pick a predicate, say make_directory/1, from this list, and do
?- help(make_directory/1).
for more information about particular predicates.