2nd Semester 2018/19: Logic Programming and Learning


Ronald de Haan and Levin Hornischer

If you are interested in this project, please contact the instructor(s) by email.

Registration through https://datanose.nl/#specialenrol, using the course code: 5314RLPL6Y


Logic programming is a logical formalism that can be used to reason with some given facts and rules about a particular domain. It differs from other logical formalisms in that it is aimed directly at being implemented on a computer—in many cases in a computationally tractable way.

It can also be used as a tool to model a wide range of phenomena and applications: for example, reasoning tasks in cognitive science, discourse understanding in linguistics, common-sense reasoning in artificial intelligence, applications in database theory, and combinatorial search problems.

In addition to deducing facts from a given logic program, a prominent research question is how to extract the relevant rules for a given domain from a set of observed data—and thus 'build' an appropriate logic program.  This can be seen as a form of learning, and this is known as inductive logic programming. More recently, there has also been research into how to combine this with various forms of machine learning.

In this project, we will cover the basics of (standard) logic programming, we will consider some of the modeling applications, and we will look into the connection with modern machine learning. After introductory lectures, the students will work on their own research projects related to the theme of the project.


In the first week, we will have lectures introducing the essential basics, so that the students will be able to work on their individual projects for the remaining three weeks. We will have supervision meetings with students as needed. The deadline for the final project report/essay will be at the end of June.


Basic knowledge of propositional and first-order logic. Knowledge of programming is not required, but students can choose research projects that involve programming.


Students will produce a written report/essay describing their research project, which will be evaluated on a pass/fail basis.



  • Basic of (applied) logic programming: Patrick Blackburn, Johan Bos, and Kristina Striegnitz. “Learn Prolog Now!” College Publications, 2006. http: //www.learnprolognow.org/

  • Modelling applications: Stenning, Keith, and Michiel Van Lambalgen. Human reasoning and cognitive science. MIT Press, 2012.

  • Logic programming and neural network learning: Evans, Richard, and Edward Grefenstette. “Learning explanatory rules from noisy data.” Journal of Artificial Intelligence Research 61 (2018): 1–64.

  • Computational learning theory: Kearns, Michael J., Umesh Virkumar Vazirani, and Umesh Vazirani. “An introduction to computational learning theory.” MIT press, 1994.

The websites of the UvA make use of cookiesThis site uses cookies More informationMore info Hide this message XHide X