Logic Programming In Action by Gerard Comyn