<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Discover Context-Rich Local Process Models (Extended Abstract)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mitchel Brunings</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dirk Fahland</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Eric Verbeek</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Eindhoven University of Technology</institution>
          ,
          <addr-line>Mathematics and Computer Science, Eindhoven</addr-line>
          ,
          <country country="NL">the Netherlands</country>
        </aff>
      </contrib-group>
      <fpage>100</fpage>
      <lpage>103</lpage>
      <abstract>
        <p>We introduce a new ProM plugin called Discover Context-Rich LPMs which mines a log for large local process models (LPMs) based on supported words. The main advantage of this plugin is that it produces much larger and much fewer LPMs than other tools. The plugin is packaged with an additional plugin called Generate HTML coverage report which calculates the coverage of LPMs along with several other quality measures. This extra plugin is useful to select and improve a set of LPMs.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Sets of LPMs</kwd>
        <kwd>coverage</kwd>
        <kwd>ProM</kwd>
        <kwd>process mining</kwd>
        <kwd>process analytics</kwd>
        <kwd>interactive process discovery</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
    </sec>
    <sec id="sec-2">
      <title>2. Discover Context-Rich LPMs</title>
      <p>
        We first discover context-rich LPMs using the following 4 steps, described in detail in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        1) Mine supported words. This step is based on an algorithm developed in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. It eficiently
ifnds all gapped subsequences (words) that occur in a log at least as often as a user-defined
threshold . For our implementation, we set  to 10% of the number of occurrences of the most
frequent event class.
      </p>
      <p>2) Group by prefix of subsequence. Next, we group the supported words by the first  events
in each word. The default value  = 1 groups words by their starting activity only, values
 &gt; 1 distinguish words by a longer prefix. This allows grouping all frequent sub-behaviors of
a process that begin in the same way.</p>
      <p>3) Filter words. Then, we look at each group of words. There may be pairs of words in a
group where the longer word contains the shorter. It is impossible for short words to occur
less often than long words that contain them, but they may occur more often. When we see
such a long and short word occur (almost) equally often, the short word does not add (much)
information. If the short word occurs much more often, then the part we only see in the long
word can apparently be skipped. We use a support delta  (by default equal to ) to determine
how much more often we need to see a short word to keep it. Thus, for each pair of words
where one contains the other, we discard the shorter of the two if it does not occur at least 
more times than the longer one. What remains will be a set of words that we know are each
important to represent in an LPM for this (local) part of the process.</p>
      <p>
        4) Discover models. We now treat each set of filtered supported words with the same prefix
as a local log and apply a process discovery algorithm to obtain an LPM of this local log. We
already did all selection and filtering in the previous steps, so we should use an algorithm that
guarantees 100% fitness. Therefore, we choose to use the basic Inductive Miner [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        Results. Using this plugin on the BPIC2012 log [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] returned a set of 26 LPMs (Accepting
Petri net Array) in about 8 minutes on a laptop with an Intel(R) Core(TM) i7-7700HQ CPU @
2.80GHz and with 4.0 GB RAM @ 2400 MHz allocated to ProM. The mean number of labeled
transitions for these LPMs is 9.2, the median is 7.5, the largest is 24. This shows that we can
ifnd a much more reasonable number of LPMs (10s instead of 1000s) and much larger LPMs
(more than twice as large) in roughly equal running time as the other tools [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Selecting subset of desired LPMs</title>
      <p>
        In [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] we show that a desired property of a set of LPMs is that it describes all events in the data,
i.e., all events are covered. We implemented “Generate HTML coverage report” to calculate
the coverage of LPMs along with several other quality measures. It first evaluates each model
individually and then combines the results into a single report. For each LPM, we split the
original log into subsequences bounded by the first and last activity of the LPM, and project
onto the activities present in the LPM. We treat this set of subsequences as a log which we
replay on the LPM. From the replay we extract measures such as fitness and precision. The
plugin then overlays each discovered LPM with replay information as shown in Fig. 3 and opens
a local browser to show a coverage report as shown in Fig. 2. This plugin took about 1 minute
on the LPMs discovered from the BPIC2012 log with the technique of the previous section.
      </p>
      <p>The coverage report shows one column for each LPM, in the same order as in ProM. The top
rows provide statistics per LPM and a selection box to pick LPMs to combine into a set. The
coverage of each LPM over each trace variant is shown below by colored rectangles. Each LPM
(column) either covers (green) or does not cover (gray) events (2 pixels high) in the trace variants
(rows, with frequency on the right). The right-most column shows the combined coverage
where gray means no LPM in the selected set covers that event, green means exactly one LPM
covers that event, and purple means more than one covers it. The row right above the coverage
visualization provides coverage statistics as both absolute numbers and ratio of the total events
in the log.</p>
      <p>Fig. 2 shows that selecting the LPMs with ticked boxes gives a coverage of 0.872 with 0.234
duplicate. The analyst can (de-)select LPMs to maximize total coverage and minimize duplicate
coverage; selecting all LPMs on BPIC2012 has 0.951/0.815 total/duplicate coverage.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Links</title>
      <p>Downloads and installation instructions, screencast, and source code can be found here: https:
//svn.win.tue.nl/repos/prom/Documentation/LPMSupportedWords/index.html</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>
        The presented tool provides a first step for interactively constructing meaningful sets of LPMs [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
by discovering far fewer but larger LPMs from which an analyst can choose relevant LPMs
based on various quality criteria, in particular coverage. This is similar in a sense to sub-model
freezing [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], as the user is in control of what the final model looks like. After using the tool, a
user should still perform manual selection and cleanup of LPMs.
      </p>
      <p>
        Further developments should aid the user by suggesting “optimal” sets of LPMs. However,
determining “optimal” requires further research on quality measures for LPM (c.f. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]). We also
argue the need for notation describing how LPMs in a set relate to each other globally.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>N.</given-names>
            <surname>Tax</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Sidorova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Haakma</surname>
          </string-name>
          , W. M. van der Aalst,
          <article-title>Mining local process models</article-title>
          ,
          <source>Journal of Innovation in Digital Ecosystems</source>
          <volume>3</volume>
          (
          <year>2016</year>
          )
          <fpage>183</fpage>
          -
          <lpage>196</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>V.</given-names>
            <surname>Peeva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. L.</given-names>
            <surname>Mannel</surname>
          </string-name>
          ,
          <string-name>
            <surname>W. M.</surname>
          </string-name>
          <article-title>van der Aalst, From place nets to local process models</article-title>
          ,
          <source>in: Petri Nets</source>
          , Springer,
          <year>2022</year>
          , pp.
          <fpage>346</fpage>
          -
          <lpage>368</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M. D.</given-names>
            <surname>Brunings</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Fahland</surname>
          </string-name>
          ,
          <string-name>
            <surname>B. F. van Dongen</surname>
          </string-name>
          ,
          <article-title>Defining meaningful local process models</article-title>
          , in: ToPNoC XVI, Springer,
          <year>2022</year>
          , pp.
          <fpage>24</fpage>
          -
          <lpage>48</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M. D.</given-names>
            <surname>Brunings</surname>
          </string-name>
          , Discovering Context-Rich Local Process Models,
          <source>Master's thesis</source>
          , Eindhoven University of Technology,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>D.</given-names>
            <surname>Fahland</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Maoz</surname>
          </string-name>
          ,
          <article-title>Mining branching-time scenarios</article-title>
          ,
          <source>in: 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE)</source>
          , IEEE,
          <year>2013</year>
          , pp.
          <fpage>443</fpage>
          -
          <lpage>453</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S. J.</given-names>
            <surname>Leemans</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Fahland</surname>
          </string-name>
          , W. M. van der Aalst,
          <article-title>Discovering block-structured process models from event logs-a constructive approach</article-title>
          , in: Petri Nets, Springer,
          <year>2013</year>
          , pp.
          <fpage>311</fpage>
          -
          <lpage>329</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>B. F. van Dongen</surname>
          </string-name>
          ,
          <source>BPI Challenge</source>
          <year>2012</year>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D.</given-names>
            <surname>Schuster</surname>
          </string-name>
          ,
          <string-name>
            <surname>S. J. van Zelst</surname>
          </string-name>
          ,
          <string-name>
            <surname>W. M. van der Aalst</surname>
          </string-name>
          ,
          <article-title>Sub-model freezing during incremental process discovery in cortado</article-title>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>