An Introduction to Computational Semantics

Patrick Blackburn and Johan Bos
Section: Language and Computation
Level: Foundational

Endorsed by SIGSEM, the ACL Special Interest Group in Computational Semantics.
Sponsored by , Association for Computational Linguistics, European Chapter


This course introduces natural language semantics from a computational perspective. Two themes are emphasized: how to build semantic representations, and how to perform inference.

On the representation side, we work from basic ideas (compositionality, lambda-driven semantic construction, treatments of scope ambiguities) through to Discourse Representation Theory (DRT). We discuss both the underlying theory and how to implement semantic construction tools in Prolog. On the inference side, we introduce the basic ideas of logical deduction and relate them to concrete linguistic problems. For example, we show how to implement van der Sandt's DRT-based presupposition algorithm by linking our Prolog-based semantic construction tools with freely available theorem provers and model-builders. By the end of the course, the student should have a solid grasp of the basic ideas of natural language semantics and logical inference - and how they can coupled in a computational setting.

The course will be based on the draft books by Blackburn and Bos which you will find at The Prolog code of the programs we discuss in the course can also be found on this web-site.


As this is a foundational course, we won't assume that you have much background in logic. In fact, all we require is that you have had some prior exposure to the basic notation and ideas of first-order predicate logic. And we won't assume any background knowledge of Montague Semantics, DRT, or any other framework for natural language semantics either.

But there is one vital prerequisite. The aim of this course to teach genuine computational semantics. So it is extremely important that you have had some prior exposure to a programming language - preferably Prolog. We will be making available at a self-contained introduction to Prolog. You will be able to use this either to learn Prolog from scratch, or to brush up rusty Prolog skills. If you have any doubts whatsover about your grasp of Prolog, we strongly advise you to study this introduction (or any of the many excellent textbooks on Prolog) before you attend ESSLLI. Doing so will enable you to gain much more out of the course.



Patrick Blackburn
INRIA Lorraine

Johan Bos
University of Edinburgh