Skip to content
Jannik Arndt edited this page Apr 7, 2014 · 1 revision

The Process Cube Explorer was developed as a research-framework and is very easy to extend. Our documentation is in German, but this page will point you in to general directions as well.

Architecture

This is the basic architecture:

Adding a mining-algorithm

Adding a new mining-algorithm is easy: Make yourself familiar with the field-class and the IMiner-interface. Your algorithm will need to implement the interface, which means it will be initialized with a field- object. The field contains everything you need, most important the eventlog. Your Mine()-Method should return a ProcessModel-Object. Currently the only implementation is for petrinets, if your algorithm creates something different make sure to implement that kind of model as well. To use your algorithm you just have to create a UserContent-View and add it to the ListOfMiners in the MinerFactory.

Adding a processmodel-type

Currently all three algorithms return petrinets, so only these are implemented. There is however an abstract class ProcessModel and we tried to use that whenever possible. This means you can just derive a new model-class from the ProcessModel-class and use it in your mining-algorithm. You still need to implement a visualization though, which should be derived from the abstract class AbstractProcessModelVisualizer.

Adding a diff-algorithm

There also is an interface (IDifference) and a factory (DiffFactory) for diff-algorithms. Currently the snapshot-diff is implemented.

Adding a consolidation-algorithm

Use the IConsolidator-Interface and the ConsolidatorFactory.

Adding a database-type

Most database-types are already supported, you can however derive your own from the abstract MPMdbConnection-class. Keep in mind that you might need to derive another class from the SQLCreator, since dialects may differ.

Other packages

For most implementations you need to know the basics of the MatrixSelection-Package:

You also might want to have a look at the Main-Package:

And if you're a fan of conformance checking, have a look at this:

Clone this wiki locally