<!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>TIME</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.1007/S10009-021-00605-3</article-id>
      <title-group>
        <article-title>Runtime Verification of Timed Petri Nets⋆</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Universidad Complutense de Madrid</institution>
          ,
          <addr-line>Calle del Prof. José García Santesmases, 9, 28040, Madrid</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Lübeck</institution>
          ,
          <addr-line>Maria-Goeppert-Str. 3, 23562, Lübeck</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Western Norway University of Applied Sciences</institution>
          ,
          <addr-line>Inndalsveien 28, 5063 Bergen</addr-line>
          ,
          <country country="NO">Norway</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2005</year>
      </pub-date>
      <volume>23</volume>
      <fpage>122</fpage>
      <lpage>130</lpage>
      <abstract>
        <p>Timed Petri net (TPN) is a type of Petri net for modeling concurrent systems that incorporates time durations as first-class citizens. This paper provides a means for analyzing TPN by runtime verification, a lightweight verification approach where a single run of a system is monitored. In particular, we assume the discrete-time semantics of TPN. We propose a TPN module for the definition and analysis of a TPN in the runtime verification framework TeSSLa, which is composed of the TeSSLa language, an interpreter, and a dedicated hardware monitor for online real-time analysis with minimal intrusion. The TeSSLa interpreter receives the definition of the TPN, the properties to analyze, and a set of execution traces and outputs an evaluation report. Our solution provides an eficient and user-friendly approach for the runtime verification of concurrent systems that are described by a high-level modeling language. For a practical evaluation of the approach, we have used parts of the library to model and analyze the workflow for examining specimens within the pathology department of Bergen's hospital.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Timed Petri Net</kwd>
        <kwd>Runtime Verification</kwd>
        <kwd>TeSSLa</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>with an associated tool chain, including an interpreter and compiler. TeSSLa ofers more flexibility
than conventional ad-hoc extensions for programming software monitors for TPN and formalizes the
execution traces in terms of streams. Transition-events from a TPN execution serve as input-events
to TeSSLa. To simplify writing concise TeSSLa-specifications for TPN models, we have developed
a TeSSLa library with functions for monitoring (timed) properties of Petri nets. Additionally, the
TeSSLa framework ofers the possibility to deploy a virtual copy of the TPN in a hardware device for
online real-time analysis of systems with minimal intrusion, if no properties are monitored which
require dynamic data structures.</p>
      <p>
        The paper is organized as follows. Section 2 gives an overview of the relevant features of TeSSLa.
Then, we present the basic concepts of a TPN and our new TPN library in Section 3. A case study
illustrates the capabilities of our approach in Section 4. Section 5 outlines the related work. Finally,
Section 6 gathers the conclusions and outlines the future work. A public repository contains the input
models, intermediate files, and results presented in this paper, as well as a video illustrating the full
workflow with the Titan tool [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Preliminaries: TeSSLa framework</title>
      <p>
        We make use of the Temporal Stream Based Specification Language (TeSSLa) for monitoring runtime
properties on TPNs. TeSSLa is composed of a specification language [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and a tool chain [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] for Stream
Runtime Verification (SRV). SRV formulates a monitoring property in terms of a stream transformation
from input streams to output streams bearing information about the monitored property. SRV allows
for more complex monitor outputs than just truth domain verdicts which only indicate whether the
monitored property is satisfied by the received trace or not. For instance, an SRV monitor can calculate
statistics on the received data such as the average duration during the occurrence of specific events.
      </p>
      <p>
        The fundamental concept of SRV is the concept of a stream. TeSSLa uses timed streams, i.e., streams
where every event has a timestamp from a global time domain T (e.g., N or R) attached. TeSSLa assumes
monotonicity and continuity of streams [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. In other words, the output streams are based on the
previous values of the input streams, and the output events can be computed incrementally (i.e., they
are future independent). Continuity implies time progression, so the clock increases a finite number of
time units until a new event happens.
      </p>
      <p>As already stated, a TeSSLa specification defines a set of input streams and their types. Events
from these streams are incrementally fed from outside to the monitor, which is generated from the
specification. The specification additionally contains definitions of intermediate streams. Therefore,
it assigns expressions over input- and intermediate streams to the identifiers of intermediate streams.
Some of the intermediate streams are marked as output streams. The events of these output streams are
incrementally printed by the monitor as soon as all input events they depend on have arrived.</p>
      <p>
        The expressions used for stream definitions in TeSSLa are applications of six core operators on input
or intermediate stream identifiers. These core operations provide basic functionality, like applying
a function to the current values of other streams, accessing last events, retrieving the timestamp of
certain events, or generating events at new timestamps. The TeSSLa implementation [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] allows the
definition of functions that can be lifted to streams directly in the specification in a functional style.
Additionally, it provides the possibility to define macros, i.e., new operators based on the core operators.
The implementation also comes with a standard library of several frequently used macros.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. TeSSLa Library for Monitoring Timed Petri Nets</title>
      <p>The TeSSLa library we have developed for this paper ofers dedicated macros and functions for
monitoring complex (timed) properties of Petri nets. SRV is a useful approach for monitoring advanced
properties, like the residence time of tokens in a place or the throughput of certain transitions, on
simulated or real executions of Petri nets. In this context, SRV is able to complement the static analysis
of the Petri net, especially for properties where a static determination is impossible or intractable
because of infinite state space.</p>
      <p>Generally speaking, a Petri net is composed
of places, transitions, arcs, and tokens flowing
through the net. The notions of parallelism, Worker
synchronization or shared resources are de- ... ...
termined by the way the places and
transitions are connected. We work with a timed t0 t3
extension of Petri nets (TPNs), where timed 2
transitions fire a token to the following place
according to a predefined delay. For example, 2
Fig. 1 shows such a TPN where the tasks in
the Todo place require two resources from the ... 2h
pool of Workers in order to complete it in 2
hours (2h). t1 Todo t2 Finished</p>
      <p>The functionality of the library is split into
two major parts. The first part contains meth- Figure 1: Example of a timed Petri net
ods for monitoring place-specific properties,
and the second one such for monitoring the token flow through the network. Common to both parts
are macros for modeling the network, or sections of it.</p>
      <p>The overall idea of the library is that the information which transitions are firing at a certain time in
the Petri net are available as inputs of the TeSSLa specification. Therefore, each relevant transition in the
net has a corresponding input stream in the specification. The events of this stream carry information on
how often the transition is fired at the particular timestamp. Places are modeled through corresponding
macros described below. Each place-macro makes use of all the input streams corresponding to its
incoming and outgoing transitions: through this construction, the place-macro essentially becomes a
monitor encapsulating the place in the net, and the output-streams of these macros can be connected
in the TeSSLa specification to implement local or global observers. The translations of the Petri net
into this part of the specification follow a fixed scheme and can be automated. Fig. 2 shows a TeSSLa
specification for the scenario from Fig. 1, which will be described below.
1 import P e t r i N e t . NonTokenTracking . P l a c e s
2 import P e t r i N e t . NonTokenTracking . T r a n s i t i o n s
3
4 in t 0 : E v e n t s [ I n t ]
5 in t 1 : E v e n t s [ I n t ]
6 in t 2 : E v e n t s [ I n t ]
7 in t 3 : E v e n t s [ I n t ]
8
9 def Worker = FIFOPlace ( a d d T r a n s i t i o n s ( t0 , d e l a y T o k e n s ( 2 ∗ t2 , 2h ) ) ,
10 a d d T r a n s i t i o n s ( 2 ∗ t2 , t 3 ) , 0 , None [ I n t ] )
11 def Todo = FIFOPlace ( t1 , t2 , 0 , None [ I n t ] )
12 def t i m e C r i t = Todo . maxWaitTimeT ( time ( p e r i o d ( 1 0 min ) ) ) &gt; 5h
13 def e r r o r = t i m e C r i t &amp;&amp; Worker . tokenCnt &gt;= 2
14 out e r r o r</p>
      <p>Arcs of the network are represented as intermediate streams of custom type Token. Places are
modeled concretely by macros FIFOPlace or LIFOPlace which internally maintain the tokens given
to the place as queue or stack, depending on the policy which is suitable for the place. Further macros
(newTokens, mergeTokens, convertTokens and delayTokens) allow to implement the behavior
of (timed) transitions to pass tokens between the places. They do so by receiving streams of individual
tokens from the places and recombining them to input streams of other places. This way, the library
allows observations about the specific token flow in the network, even if this information is not directly
provided by the network or the corresponding real-world application.</p>
      <p>For monitoring of place-specific properties, the library provides functions to receive the number
of tokens in a place and to detect under- or overflows of the place, if a maximum token capacity is
given, as well as functions to measure the minimum, maximum and average dwell time of tokens in
a place. Concerning flow-specific properties, the Token type which is used in the library allows to
have IDs and clock values attached to specific tokens. If a token passes a certain transition, it may get
a clock value attached which stores the timestamp of when the passing happened. If new tokens are
spawned, they inherit the clock value from their parents. Finally, the clock values of arriving tokens
can be used in other transitions in the network to measure the time that tokens needed for passing
through the network. With this information again the minimum, average and maximum time of this
token flow can be calculated and used to reveal quantitative parameters of the network or to check
temporal constraints.</p>
      <p>If the complexity of the network does not allow the simulation of every individual token
because of memory and computational restrictions, our TeSSLa library provides a sub-module named
PetriNet.NonTokenTracking. The PetriNet.NonTokenTracking sub-module, which is used in
Fig. 2, is a variant of the mentioned macros in PetriNet.TokenTracking where only the number
of tokens passing through the network and the time they remain in the places is recorded but not
the individual tokens. This version also contains functions which are providing information about
the number of tokens in certain places and e.g. their waiting time but is not capable of tracking and
attaching clock values to individual tokens.</p>
      <p>In this case the number of tokens is calculated by a multiplication between the weights of the
transitions and the input streams which indicate how often these transitions are triggered. Finally, the
macro addTransitions asynchronously sums up the token numbers from the diferent transitions,
e.g., in the case of Worker, which receives tokens from t0 and t2. The timed behavior of transition
t2 (holding tokens back for two hours) is modeled by a call to delayTokens which retards an event
from stream 2 * t2 by two hours. Note that in TeSSLa it is possible to directly use time units in the
specification. As third and fourth parameters, the FIFOPlace accepts the number of initial tokens
in the place (0 in our example) and optionally (not used here) a maximal token capacity of the place,
which can be used to monitor that the place is not overflowing.</p>
      <p>The macro FIFOPlace returns a structure of several streams which bear information about the
current state of the modeled place. One of them is the stream maxWaitTimeT(t) which contains the
amount of time the longest-waiting token has remained in the place up to the timestamp , passed as
argument. In line 12, we define a Boolean stream timeCrit where we check if a token has waited
more than five hours in the Todo place. We evaluate this stream on a ten-minute basis by triggering it
with period(10min). Finally, the output stream error raises a true event whenever the waiting time
in the Todo place is critical and more than two tokens in Worker are available, i.e., workers are not
immediately taking a job that is due.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Case study: Pathology Laboratory</title>
      <p>
        We have applied our approach to a real-world use case at Haukeland University Hospital (HUS) in
Bergen, Norway, who are currently investigating and implementing tools for digital pathology. A major
part of that topic is chiefly concerned with machine learning for digital image analysis [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. However,
an equally important role is played by tools that support, monitor, and steer the production workflow
of the digital pathology images, which happens in the laboratory [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Our case study is based on
simulation and analysis of that workflow.
      </p>
      <p>
        The Histology Workflow. Pathology is the study of the causes and efects of diseases. Histology
is one of the major sub-disciplines of pathology and describes the study of tissue specimens under
a microscope. With over 55 000 analyzed cases every year1, the histology division at the pathology
laboratory at Haukeland Hospital handles the biggest share of incoming pathology specimen and is the
focus of the remainder of this case study. Before a pathologist can analyze a tissue specimen under a
1Numbers are from 2022. There is an expected case growth rate of 1.5% every year.
microscope, or nowadays, with the advent of digitization in this field, on a screen [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], the specimen has
to undergo an elaborate “preparation process” in the pathology laboratory. We will sketch this workflow
and its stages using a simplified presentation, which is depicted in Fig. 4 in the Appendix and based on
[
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>
        The Case Study’s Goals. A central goal at the hospital is to develop means that help optimizing
the laboratory throughput rate by intelligently utilizing the limited resources. Due to the high degree
of manual activities, variations among the numbers and complexity of incoming specimens, and also
variations in the characteristics of the workflow resources (worker availability, worker’s experience
and skill level, etc.), this poses a challenging task. The approach proposed in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] is to apply process
mining to create a workflow model from existing event logs. The resulting workflow model can then
be used for simulation purposes, which produce statistics and performance measures. The latter can be
utilized by a planner or a similar tool to assess the utility of concrete actions in order to optimize the
workflow. Actions in this scenario are changes to the workflow configuration, e.g., how many worker
resources are available or how specimens are routed to which workflow branch (i.e., lab).
      </p>
      <p>Out of the available workflow modeling formalisms, we have chosen PNs to model the histology
workflow since they can faithfully model the “ pathology tokens” (cases, cassettes, blocks, slides) flowing
to the diferent processing steps of the lab simultaneously. However, modeling the “real” pathology
lab at Haukeland with all its sub-laboratories and optional processing steps results in a much more
complicated version than the one presented in Fig. 4. In this case study, we restrict to the histology lab
in order to analyze the resulting performance. Concretely, we will be interested in the following key
performance indicators (KPIs): (i) What is the minimum, maximum and average time that a case spends
in the pathology lab from registration to final report (the case turnaround time)? (ii) Is the number of
cases waiting on grossing, the number of blocks waiting on sectioning, or the number of slides waiting
on staining growing indefinitely or not (i.e., is the current case arrival rate sustainable for the currently
available resource configuration)?</p>
      <p>
        Implementation of the pathology workflow as TPN. The files for the case study project (i.e., a
detailed Petri net model, the TeSSLa specification and the output report) are located together with the
TeSSLa library for TPNs in the git repository [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and included in the Appendix. The transitions of the
Petri net are annotated with the average execution time per activity. Those times were calculated by
our partners at the hospital, who had access to the historical event logs produced by the information
system in the lab. By applying process mining [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], durations for each activity were derived from the
raw event data. By combining results of the statistical aggregation functions mean and median for each
activity, the “average” time could be calculated in order to produce meaningful simulation results in this
ifrst iteration. Shared resources include their initial marking, and the weights on the arcs represent the
number of tokens they produce or consume. For instance, the grossing stage creates on average three
cassettes per specimen, which are later processed in batches of one hundred blocks by the processing
machine. Machines generally work on batches of tokens, while a technician handles one token at a
time. Also, the lab technicians who perform the various manual activities in the lab are modeled as one
shared resource pool.
      </p>
      <p>
        The computation of the KPIs of our case study relies on the simulations of the TPN in Titan [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. The
TeSSLa interpreter receives the simulation trace with the list of fired transitions sorted by timestamp,
and the TeSSLa code uses the new TeSSLa library for analyzing TPNs. The first part of the TeSSLa code
defines the input streams, which corresponds to the transitions of the Petri net to monitor (the names
match with the names of the transitions of the TPN model in Titan). The places of the TPN are
instantiated as places with FIFO policy in the TeSSLa library, so that the TeSSLa interpreter can track the
lfow of particular tokens through the net and compute the complete execution time since the beginning
(i.e., the grossing stage) to the end (inspecting the stained slides under the microscope).
      </p>
      <p>Case study results. TeSSLa returns a report with the selected KPIs min, max and average time a
case spends in the pathology lab. Given the arrival rate of incoming specimens, the experiments prove
that the current configuration of the Haukeland University Hospital is properly scaled in terms of
processing machines and lab technicians because the diagnostics are completed within a working day.
For instance, cassettes are processed when they reach a batch size of 115 elements, the queue of blocks
to be checked never exceeds 110 elements and the stained slides are inspected by the pathologists, every
time they reach groups of 20 items. At instant 84 248, TeSSLa reports that the avgRunTime is 80 737
seconds (one day has 86 400 seconds). Besides the fluctuation of the performance metrics through a
working day, the TeSSLa output also reports information about some places. For instance, it shows that
the cassettes periodically drain completely over time. The results are computed running a simulation
with 10 000 execution steps, which comprises around 6 working days in the pathology department. The
simulation and runtime monitoring take less than 9 minutes on a conventional PC.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Related Work</title>
      <p>
        Time information is defined in various formats for Petri nets along the literature [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] (e.g., discrete vs
continuous semantics), and serves us to sort the events in simulation traces. Influenced by the specific
application fields, the distinguishing characteristics of time mechanisms are whether the duration of
events is modeled by deterministic variables or random variables and whether the time is associated
with Petri net places [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], transitions [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] or tokens [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. In this paper, we align with the definition of
time proposed in Colored Petri Nets and its modeling framework CPN Tools [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. CPN Tools already
supports the performance analysis of complex systems [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] and provides native monitors to be written
in SML. However, in our opinion, the usage of a dedicated Runtime Verification formalism together
with its framework is a benefit when it comes to the specification of complex (correctness) properties.
Nevertheless, we leave a thorough analysis of these approaches as future work. In addition, our
TeSSLa library can complement other PN tools that do not count on such monitoring formalism and
adapt the semantics to the traces that other PN tools generate.
      </p>
      <p>
        TeSSLa belongs to the family of stream runtime verification languages. These languages have been
pioneered by LOLA in 2005 [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] which is a formalism for synchronous streams, while TeSSLa also
allows for asynchronous ones, i.e., such where the stream events do not have to be located on a fixed
time grid, but can appear at arbitrary timestamps over a dense time domain. Further prominent SRV
formalisms include the languages RTLOLA [
        <xref ref-type="bibr" rid="ref18">18, 19</xref>
        ] and Striver [20]. These languages can be considered
to be located between TeSSLa and LOLA, as they allow for restricted handling of asynchronous streams
and can therefore provide guarantees about monitoring resources. The TeSSLa representation of a
Petri net enables us to define local (at a single transition/place) or global (connecting multiple events
from transitions/places) properties on the flow of tokens. The tracking Petri net module in TeSSLa
tracks token-identities and their timestamps in a map-data structure. We note that this corresponds
to using Colored Petri net tokens that explicitly accumulate this data in a per-token history through
manipulation of each transition. Our monitoring-approach does not require any modification of the
inscriptions on the net, as any events are collected at runtime from the simulator. The global observation
capabilities through TeSSLa would also need to be modeled through dedicated modification of the net
structure.
      </p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusions</title>
      <p>In this paper, we have presented an approach for the analysis of timed Petri nets using runtime
verification techniques. In particular, we rely on the stream-based processing language TeSSLa for the
definition of the Petri net structure and the properties to check. We have provided a library for directly
representing the Petri net structure in TeSSLa, extended by capabilities to track the execution workflow.
The TeSSLa specification is driven by the transition-events from a run of the Petri net simulation
provided by an external tool. It is also possible to run the TeSSLa analysis on recorded traces, hence
there is no need to rerun e.g., CPN Tools while prototyping the specification. On top of the structural
scafolding in TeSSLa, users can add monitors that observe the flow of tokens through the network and
compute domain-specific statistics.</p>
      <p>As future work, we will continue improving the modeling and analysis capabilities of Petri nets in
stream languages such as TeSSLa. For instance, we will consider colors (i.e., data types) for treating
the tokens diferently in Petri nets. Besides, we will include priorities and probabilities in the arcs
and transitions of the Petri net. Additionally, we will improve the user experience and the usability.
For instance, we will provide templates for predefined useful dynamic properties the end user desires
to analyze (e.g., usage of resources or system throughput), so that the end user only have to choose
the right macro. Petri net modeling tools such as Titan could automatically translate the places and
transitions in the graphical model into the corresponding elements of the TeSSLa library, so that users
only need to define the desired properties in the TeSSLa specification.</p>
    </sec>
    <sec id="sec-7">
      <title>7. Acknowledgments</title>
      <p>This paper was supported by the Spanish Ministry of Science and Innovation under project AwESOME
(PID2021-122215NB-C31).
June 26th-27th, 2022, volume 3264 of CEUR Workshop Proceedings, CEUR-WS.org, Bergen, Norway,
Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS
2002), IEEE Computer Society, 2002, p. 217. doi:10.1109/MASCOT.2002.1167080.
Z. Manna, LOLA: runtime monitoring of synchronous systems, in: 12th International Symposium
USA, IEEE Computer Society, 2005, pp. 166–174. URL: https://doi.org/10.1109/TIME.2005.26. doi:10.
1109/TIME.2005.26.</p>
      <p>978-3-030-25540-4\_24.
Streamlab: Stream-based monitoring of cyber-physical systems, in: I. Dillig, S. Tasiran (Eds.),
Computer Aided Verification - 31st International Conference, CAV 2019, New York City, NY,
USA, July 15-18, 2019, Proceedings, Part I, volume 11561 of Lecture Notes in Computer Science,
Springer, 2019, pp. 421–431. URL: https://doi.org/10.1007/978-3-030-25540-4_24. doi:10.1007/
[19] P. Faymonville, B. Finkbeiner, M. Schwenger, H. Torfah, Real-time stream-based monitoring, CoRR
abs/1711.03829 (2017). URL: http://arxiv.org/abs/1711.03829. arXiv:1711.03829.
[20] F. Gorostiaga, C. Sánchez, Stream runtime verification of real-time event streams with the Striver
language, Int. J. Softw. Tools Technol. Transf. 23 (2021) 157–183. URL: https://doi.org/10.1007/</p>
    </sec>
    <sec id="sec-8">
      <title>TeSSLa Specification for Pathology</title>
      <p>The following files are available in the public repository and included here for reference.
31</p>
      <p>T r a n s i t i o n s . delayTokens ( T r a n s i t i o n s . c o n v e r t T o k e n s ( B l o c k s P . tokenOut , 10 ∗</p>
      <p>Case_Completeness_Checked ) , 3 0 ) ,</p>
      <p>S e c t i o n i n g , L i s t . empty [ Token ] , None [ I n t ] )
]l
0
2
]
g
n
i
n
i
a
0 t
0 S
6 l
3 a
u
n
a
M
[
ilt
p
s
R
0
2
0
2
5
3
1
g
n
i
n
o
i
00 s
66 s
e
c
c
g
in y
9 n e
2 io n
1 tc i
d
e K
0
2
3
G
5
1
2</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>C. A.</given-names>
            <surname>Petri</surname>
          </string-name>
          , Kommunikation mit Automaten,
          <source>Ph.D. thesis</source>
          , Universität Hamburg, Germany,
          <year>1962</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>T.</given-names>
            <surname>Murata</surname>
          </string-name>
          , Petri Nets:
          <article-title>Properties, Analysis and Applications</article-title>
          ,
          <source>Proc. IEEE</source>
          <volume>77</volume>
          (
          <year>1989</year>
          )
          <fpage>541</fpage>
          -
          <lpage>580</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Cerone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Maggiolo-Schettini</surname>
          </string-name>
          ,
          <article-title>Time-based expressivity of time Petri nets for system specification</article-title>
          ,
          <source>Theoretical Computer Science</source>
          <volume>216</volume>
          (
          <year>1999</year>
          )
          <fpage>1</fpage>
          -
          <lpage>53</lpage>
          . doi: https://doi.org/10.1016/ S0304-
          <volume>3975</volume>
          (
          <issue>98</issue>
          )
          <fpage>00008</fpage>
          -
          <lpage>5</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.</given-names>
            <surname>Sifakis</surname>
          </string-name>
          ,
          <article-title>Use of Petri nets for Performance Evaluation</article-title>
          ,
          <source>Acta Cybernetica</source>
          <volume>4</volume>
          (
          <year>1979</year>
          )
          <fpage>185</fpage>
          -
          <lpage>202</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>C.</given-names>
            <surname>Ramchandani</surname>
          </string-name>
          ,
          <article-title>Analysis of Asynchronous Concurrent Systems by Timed Petri Nets</article-title>
          ,
          <source>Ph.D. thesis</source>
          , Massachusetts Institute of Technology (MIT),
          <year>1974</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>P. M.</given-names>
            <surname>Merlin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. J.</given-names>
            <surname>Farber</surname>
          </string-name>
          , Recoverability of Communication Protocols:
          <article-title>Implications of a Theoretical Study</article-title>
          ,
          <source>IEEE Trans. Commun</source>
          .
          <volume>24</volume>
          (
          <year>1976</year>
          )
          <fpage>1036</fpage>
          -
          <lpage>1043</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>K.</given-names>
            <surname>Jensen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Kristensen</surname>
          </string-name>
          , L. Wells,
          <article-title>Coloured Petri Nets and CPN Tools for Modelling and Validation of Concurrent Systems</article-title>
          ,
          <source>Int. J. Softw. Tools Technol. Transf</source>
          .
          <volume>9</volume>
          (
          <year>2007</year>
          )
          <fpage>213</fpage>
          -
          <lpage>254</lpage>
          . See also https://cpntools.org/.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>G.</given-names>
            <surname>Gardey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O. H.</given-names>
            <surname>Roux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O. F.</given-names>
            <surname>Roux</surname>
          </string-name>
          ,
          <article-title>State space computation and analysis of time petri nets</article-title>
          ,
          <source>Theory Pract. Log. Program. 6</source>
          (
          <year>2006</year>
          )
          <fpage>301</fpage>
          -
          <lpage>320</lpage>
          . URL: https://doi.org/10.1017/S147106840600264X. doi:
          <volume>10</volume>
          .1017/S147106840600264X.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Leucker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Schallhart</surname>
          </string-name>
          ,
          <article-title>A brief account of runtime verification</article-title>
          ,
          <source>J. Log. Algebraic Methods Program</source>
          .
          <volume>78</volume>
          (
          <year>2009</year>
          )
          <fpage>293</fpage>
          -
          <lpage>303</lpage>
          . URL: https://doi.org/10.1016/j.jlap.
          <year>2008</year>
          .
          <volume>08</volume>
          .004. doi:
          <volume>10</volume>
          .1016/J.JLAP.
          <year>2008</year>
          .
          <volume>08</volume>
          .004.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>L.</given-names>
            <surname>Convent</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Hungerecker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Leucker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Schefel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Schmitz</surname>
          </string-name>
          , D. Thoma,
          <article-title>TeSSLa: Temporal stream-based specification language</article-title>
          , in: T. Massoni,
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Mousavi</surname>
          </string-name>
          (Eds.),
          <source>Formal Methods: Foundations and Applications - 21st Brazilian Symposium, SBMF</source>
          <year>2018</year>
          , volume
          <volume>11254</volume>
          of Lecture Notest in Computer Science, Springer,
          <year>2018</year>
          , pp.
          <fpage>144</fpage>
          -
          <lpage>162</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -03044-5\ _
          <fpage>10</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>H.</given-names>
            <surname>Kallwies</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Leucker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Schmitz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Schulz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Thoma</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Weiss,
          <article-title>TeSSLa - An Ecosystem for Runtime Verification</article-title>
          , in: T.
          <string-name>
            <surname>Dang</surname>
          </string-name>
          , V. Stolz (Eds.),
          <source>Runtime Verification (RV</source>
          <year>2022</year>
          ), volume
          <volume>13498</volume>
          of Lecture Notest in Computer Science, Springer,
          <year>2022</year>
          , pp.
          <fpage>314</fpage>
          -
          <lpage>324</lpage>
          . doi:
          <volume>10</volume>
          .1007/ 978-3-
          <fpage>031</fpage>
          -17196-3\_
          <fpage>20</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>TeSSLa-TPN Library</surname>
          </string-name>
          ,
          <year>2024</year>
          . https://gitlab.isp.uni-luebeck.de/public_repos/pn_tessla_artifact/.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>L.</given-names>
            <surname>Pantanowitz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sharma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. B.</given-names>
            <surname>Carter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kurc</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sussman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Saltz</surname>
          </string-name>
          ,
          <article-title>Twenty Years of Digital Pathology: An Overview of the Road Travelled, What is on the Horizon, and the Emergence of Vendor-Neutral Archives</article-title>
          ,
          <source>Journal of Pathology Informatics</source>
          <volume>9</volume>
          (
          <year>2018</year>
          )
          <article-title>40</article-title>
          . doi:
          <volume>10</volume>
          .4103/jpi.jpi_
          <volume>69</volume>
          _
          <fpage>18</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>P.</given-names>
            <surname>Stünkel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Leh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leh</surname>
          </string-name>
          ,
          <article-title>Process Data Science for Workflow Optimization in Digital Pathology: A status report</article-title>
          , in: Y.
          <string-name>
            <surname>Lamo</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . Rutle (Eds.),
          <source>Proceedings of The International Health Data Workshop co-located with 10th International Conference on Petrinets (Petri Nets</source>
          <year>2022</year>
          ), Bergen, Norway,
          <year>2022</year>
          . URL: https://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>3264</volume>
          /HEDA22_paper_10.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>E.</given-names>
            <surname>Gómez-Martínez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Guerra</surname>
          </string-name>
          , J. de Lara, A. Garmendia,
          <article-title>Lifted structural invariant analysis of Petri net product lines</article-title>
          ,
          <source>J. Log. Algebraic Methods Program</source>
          .
          <volume>130</volume>
          (
          <year>2023</year>
          )
          <fpage>100824</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>L.</given-names>
            <surname>Wells</surname>
          </string-name>
          ,
          <article-title>Performance analysis using Coloured Petri Nets</article-title>
          , in: 10th International Workshop on
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>B. D'Angelo</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Sankaranarayanan</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Sánchez</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Robinson</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Finkbeiner</surname>
            ,
            <given-names>H. B.</given-names>
          </string-name>
          <string-name>
            <surname>Sipma</surname>
          </string-name>
          , S. Mehrotra,
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>P.</given-names>
            <surname>Faymonville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Finkbeiner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Schledjewski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Schwenger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Stenger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Tentrup</surname>
          </string-name>
          , H. Torfah,
          <volume>25</volume>
          sc l y
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>