Prolog Books
Prolog is a general purpose, declarative, logic programming language, often associated with artificial intelligence, computational linguistics, intelligent database retrieval, and problem solving. It’s widely used in research and education for natural language processing.
Automatic backtracking is one of the most characteristic features of Prolog. It’s a form of searching, fundamental to all artificial intelligence techniques. Prolog also supports multidirectional reasoning; arguments to a procedure can freely be designated inputs and outputs in different ways in different procedure calls. This is a powerful theoremproving technique. Another key feature of Prolog is that its syntax and semantics are closer to formal logic than say Lisp.
Prolog is generally regarded as a difficult language to get to grips with. But learning the fundamentals of Prolog is definitely worthwhile.
We publish a series covering the best open source programming books for other popular languages. Read them here.

By Ulf Nilsson and Jan Maluszynski (294 pages)
The main objective of Logic, Programming and Prolog is to provide a uniform account of both the foundations of logic programming and simple programming techniques in the programming language Prolog.
Chapters include:
 Preliminaries – contains a recapitulation of notions basic to logic in general. The chapter discusses concepts related both to model and prooftheory of predicate logic including notions like language, interpretation, model, logical consequence, logical inference, soundness and completeness. The final section introduces the concept of substitution
 Definite Logic Programs – introduces the restricted language of definite programs and discusses the modeltheoretic consequences of restricting the language
 SLDResolution – describes the operational semantics of definite programs
 Negation in Logic Programming – discusses the use of negation in logic programming. It introduces the negationasdefinitefailure rule used to implement negation in most Prolog systems and also provides a logical justification of the rule by extending the user’s program with additional axioms
 Towards Prolog: Cut and Arithmetic – Cut is introduced as a mechanism for reducing the overhead of Prolog computations. The chapter also discusses the use of predefined arithmetic predicates in Prolog and provides a logical explanation for them
 Logic and Databases – describes logic programming from a database point of view
 Programming with Recursive Data Structures – demonstrates techniques for defining relations on recursive datastructures, in particular on lists
 Amalgamating Object and Metalanguage – introduces the notion of meta and objectlanguage and illustrates how to use logic programs for describing SLDresolution. The chapter also introduces some (controversial) builtin predicates available in most Prolog implementations
 Logic and Expert Systems – demonstrates how to extend an interpreter from the previous chapter into a simple expertsystem shell
 Logic and Grammars – shows how to describe grammars in Prolog, starting from contextfree grammars. Larger classes of languages are considered. The chapter moves on to introduce the notion of Definite Clause Grammars (DCGs) commonly used for describing both natural and artificial languages in Prolog
 Searching in a Statespace – demonstrates simple techniques for solving searchproblems in statetransition graphs and raises some of the difficulties which are inherently associated with such problems
 Logic Programming and Concurrency – describes a class of languages commonly called concurrent logic programming languages
 Logic Programs with Equality – discusses an approach to integration of logic programming with functional programming based on the use of equations
 Constraint Logic Programming – concerns the use of constraints in logic programming
 Queryanswering in Deductive Databases – concerns the use of constraints in logic programming. A rigorous semantical framework is briefly described
The book may also be copied and distributed in paperform for nonprofit use only. 

By Peter Flach (247 pages)
Simply Logical – Intelligent Reasoning by Example aims to introduce the reader to a number of topics — logic, Artificial Intelligence and computer programming. This is a book about intelligent reasoning. Reasoning is the process of drawing conclusions; intelligent reasoning is the kind of reasoning performed by humans.
The latter parts of the book present a number of recent extensions of Logic Programming, most of which have been accessible previously only in conference proceedings and journal articles.
Chapters cover:
 Logic and Logic Programming – introduces the main concepts in logic programming such as program clauses, query answering, proof trees, and recursive data structures
 Clausal logic and resolution: theoretical backgrounds – deals with concepts such as Herbrand models and resolution refutations, as well as metatheoretical notions like soundness and completeness. The presentation starts with propositional clausal logic, and proceeds via relational clausal logic (without functors) to full clausal logic, and finally arrives at definite clause logic
 Logic Programming and Prolog – discusses the practical aspects of Prolog programming examining concepts such as SLDtree forms, the treatment of arithmetic expressions in Prolog, secondorder predicates like setof, and various programming techniques like accumulators and difference lists
 Representing structured knowledge – discusses various ways to represent structured knowledge in Prolog
 Searching graphs – discusses and implements some basic techniques for finding solutions in search spaces. Their common denominator is that they are exhaustive: that is, in the worst case they will eventually visit every node in the search space along every possible path, before finding a solution
 Informed search – bestfirst search, a complete variant of bestfirst search called the A algorithm, and nonexhaustive informed search strategies, that can be derived from bestfirst search by limiting the size of the agenda
 Reasoning with natural language
 Reasoning with incomplete information
 Inductive reasoning


By Fernando C.N. Pereira, Stuart Shieber (204 pages)
Prolog and Natural Language Analysis provides a concise and practical introduction to logic programming and the logicprogramming language Prolog both as vehicles for understanding elementary computational linguistics and as tools for implementing the basic components of naturallanguageprocessing systems.
The main objective of Prolog and NaturalLanguage Analysis is to provide a working understanding of basic computational linguistic and logic programming concepts.
Throughout this book, 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 interpretation. These examples culminate in a simple working naturallanguage questionanswering system written in Prolog. Extensive bibliographic notes point the reader to related research and further reading.
Chapters cover:
 Introduction
 Database Prolog
 Pure Prolog
 Further Topics in NaturalLanguage Analysis
 Full Prolog
 Interpreters
The digital edition of the work can be reproduced and distributed subject to specified conditions. 

By Daniel Diaz (238 pages)
GNU Prolog is a free, open source Prolog compiler with constraint solving over finite domains developed by Daniel Diaz. It is based on the Warren Abstract Machine. The compiler also offers various extensions very useful in practice (global variables, OS interface, sockets, …).
Chapters cover:
 Introduction
 Using GNU Prolog
 Debugging
 Format of definitions
 Prolog directives and control constructs
 Prolog builtin predicates
 Finite domain solver and builtin predicates
 Interfacing Prolog and C
The author gives permission to make and distribute verbatim copies of his manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of an identical permission notice. 
PROGRAMMING LANGUAGE PROFILES 
Like this:
Like Loading...
Related
About The Author
Steve Emms is the main author of OSSBlog.org. This site aims to promote open source software and hardware. Steve has written thousands of articles about open source software. He is also the creator of LinuxLinks.com.