Essentials of Logic Programming, Graduate Texts in Computer Science