Markov Logic Networks (MLNs) are a generalisation of first-order logic and probabilistic graphical models, thus forming a powerful mechanism of uncertain inference. PracMLN is an open-source toolkit that can be used to perform statistical relational learning (SRL) and probabilistic logic inference based on the Markov Logic representation. It was developed at the Institute for Artificial Intelligence at the University of Bremen.

However, the software is written entirely in Python and can thus be slow at times. This project aims to rewrite some computationally intensive portions of PracMLN in Cython, and thus improve performance issues. Intelligent use of Cython's static typing functionality, which is unavailable in Python, will hopefully enable significant speedup, along with more extensive use of other similarly optimised libraries (such as NumPy).

Additionally, this work will be documented ( in order to make further optimisation easier. Hopefully this will provide a clear, reproducible, live demonstration of the potential speedups that can be brought to PracMLN, along with a detailed guide for future contributors.


Kaivalya Rawal


  • Daniel Nyga