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:
- Have a working knowledge of the Prolog programming language.
- Be able to write programs for computing the meanings of a range
of natural language sentences.
- Understand the operation and use of automated theorem-provers,
and the theoretical reasons for their limitations.
- Understand the fundamentals of natural language syntax.
- Understand how meaning-representations for natural language
can be computed.
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.
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
Lecture 10: Natural Language
Lecture 11: Natural Language
Lecture 12: Natural Language
Lecture 13: Natural Language
Lecture 14: Natural Language
Lecture 15: Natural Language
Lecture 16: Natural Language
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: g6.pl and tree_print.pl
teaching assistants for this course.
We recommend you use SWI Prolog. It is available
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
-- 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.