Vehicle Assembly Building, where the Apollo Moon rockets were assembled, and the Moon where they were sent

Dennis Merritt's eBook Store

All the books are for sale, but you get to pick the price starting at $2.


Adventure in Prolog -- The first interactive computer games were text based, with simple natural language interfaces that allowed the user to explore fantasy worlds. Today's games follow that same architecture, where a virtual world is simulated in code. The only difference between then, and now, is the amazing graphical interfaces. The underlying representation and rules are the same.

Prolog is an excellent language for representing those virtual worlds and interpreting and responding to user interactions, and the games are fun. This text uses that game architecture for introducing the concepts of Prolog programming.

But Prolog is a very powerful language for all sorts of knowledge representation and reasoning. The exercises take the skills used in a chapter and guide the reader through building a virtual world simulation game (with simple text interface) as well as other types of applications, including a boring business application, a genealogical database, and an identification expert system.

Discover and enjoy the pure fun of Prolog programming reading this text.

Expert Systems in Prolog -- The machine learning capabilities of today's AI are extremely exciting, but they are only one part of the architecture of today's systems. For example, self-driving car technology uses machine learning to interpret the visual field around a car, but it's good old fashioned rule-based AI that contains the plans on what to do with that information.

Expert Systems in Prolog is a classic text on building knowledge engineering tools, describing how to implement various ways of representing and reasoning over different types of knowledge. For example, it provides details and working code for identification systems, systems that need to cope with uncertainty, forward-chaining planning and configuration systems, frames for representing complex layers of information, and ideas for prototyping/implementing any way of representing knowledge and algorithms for reasoning over that knowledge.

The text is a bit more general than just a Prolog text. Yes, all the code for implementing these systems is written in Prolog, but Prolog is more than just an implementation language. Because it is logic programming, a Prolog program is really a logical specification of an application. Yes it runs, but it can also be used for rapid prototyping, and the Prolog code itself can be used to precisely specify how to implement the system in any other language.