Prototype for removing inconsistency in declare model via remainders.
Git submodules are used for libraries.
To download the submodules either clone using git clone --recurse-submodules <url>
or after git clone
use git submodule init
and git submodule update
.
Following libraries are required to build the project.
System Installation Required:
- BISON version: 3.7.6
- FLEX version: 2.6.4
Submodule:
- EvalMaxSAT: MaxSAT solver
- MINERful: Process miner for event logs. This is not a direct dependency. Nevertheless, it is used to generate benchmark data. Further information is provided below.
Make sure that you haven't forgotten to clone
, init
and update
the submodules.
To build the project:
cd <...>/hibpm
mkdir build && cd build
cmake ..
make -j<X> # X is the number of jobs/thread that you want to give the compiler to be quicker
It could be that some compilers; e.g. AppleClang 12.0.5.x
fail on trying to build EvalMaxSAT
.
In this case, g++
was tested and works with this setup.
To switch the compiler for building use:
cmake -DCMAKE_CXX_COMPILER=g++ ..
instead of the first line above.
On MasOS it might be, that you have to call the explicit version of g++
by g++-<version>
because Apple redirect g++
back to AppleClang
.
cmake -DCMAKE_CXX_COMPILER=g++-10 ..
This repository provides several DECLARE models for testing and benchmarking. Those can be find in the Resources Directory.
In it you will find some text files (.txt
) that enumerate constraints in a list. This data was provided by Carl Coreas repository: TODO.
In addition, this folder also contains the directory BPIC2020
.
In it you can find event logs and models generated by MINERful
in .csv
and .json
format.
MINERful is included in this project as a submodule. More details can be found in the wiki of the developers.
The following commands can be used to reconstruct the event logs used in this project:
./run-MINERful.sh -iLF ../BPIC2020/logs/DomesticDeclarations.xes.gz -s 0.95 -c 0.5 -i 0.125 -prune 'hierarchyconflictredundancydouble' -oCSV ../BPIC2020/models/DomesticDeclarations.csv -oJSON ../BPIC2020/models/DomesticDeclarations.json
./run-MINERful.sh -iLF ../BPIC2020/logs/InternationalDeclarations.xes.gz -s 0.95 -c 0.5 -i 0.125 -prune 'hierarchyconflictredundancydouble' -oCSV ../BPIC2020/models/InternationalDeclarations.csv -oJSON ../BPIC2020/models/InternationalDeclarations.json
./run-MINERful.sh -iLF ../BPIC2020/logs/PermitLog.xes.gz -s 0.95 -c 0.5 -i 0.125 -prune 'hierarchyconflictredundancydouble' -oCSV ../BPIC2020/models/PermitLog.csv -oJSON ../BPIC2020/models/PermitLog.json
./run-MINERful.sh -iLF ../BPIC2020/logs/PrepaidTravelCost.xes.gz -s 0.95 -c 0.5 -i 0.125 -prune 'hierarchyconflictredundancydouble' -oCSV ../BPIC2020/models/PrepaidTravelCost.csv -oJSON ../BPIC2020/models/PrepaidTravelCost.json
./run-MINERful.sh -iLF ../BPIC2020/logs/RequestForPayment.xes.gz -s 0.95 -c 0.5 -i 0.125 -prune 'hierarchyconflictredundancydouble' -oCSV ../BPIC2020/models/RequestForPayment.csv -oJSON ../BPIC2020/models/RequestForPayment.json
Attention: Make sure to be in the directory /Resources/MINERful/
while executing the commands. Depending on the hardware and the size of the event log, the generation of a DECLARE-model can take several hours.