Skip to content
TU Dresden
A joint project with Uni Leipzig DE EN

FunLog: A Functional Approach to Modular Logic Programming

Mentored by Markus Krötzsch, Sebastian Rudolph
at TU Dresden, Chair of Knowledge-Based Systems

Logic Programming has found its way into many applications and recent systems from Big Tech to research, yet it is rarely used to realize more complex projects. A main reason is the lack of support for modularity of logic programs: in most formalisms, combining one logic program with another can change the behaviour in unexpected ways. Creating and sharing software libraries in logic programming is therefore nearly impossible. The goal of this project is to change this.

The challenge of this task is to find a semantic interpretation that allows us to combine logic programs in a safe and predictable way while still being declarative and conceptually pure. The idea is to relate logic programs to functions (over relational structures), as done for the fixpoint semantics of logic programming, and using functional programming paradigms to combine them in a well-defined way. This is different from existing logic programming module systems, e.g., in Google's Logica or in ASP Chef, and raises further research questions.

The main working environment for this project will be Nemo, the Datalog-based logic programming and data analysis toolkit developed at TU Dresden. Research challenges that are crucial in this context include:

  • How can the semantics of logic programming modules be defined in a clean and predictable way?
  • Which additional program features are necessary to realize this concept (e.g., ability to handle sets of facts in argument positions)?
  • How can logic programs declare interfaces and semantic guarantees for safe re-use?
  • How can programs that use modules be compiled and processed to achieve good performance?

Work Environment

You will be working at the Chair of Knowledge-Based Systems (KBS) at the Faculty of Computer Science of TU Dresden. At KBS, you will be part of a successful team of experienced researchers of many nationalities and backgrounds. You will work in the vibrant scientific environment of the International Center for Computational Logic (ICCL). TU Dresden is one of the leading German research universities in a highly livable city with a rich cultural life and beautiful nature. Your workplace is located at the main campus of TU Dresden.

Your second supervisor in SECAI will be Sebastian Rudolph of the Chair of Computational Logic at ICCL. There is frequent exchange and regular meetings across the groups.

Prerequisites

  • Master’s Degree (or equivalent) in computer science, mathematics, or related fields
  • Excellent skills and practical experience in one or more of the following areas:
    • Knowledge representation and logic programming
    • Compilers and formal languages
    • Mathematical logic and universal algebra
    • Functional programming, type theory, program analysis, optimization
  • Software development experience, especially in a system programming language (e.g. Rust, C++) or in the context of software that analyses program code or other formal languages
  • Ability to collaborate well in an interdisciplinary environment

Further details on the requirements and application process can be found in SECAI's announcement for open PhD positions in 2024.