<!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>
      <issn pub-type="ppub">1613-0073</issn>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Two Solutions for Checking LTLf Properties in Event Logs</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Fabrizio MariaMaggi</string-name>
          <email>maggi@inf.unibz.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tedi Ibershimi</string-name>
          <email>tibershimi@unibz.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>DiellsimeoneXhemala</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Anti Alman</string-name>
          <email>anti.alman@ut.ee</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ivan Donadello</string-name>
          <email>ivan.donadello@unibz.i</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>Linear Temporal Logic, Conformance Checking, Log Filtering</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Free University of Bozen-Bolzano</institution>
          ,
          <addr-line>Bolzano</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Tartu</institution>
          ,
          <addr-line>Tartu</addr-line>
          ,
          <country country="EE">Estonia</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2023</year>
      </pub-date>
      <fpage>23</fpage>
      <lpage>27</lpage>
      <abstract>
        <p>Conformance checking is an important task in process mining that checks whether a case of a business process is compliant or not with a process model. Process models in conformance checking can be expressed by using the procedural paradigm (e.g., through BPMN models or Petri nets) or the declarative one (e.g., throughDeclare models). Declarative process modeling languages represent the process behavior using temporal logic constraints mainly expressed with Linear Temporal Logic on finite traces (LTL ). In this paper, we present two solutions for checkinLgTL temporal properties over the traces in an event log. The two solutions have been implemented in thReuM Java toolkit (equipped with a Graphical User Interface) and in thDeeclare4Py Python library. We also preliminary evaluate the time performance of both implementations showing that the execution times are reasonable for suficiently complex checking tasks.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>CEUR
ceur-ws.org</p>
    </sec>
    <sec id="sec-2">
      <title>1. Introduction</title>
      <p>
        Process mining [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] focuses on the analysis of business processes based on event logs that
contain information about process executions. An important component in process mining is
a process model. Traditional process models follow the procedural paradigm and are suitable
for representing predictable and stable business processes through an explicit specification of
the allowed behaviors. The procedural paradigm is well suited for business processes where
all possible executions are relatively similar to each other. A shortcoming of the procedural
paradigm is the dificulty of representing processes that have high variability among all possible
executions as each variation needs to be explicitly accounted for, thus leading to high complexity
in the process models 2[]. In contrast, declarative process models can be more easily used to
manage this type of processes since they are expressed through a set of constraints that state
what the process behavior must not contradict, thus enabling the compact representation of
multiple allowed process executions.
nEvelop-O
∗Corresponding author.
CEUR
      </p>
      <p>An important task in process mining is conformance checking, whose goal is to find
discrepancies between a process model and the actual executed process as recorded einveannt log. In
this paper, we consider the verification of anLTL model (i.e., a set ofLTL constraints) with
respect to a lo g containing traces each being a sequence of events (activity executionLsT).L
checking verifies whether each trace i n satisfies all constraints in .</p>
      <p>
        The presentedLTL checking tools provide a list of patterns that have been shown to be
particularly useful in the literatu3r,e4][. In particular, each pattern is represented asLaTLn
template, i.e., a formula with placeholders to be substituted by concrete activities to obtain
a specific constraint. The family of simpleLTL patterns (hereafter calledSLTL ) were first
provided in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], whereas theDeclare patterns were first introduced in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. The checkers
also support BrancheDdeclare (hereafter calledB-Declare) in which Declare templates are

⋁=1  .
      </p>
      <p>instantiated with disjunctions of activitie s=</p>
      <p>The LTL checkers have been implemented in thReuM Java toolkit 5[] and the Declare4Py
Python library 6[]. These tools can be used for checkinLgTL formulas in the traces of an event
log, but can also be used as advanced log filters to produce sub-logs that are compliant (or
non-compliant) with some givenLTL properties. We conducted empirical experiments and
measured the execution times for performing the checking wiRthuM and Declare4Py. The
ifndings of these experiments demonstrate that both solutions can execute complex tasks in
reasonable time.</p>
    </sec>
    <sec id="sec-3">
      <title>2. Tool description</title>
      <p>We present here a Java solution and a Python solution for checkLinTgL properties in event
logs.</p>
      <p>The Java solution is provided in the form of a GUI-based functionality implemented in
RuM. RuM is purposely designed to provide an easy, intuitive and user-friendly interface,
making it suitable to be used by both process mining experts and non-expert5s].[ The tool’s
graphical interface plays an important role in supporting the usSeLTofL and Declare for
conformance checking and log filtering, by providing options to build chains of filters, modify
them, instantiate constraints from templates, import and export filter configurations, analyze
the checking results and the corresponding statistics, export compliant and non-compliant
traces in diferent sub-logs. The verification of the LTL formulas inRuM is based on the
tree-based search presented in3][. The graphical user interface represents the real novelty of
the Java solution because it provides a user experience that is not provided by any existing
tool forLTL checking. Another distinguishing feature of this solution resides in the possibility
to check B-Declare constraints, which is not provided in other solutions. Finally, it is also
important to note that alLlTL properties that can be checked iRnuM are treated as filters that
can be combined with standard log filters (e.g., on trace durations, on attribute values, or on
timestamps) to extract traces with specific characteristics from an event log.</p>
      <p>The Python solution is provided in theDeclare4Py API. It is intended to be used by
researchers willing to integrate this functionality in new tools, to perform large experimentations
as well to perform Machine Learning related tasDkesc.lare4Py represents the first Python
API able to perform conformance checking based oSLnTL and (B-)Declare constraints. This
solution uses finite state automata forLTL checking built from the input formulas through a
C++ engine1. Furthermore, it also performs parallel executions that partition the event log into
sub-logs that are assigned to diferent threads running in parallel.</p>
    </sec>
    <sec id="sec-4">
      <title>3. Tool Maturity</title>
      <p>The execution times of theLTL checkers were measured through a series of experiments
performed using event logs extracted from four datasets widely used in the literature. These
logs, available in the well-known XES standa2rhda,ve the characteristics shown in Tabl1eand
are identified with labels D1, D2, D3, and D4.</p>
      <p>The experiments were conducted by applying thSeLTL and the B-Declare patterns to the
event logs. In the case ofB-Declare, the template parameters were replaced by the disjunction
of two and five activities (randomly chosen in each log). The experiments were performed
ifve times and the average time values were computed. All experiments were performed on a
MacBook Pro machine equipped with an Apple M1 processor with 8 cores. The obtained results
are illustrated in Tab2l.e</p>
      <p>The results show that, inRuM, the execution times grow linearly with the number of traces
and the number of constraints in the reference model. This type of behavior was expected
since larger logs and a higher number of constraints inherently require more processing time.
In Declare4Py, we can observe mostly the same behavior apart from some cases in which
the execution times remain constant. This is due to the fact that, iRnuM, both the results
of checking all constraints together and of checking each individual constraint are provided.
Instead, Declare4Py only shows the results obtained by checking all constraints together.
Consequently, in the Java solution, the system will always perform the check of all constraints
on all traces. Instead, iDneclare4Py, when a trace does not satisfy a constraint, that trace is not
checked anymore. Therefore, if at some point all traces in the log do not satisfy the constraints
checked so far, checking the other constraints do not increases the execution time since there
are no traces to be evaluated.</p>
      <p>The execution times forDeclare4Py are generally higher wrRtu.M. This is due to the
fact that the Python solution first builds automata from the input constraints and afterwards
performs the checking. Since the automata construction is exponential in the formu7]l,ath[is
adds an overhead inDeclare4Py.
1https://github.com/whitemech/lydia
2https://www.xes-standard.org/openxes/start</p>
      <p>RuM
# constraints D1 D2 D3 D4</p>
    </sec>
    <sec id="sec-5">
      <title>4. Screencasts and websites</title>
      <p>The source code ofRuM is available ahtttps://bitbucket.org/doorless1634/thesis/src/tedi-thesis/
and the source code ofDeclare4Py can be found at https://github.com/ivanDonadello/
Declare4Py./ In the latter repository, several Jupiter notebook-based tutorials are available
explaining diferent LTL checking use cases. The video presentation of this paper can be
accessed athttps://www.youtube.com/watch?v=4wy3C1EfYJw.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
          </string-name>
          , Process Mining - Data Science in Action, Springer,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>C.</given-names>
            <surname>Di Ciccio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Marrella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Russo</surname>
          </string-name>
          ,
          <article-title>Knowledge-intensive processes: Characteristics, requirements and analysis of contemporary approaches</article-title>
          ,
          <source>J. Data Semant</source>
          .
          <volume>4</volume>
          (
          <year>2015</year>
          )
          <fpage>29</fpage>
          -
          <lpage>57</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
            , H. T. de Beer,
            <given-names>B. F. van Dongen</given-names>
          </string-name>
          ,
          <article-title>Process mining and verification of properties: An approach based on temporal logic</article-title>
          ,
          <source>in: OTM Conferences (1)</source>
          , volume
          <volume>3760</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2005</year>
          , pp.
          <fpage>130</fpage>
          -
          <lpage>147</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Pesic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Schonenberg</surname>
          </string-name>
          ,
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
          </string-name>
          , DECLARE:
          <article-title>Full support for looselystructured processes</article-title>
          , in: EDOC, IEEE Computer Society,
          <year>2007</year>
          , pp.
          <fpage>287</fpage>
          -
          <lpage>300</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Alman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Di Ciccio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Haas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. M.</given-names>
            <surname>Maggi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Nolte</surname>
          </string-name>
          ,
          <article-title>Rule mining with RuM</article-title>
          ,
          <source>in: 2nd International Conference on Process Mining, ICPM</source>
          <year>2020</year>
          ,
          <year>2020</year>
          , pp.
          <fpage>121</fpage>
          -
          <lpage>128</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>I.</given-names>
            <surname>Donadello</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Riva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. M.</given-names>
            <surname>Maggi</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. Shikhizada,</surname>
          </string-name>
          <article-title>Declare4Py: A python library for declarative process mining, in: BPM (PhD/Demos)</article-title>
          , volume
          <volume>3216</volume>
          ofCEUR Workshop Proceedings, CEUR-WS.org,
          <year>2022</year>
          , pp.
          <fpage>117</fpage>
          -
          <lpage>121</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>G.</given-names>
            <surname>De Giacomo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Vardi</surname>
          </string-name>
          ,
          <article-title>Linear temporal logic and linear dynamic logic on finite traces</article-title>
          ,
          <source>in: IJCAI, IJCAI/AAAI</source>
          ,
          <year>2013</year>
          , pp.
          <fpage>854</fpage>
          -
          <lpage>860</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>