The aim of this book is to help anyone struggling to learn prolog, or how to solve problems with Prolog. Our journey starts with simple facts and queries, and progresses through variables, deduction, tracing, query order and efficiency, recursion, termination and non-termination, the cut, negation as failure, and ends with the development of a simple but powerful prolog meta-interpreter. This book takes a different approach to other guides. Here Despite its age, its simplicity and power has kept Prolog a living language through to today. It is not just a language taught as part of university computer science and artificial intelligence courses. It is a language people actively seek out and learn because it is a joy to use.