Logic Programming And Nonmonotonic Reasoning by Thomas Eiter