Process mining using BPMN: relating event logs and process models
Process mining is an emerging discipline incorporating methods and tools for the analysis of system/process executions captured in the form of event logs. Traditionally process mining can be divided into three research areas: discovery (construction of process models from event logs), conformance checking (finding log and model deviations), and enhancement of existing process models with additional event log data. BPMN (Business Process Model and Notation) 2.0 is a widely used process modeling notation, supported by various process modeling and analysis tools, and is a de-facto process modeling standard. Using BPMN within process mining opens perspectives for applicability of the existing process mining techniques: for instance discovered process models can be analyzed or enacted using existing BPMN-based software, and vice versa, manually created models can be imported to a process mining tool, verified against event logs, and enhanced with additional data. In this work we bridge the gap between conventional process modeling formalisms used in the context of process mining (e.g., Petri nets, causal nets, process trees) and BPMN. For that purpose we developed a suite of conversion algorithms and provide formal guarantees relating the behavior of Petri nets (including non-freechoice nets) to the corresponding BPMN models (and vice versa). The derived relations are used to enhance the BPMN models with information learned from the event logs. The developed conversion techniques are described in detail in and have been implemented as a part of ProM (Process Mining Framework) – an open source tool for process mining and verified on real event log data. Moreover, cases for which conversion algorithms give more compact process models in comparison with the initial models are identified. Although the developed algorithms deal with basic control flow constructs only, they can be applied in the discovery of advanced BPMN modeling elements, including subprocesses, cancellations, conditional branching and data objects, swimlanes, message flows, and others.