<!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>
      <journal-title-group>
        <journal-title>Rome, Italy
* Corresponding author.
$ manal.laghmouch@uhasselt.be (M. Laghmouch); benoit.depaire@uhasselt.be (B. Depaire);
Nicola.Gigante@unibz.it (N. Gigante); mieke.jans@uhasselt.be (M. Jans); montali@unibz.it (M. Montali)</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Declare MoGeS: Model Generator and Specializer</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Manal Laghmouch</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Benoît Depaire</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nicola Gigante</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mieke Jans</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marco Montali</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Free University of Bozen-Bolzano</institution>
          ,
          <addr-line>Piazza Università, 1, 39100 Bolzano BZ</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Hasselt University</institution>
          ,
          <addr-line>Martelarenlaan 42, 3500 Hasselt</addr-line>
          ,
          <country country="BE">Belgium</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Maastricht University</institution>
          ,
          <addr-line>Minderbroedersberg 4-6, 6211 LK Maastricht</addr-line>
          ,
          <country country="NL">Netherlands</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2023</year>
      </pub-date>
      <volume>000</volume>
      <fpage>0</fpage>
      <lpage>0002</lpage>
      <abstract>
        <p>This demo introduces Declare MoGeS, an automated approach for generating and specializing Declare process models that can be employed as input for log generation. The specialization of Declare models is particularly interesting to produce event logs that encompass a subset of the behavior of other logs. Declare MoGeS seamlessly integrates with existing log generators, streamlining the log generation process.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Declare</kwd>
        <kwd>Model Generation</kwd>
        <kwd>Model Specialization</kwd>
        <kwd>Linear Temporal Logic</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        specialization primarily involves adding constraints to an initial model, resulting in limited
variations of process models. To address this limitation, the second objective of the demo is to
propose an automated approach to generate specializations by adapting constraints from an
initial model, thereby enabling controlled variations [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ]. For instance, a constraint stating that
activity a should be followed by activity b (i.e. Response(a,b)) can be specialized by requiring
immediate occurrence of activity b after a (i.e. ChainResponse(a,b)).
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Innovations and Main Features</title>
      <p>Given that the demo has to be able to (1) generate artificial declarative process models and
(2) specialize declarative process models that can serve as input to generate event logs, the
developed declare Model Generator and Specializer (Declare MoGeS) adheres to the following
requirements.</p>
      <p>• Declarative Modeling Language – describe business processes in a flexible declarative
language (declare).
• Consistency – the generated and specialized models only consist of non-contradictory
constraints.
• Specialization of Process Models – enable refinement and tailoring of model behavior.
• Balance Between Randomness and User Control – allow for variations of process
models, and, at the same time, enough control over the generated models.
• Compatibility Output Models with Existing Log Generators – The output model is
a declare model saved in a file format 1 suitable as input for existing log generators.</p>
      <sec id="sec-2-1">
        <title>In the following subsections, we describe the algorithms behind Declare MoGeS.</title>
        <sec id="sec-2-1-1">
          <title>2.1. Generating a Random Declare Model</title>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>Algorithm 1 shows that a desired number of activities and constraints (ℎ_ and</title>
        <p>_), a set of declare templates that can be selected to generate a model (_),
and the probability that a particular declare template is chosen (_) serve as inputs
for model generation.</p>
      </sec>
      <sec id="sec-2-3">
        <title>Model Generation starts with initializing an empty list of declare constraints. This list will</title>
        <p>eventually form the created model. Next, a declare constraint is selected by randomly choosing
a template from _, taking into account the _. Afterward, activities from
an alphabet of size ℎ_ are chosen to obtain a _.</p>
      </sec>
      <sec id="sec-2-4">
        <title>The _ is added to the model IF it complies with the following two key condi</title>
        <p>tions. First, the _ must be consistent with the constraints already present in the
model, i.e., their conjunction must be satisfiable . We refer to the existing set of constraints as
the temporary model. For instance, consider a temporary model consisting of the constraints</p>
      </sec>
      <sec id="sec-2-5">
        <title>1*.decl file format</title>
        <p>Input : Size of the alphabet of : ℎ_</p>
      </sec>
      <sec id="sec-2-6">
        <title>Number of declare constraints: _</title>
      </sec>
      <sec id="sec-2-7">
        <title>List of declare constraint templates: _</title>
      </sec>
      <sec id="sec-2-8">
        <title>Initial probability of choosing templates: _</title>
      </sec>
      <sec id="sec-2-9">
        <title>Number of subsequent tries to add a constraint:  Output: Set of declare constraints:</title>
        <p>Initialize:
 = []
 ← 0
 ← 0
while  &lt; _ do
_ = random(_, _,
)
if _ is consistent w.r.t.  and
_ is not redundant w.r.t.  then
 ←  ∪ _
 ←  + 1
 ← 0
else
 ←  + 1
if  &gt;  then
print No model found with the given parameters
return 
return</p>
      </sec>
      <sec id="sec-2-10">
        <title>Algorithm 1: Model Generator</title>
        <p>[Response(a,b), ChainResponse(b,c)]. The constraint ChainResponse(b,d) would be inconsistent
because it contradicts ChainResponse(b,c). Second, the new constraint should not be redundant.</p>
      </sec>
      <sec id="sec-2-11">
        <title>For example, ChainResponse(b,d) (i.e. if b occurs, then d should occur in the next position)</title>
        <p>implies Response(b,d) (i.e. if b occurs, then d should occur eventually after b). In this case,
adding Response to the model when a ChainResponse is already included is redundant.</p>
      </sec>
      <sec id="sec-2-12">
        <title>Both conditions, i.e. consistency and non-redundancy, are checked with BLACK [5] by using</title>
        <p>the Linear Temporal Logic over finite traces (LTLf) encoding of the declare constraints. If both
conditions are met, the _ is added to the model, or discarded otherwise.</p>
      </sec>
      <sec id="sec-2-13">
        <title>The algorithm keeps track of how many subsequent times a constraint is discarded (). This</title>
        <p>process continues until the _ is met (model is returned) or until  times in a row, a
_ cannot be added to the model (a message is shown to the user and the model
() is returned).</p>
        <sec id="sec-2-13-1">
          <title>2.2. Specializing a Declare Model</title>
        </sec>
      </sec>
      <sec id="sec-2-14">
        <title>Algorithm 2 shows the process for specializing a declare process model. To specialize a</title>
        <p>model, the user provides an initial model consisting of constraints that need to be specialized
(). Optionally, the user can input a set of constraints from the initial model that
should be kept in the specialized model (). Furthermore, a specialization percentage
(_) that defines the probability a constraint will be specialized is set.
Input : Initial declare model:</p>
        <p>Specialization percentage: _</p>
      </sec>
      <sec id="sec-2-15">
        <title>Initial specialized model:</title>
        <p>Output: A specialization of 
for each _ in  do
if _ can be specialized then
if () &lt; _ then
Generate 
if  ̸∈  then</p>
        <p>←  ∪ 
else
 ←</p>
        <p>∪ _
else
if _ ̸∈  then</p>
        <p>←  ∪ _
return</p>
      </sec>
      <sec id="sec-2-16">
        <title>Algorithm 2: Model Specializer</title>
        <p>The process of specialization (algorithm 2) starts with an _ from
. If _ can be specialized, then a specialization is added to the
 in some cases. The _ is taken into account to determine whether
a specialization should be added or not. Otherwise, the _ is added to the
. This process ends when all constraints from the initial model are considered. The
specialized model  is a specialization of the initial model .</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Maturity</title>
      <p>Declare MoGeS is implemented in Python and stored in a GitHub repository2. Additionally,
a comprehensive video tutorial demonstrating the tool’s usage can be found within the same
repository, providing users with an informative resource for getting started with Declare MoGeS.</p>
      <p>In computational tests, we tested the Declare MoGeS by conducting a total of 2392 runs, each
aimed at artificially generating and automatically specializing each of the generated declare
process models at four distinct percentages (30%, 50%, 70%, and 100%). Approximately 75% of the
runs resulted in the generation of models containing between 5 to 25 constraints, all achieved
within an 11-minute time frame. Furthermore, it’s worth noting that models with fewer than 16
constraints were generated almost instantly, with a median time of less than a second. However,</p>
      <sec id="sec-3-1">
        <title>2https://github.com/manallaghmouch/DeclareMoGeS</title>
        <p>for models comprising more than 35 constraints, the execution time could exceed an hour. This
prolonged execution was primarily attributed to the computationally intensive consistency and
non-redundancy checks performed by BLACK.</p>
      </sec>
      <sec id="sec-3-2">
        <title>On the other hand, the Model Specializer displayed eficiency throughout our tests, consistently boasting running times of less than one second for all specialization percentages. These results highlight the efectiveness of specialization through adapting constraints.</title>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusion and Future Work</title>
      <sec id="sec-4-1">
        <title>This paper presents a novel approach for automatically generating and specializing declare</title>
        <p>process models to facilitate log generation. The efectiveness of the approach is demonstrated and
evaluated, highlighting its ability to swiftly generate and specialize declare models containing</p>
      </sec>
      <sec id="sec-4-2">
        <title>5 to 25 constraints.</title>
      </sec>
      <sec id="sec-4-3">
        <title>In future research, there are opportunities to expand. One potential avenue involves incorpo</title>
        <p>rating a data-aware aspect. After integration, studies can evaluate data-aware process discovery
algorithms using logs generated from data-aware input models. Additionally, it is interesting
to extend the study beyond the predefined templates ofered by the declare language. Future
research will delve into exploring LTL formulas that surpass the existing templates.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgments</title>
      <sec id="sec-5-1">
        <title>Manal Laghmouch thanks Research Foundation - Flanders for the SB PhD fellowship (1S40622N)</title>
        <p>granted to support this research. Nicola Gigante acknowledges the support of the PURPLE
project, 1st Open Call for Innovators of the AIPlan4EU H2020 project, a project funded by EU</p>
      </sec>
      <sec id="sec-5-2">
        <title>Horizon 2020 research and innovation programme under GA n. 101016442 (since 2021)”</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>T.</given-names>
            <surname>Jouck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Depaire</surname>
          </string-name>
          ,
          <article-title>Generating artificial data for empirical analysis of control-flow discovery algorithms: a process tree and log generator</article-title>
          ,
          <source>Business &amp; Information Systems Engineering</source>
          <volume>61</volume>
          (
          <year>2019</year>
          )
          <fpage>695</fpage>
          -
          <lpage>712</lpage>
          .
        </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>M. L.</given-names>
            <surname>Bernardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Cimitile</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. M.</given-names>
            <surname>Maggi</surname>
          </string-name>
          ,
          <article-title>Generating event logs through the simulation of declare models</article-title>
          ,
          <source>in: Enterprise and Organizational Modeling and Simulation: 11th International Workshop, EOMAS</source>
          <year>2015</year>
          ,
          <article-title>EOMAS</article-title>
          2015, Springer,
          <year>2015</year>
          , pp.
          <fpage>20</fpage>
          -
          <lpage>36</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>D. M.</given-names>
            <surname>Schunselaar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. M.</given-names>
            <surname>Maggi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Sidorova</surname>
          </string-name>
          ,
          <article-title>Patterns for a log-based strengthening of declarative compliance models</article-title>
          ,
          <source>in: International Conference on Integrated Formal Methods</source>
          , Springer,
          <year>2012</year>
          , pp.
          <fpage>327</fpage>
          -
          <lpage>342</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>R. De Masellis</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Di Francescomarino</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Ghidini</surname>
            ,
            <given-names>F. M.</given-names>
          </string-name>
          <string-name>
            <surname>Maggi</surname>
          </string-name>
          ,
          <article-title>Declarative process models: Diferent ways to be hierarchical</article-title>
          ,
          <source>in: International Conference on Service-Oriented Computing</source>
          , Springer,
          <year>2016</year>
          , pp.
          <fpage>104</fpage>
          -
          <lpage>119</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>L.</given-names>
            <surname>Geatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Gigante</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Montanari</surname>
          </string-name>
          ,
          <article-title>Black: A fast, flexible and reliable ltl satisfiability checker</article-title>
          ,
          <source>in: Proceedings of the 3rd Workshop on Artificial Intelligence and fOrmal VERification</source>
          , Logic, Automata, and sYnthesis, volume
          <volume>2987</volume>
          ,
          <string-name>
            <surname>CEUR-WS</surname>
          </string-name>
          ,
          <year>2021</year>
          , pp.
          <fpage>7</fpage>
          -
          <lpage>12</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>