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:


Prolog: 2 weeks


Logic and theorem proving: 2 weeks

Planning: 2 weeks

Natural language

Grammar and parsing: 2 weeks

Meaning: 2 weeks

Putting it all together: 1 week


  • 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 as one slide per A4 page from LARGE NOTES (nice for reading online). If you need to print them out, use the multipage format from Acroread to save trees (I will be giving copies out in the lectures, so there shouldn't be much need for printing them out).


    I will give out quite a lot of example programs during the course. Some of these will be used in the labs, some are just for looking at and playing with. These programs are all stored at /opt/info/courses/COMP24412/PROGRAMS.


    The lab materials are available as shown below:
    lab0  Basic Prolog exercises: unassessed
    lab1 Some more basic Prolog, plus a task to extend the implementation of Satchmo from the notes to allow for intermediate/'fuzzy' truth values
    lab3 Grammar and parsing exercise
    lab4 WordNet, tree matching and textual entailment

    You can download versions of the SICStus Prolog compiler from here: Windows, Unix, OSX. But they won't do you any good without the license details -- please mail me for that. That way I can keep track of who has taken copies, and I can get you to sign an agreement not to misuse it.


    Check out the following sites:
    The most relevant exams are from 2010 and 2013 -- Ian Pratt-Hartmann 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.