<!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>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>A. Activities</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Eric Verbeek Department of Mathematics and Computer Science Eindhoven University of Technology Eindhoven</institution>
          ,
          <country country="NL">The Netherlands</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-In the area of process mining, an event log is a crucial artifact. However, existing event log visualizers do not really help us in gaining many useful insights into the underlying process, that is, into the process that generated this event log. This paper introduces the Log Skeleton Filter and Browser tool, which allows us to gain many such insights. This tool can handle noisy event logs, and still show the structure of this event log and its underlying process, that is, the skeleton that supports the log and the process.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>In the area of process mining [1], event logs are crucial.</title>
      <p>For process discovery, one needs an event log to discover a
process model from. For process conformance, one needs an
event log to replay on the process model at hand. For process
enhancement, one needs an event log to enhance the process
model at hand.</p>
      <p>However, an event log visualizer that allows us to gain
insights into the process model that underlies the event log, is
not yet available. Typically, the existing event log visualizers
visualize an event log by visualizing traces in some way.
Although this may be useful in itself, it does not really help
us in understanding the underlying process model.</p>
      <p>
        At the same time, the two top submissions of the process
discovery contest of 2017 [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] have both used an approach
which involved a human. The winner of that contest used
an interactive approach, where an experienced user would
interactively construct a process model from an event log using
some tools. The runner-up approach used an earlier version of
the tool presented in this paper. Both submitted approaches
performed much better than any submitted approach that
included only automated discovery. But if we need to keep
a human in the loop, then we should provide that human with
tools to support him.
      </p>
      <p>Therefore, this paper presents an event log visualization tool
called Log Skeleton Filter and Browser that can help us in
understanding the structural properties of the log, which in turn
can help in understanding the system that generated the log.
This tool takes the activities as present in the event log together
with some constraints between them as main artifacts, builds
a so-called log skeleton from these activities and constraints,
and visualizes this log skeleton. The tool allows us to filter the
event log before creating the log skeleton, and to browse the
current log skeleton that was created from the filtered event
log.</p>
      <p>The remainder of this paper is organized as follows.
Section II introduces the three main parts of the tool using a
noisy example event log. Section III introduces the part of the
tool that visualizes the event log at hand using a so-called log
skeleton. Section IV introduces the browser controls, which
can be used by us to change the view on the current log
skeleton. Section V introduces the filter controls, which can
be used by us to filter the event log before the log skeleton is
derived from it. Section VI concludes the paper.</p>
    </sec>
    <sec id="sec-2">
      <title>The log skeleton shown in Fig. 1 shows in total 14 different</title>
      <p>activities: the 12 activities as found in the log (b, . . . , k, E,
and S) and two artificial activities which denote the start (j&gt;)
and the end ([ ]) of a trace.</p>
      <p>Activity S occurs 977 times in the entire event log, and
either may not occur or occurs once (0..1) in every trace.
Furthermore, S is considered to be equivalent to E, which
means that they tend to occur equally often in every trace.
The activities j&gt;, E, and [ ] are also equivalent to E, and E
serves as the ringleader for this equivalence class. As we see
that S occurs 977 times and E occurs 975 times, we know that
they do not occur equally often in every trace. The selected
noise level determines (5%, in this case) how much differences
are accepted. Basically, this noise level guarantees that the
accumulated occurrence count differences of both activities in
all traces is at most 50 (5% of 1000 traces). Clearly, if the
noise level is set to 0%, then no differences are allowed for
them to be equivalent.</p>
      <p>1See http://www.promtools.org/doku.php?id=nightly.</p>
    </sec>
    <sec id="sec-3">
      <title>Equivalent activities use the same background color. As a</title>
      <p>result, if two activities share the same background color, they
are considered to be equivalent. As an example, in Fig. 1 f,
g, h, i, and k are equivalent, with f as their ringleader. This
suggests that in the process model that underlies the event log
these activities occur equally often.</p>
      <sec id="sec-3-1">
        <title>B. Constraints</title>
        <p>
          The log skeleton shown in Fig. 1 shows 5 different kinds
of Declare [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] constraints between the activities: response
(precedence) (a blue arrow at the blue tail (head) of an arc),
not response (not precedence) (a red arrow with a red bar at
the red head (tail) of an arc), and not co-existence (an ocher bar
at the head and/or tail of an ocher line). However, in contrast
with the original Declare constraints, the constraints also take
the noise level into account.
        </p>
        <p>As examples:</p>
        <p>E is a response of k in 99% (.99) of all occurrences of k.
This means that 99% of all occurrences of k are followed
in the same trace by some occurrence of E.</p>
        <p>S is a precedence of f in 98% (.98) of all occurrences
of f. This means that 98% of all occurrences of f are
preceded in the same trace by some occurrences of S.
k is a not-response of E in 99% of all occurrences of
E. This means that 99% of all occurrences of E are not
followed in the same trace by some occurrence of k.
f is a not-precedence of S in 99% (.99) of all occurrences
of S. This means that 99% of all occurrences of S are not
preceded in the same trace by some occurrence of f.
c is a not-co-existence of d for all occurrences of c and
vice versa. This means that c and d never occur in the
same trace.</p>
        <p>Before the (not) response and (not) precedence relations are
visualized, a transitive reduction is performed on them. As a
result, although no explicit response constraint from f to i is
shown, implicitly it is there because of the response constraints
from f to g and from g to i. For the not response and not
precedence relations, prior to this reduction, the identity and
not-co-existence relations are removed.</p>
        <p>Our way of visualizing the constraints differs from the way
they are visualized by Declare. In Declare, a dot is used to
indicate the ’point of view’ for some constraint. In our tool,
this role is simply taken by the symbol (arrow, bar, or arrow
with bar) put either on the tail or the head. As a result, the
symbols replace the dots, but also indicate the types of the
constraints. This saves space (and clutter) on the arcs,</p>
        <p>The log skeleton also shows that several activities do not
occur in the same trace: f on the one hand, and b, c, and d on
the other hand, and b on the one hand and c on the other hand.
This indicates that there are two choices in the process model:
A first between the f, . . . , i, and k on the one hand, and b,
. . . , e, and j on the other hand, and a second between the c
and e on the one hand and d on the other hand. Note that the
numbers of occurrences of these activities also indicate this,
as 455 (f) + 520 (b) 977 (S), and 254 (c) + 274 (d)
520 (b).</p>
        <p>Although the example at hand does not show this, the
not co-existence constraint can also take noise into account.</p>
      </sec>
      <sec id="sec-3-2">
        <title>C. Noise Level</title>
        <p>This allows us to vary the noise level from 0% to 20%.</p>
        <p>Allowing a noise level of 50% or more makes hardly any
sense, as this could allow multiple contradicting constraints
between two activities. As such, we have chosen a maximal
noise level of 20%, as this is still some distance away from
this problematic 50% level. Fig. 2 shows the usefulness of this
slider, as it shows the log skeleton obtained from the event log
with noise level set to 0. Obviously, the log skeleton shown
by Fig. 1 provides us with more insights about the event log
as this log skeleton.</p>
        <p>Assume, for the sake of convenience, that the not co-existence
constraint between b and f has .98 at the b-end and .95 at the D. Options
f-end of the constraint. Then 98% of all occurrences of b occur 1) Use Hyper Arcs (may be slow...): This allows us to
in traces where f does not occur, and 95% of all occurrences visualize a clique of identical (not) response/precedence
conof f occur in traces where b does not occur. Note that as a straints by a single hyper (not) response/precedence constraint.
result the symmetry of the not co-existence constraint may be In some cases this may significantly reduce clutter in the log
broken. For example if we select a noise level of 3%, then b skeleton as shown. As indicated, this option may make the
will have a not co-existence constraint to f, but not vice versa. tool very slow, as it uses a simple recursive algorithm to detect
maximal cliques of identical constraints.</p>
        <p>2) Use False Constraints: This allows us to ignore the not
C. Configuration co-existence constraints (which have no rela direction) when</p>
        <p>At the bottom of the log skeleton, its configuration is shown. laying the log skeleton out.</p>
        <p>This shows us the main settings that were used to obtain the 3) Use Edge Colors: This allows us to use colors for
shown log skeleton from the event log at hand. the constraint edges. If selected, the tail/head of a
response/precedence constraint is colored blue, the tail/head of a
not precedence/not response constraint is colored red, and the</p>
        <p>IV. THE BROWSER tail/head of a not co-existence constraint is colored ocher. If
The browser controls at the right hand side of the log the constraints are there because of the noise level, the color
skeleton provide us with means to change the visualization will be lighter.
of the current log skeleton. The visualization can be changed 4) Use Equivalence Class: This allows us to show only
by selecting different activities to show, selecting different the non co-existence constraints for the ringleaders of the
constraints to show, a slider for the allowed noise level, equivalence classes. In Fig. 1, this option is selected. If
and a number of visualization options that may be handy. not selected, the not-co-existence relation between k and e
Furthermore, the browser comes with a View Log Skeleton will also be shown, and many others as well. As equivalent
in New Window button that allows us to open a new window activities typically share the same not co-existence constraints,
with the current visualization. This allows us to, say, compare the5r)e UissneoHneeaedd/TtoailshLoawbetlhse:mTahlils. allows us to position the
different log skeletons easily. tail and head labels (like .98) on the constraint heads and
tails. If selected, they are positioned on the tail and head. If
A. View Activities not selected, they are positioned near the middle of the edge,
like .98!.97 for the response/precedence edge between f and</p>
        <p>This allows us to select which activities are shown. By g (see Fig. 1).
default, all activities are pre-selected. 6) Show Neighbors: This allows us to visualize the
neighbors of selected activities as well. A neighbor of an activity is
B. View Constraints any other activity that has some selected constraint from or to
that activity. This allows us to quickly inspect the constraints
of a selected collection of activities. As an example, in the
example log skeleton, if we only select j&gt; with this option
selected, then S would also be shown (be it without border),
which indicates that S typically occurs first. We can then
extend the selection with S, which causes b and f to be shown,
etc.</p>
        <p>This allows us to select which constraints are shown. By
default, the (not) response/precedence constraints are all
preselected, and the not-co-existence constraint if the number of
these constraints does not exceed 100. The reason for the latter
is that the layout algorithm used for the log skeletons may
become very slow if many constraints are present. Because of the
possible transitive reduction on the (not) response/precedence
constraints, the chances of having many of these constraints
is considerably lower than the chances of having many not
co-existence constraints.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>V. THE FILTER</title>
    </sec>
    <sec id="sec-5">
      <title>The filter controls at the left hand side allow us to filter the log prior to creating the log skeleton from it. Typically,</title>
      <p>these controls will result in a different log skeleton. Unlike the
browser controls, which take into effect as soon as we change
them, we need to select the Apply Settings button, which will
create and show the new log skeleton using the filter settings
as provided.</p>
      <sec id="sec-5-1">
        <title>A. Required Activities</title>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>This allows us to select the traces that contain all of the selected activities. If one or more of the selected activities does not occur in a trace, the entire trace will be filtered out.</title>
      <sec id="sec-6-1">
        <title>B. Forbidden Activities</title>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>This allows us to select the traces that contain none of the</title>
      <p>selected activities. If one or more of the selected activities
occurs in a trace, the entire trace will be filtered out.</p>
      <p>This can be combined with the required activities. Only
traces that contain all of the selected required activities and
none of the selected forbidden activities will be filtered in.</p>
      <sec id="sec-7-1">
        <title>C. Activity Splitters</title>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>This allows us to split activities into multiple activities,</title>
      <p>which can be useful in case of recurrent activities. In the
leftmost field of a row, we can specify the activity he wants
to split. In the rightmost field, we can specify the activity he
wants to split over.</p>
      <p>As an example, assume that we want to split f over b. Every
occurrence of f is then renamed to either f:0 (if in the trace
b does not precede this occurrence of f) or f:1 (if in the trace
b does precede this occurrence of f). We can also split an
activity f over itself: The first occurrence of f in a trace is
renamed f:0, all other in that trace are renamed f:1.</p>
    </sec>
    <sec id="sec-9">
      <title>VI. CONCLUSION</title>
    </sec>
    <sec id="sec-10">
      <title>This paper has introduced the Log Skeleton Filter and</title>
      <p>Browser tool, that can be used by a user to gain insights into
the process underlying the event log at hand. Using the tool,
important relations between activities can be concluded by us,
which allows him to understand the process much better.</p>
      <p>The tool can handle noisy event logs. From a noisy event
log, a log skeleton was obtained that was a spitting image of
the log skeleton that was obtained from the noise-free sibling
event log. Of course, the numbers of occurrences of activities
in the event log were different, and some constraints required
a positive noise level to be detected, but with an appropriate
noise level the same constraints were detected, and the same
equivalence classes for the activities.</p>
      <p>
        The tool has been used by the author to gain insights into
the 10 training event logs of the process discovery contest of
2019 [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. See, for example, this screencast2, which explains
(to some extent) how the model was discovered for training
log 4 using the tool, which included some splitting of recurrent
activities. Fig. 3 show some insights for this log of this contest,
which indicates that activities a and a choice between ai and
(some occurrence of) aj can be executed concurrently, after
which the activities ak and v can be executed concurrently.
      </p>
      <p>However, for some other event logs, using only this tool
did not provide sufficient insights. These event logs typically
contained recurrent activities, which could not be split
successfully with the tool, as it can only split a recurrent activity
if there is a certain activity in-between the occurrences of the
recurrent activity. For the process discovery contest of 2017,
this was sufficient, but for the contest of 2019 it was sometimes
not. This shows that other ways of splitting recurrent activities
could be very interesting as future work.</p>
      <p>In the end, the models discovered by the author from
the training event logs of the process discovery contest of
2019 were able to classify 898 of the 900 test traces
correctly. Hence, the models achieved a classification accuracy
of 99.78% on the final test logs. This made the author’s
submission to this contest the best-classifying submission, and
also shows that many useful insights were obtained using
the tool on the training event logs. The two traces that were
misclassified belong to models 9 and 10, that indeed contain
recurrent activities.</p>
    </sec>
    <sec id="sec-11">
      <title>ACKNOWLEDGMENT</title>
    </sec>
    <sec id="sec-12">
      <title>The authors would like to thank the organizers of the process discovery contests, as without these contests, this tool would not have been. REFERENCES</title>
    </sec>
    <sec id="sec-13">
      <title>2See https://www.win.tue.nl/ hverbeek/downloads/ICPM2019Demo.mp4</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>W. M. P.</surname>
          </string-name>
          v. d. Aalst, Process Mining: Data Science in Action, 2nd ed. Springer-Verlag,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J.</given-names>
            <surname>Carmona</surname>
          </string-name>
          , M. de Leoni,
          <string-name>
            <given-names>B.</given-names>
            <surname>Depaire</surname>
          </string-name>
          , and
          <string-name>
            <surname>T. Jouck.</surname>
          </string-name>
          (
          <year>2017</year>
          )
          <article-title>Process discovery contest</article-title>
          <year>2017</year>
          . [Online]. Available: http://www.win.tue.nl/ ieeetfpm/doku.php?id=shared:process discovery contest
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>L.</given-names>
            <surname>Maruster</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. J. M. M. Weijters</surname>
            ,
            <given-names>W. M. P.</given-names>
          </string-name>
          v. d. Aalst, and A. v. d. Bosch, “
          <article-title>A rule-based approach for process discovery: Dealing with noise and imbalance in process logs,” Data Min</article-title>
          . Knowl. Disc., vol.
          <volume>13</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>67</fpage>
          -
          <lpage>87</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>H. M. W.</given-names>
            <surname>Verbeek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C. A. M.</given-names>
            <surname>Buijs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. F. v.</given-names>
            <surname>Dongen</surname>
          </string-name>
          , and
          <string-name>
            <surname>W. M. P.</surname>
          </string-name>
          v. d. Aalst, “
          <article-title>ProM 6: The process mining toolkit,”</article-title>
          <source>in Proc. of BPM Demonstration Track</source>
          <year>2010</year>
          , vol.
          <volume>615</volume>
          . CEUR-WS.org,
          <year>2010</year>
          , pp.
          <fpage>34</fpage>
          -
          <lpage>39</lpage>
          . [Online]. Available: http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>615</volume>
          /paper13.pdf
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>W. M. P.</surname>
          </string-name>
          v. d. Aalst,
          <string-name>
            <given-names>M.</given-names>
            <surname>Pesic</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Schonenberg</surname>
          </string-name>
          , “
          <article-title>Declarative workflows: Balancing between flexibility and support</article-title>
          ,” Computer Science - Research and Development, vol.
          <volume>23</volume>
          , pp.
          <fpage>99</fpage>
          -
          <lpage>113</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.</given-names>
            <surname>Carmona</surname>
          </string-name>
          , M. de Leoni, and
          <string-name>
            <surname>B. Depaire.</surname>
          </string-name>
          (
          <year>2019</year>
          )
          <article-title>Process discovery contest</article-title>
          <year>2019</year>
          . [Online]. Available: https://icpmconference. org/process-discovery-contest
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>