You are on page 1of 6

Declare Miner plug-in 2011

Declare Miner plug-in 6.1.5


Fabrizio Maria Maggi
Last updated on Wednesday, July 27, 2011.

Introduction
The Declare Miner plug-in allows the user to discover a Declare model from a log, using a number of settings. There are two versions of the plug-in. The first one, the Declare Miner, requires a Declare language as input. The second one, the Declare Miner Default, uses a predefined Declare language and does not require any language as input. The functionality of the plug-in can best be described by an example.

Example use of the plug-in


First, you need to start the miner. As the miner requires a log to operate on, you first need to load a log. The Declare Miner is able to discover significant Declare models when the log file only contains atomic activities so that you could need to filter the log to extract, for instance, all the events with the same event type. To use the Declare Miner it is also necessary to import an XML file specifying the Declare language that will be used to generate the constraints in the discovered model (see the documentation of the Declare package for the import/export of a Declare language in ProM). Such XML file is part of the Declare tool. In particular, it is located in the sub-directory xml of the directory where the Declare tool has been installed and it is called template.xml. Note that this file is automatically updated by the Declare designer when new templates are defined. A standard version of such XML file can be found on http://www.win.tue.nl/~fmaggi/downloads/template.xml. A second XML file specifying a Declare language must be also imported. Here the specified templates (with the same names as in the first one) are associated to the formulas to be used to identify the interesting witnesses for a constraint. An interesting witness for a constraint is a process instance where the constraint is not only satisfied but also activated (see F. M. Maggi, A. J. Mooij, W. M. P. van der Aalst, User-Guided Discovery of Declarative Process Models, 2011 IEEE Symposium on Computational Intelligence and Data Mining (CIDM2011), Paris, France for more details on it). The Declare Miner Default does not require the user to specify any Declare language as input. The only input required is the log and it uses the standard Declare as language.

Declare Miner plug-in 2011


After the Declare Miner plug-in has been started, it asks the user for the necessary settings. In particular, the following dialog appears:

In this dialog, you can specify the value for the metric Percentage of Events (PoE). This metric allows the user to specify the percentage of the event classes to be used to generate the discovered constraints. For instance, if you set PoE = 40%, the discovered constraints will only involve the 40% of all the event classes available in the log (considering the most frequent ones). This is useful in the case that you are not interested in discovering constraints involving event classes that rarely occur in the log. The dialog also shows the list of all the event classes available in the log ordered by frequency (the frequency of each event class is specified in square brackets). This list allows the user to select one by one the event classes to be considered in the discovery process. The metric PoE can be also used to speed up the discovery process since the execution time of the underlying algorithm grows exponentially with the number of the considered event classes. When you have selected the event classes to be used to generate the discovered model, you can press Next. The following dialog appears:

Declare Miner plug-in 2011

In this dialog, you can specify which templates (among the ones included in the specified Declare language) will be used to generate the Declare constraints in the discovered model. In particular, selecting a template in the list on the top-right hand side of the dialog, at the bottom a description of the selected template and a panel to tune the mining settings for that specific template (see below for more details) are shown. On the top-left hand side of the dialog you can select or deselect all the templates of the templates list and also specify further mining options. In particular, you can choose to include all the mined constraints in a single view (combined model option) or group them by template and show each group in a different view (multiple models option).

Tune the level of interest


After every prefix, there are four possible evaluations of a constraint: satisfied, when the constraint is satisfied independently of future; temporarily satisfied, when the constraint is satisfied if this is the end of the log; temporarily violated, when the constraint is violated if this is the end of the log; violated, when the constraint is violated independently of future. Accordingly, three kinds of LTL semantics for truncated paths can be defined: weak semantics where: neutral semantics where: strong semantics where: temporarily xxx temporarily xxx temporarily xxx satisfied xxx violated

Declare Miner plug-in 2011


In the yellow panel (tune the level of interest) of the dialog in the picture above, you can set the semantics to be associated to each template. Note that the neutral semantics is the typical LTL semantics for a Declare template. Moreover, while on the one side the weak semantics allows for more flexibility in the discovery process but less reliability (because everything temporarily is considered as satisfied), on the other side the strong semantics guarantees strong reliability but less flexibility (because everything temporarily is considered as violated). Finally, note that a good practice is to use the weak semantics when you know that the log contains partial process instances. Indeed, in this case, it is desirable that a constraint is discovered also if it is (in some process instances) temporarily violated because a temporarily violated constraint in a partial process instance can become satisfied in its continuation. In the same (yellow) panel, you can specify, for each template, one of the following metrics: Percentage of Instances (PoI). This metric can be used to specify (for the selected template) that a Declare constraint can be discovered also if it is not satisfied for all the process instances of the log. For example, if you set PoI = 95%, a constraint will be discovered if it is satisfied for the 95% of the process instances at least. Using this metric the user is allowed to deal with noisy data since she is able to discard some infrequent behaviours which can likely be considered as noise. Percentage of Interesting Witnesses (PoIW). This metric can be used to specify (for the selected template) that a Declare constraint can be discovered only if the log include at least a given percentage of interesting witnesses for that constraint. For example, if you set PoIW = 10%, a constraint will be discovered only if it is activated at least in 10% of the process instances in the log.

By default the Declare Miner produces a model including constraints generated considering all the event classes existing in the log, satisfied for the 100% of the process instances and with an unspecified number of interesting witnesses. When you have selected the templates to be used to generate the discovered model and tuned the settings for each of them, you can press Finish. After that the Declare Miner will start the discovery, given the specified settings. The discovery process may take some time, especially for logs including a large number of event classes. After the discovery has finished, a Declare Model object will be visualized. If you have chosen the multiple models option different tabs will be visualized, each tab containing all the discovered constraints for a given template:

2011 Declare Miner plug-in plug

If you have chosen the single ingle model option a single model will be visualized including all the discovered d constraints for the selected templates:

Declare Miner plug-in 2011


The discovered Declare model can be exported to the file system (see also the documentation of the Declare package for the import/export of a Declar model in ProM). The files generated by the export plug-in can be opened and modified using the Declare designer.

Declare2LTL for Declare models checking


To check a log w. r. t. a discovered Declare model it is possible to convert the Declare model into an LTL model using the Declare2LTL plug-in. It takes as input a Declare model and generates the corresponding LTL model which can be used as input of the LTL Checker (see the documentation of the LTL Checker).

Plug-in Classes
The Declare Miner plug-in contains 145 Java classes, which all reside in the org.processmining.plugins.declare package or in sub-packages of it. In the following the role of each sub-package and of the main Java classes is explained: 1. declareminer/DeclareMiner.java contains the mining method. 2. declareminer/TemplateGUI.java holds the GUI visualized to specify the miner settings. 3. declareminer/SlickerOpenCheckResults.java is used to build the GUI to show the mined model. 4. model/DeclareModel.java is the ProM object structured as a Declare model. 5. model/Template.java represents a Declare template. 6. exporting/DeclareExport.java holds the method to export a Declare model to the file system. 7. exporting/LTLExport.java holds the method to export an LTL model to the file system. 8. importing/DeclareModelImportPlugin.java holds the method to import a Declare model from the file system. 9. importing/TemplateImportPlugin.java holds the method to import the XML file defining the Declare templates. 10. graph.* contains the Java classes to draw the mined constraints in the mined Declare model. 11. declare2ltl/Declare2ltl.java and declareminer/LTLGenerator.java implement the plugin to translate a Declare model into an LTL model.

Dependencies
The Declare Miner depends on the LTL Checker. However, the Miner invokes the converter directly, and not through the framework.