AILog User Manual
Version 2.3

David Poole

March 30, 2010

Abstract

This manual describes AILog, (formerly CILog), a simple representation and reasoning system based on the books Artificial Intelligence: foundations of computational agents [Poole and Mackworth (2010)] and Computational Intelligence: A Logical Approach [Poole, Mackworth, and Goebel (1998)], and the Independent Choice Logic [Poole (2008)] for the probabilistic reasoning. AILog provides:

  • a definite clause representation and reasoning system
  • a simple tell-ask user interface, where the user can tell the system facts and ask questions of the system
  • explanation facilities to explain how a goal was proved, why an answer couldn't be found, why a question was asked, why an error-producing goal was called, and why the depth-bound was reached
  • knowledge-level debugging tools, that let the user debug incorrect answers, missing answers, why the system asks a question, system errors, and possible infinite loops
  • depth-bounded search, that can be used to investigate potential infinite loops and used to build an iterative-deepening search procedure
  • sound negation-as-failure, that interacts appropriately with the depth-bound
  • ask-the-user facilities
  • assumables for finding conflicts (e.g., in consistency based diagnosis) and for abduction
  • probabilistic reasoning, integrated with negation as failure.

Although it has similarities with Prolog, it should not be seen as "programming in logic", but as "representing in logic". The tools are designed for the case where you are trying to model a domain in logic and can ask the system questions about what follows. It can explain its reasoning in terms of the domain.

AILog is a purely declarative representation and reasoning system. It is intended as a pedagogical tool to present a simple logic that can be used for AI problems. It is meant for programming in the small, where you can axiomatize a domain, ask questions and debug the knowledge base, without knowing how answers are produced. There may be sophisticated problem-solving techniques used in finding answers1.

We have many examples of probabilistic reasoning in AILog2, as well as of the examples from the new book available. The examples from cilog should also work.

This manual is also available in PDF format. This is suitable for printing, but also contains hyperlinks.