The Art of PROLOG: Advanced Programming Techniques (Logic Programming)