COMP24412: Symbolic Artificial Intelligence

Aims and objectives

The aim of this course is to explain basic techniques of AI programming, with special focus on the Prolog programming language and its application to processing natural language.

A student completing this course unit should:


  • Patrick Blackburn & Johan Bos: Representation and Inference for Natural Language: a first course in computational semantics, CSLI, 2005.
  • Patrick Blackburn, Johan Bos and Kristina Striegnitz: Learn Prolog Now!, College Publications, 2006.
  • Lectures

    The lecture notes for this course are available here:
  • Lecture 0: Introduction
  • Lecture 1: Prolog I
  • Lecture 2: Prolog II
  • Lecture 3: Prolog III
  • Lecture 4: Search
  • Lecture 5: First-Order Logic
  • Lecture 6: First-Order Logic and AI
  • Lecture 7: First-Order Logic and Prolog
  • Lecture 8: Resolution Theorem-Proving
  • Lecture 9: Natural Language Grammar I
  • Lecture 10: Natural Language Parsing I
  • Lecture 11: Natural Language Grammar II
  • Lecture 12: Natural Language Parsing II
  • Lecture 13: Natural Language Semantics I
  • Lecture 14: Natural Language Semantics II
  • Lecture 15: Natural Language Parsing III
  • Lecture 16: Natural Language Semantics III
  • Lecture 17: Finale
  • Lecture 18: How to Pass the Exam


    The lab materials are available as shown below:
  • Lab1: Getting dstarted in Prolog
  • Lab2: The n-queens problem
  • Lab3: Syntax in Prolog
  • Lab4: Semantics in Prolog
  • Lab5: Resolution in Prolog

    Useful demonstration programs

    Course participants are advised to try out the simple demonstration programs shown below:
  • Parsing relative clauses: and

    The teaching assistants for this course.

    We recommend you use SWI Prolog. It is available here. Warning, Version 7 contains some slightly non-standard features: in particular, strings seem not to be treated as lists of ASCII values. The software installed in the lab is version 6, which seems to be fine. Mostly, you should not notice the difference.


    The most relevant past exams are from 2012 and 2014 -- Allan Ramsay and I share this course by teaching it in alternate years, so you want to look at past exam papers that I set and not at ones that he did.