=== A Quick Start ===
----
To start using SWI-Prolog under Linux you need to have it installed. Fortunately, SWI-Prolog is a standard package in every reasonable Linux distribution.
In Ubuntu, you can use the Synaptic Package Manager to check (if unsure) or install (if not performed yet) the SWI-Prolog.
In order to start using Prolog follow the simplest recipe:
*Make a directory to store your Prolog programs, for example ''/home/username/prolog/''
*Create an empty text file with a name of your choice and extension ''.pl'' in this directory; for example ''socrates.pl''. You can use any ASCII text editor of your preference (e.g. vi, vim, gedit, emacs).
The above steps may look as follows:
ali@ali:~/ALI/PROLOG$ mkdir prolog
ali@ali:~/ALI/PROLOG$ cd prolog
ali@ali:~/ALI/PROLOG/prolog$ gedit socrates.pl
*Edit your first program with use of the editor. The program may be as follows:
man(plato).
man(socrates).
mortal(X):- man(X).
*Open a shell window and go to the directory where you store your Prolog programs (e.g. ''/home/username/prolog/'').
*Start the Prolog interpreter/compiler. In most cases you just write ''prolog'', or ''swipl''. The prompt changes to ''?-''. Disappointed? No graphical environment? Do not worry. Intelligent people quickly get used to this modest environment and appreciate the ideas behind Prolog.
*Now you have to load your program. This can be done by typing ''[programname].'' command in the shell window. Rememebr that the name is not followed by ''.pl'' and after the closing bracket there must be a full stop. For example type ''[socrates]''
*In case there are no errors you can start using the program by asking questions. You just type a predicate name (one appearing in the program) with the appropriate number of arguments in parentheses; the arguments must be separated by commas. Remember to always add full stop.
The above steps may look like:
ali@ali:~/ALI/PROLOG/prolog$ prolog
Welcome to SWI-Prolog (Multi-threaded, Version 5.6.14)
Copyright (c) 1990-2006 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.
For help, use ?- help(Topic). or ?- apropos(Word).
?- [socrates].
% socrates compiled 0.00 sec, 864 bytes
Yes
?-
*If you expect more than one answer, use the colon ('';'') to produce them.
This may look like:
?- man(socrates).
Yes
?- man(X).
X = plato ;
X = socrates ;
No
?- mortal(socrates).
Yes
?- mortal(X).
X = plato ;
X = socrates ;
No
?-
Names like ''socrates'', i.e. ones starting with a lower case letter are constants (proper names); variable names starts with an upper case letter. Both of them are parameters of predicates (relations) such as ''man'' or ''mortal''. Every //fact// (a simple statement) such as ''man(socrates).'' is followed by a full stop. Every clause such as ''mortal(X):- man(X).'' represents and //inference rule// and is also followed by a full stop.
You can modify your program with the editor. After saving it always re-load it.
*To stop the Prolog interpreter/compiler type in the ''halt.'' command.
To obtain help you may type in one of the following commands:
?- help.
Explain the basics of the help system.
?- help(topic).
Show help-page on the specified topic.
?- apropos(string).
Show all topics holding `string' in their summary documentation.
Have a fun by modifying the program and asking more and more complex questions!