Programming In Prolog by William F. Clocksin & C.S. Mellish