<!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>L. Malburg);</journal-title>
      </journal-title-group>
      <issn pub-type="ppub">1613-0073</issn>
    </journal-meta>
    <article-meta>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mining⋆</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christian Imenkamp</string-name>
          <email>christian.imenkamp@uni-bayreuth.de</email>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yannis Bertrand</string-name>
          <email>yannis.bertrand@ugent.be</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Joscha Grüger</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lukas Malburg</string-name>
          <email>malburgl@uni-trier.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marco Franceschetti</string-name>
          <email>marco.franceschetti@unisg.ch</email>
          <xref ref-type="aff" rid="aff5">5</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matthias Ehrendorfer</string-name>
          <email>matthias.ehrendorfer@tum.de</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Agnes Koschmider</string-name>
          <email>agnes.koschmider@uni-bayreuth.de</email>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Workshop</string-name>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>Process Mining, Internet of Things, OCEL</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>German Research Center for Artificial Intelligence (DFKI)</institution>
          ,
          <addr-line>Behringstraße 21, 54296 Trier</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Ghent University</institution>
          ,
          <addr-line>Tweekerkenstraat 2, 9000 Ghent</addr-line>
          ,
          <country country="BE">Belgium</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Technical University of Munich, TUM School of Computation, Information and Technology</institution>
          ,
          <addr-line>85748 Garching</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Trier University</institution>
          ,
          <addr-line>Universitätsring 15, 54296 Trier</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>University of Bayreuth</institution>
          ,
          <addr-line>Universitätsstraße 30, 95447 Bayreuth</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff5">
          <label>5</label>
          <institution>University of St. Gallen, Institute of Computer Science</institution>
          ,
          <addr-line>9000 St. Gallen</addr-line>
          ,
          <country country="CH">Switzerland</country>
        </aff>
      </contrib-group>
      <volume>000</volume>
      <fpage>0</fpage>
      <lpage>0001</lpage>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        The increasing integration of IoT technologies into business processes has led to the emergence of
IoT-enriched event logs, as interconnected devices generate granular, time-stamped events. These logs
extend traditional process execution data with contextual information from IoT devices such as sensors
and actuators, allowing more sophisticated analysis and real-time process insights [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. However, the
lack of standardization among existing metamodels for IoT-enriched event logs, often based on XES
(eXtensible Event Stream), has resulted in significant interoperability challenges. Event logs stored
in diferent formats are typically not mutually compatible, limiting their reusability and hindering
cross-tool import and exchange.
      </p>
      <p>
        To address this challenge, we propose a common metamodel for IoT-enriched event logs named the
CORE metamodel [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] that is based on the OCEL standard [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. The CORE metamodel integrates the
representational features of several already existing log formats into a unified model, thereby enabling
interoperability across corresponding tools and datasets. The metamodel aims to serve as a foundational
formats. BROOM complements existing data analytics and process mining platforms (e.g., RapidMiner).
Its primary advantage lies in the high customizability and the ability to produce outputs adhering
to the CORE metamodel. BROOM introduces three key innovations to address the limitations of
the existing tools: (1) The native support for OCEL and therefore the OCEL ecosystem (i.e., using
discovery algorithms for IoT-enhanced process data). (2) An extensible pipeline model for transforming,
      </p>
      <p>CEUR</p>
      <p>ceur-ws.org
manipulating and parsing of IoT-enhanced process data. (3) Semantic mapping of IoT-data to
processaware events.</p>
      <p>Given the considerable number of IoT-enriched event logs and software tools currently available
for diferent IoT-enriched event log formats, a toolbox for IoT-enhanced process mining appears to
be promising; e.g., to convert existing logs into the common metamodel format. To this end, we
have developed BROOM, a Python-based toolbox for IoT-enhanced process mining, which enables the
bidirectional exchange of event logs between XES-based formats and the proposed OCEL-based CORE
metamodel. A central challenge of a common metamodel format lies in the mapping of attributes across
semantically and structurally divergent metamodels.</p>
      <p>To make BROOM more accessible, we implemented a web-based user interface that guides users
through the available functions, such as the transformation procedure. The interface provides a
nodebased editor that allows the user to construct a transformation pipeline by connecting predefined
nodes.</p>
    </sec>
    <sec id="sec-2">
      <title>2. CORE Metamodel for IoT-Enhanced Event Logs</title>
      <p>
        The CORE metamodel [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] ofers a unified framework for the representation of IoT-enhanced event logs
by synthesizing core attributes and features from several pre-existing event log formats. It addresses
the harmonization of heterogeneous data generated by IoT devices and process-aware information
systems in the context of business processes (BPs). The metamodel has been designed to fulfill seven
well-defined requirements that emerged from an extensive comparative evaluation of prior approaches
and use cases across diverse application domains.
      </p>
      <p>The CORE metamodel distinguishes between two central constructs: events and objects, adhering
to the object-centric modeling paradigm established by OCEL 2.0. Events are further categorized into
IoT-Events, representing physical observations from sensors, and process events, denoting transitions in
the execution lifecycle of activities. Objects are likewise classified into data source objects (e.g., sensors,
information systems), business objects (e.g., batches, tanks, customer orders), and general objects (e.g.,
subprocesses, resources). Key structural features include:
• Support for diferent levels of data granularity , enabling representation of low-level sensor
observations and high-level business events.
• A flexible case notion , allowing events to be associated with multiple entities rather than a
single process instance.
• Explicit representation of semantic annotations and metadata, improving the interpretability
and reuse of logs.
• Full traceability across abstraction layers, including derivation links between raw sensor
data, aggregated IoT-Events, and process events.
• Compatibility with the OCEL 2.0 standard to take advantage of existing tools and ensure
widespread adoption.</p>
      <p>
        Compared to previously proposed models, such as DataStream [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], NICE [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], and CAIRO [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], the
CORE metamodel ofers several significant advantages:
• Unification and Interoperability: CORE merges and harmonizes features across models,
facilitating interoperability and reducing fragmentation in IoT-enhanced process mining.
• Model Expressiveness: Through its object- and event-type taxonomies, CORE achieves
comprehensive coverage of heterogeneous data sources and their interactions.
• Tool Support and Extensibility: Implementation within the OCEL 2.0 standard ensures
compatibility with a growing ecosystem of related tools, while allowing future extensions.
• Data Integration and Transformation: The metamodel explicitly supports derivation chains,
enabling transparent transformation and abstraction of sensor data into higher-level process
information.
• Cross-domain Applicability: The generality and flexibility of the metamodel make it suitable
for a wide range of domains, including manufacturing, healthcare, and smart environments.
      </p>
      <p>In summary, the CORE metamodel provides a modular and extensible foundation for integrated
representation, analysis, and exchange of IoT-enhanced event data, aligning with current standards and
emerging requirements in process mining research.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Implementation</title>
      <p>BROOM has been developed as a web application using Angular1 for the frontend and Flask2 as REST
functionality. The implementation of the CORE metamodel is developed in Python@3.12. The source
code of BROOM can be found at https://github.com/chimenkamp/IOT-PM-Suite for the frontend and
https://github.com/chimenkamp/IOT-PM-Suite-Backend for the backend, and a deployed version can
be accessed using the following link https://broom-iot-toolbox.onrender.com/.</p>
      <sec id="sec-3-1">
        <title>3.1. Functionality</title>
        <p>The goal of the implementation is to smoothly parse an arbitrary log into the CORE metamodel format.
For this, BROOM relies upon a node-based user interface to intuitively create a parsing pipeline (see
Figure 1). In general, the pipeline depends on the use case and dataset, but will subsequently perform
the following steps:
• Reading the data: The source dataset can be of type CSV, XML, YAML, or JSON. Internally, all
diferent data types are mapped into a data frame structure. This functionality is provided by the
Read File node.
• Data Processing: BROOM ofers multiple nodes to process the data (e.g., Data Filter, Data Mapper,
Column Selector, Attribute Selector ). For example, the Column Selector takes the Raw Data output
of the Read File Node as an input and covert it into a Series. The Data Filter and Data Mapper
(Input = Series, Output = Series) can apply filters to the series. The Attribute Selector can be used
to select attributes from these series.
• CORE Model Conversion: Selected attributes are used to construct classes provided by the
CORE metamodel. BROOM ofers corresponding nodes: the IoT-Event node, which accepts ID,
Type, Timestamp, and Metadata as inputs, all connectable to the Attribute Selector node; and the
Process Event, which additionally requires an Activity Label. Objects are similarly created with
ID, Type, Class, and Metadata, supported by utility nodes to generate unique IDs or select object
classes.
• Construction of the CORE Model: Finally, outputs from Process Event, IoT-Event, and
Relationships nodes are combined into a dataset in CORE format. The data can be displayed or
exported in OCEL format via Output and Export nodes. Leveraging the object-centric process
mining (OCPM) ecosystem also enables discovering object-centric process models by integrating
IoT-Events, Process Events, and Event-To-Event Relationships directly in the browser.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Architecture of BROOM</title>
        <p>BROOM’s architecture is web-based and is therefore structured into two layers (i.e., Frontend and
Backend), as shown in Figure 2. Users interact mainly with the site through the Frontend. The page
layout is structured into two components (i.e., Sidebar and Editor). (1) The Sidebar incorporates the
main functionalities and the collection of usable nodes. The user can drag and drop nodes from the
sidebar into the editor component. Additionally, the sidebar also has the functions to Save/Load a
1https://angular.dev/
2https://flask.palletsprojects.com/en/stable/
pipeline, upload a dataset to the server, or clear the editor. Mappings can be saved to a JSON file and
later uploaded to restore the pipeline. Lastly, the sidebar contains a small legend containing the available
port types (i.e., the connection between nodes). (2) A node will be displayed in the editor when a user
drags and drops it to a certain position. The node consists of the outer and inner layer. The outer layer
contains the input (left) and output (right) ports. Two ports can be connected by dragging from one
output port to the input port of another node. Only ports of the same color can be connected, and one
output port can be connected to multiple input ports. The inner layer of the node contains diferent
UI elements to manipulate the behavior (e.g., the column identifier of the Column Selector node). In
addition to the general element of the UI, the frontend also performs rudimentary validation tasks
before the pipeline is forwarded to the backend for processing (i.e., starting with data and ending with
the CORE metamodel, no dangling nodes, all nodes have the required inputs and outputs).</p>
        <p>After validation, the pipeline is propagated to the backend via a REST service. The first component
of the Backend is the REST-API, providing routes for posting datasets, pipelines, or pipeline results.
Posting a pipeline definition triggers the Pipeline Executor, which first flattens the pipeline typologically
into sequences of executable steps. Due to potentially unbounded node connections, pipelines may
lfatten into multiple, possibly overlapping sequences. During sequence processing, the Pipeline Executor
loads the corresponding Node Implementations—classes describing node behavior—from the store. For
example, the Column Selector node receives a DataFrame and a column identifier, returning the specific
column as a series. The results are stored associated with node IDs. A node is triggered only when all
its predecessors’ results are available. Finally, once all predecessors of the CORE metamodel node are
executed successfully, the required data is passed to the implementation layer, translating the CORE
standard directly into OCEL.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Availability and Maturity</title>
      <p>
        BROOM is a stable and production-ready tool, designed for use by researchers, practitioners, and
educators. Its functionality has been validated against the DataStream extension for XES [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], and the
CAIRO metamodel [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. These tests confirm the suitability and comparability of the tool with existing
metamodels. Additionally, the authors of these metamodels have evaluated BROOM and endorsed its
usability and eficiency.
      </p>
      <p>The tool is fully open source under the MIT license, making it suitable for both academic and
commercial applications. It is available on GitHub at https://github.com/chimenkamp/IOT-PM-Suite
for the frontend and https://github.com/chimenkamp/IOT-PM-Suite-Backend for the backend, with
a live instance accessible at https://broom-iot-toolbox.onrender.com/. A “Getting Started” guide and
example projects are provided to ensure smooth onboarding. Additionally, a video showcasing a simple
pipeline can be found here https://github.com/chimenkamp/IOT-PM-Suite/tree/main/docs/</p>
      <p>BROOM’s mature state is reflected in its stable performance, complete feature set, and modular,
extensible design. It supports a wide range of data formats and streaming inputs, and produces outputs
compatible with object-centric process mining frameworks. Additionally, for use cases that cannot be
modeled through the frontend, users can directly use BROOM’s Python implementation to select the
desired functionality.</p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgments</title>
      <p>This work received funding by the Deutsche Forschungsgemeinschaft (DFG), grant 496119880 and was
supported by the Internet of Processes and Things (IoPT) community: https://zenodo.org/communities/
iopt/about.</p>
    </sec>
    <sec id="sec-6">
      <title>Declaration on Generative AI</title>
      <p>During the preparation of this work, the author(s) used ChatGPT, Writefull, and LanguageTool in order
to: Paraphrase and reword, improve writing style, and Grammar and spelling check. After using this
tool/service, the author(s) reviewed and edited the content as needed and take(s) full responsibility for
the publication’s content.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Koschmider</surname>
          </string-name>
          , et al.,
          <source>Process Mining for Unstructured Data: Challenges and Research Directions, in: Modellierung</source>
          <year>2024</year>
          ,
          <article-title>Gesellschaft für Informatik e</article-title>
          .V.,
          <string-name>
            <surname>Bonn</surname>
          </string-name>
          ,
          <year>2024</year>
          , pp.
          <fpage>119</fpage>
          -
          <lpage>136</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bertrand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Imenkamp</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Malburg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ehrendorfer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Franceschetti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Grüger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leotta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Mangler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Seiger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Koschmider</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rinderle-Ma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Weber</surname>
          </string-name>
          ,
          <string-name>
            <surname>E. Serral,</surname>
          </string-name>
          <article-title>An object-centric core metamodel for IoT-enhanced event logs</article-title>
          ,
          <source>arXiv:2506.21300</source>
          (
          <year>2025</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Berti</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Koren</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. N.</given-names>
            <surname>Adams</surname>
          </string-name>
          , G. Park,
          <string-name>
            <given-names>B.</given-names>
            <surname>Knopp</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Graves</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rafiei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Liß</surname>
          </string-name>
          , L. T. G. Unterberg,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , et al.,
          <source>OCEL (object-centric event log) 2</source>
          .0 specification, arXiv:
          <fpage>2403</fpage>
          .
          <year>01975</year>
          (
          <year>2024</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.</given-names>
            <surname>Mangler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Grüger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Malburg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ehrendorfer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bertrand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-V.</given-names>
            <surname>Benzin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rinderle-Ma</surname>
          </string-name>
          ,
          <string-name>
            <surname>E. Serral Asensio</surname>
          </string-name>
          , R. Bergmann, DataStream XES Extension:
          <article-title>Embedding IoT Sensor Data into Extensible Event Stream Logs</article-title>
          ,
          <source>Future Internet</source>
          <volume>15</volume>
          (
          <year>2023</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bertrand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Veneruso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leotta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mecella</surname>
          </string-name>
          , E. Serral,
          <article-title>NICE: the Native IoT-centric event log model for process mining</article-title>
          ,
          <source>in: ICPM</source>
          , Springer,
          <year>2023</year>
          , pp.
          <fpage>32</fpage>
          -
          <lpage>44</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Franceschetti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Seiger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Weber</surname>
          </string-name>
          ,
          <article-title>An event-centric metamodel for IoT-driven process monitoring and conformance checking</article-title>
          ,
          <source>in: ICPM</source>
          , Springer,
          <year>2023</year>
          , pp.
          <fpage>131</fpage>
          -
          <lpage>143</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>