Logic Programming With Prolog

Published by Springer-Verlag. Summer 2005. ISBN 1-85233-938-1

This book teaches the techniques of Logic Programming through the Prolog language. Prolog has been used for a wide variety of applications, including as the basis for a standard knowledge representation language for the Semantic Web - the next generation of internet technology; it is one of the principal languages used by researchers in Artificial Intelligence.

Logic Programming with Prolog does not assume that the reader is an experienced programmer with a strong background in Mathematics, Logic or Artificial Intelligence. It starts from scratch and aims to take the reader to a point where they can soon write powerful programs in the language.

Suitable both as an introductory textbook and for independent study, the programs in this book are written using the standard Edinburgh syntax and should run unchanged in virtually any version of Prolog. A full glossary of the technical terms used is included and each chapter has self-assessment exercises.

Buy from Amazon (UK)


Chap Page Line Change
1 6 16 'No' should be 'no'
3 38   The figure numbered 3.2 should be numbered 3.3
3 39   The figure numbered 3.3 should be numbered 3.4
3 50 3 'Figures 3.4 and 3.5' should read 'Figures 3.5 and 3.6'.
3 50   The figure numbered 3.4 should be numbered 3.5
3 51   The figure numbered 3.5 should be numbered 3.6
4 58 -8 'The lower the number' should be 'The lower the number is'
5 78   Section 5.9, line 13. 'Evaluating a see goal causes' should be 'Evaluating a seen goal causes'
5 81 1 Output should be Outfile
6 92   First box. 'see(user)' should be 'see(S)'.
9 125 -7 'Answer is ' should be 'answer is '
9 133 19 'but can be any term' should be 'but can also be any compound term'
9 133 20 Delete 'equivalently'
11 153 -4 Line should begin with ?-
11 153 -6 Line should begin with ?-
App 3 197   Practical Exercise 5. Question 1. Fourth line of program 'X=<=90' should be 'X=<90'
App 3 197   Practical Exercise 5. Question 2. Last line of program. 'write(X)' should be 'writeq(X)'
App 3 198 -1 'fill' should be 'file'

Last updated December 30th 2013