The Practice of Prolog - Sterling, Leon. (Logic programming)