Skip to content

Discovery with Split Miner

Dependency

To use these algorithms in your Java Maven project it is necessary to include, in the pom.xml file, the dependency:

<dependency>
    <groupId>com.github.beamline</groupId>
    <artifactId>discovery-splitminer</artifactId>
    <version>master-SNAPSHOT</version>
</dependency>
See the introduction page for further instructions.

Usage

This miner can be used to extract a BPMN process model in a similar way as performed by the Split Miner.

Once a XesSource is available, the miner can be configured and used as follows:

LossyCountingBudgetSplitMiner miner = new LossyCountingBudgetSplitMiner(
    10, // the budget for cases
    10, // the budget for relations
    0.01, // concurrency threshold
    0.01, // the frequency threshold
    5); // the sliding window size

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env
    .addSource(new StringTestSource("ABCDF", "ABCEF"))
    .keyBy(BEvent::getProcessName)
    .flatMap(miner)
    .addSink(new SinkFunction<BPMNTemplateResponse>() {
        public void invoke(BPMNTemplateResponse value, Context context) throws Exception {
            PaliaLikeBPMNDiagramGenerator.fromBPMNTemplate(
                "process",
                value.getBpmnTemplate(),
                "output.svg");
        }
    });
env.execute();

This code will produce the following model:

G e53a1df30-9705-4b08-b0a8-3263f4319ccc->e19ab2931-dc04-48da-bc8b-a6445506d5c4 e19ab2931-dc04-48da-bc8b-a6445506d5c4->e808aba30-b5eb-469b-b542-d5a27f4588b7 e808aba30-b5eb-469b-b542-d5a27f4588b7->eeab80efd-180c-4fe1-8e69-9934b9ea0b09 ee7b841cb-464c-419a-8bae-3f806f9ec5c9->e6ae57bba-eded-484d-af11-a5a1989a71ee eeab80efd-180c-4fe1-8e69-9934b9ea0b09->ea1411cd2-ee63-41c7-a2dc-1c7840253baa e808e2a5f-5092-4189-90b5-8395b10cce91->ebc3567e8-38c0-4f5e-ae50-e43c49309c44 eaf32a996-30c2-4603-b9ef-ae197503fc9b->ebc3567e8-38c0-4f5e-ae50-e43c49309c44 ea1411cd2-ee63-41c7-a2dc-1c7840253baa->e808e2a5f-5092-4189-90b5-8395b10cce91 ea1411cd2-ee63-41c7-a2dc-1c7840253baa->eaf32a996-30c2-4603-b9ef-ae197503fc9b ebc3567e8-38c0-4f5e-ae50-e43c49309c44->ee7b841cb-464c-419a-8bae-3f806f9ec5c9 e53a1df30-9705-4b08-b0a8-3263f4319ccc e19ab2931-dc04-48da-bc8b-a6445506d5c4 A e808aba30-b5eb-469b-b542-d5a27f4588b7 B ee7b841cb-464c-419a-8bae-3f806f9ec5c9 F eeab80efd-180c-4fe1-8e69-9934b9ea0b09 C e808e2a5f-5092-4189-90b5-8395b10cce91 E eaf32a996-30c2-4603-b9ef-ae197503fc9b D ea1411cd2-ee63-41c7-a2dc-1c7840253baa × ebc3567e8-38c0-4f5e-ae50-e43c49309c44 × e6ae57bba-eded-484d-af11-a5a1989a71ee

Scientific literature

The techniques implemented in this package are described in:

The Split Miner algorithm is presented in: