Skip to content



Folders and files

Last commit message
Last commit date

Latest commit



57 Commits

Repository files navigation

Leveraging A-priori Knowledge in Predictive Business Process Monitoring


It is the source code to support experiments performed for the article "Leveraging A-priori Knowledge in Predictive Business Process Monitoring" by Chiara Di Francescomarino and Chiara Ghidini and Fabrizio Maria Maggi and Giulio Petrucci and Anton Yeshchenko

Code can be used to train LSTM models to predict sequences of next events. Also, different prediction techniques available:

  1. Baseline
  2. Prediction with NoCycle - algorithm that prevents the loops in the output trace. It is useful when the training log contains more than 0.5 cycles per trace.
  3. Prediction with Apriori knowledge - algorithm that exploits Apriori knowledge (states as LTL formula), in order to make more accurate, compliant predictions.

Running the project

The project was written in Python (ver: 2.7.12), with Pycharm IDE. Also, for LTL formula check module you will need to run Java code in background (JDK ver: 1.8).

Keras (ver: 1.1.2) is used alongside with Tensorflow (ver: 0.12.0-rc0) backend.


In order to use the scripts few steps need to be performed.

  1. Before running any inference algorithms you need to run the java service from the LTLCkeckForTraces folder.

  2. The historical log should be converted into the supported format. In order to do so, csv file can be processed by the script Just feed the full csv log, and specify where the case ID, activity ID, and timestamps are.

Put the file in the data folder.

  1. In the file shared variables, write the paths to the files you will use.

  2. In the file you can following:

3.1. Use function 'train' to train the model

3.2. Use either of the functions





In order to run corresponding algorithms for predictions.

  1. Run file in order to run evaluation of the algorithms. The results will be displayed in console as well as the table-like file will be created (table_all_results.csv).

Supplementary: S1. The can be run in order to collect general information about the log (that are numbe rof cycles, alphabet size e.c.)

S2. used to generate graphs on results

S3. LTL formulas can be discovered using 'Declare miner' plugin in ProM.


This code is supported by Anton Yeshchenko (

The code based on the original repository (


Leveraging A-priori Knowledge in Predictive Business Process Monitoring






No releases published




  • Python 92.8%
  • Java 7.2%