Text this: An introduction to Prolog / Ramachandran Bharath. With a contribution by Margaret M. Sklar.