Directions for using PDProlog
written by Dr. Elizabeth Adams
Use any editor you
want to create your Prolog database. I
have two databases in this directory.
Make sure that
your file has the extension
.pro
To get into
PDProlog, click on PDProlog.exe or in DOS type PDProlog <cr>
To get out of
PDProlog type exitsys.<cr>
at the prompt
To load a file, which is easier if you have it in the same directory as your
PDProlog.exe,
type consult filename.<cr>
where filename is the name of the file For example: consult
family.<cr>
alternatively you can type consult (‘filename.pro’). – using single quotes. You can use a path if the database you wish
to consult isn’t in the same directory.
To see what was
loaded or what is currently in the database type listing.<cr>
To see what the
predicates in the database are and how many of each there are type dir p.<cr>
To add a fact or
rule to your database type either asserta or assertz
followed by the fact or
rule. asserta
adds what you type to the front of the database. assertz adds what you type to the
end of the database. Here's an example : assertz (female(mary)).<cr>
will add the predicate female(mary). to the end of the
database. Neither adds anything to the
file that you loaded. Nothing that you
typed in using asserta or assertz will still be there when you exit pdprolog
and come back.
If you want to ask
a question (i.e. pose a query), just type it in. For example, to see who the women in the
family data base are, just type: female(Who).<cr> Upper case letters in the argument list are
variables. Lower case
are constants.
If you look at the
predicate (fact)
mother (martha, astrid), you have no way of knowing who is the
mother and who is the daughter so you don't know whether to pose the query
mother(Mother, Daughter).<cr>
or mother (Daughter, Mother).<cr>
There is nothing
in the language which tells you which is correct. Sometimes, it is possible to tell if one of
the names is male but the best thing to do when you are constructing a database
is to put in a comment showing which is appropriate. In PDProlog, comments are enclosed in /*
*/
An appropriate
comment would be /* mother (mother child)
*/
You can keep a
record of your work by using the built-in predicate tell. The problem with using
tell is that it is a total re-direct to disk
and you don't see what is happening while it is occurring.
If you want to try
it type
tell 'drivename:\path\filename.out'. <cr> You need the
single quotes if you are not using a filename in the current directory (i.e. if
you need to specify drive and path).
When you are done
working type told.<cr>
before you type exitsys.