
Logic programming, an important new method of compute programming resulting from recent research in artifucial intelligence and computer science, has proved to be especially appropriate for solving problems in natrual-language processing. Prolog and Natural Language Analysis provides a concise and practical introduction to logic programming and the logic-programming language Prolog both as vehicles for understanding elementary computational linguistics and as tools for implementing the basic components of natural-language-processing systems. Throughout, the specific concepts and techniques are given rigorous theoretical justification and are demonstrated with working programs that show how Prolog can be used to solve actual problems in syntax, parsing, and semantic intepretation.These examples culminate in a simple working natural-language question-answering system written in Prolog. Extensive bibliographic notes point the reader to related research and further reading.Fernando C.N. Pereira is a senior computer scientist at SRI International's Artificial Intelligence Center and a consulting professor at Stanford University. His research on Prolog and natural-language processing underlies much recent work in logic grammars.Stuart Shieber is a researcher at the Center for the Study of Language and Information and a computer scientist at SRI International's Artificial Intelligence Center.
For a practically-minded programmer, I'd recommend this longer tutorial that guides you through the creation of an old-skewl text-based adventure game:
https://amzi.com/AdventureInProlog/apreface.php
As far as I remember, the tutorial should run on most Prologs without (significant?) modification.
For a more in-depth, high-level, more computer-sciency view try Marcus Triska's pages:
https://www.metalevel.at/prolog
Marcus Triska is also the author of several constraint logic programming libraries, for example:
https://www.swi-prolog.org/man/clpfd.html
Then, there's a number of textbooks. The classics are Clockin and Mellish and Bratko:
Programming in Prolog (Fifth Edition):
https://www2.cs.arizona.edu/classes/cs372/spring15/Programmi...
Prolog programing for AI
https://archive.org/details/prologprogrammin0000brat
I personally really enjoyed this book by George Luger:
AI Algorithms, Data Structures and Idioms in Prolog, Lisp and Java
https://www.cs.fsu.edu/~cap5605/Luger_Supplementary_Text.pdf
For the theory behind DCGs, there's Pereira and Shieber:
Prolog and Natural Language Analysis
http://www.mtome.com/Publications/PNLA/prolog-digital.pdf
And for logic programming theory in general, the seminal source is J. W. Lloyd:
Foundations of logic progamming
https://link.springer.com/book/10.1007/978-3-642-83189-8
Unfortunately, I can't recommend any newer texbooks.
Sterling & Shapiro (Art of Prolog) has much more depth. Not sure I'd recommend to a beginner. (It has a beautiful cover, though and is almost worth getting just for that.)
My favorite Prolog book is Pereira & Sheiber's "Prolog and Natural-Language Analysis". It's slanted toward NLP but the coverage of Prolog itself is top notch.
https://www.amazon.com/Natural-Language-Analysis-Information...
[1] http://www.mtome.com/Publications/PNLA/prolog-digital.pdf
http://www.mtome.com/Publications/PNLA/prolog-digital.pdf
And there's a set of course materials in HTML for "Natural Language Processing in Prolog", a course at Union College in Schenectady, NY by Patrick Blackburn and Kristina Striegnitz that seems worthwhile:
http://cs.union.edu/~striegnk/courses/nlp-with-prolog/html/t...
- Learn Prolog Now! by Patrick Blackburn, Johan Bos, and Kristina Striegnitz provides an introduction to Prolog:
http://www.learnprolognow.org/
- Prolog and Natural-Language Analysis by Fernando C. N. Pereira and Stuart M. Shieber provides an introduction to Prolog, and applies it to natural language processing. The book is more difficult than Learn Prolog Now!, but if you enjoy SICP, you will enjoy this book.
http://www.mtome.com/Publications/PNLA/pnla-digital.html
- The Craft of Prolog by Richard O'Keefe is a must to learn writing correct efficient Prolog code. Many eye-openers.
http://www.amazon.com/Craft-Prolog-Logic-Programming/dp/0262...
- Warren's Abstract Machine: A Tutorial Reconstruction by Hassan Ait-Kaci is a thorough overview of David Warren's abstract machine for executing of Prolog code. Since modern Prolog implementations are often based on WAM, it helps in understanding how to design efficient Prolog programs.
I have over a half a dozen Prolog books, my favorite being "The Art of Prolog." Bratko's books, "Prolog and Natural Language Analysis," and "Natural Language Processing in Prolog" are also favorites. I started decades ago with C&M - also a great start.
It has been over 5 years since anyone has hired me to do any Prolog development. I am not sure how widely used it is now.