<!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>A Library for Detecting Inconsistencies in Declarative Process Models</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>SabineNagel</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>PatrickDelfmann</string-name>
          <email>delfmann@uni-koblenz.d</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Workshop</string-name>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>Declare, Declarative Process Model, Declarative Process Specification, Inconsistency Detection</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Koblenz</institution>
          ,
          <addr-line>Universitätsstr. 1, 56070, Koblenz</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>We present a comprehensive library for detecting and classifying inconsistencies in declarative process models (DPMs) based on inconsistency structures (i.e., recurring patterns with shared characteristics that describe how combinations of constraints become inconsistent). Here, we not only focus on inconsistencies in the classiclogical sense but also on potential inconsistencies that only occur during run-time. Our approach allows for (1) detecting inconsistency cores based on the previously defined structures, (2) identifying design-time and run-time inconsistencies by extending these cores, and (3) classifying and measuring inconsistencies. We demonstrate the applicability of our implementation with real-life datasets.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
    </sec>
    <sec id="sec-2">
      <title>2. Preliminaries and Related Work</title>
      <p>Definition 1 (Declarative Process Mod1e]l).[ A declarative process model (DPM) is a tuDpPlMe =
(T, A, C), whereT is a finite, non-empty set of constraint templaAteis,a finite, non-empty set of
activities, anCd is a finite set of constraints that instantiate the tempTl.ates in</p>
      <p>CEUR</p>
      <p>ceur-ws.org</p>
      <p>
        Generally, we distinguish betweeexnistence (e.g., Init(a), AtLeastOne(a)) andrelation constraints (e.g.,
Response(a,b), NotChainPrecedence(a,b)). While existence constraints are automatically activated
upon the start of a trace, relation constraints are either activated by their first parameter (forwar
constraints; e.gA.,lternateResponse(a,b)), their second parameter (backward constraintPsr; eec.ge.-,
dence(a,b)) or both parameters (coupling constraintsS;uec.cge.,ssion(a,b)). When a DPM contains
contradictory constraints, it immediately becomes unsatisfiable, which is referred to as inconsistent.
Definition 2 (Inconsistency7[]). An inconsistency is a tup l=e (, ) , where ⊆ A is the set of
activities that minimally activate a set of cons⊆traCinstusch that∪ ⋃∈ AtLeastOne() ⊧ ⊥ .
 is aminimal inconsistency if there is n o ′ ⊂  or ′ ⊂  such tha(t ′,  ′) is an inconsistency.
To diferentiate between design-time and run-time inconsistencies, we consider a minimal inconsistency
 = (, ) a classic inconsistency if  ⊧ ⊥ and  = ∅ and apotential inconsistency if  ⊧ ⊤ .
Furthermore, i|f| = 1 we say that a potential inconsistency aisctauanl issue and if|| &gt; 1 it
is considered apotential issue [4, 7]. As multiple inconsistencies can share a common underlying
problem, we extend the definition by4,[7] and define an inconsistency core. Table1 contains a variety
of exemplary cores representing diferent inconsistency types. For instance, the example for POS1 is a
classic inconsistency, the one for POS2 an actual issue, and the one for CARD2 a potential issue.
Definition 3 (Inconsistency Core7][). An inconsistency core is a tupl e = (  , ) , where  ⊆ A
is a non-empty set of activities that minimally actaivnadttehus serve as core activations, ⊆andC
is a set of constraints. Addition allmy,ust be a minimal classic or potential inconsistency, such that
no proper subset( ′,  ′) with ′ ⊆ A or ′ ⊂  forms a minimal classic or potential inconsistency.
Related works on inconsistency detection focus mainly on LTL8,,e9.g,.1,0[]. For DPMs, most
approaches determine unsatisfiability of an entire model by translating constraints into deterministic
ifnite automata (DFAs) and constructing a product automaton to assess satis1fia1b].iliWtyhi[le
detecting individual, minimal inconsistencies in DPMs using DFAs is theoretically sound, it sufers from
severe scalability issues due to the exponential growth in the number of automata product computations
required. Moreover, DFA-based techniques are inherently limited to classic inconsistencies and cannot
detect potential inconsistencies that depend on specific activity occurrences. As a result, C2o]rea et al. [
have implemented a first approach to detect actual issues in DPMs but only consider limited scenarios
(e.g., certain path-based inconsistencies). More recently, Corea and T3]hpimrompo[sed an approach
for identifying potential issues, but only based on a small subset of templates.
3. Detection Approach
(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) Preparation. Our library was implemented in Java and accDeepctlsare models in various formats
(TXT, JSON, and CSV), which enables seamless integration with the outputs of existing process mining
algorithms. To ensure broad applicability, we support a wide raDnegcelaorfe templates and also
handle naming variations (eA.gt.,Least1 andParticipation are treated aAstLeastOne) to enable
compatibility with diferent tools and datasets. As an optional preprocessing step, we check for
redundant constraints based on a subsumption hier1a]r.cRheyd[undant constraints are temporarily
removed from the model but are retained for later use, e.g., to assign responsibility (culpability) to
constraints or to help guide the selection of appropriate weakening strategies during inconsistency
resolution. Although more advanced forms of redundancy exist (e.g., those derived from combinations
of constraints), we intentionally delay such checks until after inconsistency resolution, as this might
distort inconsistency measurement and significantly change the model. Furthermore, detecting and
removing redundant constraints becomes much more feasible after consistency has been restored, as
DFAs can be utilized again (which always have an empty language while inconsistencies are present). To
improve computational eficiency, we pre-compute and store filtered subsets of constraints to be reused
throughout the detection processes. Many inconsistency core detection algorithms rely on graph-based
reasoning, which is why we construct multiple graphs using JG1raanpdhTutilize both built-in and
custom graph search algorithms. Custom implementations were necessary to incorporate advanced
validity checks during the search process, which allowed us to improve eficiency by discarding invalid
subtrees early.
      </p>
      <p>
        (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) Core Detection. We implemented a set of specialized algorithms that are designed to detect
cores corresponding to a specific inconsistency structure. These structures are grouped into four
categories: position, cardinality, relation, and boundary inconsistencies. An overview of the implemented
structures, along with an exemplary core for each, is provided i1n. TEabclhealgorithm is designed to
comprehensively capture cores related to its respective structure. Due to space limitations, we refer to
our Git repository for additional examples and extended explanations. Depending on the characteristics
of a structure, we apply diferent algorithmic strategies. For some structures (e.g., POS1, CARD1) the
core can be derived directly from a specific combination of constraints. In contrast, other structures
(e.g., ORD1, BOUND2) require graph-based search to identify valid cores.
      </p>
      <p>
        (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) Inconsistency Detection. Once cores have been identified, we proceed to detect complete
inconsistencies by analyzing how these cores can be activated within the model. The detection process
is configurable, so users can apply filters to focus on specific types of inconsistencies (e.g., only classic
or only potential ones) or restrict the detection to certain structures. First, we detect all valid activat
paths for all core activations by identifying activating existence constraints in the model (i.e., existence
constraints that imply a minimum cardinality of one) and searching for valid paths in a previously
defined activation graph. An activation path is considered valid if it does not result in an additional
inconsistency when attached to the core, making the resulting constraint setminnoimlaolnlyger
inconsistent. For cores with more than one activation, we additionally must ensure compatibility of all
path combinations before generating a respective inconsistency, as incompatible paths (e.g., paths that
have an additional activity overlap) also make the resulting inconsistency no longer minimal. Each of
these inconsistencies includes the core, its activation paths, and the (optional) existence activations
required to trigger the inconsistency. This comprehensive detection process enables us to uncover both
design-time (classic) and run-time (potential) inconsistencies across the entire model.
      </p>
      <p>
        (
        <xref ref-type="bibr" rid="ref4">4</xref>
        ) Inconsistency Measurement. Our library also allows basic inconsistency and culpability
measurement. This includes measuring the degree of inconsistency of the entire model by, for example,
counting the number of cores and/or inconsistencies (optionally categorized by type or structure), as
well as measuring culpability of individual constraints, i.e., the number of cores and/or inconsistencies
in which the constraint is involved.
      </p>
    </sec>
    <sec id="sec-3">
      <title>4. Usage and Maturity</title>
      <p>To enable easy access to our inconsistency detection library, a basic version can be used directly in
the browse2r(cf. Figure1). Additionally, the code can be obtained by cloning our Git re3pository
and executed locally. The latter also allows a direct integration into existing modeling or mining
tools. Additionally, a screencast showcasing our application can be fo4u.nTdo hdeermeonstrate
the feasibility of our approach, we evaluated our librarDyeucslianrge models mined from real-life
dataset5s. For the considered datasets, we computed all cores and the corresponding inconsistencies.
We ran our experiments on MacOS with an M2 chip and 16GB RAM. In T2awbleeprovide an overview
of the number of detected cores and inconsistencies, along with the run-times for the core and the
inconsistency detection separately.
2https://uni-ko.de/detection
3https://uni-ko.de/detection-git
4https://uni-ko.de/detection-screencast
5https://data.4tu.nl/search?searcha=nbdpihttps://data.4tu.nl/datasets/33632f3c-5c48-40cf-8d8f-2db57f5a6ce7/1</p>
    </sec>
    <sec id="sec-4">
      <title>5. Conclusion</title>
      <p>In this work, we present a comprehensive library for detecting and classifying inconsisDtecnlcaiersein
models. Our approach identifies both classic (design-time) and potential (run-time) inconsistencies by
detecting minimal inconsistency cores and exploring their activation paths. The current implementation
is based on a predefined set oDfeclare templates. While this ensures compatibility and simplifies
implementation, it restricts the analysis to models built using these templates. However, additional
templates can simply be added by specifying their activation semantics and linking them to relevant
inconsistency structures. As a next step, we aim to develop a dashboard that ofers visualizations of
inconsistencies and improved support for model exploration and diagnosis. Moreover, our detection
algorithms will be integrated directly into declarative process modeling and rule mining tools. This
will allow inconsistencies to be identified and resolved during model design or as part of the mining
process, which, in turn, would improve model correctness and reduce the likelihood of run-time issues.</p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgments</title>
      <p>This paper was funded by the Deutsche Forschungsgemeinschaft (grant number DE 1983/9-3).</p>
    </sec>
    <sec id="sec-6">
      <title>Declaration on Generative AI</title>
      <p>During the preparation of this work, the authors used GPT-4o to check grammar and spelling.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>C.</given-names>
            <surname>Di Ciccio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Montali</surname>
          </string-name>
          ,
          <source>Declarative Process Specifications: Reasoning</source>
          , Discovery, Monitoring, in: Process Mining Handbook, volume
          <volume>448</volume>
          , Springer Int. Publishing,
          <year>2022</year>
          , pp.
          <fpage>108</fpage>
          -
          <lpage>152</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>C.</given-names>
            <surname>Corea</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Deisen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Delfmann</surname>
          </string-name>
          ,
          <source>Resolving Inconsistencies in Declarative Process Models based on Culpability Measurement, in: In Proceedings der 14. Internationalen Tagung der Wirtschaftsinformatik</source>
          , Siegen, Germany,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>C.</given-names>
            <surname>Corea</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Thimm</surname>
          </string-name>
          ,
          <article-title>Towards Handling Potential Issues in Business Rule Bases</article-title>
          ,
          <source>Journal of Applied Logics</source>
          <volume>11</volume>
          (
          <year>2024</year>
          )
          <fpage>565</fpage>
          -
          <lpage>592</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>S.</given-names>
            <surname>Nagel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Delfmann</surname>
          </string-name>
          ,
          <article-title>Identification, Abstraction and Classification of Inconsistency Structures in Declarative Process Models</article-title>
          , in: ECIS 2023 Research Papers,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Nagel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Delfmann</surname>
          </string-name>
          ,
          <article-title>Exploring Cognitive Efects of Inconsistency Characteristics on Understanding Inconsistencies in Declarative Process Models</article-title>
          ,
          <source>in: Proceedings of the 57th Hawaii International Conference on System Sciences (HICSS)</source>
          ,
          <year>2024</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Nagel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Delfmann</surname>
          </string-name>
          ,
          <article-title>Investigating Inconsistency Understanding to Support Interactive Inconsistency Resolution in Declarative Process Models, in: ECIS 2022 Research-in-</article-title>
          <string-name>
            <surname>Progress</surname>
            <given-names>Papers</given-names>
          </string-name>
          ,
          <year>2022</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S.</given-names>
            <surname>Nagel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Delfmann</surname>
          </string-name>
          ,
          <article-title>Interactive Resolution of Inconsistencies in Declarative Process Models</article-title>
          ,
          <source>in: Proceedings der 19. Internationalen Tagung der Wirtschaftsinformatik (WI</source>
          <year>2024</year>
          ),
          <year>2024</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ielo</surname>
          </string-name>
          , G. Mazzotta,
          <string-name>
            <given-names>R.</given-names>
            <surname>Peñaloza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          ,
          <article-title>Enumerating Minimal Unsatisfiable Cores of LTLf formulas</article-title>
          ,
          <source>arXiv preprint arXiv:2409.09485</source>
          ,
          <year>2024</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Roveri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Di Ciccio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Di Francescomarino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ghidini</surname>
          </string-name>
          ,
          <article-title>Computing Unsatisfiable Cores for LTLf Specifications</article-title>
          ,
          <source>Journal of Artificial Intelligence Research</source>
          <volume>80</volume>
          (
          <year>2024</year>
          )
          <fpage>517</fpage>
          -
          <lpage>558</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>V.</given-names>
            <surname>Schuppan</surname>
          </string-name>
          ,
          <article-title>Extracting unsatisfiable cores for ltl via temporal resolution</article-title>
          ,
          <source>Acta Informatica</source>
          <volume>53</volume>
          (
          <year>2016</year>
          )
          <fpage>247</fpage>
          -
          <lpage>299</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>C.</given-names>
            <surname>Di Ciccio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. M.</given-names>
            <surname>Maggi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Montali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Mendling</surname>
          </string-name>
          ,
          <source>Resolving Inconsistencies and Redundancies in Declarative Process Models, Information Systems</source>
          <volume>64</volume>
          (
          <year>2017</year>
          )
          <fpage>425</fpage>
          -
          <lpage>446</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>