foundations of computational agents
The third edition of Artificial Intelligence: foundations of computational agents, Cambridge University Press, 2023 is now available (including full text).
Datalog and logic programs are described by Kowalski [2014], Sterling and Shapiro [1994], and Garcia-Molina et al. [2009]. The history of logic programming is described by Kowalski [1988] and Colmerauer and Roussel [1996].
The work on negation as failure, as well as the unique names assumption, is based on the work of Clark [1978]. See the book by Lloyd [1987] for a formal treatment of logic programming in general and negation as failure in particular. Apt and Bol [1994] provide a survey of different techniques for handling negation as failure.
Jurafsky and Martin [2008] and Manning and Schütze [1999] provide excellent introductions to computational linguistics. The use of definite clauses for describing natural language is described by Pereira and Shieber [2002] and Dahl [1994]. Lally et al. [2012] discuss how the use of natural language and logic programming was used in the IBM Watson system which beat the human world champion in Jeopardy!