Logic Programming (Programmazione Logica) 2008-2009


This course is an introduction to logic programming. Topics that will be covered are unification, proof search, recursion, tail-recursion, the occurs-check, the closed world assumption, backtracking, the cut, and definite clause grammars. The theory will be illustrated using the programming language Prolog. As programming is something which cannot be learned without actually doing it, all course sessions will have a lecture part and a practical part.


The aim of the course is to give the student both theoretical background and hands-on experience in logic programming. The practical part will show the student how straightforward it is to use Prolog to tackle problems in AI and Natural Language Processing. After the course, the student will be familiar with the most important concepts of logic programming, will have mastered techniques to write (simple) Prolog programs, and has an idea to which type of problems logic programming can be applied.

True - Prolog is a relatively old programming language. But despite the popularity of more trendy languages such as Java, it is still used in industrial applications. Did you know, for example, that Prolog is used to program a spoken dialogue system used by NASA astronauts in the International Space Station?

Time Table

Lectures are every Friday from 14:00-18:00 in the Aula Seminari (via Salaria 113, terzo piano). The next lecture is on Nov 21.

Teaching Material

lpn.jpg We will use the following course materials:

  • Blackburn, Bos & Striegnitz (2006): Learn Prolog Now!
    College Publications
    ISBN 1904987176
  • For practical work we will use SWI Prolog.
Learn Prolog Now! can be ordered via (for example) amazon.co.uk. SWI Prolog is freely available software and runs on linux, mac and windows.


Lecture 1 (Oct 10): Facts, Rules and Queries LPN1.ppt
Lecture 2 (Oct 10): Unification and Proof Search LPN2.ppt
Lecture 3 (Oct 17): Recursion LPN3.ppt
Lecture 4 (Oct 24): Lists LPN4.ppt
Lecture 5 (Nov 7) : Arithmetic LPN5.ppt
Lecture 6 (Nov 7): More Lists LPN6.ppt
Lecture 7 (Nov 21): Definite Clause Grammars LPN7.ppt
Lecture 8 (Nov 21): More Definite Clause Grammars LPN8.ppt
Lecture 9 (Nov 28): A Closer Look at Terms LPN9.ppt
Lecture 10 (Nov 28): Cuts and Negation LPN10.ppt
Lecture 11 (Dec 5): Database Manipulation and Collecting Solutions LPN11.ppt
Lecture 12 (Jan 16): Working with Files LPN12.ppt
Extra: Horn Clauses Horn.ppt

Course Credits

Crediti: 6. Ci sono 12 moduli. Ogni modulo è seguito da una semplice prova in itinere. Per acquisire i crediti lo studente è tenuto a svolgere tutte le prove, superandone in modo soddisfacente almeno 10.

Course Specialties

The course will partly be taught in English.


Name: Johan Bos Email: bos AT di DOT uniroma1 DOT it

Address: Via Salaria 113 - 3° Piano, studio 345b.

Edit | Attach | Watch | Print version | History: r40 < r39 < r38 < r37 < r36 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r40 - 2009-01-16 - JohanBos

Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback