Master Seminar: Programming in Prolog (SoSe 2026)
Seminar 2 hours, Oettingenstraße 67, probably Room 139, Instructor: Prof. Dr. François Bry
Overview
Prolog is a declarative programming language used among othewrs for rapid prototypin, knowledge representation, and symbolic artificial intelligence —among others causal reasoning and explainable artificial intelligence.
Prolog is based on a fragment of first-order logic and a restricted form of resolution proofs. Prolog departs from classical mathematical logic in a few aspects, most notably in its treatment of negation.
The seminar aims at discovering Prolog, understanding Prolog's semantics, and learning typical Prolog programming techniques.
The seminar talks are expected to be given in English. The seminar reports can be written in English or German. A seminar presentation and its associated written report will be worked out either by two students working in team, or by a single student.
Material
Prolog Tutorial
Markus Triska: The Power of Prolog, 2005, revised 2025 https://www.metalevel.at/prolog/
Remark:
- This tutorial refers mostly, but not only tho the Prolog system "Scryer Prolog" (see https://www.scryer.pl/ )
Online Prolog systems
- CIAO Prolog: https://ciao-lang.org/playground/
- https://nextleap.app/online-compiler/prolog-programming
- One Compiler: https://onecompiler.com/prolog
- SWI Prolog: https://swish.swi-prolog.org/
- Tutorials Point: https://www.tutorialspoint.com/compilers/online-prolog-compiler.htm
Schedule
The topics mentioned below refer to Chapters of the tutorial: Markus Triska: The Power of Prolog, 2005, revised 2025 https://www.metalevel.at/prolog/
Mo 13 April
- Topic assignment
Mo 20 April
- Supervision
Mo 27 April
- Basic Concepts
- Prolog Data Structures
Hints:
- Basic Concepts: Mention and demonstrate the "Prolog Top Level" (or "Read-Eval-Print-Loop" or "REPL"), but do not present it in as much details as the tutorial's video does.
- Prolog Data Structures:
- Mention the efficient internal representation of strings, but do not present it in as much details as the tutorial's video does.
- Mention the type tests (see the tutorial's video).
Mo 11 May
- Reading Prolog Programs and Writing Prolog Programs
- Termination and Nontermination
Mo 18 May
- CLP(FD) and CLP(Z): Prolog Integer Arithmetic
Hints:
- You may consider giving one or two examples from the tutorial's chapter "Combinatorial Optimization".
- You may give examples of from the tutorial's chapter "Logical Purity" showing how the problems caused by arithmetical "legacy predicates" are overcome.
Mo 25 May Holliday
Mo 1 June No venue
Mo 8 June
- Declarative Testing
- Declarative Debugging
Hint:
- Present the tracing meta-predicate from the tutorial's chapter "Higher-order Predicates".
Mo 15 June
- Definite Clause Grammars
Mo 22 June
- Combinatorial Optimization
Mo 29 June
- Solving Logic Puzzles, Expert Systems, and Theorem Proving
Mo 6 July
- Memoization
Mo 13 July
- Conclusion
Su 02 August
- Seminar written reports due
Hints for all presentations and written reports:
- Use the tutorial, but give your own presentation and write your own report.
- Run, or be ready to run, the programs mentioned in your presentation.
- Prepare yourself to answer questions that are likely to arise from your presentation.
- Prepare yourself to give solutions to the tutorial's exercises related to your presentation.
