This module is intended as an introduction to formal logic, and to knowledge-based information technologies that use logic as an underlying theoretical framework. In particular, the module is intended as an introduction to logic programming, as this is a primary and well-established example of knowledge-based reasoning.

The module starts with an introduction to formal logic, focusing on classical propositional and predicate calculus. The notion of a proof procedure is introduced, along with the concepts of "soundness" and "completeness" with respect to a formal semantics. The focus then shifts to logic-based computation, with detailed study of a state-of-the-art logic programming paradigm (e.g. Prolog, ASP or similar) as an example. The module ends with a basic application of the techniques covered to an artificial intelligence application area such as automated planning or diagnosis, as well as a brief survey of other logics and automated reasoning techniques, such as modal logic, non-monotonic logic and argumentation.

Learning outcomes

On completion of this module students will:

Have a basic comprehension of classical logic, and the relationship of logic to formal knowledge representation and reasoning.
 Understand the concept of a logical proof, and be able to assess the correctness of individual steps of simple formal proofs written in a standard proof theory such as natural deduction or resolution.
 Comprehend the notions of soundness and completeness of a proof theory with respect to a formal semantics.
 Have an elementary knowledge of logic programming and be able to write short programs in a state-of-the-art logic programming paradigm to solve simple problems in a declarative style.
 Have some basic knowledge of typical applications of knowledge-based technologies to artificial intelligence domains.
Main course texts:

• Wolfgang Ertel, "Introduction to Artificial Intelligence", Springer, 2017 (principally chapters 1-3).

• Ivan Bratko, "PROLOG Programming for Artificial Intelligence", Addison Wesley, 2001/2011 (principally chapters 1-5).

Prerequisites:

There are no formal prerequisites for this module, but participants should have a basic level of computer-literacy, be mathematically confident, and should have a basic knowledge of the notation used to define and manipulate mathematical sets and functions. For more details see www.ucl.ac.uk/dis-teaching/inst0072prerequisites.pdf.

Compulsory module for: MSc in Knowledge, Information and Data Science

Optional for: this module is an option for students on the MA and MSc in Digital Humanities, MA in Archives and Records Management, MA in Library and Information Studies and MA in Publishing.