This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

11institutetext: Fraunhofer Institute for Applied Information Technology (FIT), Germany
22institutetext: RWTH Aachen University, Aachen, Germany 22email: [email protected]

Translating Workflow Nets to Process Trees:
An Algorithmic Approach

Sebastiaan J. van Zelst 1122
Abstract

Since their recent introduction, process trees have been frequently used as a process modeling formalism in many process mining algorithms. A process tree is a tree-based model of a process, in which internal vertices represent behavioral control-flow relations and leaves represent process activities. A process tree is easily translated into a sound Workflow net (WF-net), however, the reverse is not the case. Yet, an algorithm that translates a WF-net into a process tree is of great interest, e.g., the explicit knowledge of the control-flow hierarchy in a WF-net allows one to more easily reason on its behavior. Hence, in this paper, we present such an algorithm, i.e., it detects whether a WF-net corresponds to a process tree, and, if so, constructs it. We prove that, if a process tree is discovered, the language of the process tree equals the language of the original WF-net. Conducted experiments show, that the algorithm’s corresponding implementation has a quadratic time-complexity in the size of the WF-net. Furthermore, the experiments show strong evidence of process tree rediscoverability.

Keywords:
Process Trees Petri Nets Workflow nets Process Mining.

1 Introduction

The research field of process mining [4], is concerned with distilling knowledge of the execution of processes, by analyzing the event data generated during the execution of these processes, i.e., stored in modern-day information systems. In the field, different semi-automated techniques have been developed, that are able to distill processes knowledge, ranging from automated process discovery algorithms to conformance checking algorithms. As processes are the cornerstone of process mining, so are the models that allow us to represent them, and/or reason on their behavior/quality. Various process modeling formalisms exists, e.g., BPMN [8], EPCs [3], etc., some of which are heavily used in industry.

Recently, process trees were introduced [5]. A process tree is a hierarchical representation of a process, corresponding to a rooted tree, i.e., a connected, undirected acyclic graph, with a designated root vertex. The internal vertices represent how their children are related to each-other, in terms of control-flow behavior. The leaves of the tree represent the activities of the process. Consider 1(b) (\autopagereffig:example_tree), in which we depict an example process tree. Its root vertex has label \to, specifying that first its left-most child, i.e., activity with aa, needs to be executed, secondly its middle child, and, finally its right-most child.

Process trees are easily translated into other process modeling formalisms, e.g., Workflow nets (WF-nets). By definition, a process tree corresponds to a sound WF-net, i.e., a WF-net with desirable behavioral properties, e.g., the absence of deadlocks. The reverse, i.e., given a WF-net, translating it into a process tree (if possible), is less trivial. At the same time, obtaining such a translation is of interest, i.e., it allows us to discover control-flow aware hierarchical structures within a WF-net. Such structures, can, for example, be used to hide certain parts of the model, i.e., leading to a more comprehensible view of the process model. Furthermore, any algorithm optimized for process trees, e.g., by exploiting the hierarchical structure, is applicable to WF-nets of such a type. For example, in [12], it is shown that the computation time of alignments [17], i.e., explanations of observed behavior in terms of a reference model, can be significantly reduced by applying Petri net decomposition, e.g., driven by model hierarchies.

In this paper, we present an algorithm that determines whether a given WF-net corresponds to a process tree, and, if so, constructs it. We prove that, if a process tree is found, the original WF-net is sound, and, that the obtained process tree’s language is equal to the language of the original WF-net. A corresponding implementation, extending the process mining framework PM4Py [7], is publicly available. Using the implementation, we conducted several experiments, which show a quadratic time complexity in terms of the WF-net size. Furthermore, our experiments indicate rediscoverability of process trees.

The remainder of this paper is structured as follows. In Section 2, we present preliminary concepts and notation. In Section 3, we present the proposed algorithm, including the proofs w.r.t soundness preservation and language preservation. In Section 4, we evaluate our approach. In Section 5, we discuss related work. Section 6, concludes the paper.

2 Preliminaries

Given set XX, 𝒫(X)={XX}\mathcal{P}(X){=}\left\{X^{\prime}\subseteq{X}\right\} denotes its powerset. Given a function f:XYf{\colon}X{\to}Y and XXX^{\prime}{\subseteq}X, we extend function application to sets, i.e., f(X)={yxX(f(x)=y)}f(X^{\prime}){=}\{y\mid\exists{x{\in}X^{\prime}}(f(x){=}y)\}. Furthermore, f|X:XYf|_{X^{\prime}}{\colon}X^{\prime}{\to}Y restricts ff to XX^{\prime}. A multiset over set XX, i.e., m:X{0}m{\colon}X{\to}\mathbb{N}{\cup}\{0\}, contains multiple instances of an element. We write a multiset as m=[x1i,x2j,,xnk]m{=}[x_{1}^{i},x_{2}^{j},...,x_{n}^{k}], where m(x1)=i,m(x2)=j,,m(xn)=km(x_{1}){=}i,m(x_{2}){=}j,...,m(x_{n}){=}k, for i,j,,k>1i,j,...,k{>}1 (in case, m(xi)=1m(x_{i}){=}1, we omit its superscript; in case m(xi)=0m(x_{i}){=}0, we omit xix_{i}). The set of all multisets over XX is written as (X)\mathcal{M}(X). The sum of two multisets m1,m2m_{1},m_{2} is written as m1m2m_{1}{\uplus}m_{2}, e.g., [x2,y][x3,y,z]=[x5,y2,z][x^{2},y]{\uplus}[x^{3},y,z]{=}[x^{5},y^{2},z], their difference is written as m1m2m_{1}{\setminus}m_{2}, e.g., [x2,y][x,y,z]=[x][x^{2},y]{\setminus}[x,y,z]{=}[x]. A set is considered a multiset with each element appearing only once, hence, {x,y,z}[x2]=[x3,y,z]\{x,y,z\}{\uplus}[x^{2}]{=}[x^{3},y,z]. XX^{*} denotes the set of all sequences over XX. We write |σ||\sigma| to denote the length of σX\sigma{\in}X^{*}, and, we write σ=σ(1),σ(2),,σ(|σ|)\sigma{=}\langle\sigma(1)\mathchar 44\relax\penalty 0\sigma(2)\mathchar 44\relax\penalty 0...\mathchar 44\relax\penalty 0\sigma(|\sigma|)\rangle, where σ(i)\sigma(i) denotes the element at position ii (1i|σ|1{\leq}i{\leq}|\sigma|). ϵ\epsilon denotes the empty sequence, i.e., |ϵ|=0|\epsilon|{=}0. We extend the notion of element inclusion to sequences, e.g., xx,y,zx{\in}\langle x,y,z\rangle. Concatenation of sequences σ,σX\sigma,\sigma^{\prime}{\in}X^{*} is written as σσ\sigma\cdot\sigma^{\prime}. We let σσ\sigma{\leftrightharpoons}\sigma^{\prime} denote the set of all possible order-preserving merges, i.e., the shuffle operator, of σ\sigma and σ\sigma^{\prime}, e.g., given σ1=b,p\sigma_{1}{=}\langle b,p\rangle, σ2=m\sigma_{2}{=}\langle m\rangle, then σ1σ2={b,p,m,b,m,p,m,b,p}\sigma_{1}{\leftrightharpoons}\sigma_{2}{=}\left\{\langle b\mathchar 44\relax\penalty 0p\mathchar 44\relax\penalty 0m\rangle\mathchar 44\relax\penalty 0\langle b\mathchar 44\relax\penalty 0m\mathchar 44\relax\penalty 0p\rangle\mathchar 44\relax\penalty 0\langle m\mathchar 44\relax\penalty 0b\mathchar 44\relax\penalty 0p\rangle\right\}. It is easy to see that σσ=σσ\sigma{\leftrightharpoons}\sigma^{\prime}{=}\sigma^{\prime}{\leftrightharpoons}\sigma (commutative). We extend the shuffle operator to sets (and overload notation), i.e., given S,SXS,S^{\prime}{\in}X^{*}, SS={σσ1σ2σ1S1σ2S2}S{\leftrightharpoons}S^{\prime}{=}\{\sigma{\in}\sigma_{1}{\leftrightharpoons}\sigma_{2}\mid\sigma_{1}{\in}S_{1}{\wedge}\sigma_{2}{\in}S_{2}\}. Note that, (σσ){σ′′}={σ}(σσ′′)(\sigma{\leftrightharpoons}\sigma^{\prime}){\leftrightharpoons}\{\sigma^{\prime\prime}\}=\{\sigma\}{\leftrightharpoons}(\sigma^{\prime}{\leftrightharpoons}\sigma^{\prime\prime}) (associative), hence, we write the application of the shuffle operation on nn sequences as σ1σ2σn\sigma_{1}{\leftrightharpoons}\sigma_{2}{\leftrightharpoons}{\cdots}{\leftrightharpoons}{\sigma_{n}}. Similarly, we wirte S1S2SnS_{1}{\leftrightharpoons}S_{2}{\leftrightharpoons}{\cdots}{\leftrightharpoons}S_{n} for sets of sequences S1,S2,SnXS_{1},S_{2},...S_{n}{\in}X^{*}. Given a function f:XYf{\colon}X{\to}Y and a sequence σX\sigma{\in}X^{*}, we overload notation for function application, i.e., f(σ)=(f(σ(1)),f(σ(2)),,f(σ|σ|)f(\sigma){=}\langle(f(\sigma(1))\mathchar 44\relax\penalty 0f(\sigma(2))\mathchar 44\relax\penalty 0...\mathchar 44\relax\penalty 0f(\sigma{|\sigma|})\rangle. Note that, this extends to sets of sequences, i.e., given f:XYf{\colon}X\to Y and XXX^{\prime}{\subseteq}X^{*}, f(X)={σYσX(f(σ)=σ)}f(X^{\prime}){=}\{\sigma{\in}Y^{*}\mid\exists{\sigma^{\prime}{\in}X^{\prime}}\left(f(\sigma^{\prime}){=}\sigma\right)\}. Furthermore, given XXX^{\prime}{\subseteq}X and a sequence σX\sigma{\in}X^{*}, we define σX\sigma_{\downarrow_{X^{\prime}}}, where (recursively) ϵX=ϵ\epsilon_{\downarrow_{X^{\prime}}}{=}\epsilon and (xσ)X=xσX(\langle x\rangle\cdot\sigma)_{\downarrow_{X^{\prime}}}{=}x\cdot\sigma_{\downarrow_{X^{\prime}}} if xXx{\in}X^{\prime} and (xσ)X=σX(\langle x\rangle\cdot\sigma)_{\downarrow_{X^{\prime}}}{=}\sigma_{\downarrow_{X^{\prime}}} if xXx{\notin}X^{\prime}.

2.1 Workflow Nets

Workflow nets (WF-nets) [2] extend the more general notion of Petri nets [14]. A Petri net is a directed bipartite graph containing two types of vertices, i.e., places and transitions. Places are visualized as circles, transitions are visualized as boxes. Places only connect to transitions, and vise-versa. Consider 1(a), depicting an example Petri net (which is also a WF-net).

pip_{i}t1t_{1}aap1p_{1}t3t_{3}ccp2p_{2}\ \ t4t_{4}ddp3p_{3}p4p_{4}t5t_{5}eet2t_{2}bbp5\ \ \ p_{5}t6\ \ t_{6}fft7t_{7}ggt8t_{8}hhpop_{o}
(a) WF-net W1W_{1} [4] with initial marking [pi][p_{i}] and final marking [po][p_{o}].
\toaa\circlearrowleft\to\wedge×\timesbbccddeeff×\timesgghh
(b) Process tree [4], describing the same language as the WF-net in 1(a).
Figure 1: Two process models describing the same language, i.e., a WF-net (1(a)), and, a process tree (1(b)).

We let N=(P,T,F,)N{=}(P,T,F,\ell) denote a (labelled) Petri net, where, PP denotes a set of places, TT denotes a set of transitions and F(P×T)(T×P)F{\subseteq}(P{\times}T)\cup(T{\times}P) represents the arcs. Furthermore, given a set of labels Σ\Sigma and symbol τΣ\tau{\notin}\Sigma, :TΣ{τ}\ell{\colon}T{\to}\Sigma{\cup}\{\tau\} is the net’s labelling function, e.g., in 1(a), (t1)=a\ell(t_{1}){=}a, (t2)=b\ell(t_{2}){=b}, etc. Given an element xPTx{\in}P{\cup}T, x={y(y,x)F}{\bullet}x=\left\{y\mid(y,x){\in}F\right\} denotes the pre-set of xx, whereas x={y|(x,y)F}x{\bullet}{=}\left\{y|(x,y){\in}F\right\} denotes its post-set, e.g., in 1(a), t1={pi}{\bullet}{t_{1}}{=}\left\{p_{i}\right\} and p1={t2,t3}p_{1}{\bullet}{=}\left\{t_{2},t_{3}\right\}. We lift the \bullet-notation to the level of sets, i.e., given XPTX{\subseteq}P{\cup}T, X={yxX(yx)}\bullet{X}{=}\left\{y\mid\exists{x{\in}X}\left(y{\in}{\bullet}x\right)\right\} and X={yxX(yx)}{X}{\bullet}{=}\left\{y\mid\exists{x{\in}X}\left(y{\in}x{\bullet}\right)\right\}. Let N=(P,T,F,)N{=}(P,T,F,\ell), let PPP^{\prime}{\subseteq}P, TTT^{\prime}{\subseteq}T and FFF^{\prime}{\subseteq}F. The net N=(P,T,F,|T)N^{\prime}{=}\left(P^{\prime},T^{\prime},F^{\prime},\ell|_{T^{\prime}}\right) is a subnet of NN, written NNN^{\prime}{\sqsubseteq}N. We let 𝒩\mathcal{N} denote the universe of Petri nets.

The state of a Petri net, is expressed by means of a marking, i.e., a multiset of places. A marking is visualized by drawing the corresponding number of dots in the place(s) of the marking, e.g., the marking in 1(a) is [pi][p_{i}] (one black dot is drawn inside place pip_{i}). Given a Petri net N=(P,T,F,)N=(P,T,F,\ell) and marking M(P)M{\in}\mathcal{M}(P), (N,M)(N,M) denotes a marked net. Given a marked net (N,M)(N,M), a transition tTt{\in}T is enabled, written (N,M)[t(N,M){[}{t}{\rangle}, if pt(M(p)>0)\forall{p{\in}{\bullet}{t}}\left(M(p){>}0\right). An enabled transition can fire, leading to a new marking M=(Mt)tM^{\prime}{=}\left(M{\setminus}{\bullet}t\right){\uplus}{t}{\bullet}, written (N,M)𝑡(N,M)(N,M){\xrightarrow{t}}(N,M^{\prime}). A sequence of transition firings σ=t1,t2,,tn\sigma{=}\langle t_{1},t_{2},...,t_{n}\rangle is a firing sequence of (N,M)(N,M), yielding marking MM^{\prime}, written (N,M)𝜎(N,M)(N,M){\xrightarrow[]{\sigma}\mathrel{\mkern-14.0mu}\rightarrow}(N,M^{\prime}), iff M1,M2,,Mn1(P)\exists M_{1},M_{2},...,M_{n-1}{\in}\mathcal{M}(P) s.t. (N,M)t1(N,M1)t2(N,M2)(N,Mn1)tn(N,M)(N\mathchar 44\relax\penalty 0M){\xrightarrow{t_{1}}}(N\mathchar 44\relax\penalty 0M_{1}){\xrightarrow{t_{2}}}(N\mathchar 44\relax\penalty 0M_{2}){\cdots}(N\mathchar 44\relax\penalty 0M_{n-1}){\xrightarrow{t_{n}}}(N\mathchar 44\relax\penalty 0M^{\prime}). We write (N,M)(N,M)(N,M){\rightsquigarrow}(N,M^{\prime}), in case σT((N,M)𝜎(N,M))\exists{\sigma{\in}T^{*}}\left((N,M){\xrightarrow[]{\sigma}\mathrel{\mkern-14.0mu}\rightarrow}(N,M^{\prime})\right). 𝒩(N,M,M)={σT(N,M)𝜎(N,M)}\mathcal{L}_{\mathcal{N}}(N\mathchar 44\relax\penalty 0M\mathchar 44\relax\penalty 0M^{\prime})=\left\{\sigma{\in}T^{*}\mid(N\mathchar 44\relax\penalty 0M){\xrightarrow[]{\sigma}\mathrel{\mkern-14.0mu}\rightarrow}(N\mathchar 44\relax\penalty 0M^{\prime})\right\} denotes all firing sequences starting from marking MM, leading to marking MM^{\prime}. The labelled-language of NN, conditional to markings M,MM,M^{\prime}, is defined as 𝒩ν(N,M,M)=(𝒩(N,M,M))Σ\mathcal{L}_{\mathcal{N}}^{\nu}(N\mathchar 44\relax\penalty 0M\mathchar 44\relax\penalty 0M^{\prime}){=}\ell(\mathcal{L}_{\mathcal{N}}(N\mathchar 44\relax\penalty 0M\mathchar 44\relax\penalty 0M^{\prime}))_{\downarrow_{\Sigma}}. (N,M)={M(P)σT((N,M)𝜎(N,M))}\mathcal{R}(N\mathchar 44\relax\penalty 0M)=\left\{M^{\prime}{\in}\mathcal{M}(P)\mid\exists{\sigma{\in}T^{*}}\left((N\mathchar 44\relax\penalty 0M)\xrightarrow[]{\sigma}\mathrel{\mkern-14.0mu}\rightarrow(N\mathchar 44\relax\penalty 0M^{\prime})\right)\right\} denotes the reachable markings.

Given a Petri net N=(P,T,F,)N{=}\left(P,T,F,\ell\right), and designated initial and final marking Mi,Mf(P)M_{i}\mathchar 44\relax\penalty 0M_{f}{\in}\mathcal{M}(P), triple SN=(N,Mi,Mf)SN{=}(N,M_{i},M_{f}) denotes a system net. As system net SN=(N,Mi,Mf)SN{=}(N,M_{i},M_{f}) is formed by NN, we write SNSN as a replacement for NN, e.g., (SN,M)(SN,M) denotes a marked system net. Clearly, (SN,M)\mathcal{R}(SN,M), 𝒩(SN,M,M)\mathcal{L}_{\mathcal{N}}(SN,M,M^{\prime}), etc., are readily defined. 𝒮𝒩\mathcal{SN} denotes the universe of system nets.

A WF-net is a special type of Petri net, i.e., it has one unique start and one unique end place. Furthermore, every place/transition in the net is on a path from the start to the end place.

Definition 1 (Workflow net (WF-net))

Let N=(P,T,F,)𝒩N=(P,T,F,\ell){\in}\mathcal{N} and let pipoPp_{i}{\neq}p_{o}{\in}P. Tuple W=(P,T,F,pi,po,)W{=}(P,T,F,p_{i},p_{o},\ell) is a Workflow net (WF-net), iff:

  1. 1.

    pi=pP{pi}(p=){\bullet}p_{i}{=}\emptyset{\wedge}\nexists{p{\in}P{\setminus}\{p_{i}\}}\left({\bullet}p{=}\emptyset\right); pip_{i} is the unique source place.

  2. 2.

    po=pP{po}(p=)p_{o}{\bullet}{=}\emptyset{\wedge}\nexists{p{\in}P{\setminus}\{p_{o}\}}\left(p{\bullet}{=}\emptyset\right); pop_{o} is the unique sink place.

  3. 3.

    Each element in PTP{\cup}T is on a path from pip_{i} to pop_{o}.

We let 𝒲𝒩\mathcal{W}{\subset}\mathcal{N} denote the universe of WF-nets.

Of particular interest are sound WF-nets, i.e., WF-nets that are, by definition, guaranteed to be free of deadlocks and livelocks. We formalize the notion of soundness in 2.

Definition 2 (Soundness)

Let W=(P,T,F,pi,po,)𝒲W{=}(P,T,F,p_{i},p_{o},\ell){\in}\mathcal{W}. WW is sound iff:

  1. 1.

    (W,[pi])(W,[p_{i}]) is safe, i.e., M(W,[pi])(pP(M(p)1))\forall{M{\in}\mathcal{R}(W,[p_{i}])}\left(\forall{p{\in}P}\left(M(p){\leq}1\right)\right),

  2. 2.

    [po][p_{o}] can always be reached, i.e., M(W,[pi])((W,M)(W,[po]))\forall{M{\in}\mathcal{R}(W,[p_{i}]})\left((W,M){\rightsquigarrow}(W,[p_{o}])\right).

  3. 3.

    Each tTt{\in}T is enabled, at some point, i.e., tT(M(W,[pi])(M[t))\forall{t{\in}T}\left(\exists{M{\in}\mathcal{R}(W,[p_{i}])}\left(M[t\rangle\right)\right).

Observe that, the Petri net depicted in 1(a), is a sound WF-net.

2.2 Process Trees

Process trees allow us to model processes, that comprise a control-flow hierarchy. A process tree is a mathematical tree, where the internal vertices are operators and leaves are (non-observable) activities. Operators specify how their children, i.e., sub-trees, need to be combined, from a control-flow perspective.

Definition 3 (Process Tree)

Let Σ\Sigma denote the universe of (activity) labels and let τΣ\tau{\notin}\Sigma. Let \bigoplus denote the universe of process tree operators. A process tree QQ, is defined (recursively) as any of:

  1. 1.

    xΣ{τ}x{\in}\Sigma{\cup}\{\tau\}; an (non-observable) activity,

  2. 2.

    (Q1,,Qn){\oplus}(Q_{1},...,Q_{n}), for \oplus{\in}\bigoplus, n1n{\geq}1, where Q1,,QnQ_{1},...,Q_{n} are process trees;

We let 𝒬\mathcal{Q} denote the universe of process trees.

Several operators (elements of \bigoplus) can be defined, however, in this work, we focus on four basic operators, i.e., the \to, ×\times, \wedge and \circlearrowleft-operator. The sequence operator (\to) specifies sequential behavior. First its left-most child is executed, then its second left-most child, …, and finally its right-most child. For example, the root operator in 1(b), specifies that first activity aa is executed, then its second sub-tree (\circlearrowleft) and then its third sub-tree (×\times). The exclusive choice operator (×)(\times), specifies an exclusive choice, i.e., one (and exactly one) of its sub-trees is executed. Concurrent/parallel behavior is represented by the concurrency operator (\wedge), i.e., all children are executed simultaneously/in any order. Repeated behavior is represented by the loop operator \circlearrowleft. The \to, ×\times and \wedge-operator have an arbitrary number of children. The \circlearrowleft-operator has two children. Its left child (the “do-child”) is always executed. Secondly, executing its right child (the “re-do-child”) is optional. After executing the re-do-child, we again execute the do-child. We are allowed to repeat this, yet, we always finish with the do-child.

Given a process tree Q𝒬Q{\in}\mathcal{Q}, its language is of the form 𝒬(Q)Σ\mathcal{L}_{\mathcal{Q}}(Q){\subseteq}\Sigma^{*}.

Definition 4 (Process Tree Language)

Let Q𝒬Q{\in}\mathcal{Q} be a process tree. The language of QQ, i.e., 𝒬(Q)Σ\mathcal{L}_{\mathcal{Q}}(Q){\subseteq}\Sigma^{*}, is defined recursively as:

  1. 1.

    𝒬(Q)={ϵ}\mathcal{L}_{\mathcal{Q}}(Q){=}\{\epsilon\}, if Q=τQ{=}\tau,

  2. 2.

    𝒬(Q)={a}\mathcal{L}_{\mathcal{Q}}(Q){=}\{\langle a\rangle\}, if Q=aΣQ{=}a{\in}\Sigma,

  3. 3.

    𝒬(Q)={σ=σ1σ2σnσ1𝒬(Q1),σ2𝒬(Q2),,σn𝒬(Qn)}\mathcal{L}_{\mathcal{Q}}(Q){=}\{\sigma{=}\sigma_{1}{\cdot}\sigma_{2}{\cdots}\sigma_{n}\mid\sigma_{1}{\in}\mathcal{L}_{\mathcal{Q}}(Q_{1}),\sigma_{2}{\in}\mathcal{L}_{\mathcal{Q}}(Q_{2}),...,\sigma_{n}{\in}\mathcal{L}_{\mathcal{Q}}(Q_{n})\}, if Q=(Q1,Q2,,Qn)Q={\to}\left(Q_{1},Q_{2},...,Q_{n}\right),

  4. 4.

    𝒬(Q)=i=1n𝒬(Qn)\mathcal{L}_{\mathcal{Q}}(Q){=}\bigcup\limits_{i=1}^{n}\mathcal{L}_{\mathcal{Q}}(Q_{n}), if Q=×(Q1,Q2,,Qn)Q{=}{\times}\left(Q_{1},Q_{2},...,Q_{n}\right)

  5. 5.

    𝒬(Q)=𝒬(Q1)𝒬(Q2)𝒬(Qn)\mathcal{L}_{\mathcal{Q}}(Q){=}\mathcal{L}_{\mathcal{Q}}(Q_{1})\leftrightharpoons\mathcal{L}_{\mathcal{Q}}(Q_{2})\cdots\mathcal{L}_{\mathcal{Q}}(Q_{n}), if Q=(Q1,Q2,,Qn)Q{=}{\wedge}\left(Q_{1},Q_{2},...,Q_{n}\right)

  6. 6.

    𝒬(Q)={σ1σ1σ2σ2σnn11im(σi𝒬(Q1))1i<m(σi𝒬(Q2))}\mathcal{L}_{\mathcal{Q}}(Q){=}\{\sigma_{1}\cdot\sigma^{\prime}_{1}\cdot\sigma_{2}\cdot\sigma^{\prime}_{2}\cdots\sigma_{n}\mid n\geq 1\wedge\forall{1{\leq}i{\leq}m}\left(\sigma_{i}{\in}\mathcal{L}_{\mathcal{Q}}(Q_{1})\right)\wedge\forall{1{\leq}i{<}m}\left(\sigma^{\prime}_{i}{\in}\mathcal{L}_{\mathcal{Q}}(Q_{2})\right)\}, if Q=(Q1,Q2)Q{=}{\circlearrowleft}\left(Q_{1},Q_{2}\right).

The process tree operators considered (\to, ×\times, \wedge and \circlearrowleft), are easily translated to sound WF-nets, cf. Fig. 2. Hence, we define a generic process tree to WF-net translation function, s.t., the language of the two is the same.

Definition 5 (Process Tree Transformation Function)

Let Q𝒬Q{\in}\mathcal{Q} be a process tree. A process tree transformation function λ\lambda, is a function λ:𝒬𝒲\lambda{\colon}\mathcal{Q}{\to}\mathcal{W}, s.t., 𝒩ν(λ(Q))=𝒬(Q)\mathcal{L}_{\mathcal{N}}^{\nu}(\lambda(Q)){=}\mathcal{L}_{\mathcal{Q}}(Q). We let λ^:𝒬𝒩\hat{\lambda}{\colon}\mathcal{Q}{\to}\mathcal{N}, where, given λ(Q)=W=(P,T,F,pi,po,)\lambda(Q){=}W{=}(P,T,F,p_{i},p_{o},\ell), λ^(Q)=(P,T,F,)\hat{\lambda}(Q){=}(P^{\prime},T,F^{\prime},\ell), with, P=p{pi,po}P^{\prime}{=}p{\setminus}\{p_{i},p_{o}\} and F=F({(pi,t)F}{(t,po)F})F^{\prime}{=}F{\setminus}\left(\{(p_{i},t){\in}F\}{\cup}\{(t,p_{o}){\in}F\}\right).

Given an arbitrary process tree Q𝒬Q{\in}\mathcal{Q}, there are several ways to translate it to a (sound) WF-net WW, s.t., 𝒩ν(W)=𝒬(Q)\mathcal{L}_{\mathcal{N}}^{\nu}(W){=}\mathcal{L}_{\mathcal{Q}}(Q), i.e., instantiating λ\lambda and λ^\hat{\lambda}. As an example, consider the translation functions, depicted in Fig. 2.

Refer to caption
Figure 2: Example instantiations of λ\lambda (5). The λ\lambda-functions for operators are defined recursively, using the λ^\hat{\lambda}-values of their children, i.e., a place “entering”/“exiting” a λ^(Qi)\hat{\lambda}(Q_{i}) fragment, connects to pip_{i}{\bullet}/po{\bullet}{p_{o}} (respectively) of λ(Qi)\lambda(Q_{i}).

Note that, each transformation function in Fig. 2, is sound by construction. Hence, we deduce that their recursive composition is also a sound [1, Theorem 3.3].

3 Translating Workflow Nets to Process Trees

In this section, we describe our main approach. In Section 3.1, we sketch the main idea of the approach. In Section 3.2, we present PTree-nets, i.e., Petri nets with rng()=𝒬rng(\ell){=}\mathcal{Q}, which we exploit in our approach. In Section 3.3, we present Petri net fragments, used to identify process tree operators within the net, together with a generic reduction function. Finally, in Section 3.4, we provide an algorithmic description that allows us to find process trees, including correctness proofs.

3.1 Overview

The core idea of the approach, concerns searching for fragments in the given WF-net, that represent behavior that is expressible as a process tree. The patterns we look for, bear great similarity with the translation patterns defined in Fig. 2, i.e., they can be considered as a generalized reverse of those patterns. When we find a pattern, we replace it with a smaller net fragment that represents the process tree that was just found. We continue to search for patterns in the reduced net, until we are not able to find any more patterns. As we prove in Section 3.4, in case the final WF-net contains just one transition, in fact, its label carries a process tree with the same labelled-language as the original WF-net.

Consider Fig. 3, in which we sketch the basic idea of the algorithm, applied on the example WF-net W1W_{1} (1(a)).

pip_{i}t1t_{1}aap1p_{1}t2t^{\prime}_{2}×(b,c)\times(b,c)p2p_{2}\ \ t4t_{4}ddp3p_{3}p4p_{4}t5t_{5}eep5\ \ \ p_{5}t6\ \ t_{6}fft1t^{\prime}_{1}×(g,h)\times(g,h)pop_{o}
(a) Result of the first two rounds of the algorithm. The first two patterns that can be found are choice constructs, between bb and cc, and, gg and hh, respectively.
pip_{i}t1t_{1}aap1p_{1}p2p_{2}\ \ t3t^{\prime}_{3}(×(b,c),d)\wedge(\times(b,c),d)p3p_{3}p4p_{4}t5t_{5}eep5\ \ \ p_{5}t6\ \ t_{6}fft1t^{\prime}_{1}×(g,h)\times(g,h)pop_{o}
(b) Result of the third round of the algorithm on the running example. We find a parallel construct between transition t2t^{\prime}_{2} and t4t_{4}.
pip_{i}t1t_{1}aap1p_{1}p2p_{2}\ \ t4t^{\prime}_{4}((×(b,c),d),e)\to(\wedge(\times(b,c),d),e)p5\ \ \ p_{5}t6\ \ t_{6}fft1t^{\prime}_{1}×(g,h)\times(g,h)pop_{o}
(c) Result of the fourth round of the algorithm. We find a sequential construct.
pip_{i}t1t_{1}aap1p_{1}p2p_{2}\ \ t5t^{\prime}_{5}(((×(b,c),d),e),f)\circlearrowleft(\to(\wedge(\times(b,c),d),e),f)p5\ \ \ p_{5}t1t^{\prime}_{1}×(g,h)\times(g,h)pop_{o}
(d) Result of the fifth round of the algorithm. We find a loop construct.
pip_{i}t6t^{\prime}_{6}(a,(((×(b,c),d),e),f),×(g,h))\to(a,\circlearrowleft(\to(\wedge(\times(b,c),d),e),f),\times(g,h))pop_{o}
(e) Result of the final round of the algorithm. We find a sequence construct.
Figure 3: Application of the algorithm on the running example, i.e., W1W_{1}. The label of t6t^{\prime}_{6}, i.e., ~(t6)\tilde{\ell}(t^{\prime}_{6}), depicted in 3(e), is the resulting process tree. The resulting process tree, i.e., (a,(((×(b,c),d),e),f),×(g,h))\to(a,\circlearrowleft(\to(\wedge(\times(b,c),d),e),f),\times(g,h)), is equal to 1(b).

First, the algorithm detects two choice constructs, i.e., one between the transitions labelled bb and cc, and, one between the transitions labelled gg and hh. The algorithm replaces the fragments by means of two new transitions, carrying labels ×(b,c)\times(b,c) and ×(g,h)\times(g,h) respectively (3(a)). Subsequently, a parallel construct is detected, i.e., between the transitions labelled ×(b,c)\times(b,c) and dd. Again, the pattern is replaced (3(b)). A sequential pattern is detected and replaced (3(c)), after which a loop construct is detected (3(d)). The resulting process tree, i.e., carried by the remaining transition in 3(e), (a,(((×(b,c),d),e),f),×(g,h))\to(a,\circlearrowleft(\to(\wedge(\times(b,c),d),e),f),\times(g,h)), is equal to 1(b).

3.2 PTree-Nets and their Unfolding

The core idea of the proposed algorithm presented, is finding Petri net fragments in the WF-net, that represent behavior equivalent to a process tree. As illustrated in Section 3.1, the patterns found in the WF-net are replaced by transitions with a label carrying a corresponding process tree. In the upcoming section, we present four different fragment characterizations, corresponding to the basic process tree operators considered. However, in this section, we first briefly present PTree-nets, i.e., a trivial extension of Petri nets, in which labels are process trees.

Definition 6 (Process Tree-Labelled Petri-net (PTree-net))

Let 𝒬\mathcal{Q} denote the universe of process trees. Let P~\tilde{P} denote a set of places, let T~\tilde{T} denote a set of transitions and let F~(P~×T~)(T~×P~)\tilde{F}{\subseteq}(\tilde{P}{\times}\tilde{T}){\cup}(\tilde{T}{\times}\tilde{P}) denote the arc relation. Let ~:T~𝒬\tilde{\ell}{\colon}\tilde{T}{\to}\mathcal{Q}. Tuple N~=(P~,T~,F~,~)\tilde{N}{=}(\tilde{P},\tilde{T},\tilde{F},\tilde{\ell}) is a Process Tree-Labelled Petri net (PTree-net). 𝒩𝒬\mathcal{N}_{\mathcal{Q}} denotes the universe of PTree-nets.

Given N~𝒩𝒬\tilde{N}{\in}\mathcal{N}_{\mathcal{Q}}, we have ~(𝒩(N~,M,M))𝒬\tilde{\ell}\left(\mathcal{L}_{\mathcal{N}}\left(\tilde{N},M,M^{\prime}\right)\right){\in}\mathcal{Q}^{*}, and, 𝒬(~(𝒩(N~,M,M)))Σ\mathcal{L}_{\mathcal{Q}}\left(\tilde{\ell}\left(\mathcal{L}_{\mathcal{N}}\left(\tilde{N},M,M^{\prime}\right)\right)\right){\in}\Sigma^{*}, i.e., the definition of 𝒬\mathcal{L}_{\mathcal{Q}} ignores τΣ\tau{\notin}{\Sigma}.111 Observe: 𝒩ν(N~,M,M)=~(𝒩(N~,M,M))Σ=𝒬(~(𝒩(N~,M,M)))\mathcal{L}_{\mathcal{N}}^{\nu}\left(\tilde{N},M,M^{\prime}\right){=}\tilde{\ell}\left(\mathcal{L}_{\mathcal{N}}\left(\tilde{N},M,M^{\prime}\right)\right)_{\downarrow_{\Sigma}}{=}\mathcal{L}_{\mathcal{Q}}\left(\tilde{\ell}\left(\mathcal{L}_{\mathcal{N}}\left(\tilde{N},M,M^{\prime}\right)\right)\right). Clearly, since PTree-nets extend the labelling function to 𝒬\mathcal{Q}, PTree-System-nets, and, PTree-WF-nets are readily defined. We let 𝒮𝒩𝒬\mathcal{SN}_{\mathcal{Q}} and 𝒲𝒬\mathcal{W}_{\mathcal{Q}} represent their respective universes.

Since a PTree-net contains process trees as labels, which can be translated into a Petri net fragment, we define a PTree-net unfolding, cf. 7, which maps a PTree-net onto a corresponding conventional Petri net.

Definition 7 (PTree-net Unfolding)

A PTree-net unfolding Λ:𝒩𝒬𝒩\Lambda{\colon}\mathcal{N}_{\mathcal{Q}}{\to}\mathcal{N} is a function where, given N~=(P~,T~,F~,~)𝒩𝒬\tilde{N}{=}(\tilde{P},\tilde{T},\tilde{F},\tilde{\ell}){\in}\mathcal{N}_{\mathcal{Q}}, Λ(N~)=(P,T,F,){\Lambda(\tilde{N}){=}(P,T,F,\ell)}, with:

  1. Let λ(~(t~))=(Pt~,Tt~,Ft~,pit~,pot~,t~),λ^(~(t~))=(P^t~,T^t~,F^t~,^t~),t~T~\lambda(\tilde{\ell}(\tilde{t})){=}({P}_{\tilde{t}},{T}_{\tilde{t}},F_{\tilde{t}},p_{i_{\tilde{t}}},p_{o_{\tilde{t}}},\ell_{\tilde{t}}),\hat{\lambda}(\tilde{\ell}(\tilde{t})){=}(\hat{P}_{\tilde{t}},\hat{T}_{\tilde{t}},\hat{F}_{\tilde{t}},\hat{\ell}_{\tilde{t}}),\forall{\tilde{t}{\in}\tilde{T}},

  2. 1.

    P=P~t~T~P^t~P{=}\tilde{P}{\cup}\bigcup\limits_{\tilde{t}{\in}\tilde{T}}{\hat{P}_{\tilde{t}}},

  3. 2.

    T=t~T~T^t~T{=}\bigcup\limits_{\tilde{t}{\in}\tilde{T}}{\hat{T}_{\tilde{t}}},

  4. 3.

    F=t~T~F^t~t~T~{(p,t~)pt~t~pit~}t~T~{(t~,p)pt~t~pot~}F{=}\bigcup\limits_{\tilde{t}{\in}\tilde{T}}\hat{F}_{\tilde{t}}{\cup}\bigcup\limits_{\tilde{t}{\in}\tilde{T}}\{(p,\tilde{t})\mid p{\in}{\bullet}{\tilde{t}}{\wedge}\tilde{t}{\in}p_{i_{\tilde{t}}}{\bullet}\}{\cup}\bigcup\limits_{\tilde{t}{\in}\tilde{T}}\{(\tilde{t},p)\mid p{\in}{\tilde{t}}{\bullet}{\wedge}\tilde{t}{\in}{\bullet}{p_{o_{\tilde{t}}}}\},

  5. 4.

    =t~T~^t~\ell{=}\bigcup\limits_{\tilde{t}{\in}\tilde{T}}\hat{\ell}_{\tilde{t}}.222Since functions are binary Cartesian products, we write set operations here.

Note that, the WF-net in 1(a), is the unfolding of all PTree-WF-nets in Fig. 3.

3.3 Pattern Reduction

In this section, we describe four patterns, used to identify and replace process tree behavior. Furthermore, we propose a corresponding overarching reduction function, which shows how to reduce a PTree-WF-net containing any of these patterns. However, first, we present the general notion of a feasible pattern.

Definition 8 (Feasible \oplus-Pattern)

Let N~=(P~,T~,F~,~)𝒩𝒬\tilde{N}{=}(\tilde{P},\tilde{T},\tilde{F},\tilde{\ell}){\in}\mathcal{N}_{\mathcal{Q}}, let
N=(P,T={t1,,tn},F,~|T)N~N{=}(P\mathchar 44\relax\penalty 0T{=}\left\{t_{1}\mathchar 44\relax\penalty 0...\mathchar 44\relax\penalty 0t_{n}\right\}\mathchar 44\relax\penalty 0F\mathchar 44\relax\penalty 0\tilde{\ell}|_{T}){\sqsubseteq}\tilde{N} and let Mi,Mf(P)M_{i},M_{f}{\in}\mathcal{M}(P) (n1n{\geq}1). Given \oplus{\in}\bigoplus, SN=(N,Mi,Mf)𝒮𝒩𝒬SN{=}(N,M_{i},M_{f}){\in}\mathcal{SN}_{\mathcal{Q}} is a feasible \oplus-pattern, written θ(N~,SN)\theta_{\oplus}(\tilde{N},SN), iff:

  1. 1.

    SNSN is weakly connected,

  2. 2.

    Mi(p)1Mf(p)1M_{i}(p){\leq}1{\wedge}M_{f}(p){\leq}1, pP\forall p{\in}P,

  3. 3.

    𝒬((~(t1),,~(tn)))=𝒩ν(Λ(N),Mi,Mf)\mathcal{L}_{\mathcal{Q}}\left(\oplus\left(\tilde{\ell}\left(t_{1}\right),...,\tilde{\ell}\left(t_{n}\right)\right)\right){=}\mathcal{L}_{\mathcal{N}}^{\nu}\left(\Lambda\left(N\right),M_{i},M_{f}\right).

In the upcoming paragraphs, we characterize an instantiation of a feasible \oplus-pattern, for each operator considered.

3.3.1 Sequential Pattern

The \to-operator, i.e., (Q1,,Qn){\to}\left(Q_{1},...,Q_{n}\right), describes sequential behavior, hence, any subnet describing strictly sequential behavior, describes the same language. If a transition t1t_{1} always, uniquely, enables transition t2t_{2}, which in turn enables transition t3,,tnt_{3},...,t_{n}, and, whenever t1t_{1} has fired, the only way to consume all tokens from t1t_{1}{\bullet}, is by means of firing t2t_{2}, and similarly, the only way to consume all tokens from t2t_{2}{\bullet}, is by means of firing t3t_{3}, etc., then t1,,tnt_{1},...,t_{n} are in a sequential relation. We visualize the \to-pattern in the left-hand side of 4(a).

Definition 9 (\to-Pattern)

Let N~=(P~,T~,F~,~)𝒩𝒬\tilde{N}{=}(\tilde{P},\tilde{T},\tilde{F},\tilde{\ell}){\in}\mathcal{N}_{\mathcal{Q}} and let {t1,,tn}T~\left\{t_{1},...,t_{n}\right\}{\subseteq}\tilde{T} (n2n{\geq}2). If and only if:

  1. 1.

    1i<n(|ti|1ti=ti+1)\forall{1{\leq}i{<}n}\left(|t_{i}{\bullet}|{\geq}1{\wedge}t_{i}{\bullet}{=}{\bullet}{t_{i+1}}\right); transition tit_{i} enables ti+1t_{i+1},

  2. 2.

    1i<n(pti(p={ti}p={ti+1}))\forall{1{\leq}i{<}n}\left(\forall{p{\in}t_{i}{\bullet}}\left({\bullet}{p}{=}\{t_{i}\}{\wedge}{p}{\bullet}{=}\{t_{i+1}\}\right)\right); enabling is unique,

  3. 3.

    tTt=\bigcap\limits_{t{\in}T}{t{\bullet}}{=}\emptyset; self-loops are not allowed,

then, system net SN=(N=(P,T,F,~|T),t1,tn)SN{=}(N{=}(P,T,F,\tilde{\ell}|_{T}),{\bullet}t_{1},t_{n}{\bullet}), with P=t1t2tntnP{=}{\bullet}t_{1}{\cup}{\bullet}t_{2}{\cup}{\cdots}{\bullet}t_{n}{\cup}t_{n}{\bullet}, T={t1,,tn}T{=}\{t_{1},...,t_{n}\}, F={(x,y)F~yTx=tn}F{=}\{(x,y){\in}\tilde{F}\mid y{\in}{T}{\vee}x{=}t_{n}\}, is a feasible \to-pattern.

3.3.2 Exclusive Choice Pattern

The ×\times-operator, i.e., ×(Q1,,Qn)\times(Q_{1},...,Q_{n}), describes “execute either one of Q1,,QnQ_{1},...,Q_{n}”. In terms of a Petri net fragment, transitions t1,,tnt_{1},...,t_{n} are in an exclusive choice pattern if their pre and post-sets are equal. Consider 4(b), in which we schematically depict the ×\times-pattern.

Definition 10 (×\times-Pattern)

Let N~=(P~,T~,F~,~)𝒩𝒬\tilde{N}{=}(\tilde{P},\tilde{T},\tilde{F},\tilde{\ell}){\in}\mathcal{N}_{\mathcal{Q}} and let {t1,,tn}T~\left\{t_{1},...,t_{n}\right\}{\subseteq}\tilde{T} (n2n{\geq}2). If and only if:

  1. 1.

    t1=t2==tn{\bullet}t_{1}{=}{\bullet}t_{2}{=}{\cdots}{=}{\bullet}t_{n}; all pre-sets are shared among the members of the pattern,

  2. 2.

    t1=t2==tnt_{1}{\bullet}{=}t_{2}{\bullet}{=}{\cdots}{=}t_{n}{\bullet}; all post-sets are shared among the members of the pattern,

  3. 3.

    1in(titi)\forall{1{\leq}i{\leq}n}\left({\bullet}t_{i}{\neq}t_{i}{\bullet}\right); self-loops are not allowed,

then, system net SN=(N=(P,T,F,~|T),t1,t1)SN{=}\left(N{=}\left(P,T,F,\tilde{\ell}|_{T}\right),{\bullet}t_{1},t_{1}{\bullet}\right), with P=t1t1P{=}{\bullet}t_{1}{\cup}t_{1}{\bullet}, T={t1,,tn}T{=}\{t_{1},...,t_{n}\}, F={(x,y)F~xTyT}F{=}\{(x,y){\in}\tilde{F}\mid x{\in}T{\vee}y{\in}T\}, is a feasible ×\times-pattern.

Refer to caption
(a) Visualization of the \to-pattern reduction. The post-set of each transition tit_{i} acts as the pre-set of ti+1t_{i+1} (1i<n1{\leq}i{<}n). The replacing transition inherits t1{\bullet}t_{1} and tnt_{n}{\bullet}.
Refer to caption
(b) Visualization of the ×\times-pattern reduction. All transitions in the pattern share the same pre- and post-set. The replacing transition inherits said pre- and post-set.
Refer to caption
(c) Visualization of the \wedge-pattern reduction. Transitions t1,,tnt_{1},...,t_{n} have disjunct pre-sets, yet, their pre-sets have the exact same pre-sets. The same holds for the post-sets of transitions t1,..,tnt_{1},..,t_{n}. The replacing transition inherits all pre- and post-sets.
Refer to caption
(d) Visualization of the \circlearrowleft-pattern reduction. The pre-set of transition t1t_{1} equals the post-set of t2t_{2} and vice-versa. The replacing transition inherits the pre- and post-set of transition t1t_{1}.
Figure 4: Visualization of the reductions considered in this paper. Solid arcs are required to be present, dashed arcs are allowed to be present, i.e., absence of dashed arcs, yet presence of solid arcs, implies that only the solid arcs are allowed.

3.3.3 Parallel Pattern

The parallel pattern is the most complicated pattern. In such a fragment, inference between its transitions is possible. This is achieved by requiring that the pre-sets and post-sets of the transitions do not have any overlap. Furthermore, the pre-set of the transition’s pre-set places needs to be shared by all of these places, and, symmetrically, the post-set of the transition’s post-set places needs to be shared by all of these places. That is, the enabling of the transitions in the pattern needs to be the same, and, their post-set should jointly block any further action, until all places in their joint post-set are marked.

Definition 11 (\wedge-Pattern)

Let N~=(P~,T~,F~,~)𝒩𝒬\tilde{N}{=}(\tilde{P},\tilde{T},\tilde{F},\tilde{\ell}){\in}\mathcal{N}_{\mathcal{Q}} and let T={t1,,tn}T~T{=}\left\{t_{1},...,t_{n}\right\}{\subseteq}\tilde{T} (n2n{\geq}2). If and only if:

  1. 1.

    1i<jn(titj=)\forall{1{\leq}i{<}j{\leq}n}\left({\bullet}{t_{i}}{\cap}{\bullet}{t_{j}}{=}\emptyset\right); no interaction between the member’s pre-sets,

  2. 2.

    1i<jn(titj=)\forall{1{\leq}i{<}j{\leq}n}\left({t_{i}}{\bullet}{\cap}{t_{j}}{\bullet}{=}\emptyset\right); no interaction between the member’s post-sets,

  3. 3.

    1in(pti(p={ti}))\forall{1{\leq}i{\leq}n}\left(\forall{p{\in}{\bullet}{t_{i}}}\left({p}{\bullet}{=}\left\{t_{i}\right\}\right)\right); pre-set places uniquely connect to a member,

  4. 4.

    1in(pti(p={ti}))\forall{1{\leq}i{\leq}n}\left(\forall{p{\in}{t_{i}}{\bullet}}\left({\bullet}{p}{=}\left\{t_{i}\right\}\right)\right); post-set places uniquely connect to a member,

  5. 5.

    pT(p{t1,,tn}=)\forall{p}{\in}{\bullet}T\left({\bullet}{p}{\cap}\{t_{1},...,t_{n}\}{=}\emptyset\right); members do not influence other members,

  6. 6.

    p,pT(p=p)\forall{p,p^{\prime}}{\in}{\bullet}T\left({\bullet}{p}{=}{\bullet}{p^{\prime}}\right); member’s pre-sets share their pre-set,

  7. 7.

    pT(p{t1,,tn}=)\forall{p}{\in}T{\bullet}\left({p}{\bullet}{\cap}\{t_{1},...,t_{n}\}{=}\emptyset\right); member firing does not affect other members,

  8. 8.

    p,pT(p=p)\forall{p,p^{\prime}}{\in}T{\bullet}\left({p}{\bullet}{=}{p^{\prime}}{\bullet}\right); member’s post-sets share their post-set,

  9. 9.

    t,t(T)(t=t)\forall{t,t^{\prime}}{\in}\bullet\left(\bullet T\right)\left({\bullet}t{=}{\bullet}t^{\prime}\right); pre-sets of enablers are equal,

  10. 10.

    t,t(T)(t=t)\forall{t,t^{\prime}}{\in}\left(T{\bullet}\right){\bullet}\left(t{\bullet}{=}t^{\prime}{\bullet}\right); post-sets of enablers are equal,

then, system net SN=(N=(P,T,F,~|T),((T)),((T)))SN{=}\left(N{=}\left(P,T,F,\tilde{\ell}|_{T}\right),{\bullet}\left({\bullet}\left({\bullet}T\right)\right),\left(\left(T{\bullet}\right){\bullet}\right){\bullet}\right), with
P=T((T))T((T))P{=}{\bullet}T{\cup}{\bullet}\left({\bullet}\left({\bullet}T\right)\right){\cup}T{\bullet}{\cup}\left(\left(T{\bullet}\right){\bullet}\right){\bullet}, T=TT{=}T, F={(x,y)F~x((T))TTy((T))TT}F{=}\{(x\mathchar 44\relax\penalty 0y){\in}\tilde{F}\mid x{\in}{\bullet}\left({\bullet}\left({\bullet}T\right)\right)\cup{\bullet}T{\cup}T{\bullet}{\vee}y{\in}\left(\left(T{\bullet}\right){\bullet}\right){\bullet}{\cup}{\bullet}T{\cup}T{\bullet}\} is a feasible \wedge-pattern.

3.3.4 Loop Pattern

The final operator we consider, is the \circlearrowleft-operator, i.e., the only operator with just two children. Hence, the fragments representing a loop pattern in the Ptree-net consist of two transitions. Consider the left-hand side of 4(d), in which we schematically depict the loop pattern fragment.

Definition 12 (\circlearrowleft-Pattern)

Let N~=(P~,T~,F~,~)𝒩𝒬\tilde{N}{=}(\tilde{P},\tilde{T},\tilde{F},\tilde{\ell}){\in}\mathcal{N}_{\mathcal{Q}} and let t1t2T~t_{1}{\neq}t_{2}{\in}\tilde{T}. Iff:

  1. 1.

    t1=t2{\bullet}t_{1}{=}t_{2}{\bullet}; pre-set of t1t_{1} is the post-set of t2t_{2},

  2. 2.

    t1=t2t_{1}{\bullet}{=}{\bullet}t_{2}; pre-set of t2t_{2} is the post-set of t1t_{1},

  3. 3.

    t1t2={\bullet}t_{1}{\cap}{\bullet}t_{2}{=}\emptyset; pre-sets are disjunct,

  4. 4.

    t1t2=t_{1}{\bullet}{\cap}t_{2}{\bullet}{=}\emptyset; post-sets are disjunct.

then, system net SN=(N=(P,T,F,~|{t1,t2}),t1,t1)SN{=}\left(N{=}\left(P,T,F,\tilde{\ell}|_{\{t_{1},t_{2}\}}\right),{\bullet}t_{1},t_{1}{\bullet}\right), with P=t1t1P{=}{\bullet}t_{1}{\cup}t_{1}{\bullet}, T={t1,t2}T{=}\{t_{1},t_{2}\}, F={(x,y)F~x{t1,t2}y{t1,t2}}F{=}\{(x,y){\in}\tilde{F}\mid x{\in}\{t_{1},t_{2}\}{\vee}y{\in}\{t_{1},t_{2}\}\} is a feasible \circlearrowleft-pattern.

Observe that, for each of the patterns presented here, it is easy to see that the requirements posed in 8, hold.

3.3.5 Pattern Reduction

The reduction rules for the patterns, i.e., defined in the previous paragraphs, as depicted in the right-hand side of Fig. 4, are very similar. Except for the \to-pattern, we “copy” all places in the new Ptree-net, i.e., for the \to-pattern, we remove the places inter-connecting transitions t1,,tnt_{1},...,t_{n}. The transitions involved in the pattern (and connecting arcs) are removed. A new transition is inserted, with a label depending on the pattern found. The connecting arcs of the newly added transition, differ slightly per pattern.

Definition 13 (Pattern Reduction)

Let {,×,,}\oplus{\in}\{\to,\times,\wedge,\circlearrowleft\}, let N~=(P~,T~,F~,~)𝒩𝒬\tilde{N}{=}(\tilde{P}\mathchar 44\relax\penalty 0\tilde{T}\mathchar 44\relax\penalty 0\tilde{F}\mathchar 44\relax\penalty 0\tilde{\ell}){\in}\mathcal{N}_{\mathcal{Q}}, let N=(P,T={t1,,tn},F,~|T)N~N{=}(P,T{=}\{t_{1},...,t_{n}\},F,\tilde{\ell}|_{T}){\sqsubseteq}\tilde{N}, let Mi,Mf(P)M_{i},M_{f}{\subseteq}\mathcal{M}(P) and let SN=(N,Mi,Mf)SN{=}\left(N,M_{i},M_{f}\right) s.t. θ(N~,SN)\theta_{\oplus}(\tilde{N},SN). We let Θ(N~,SN)=N~=(P~,T~,F~,~){\Theta_{\oplus}(\tilde{N},SN){=}\tilde{N}^{\prime}{=}(\tilde{P}^{\prime},\tilde{T}^{\prime},\tilde{F}^{\prime},\tilde{\ell}^{\prime})} denote the Θ(N~,SN)\Theta_{\oplus}(\tilde{N},SN)-reduced PTree-net, with, for t~T~\tilde{t}^{\prime}{\notin}\tilde{T}:

  • P~={P~i=1n1tiif=P~otherwise\tilde{P}^{\prime}{=}\begin{cases}\tilde{P}{\setminus}\bigcup\limits_{i{=}1}^{n-1}t_{i}{\bullet}&if\ \oplus{=}\to\\ \tilde{P}&otherwise\end{cases},

  • T~=(T~T){t~}\tilde{T}^{\prime}{=}\left(\tilde{T}{\setminus}T\right){\cup}\{\tilde{t}^{\prime}\},

  • F~=(F~i=1n({(ti,p)pti}{(p,ti)pti}))\tilde{F}^{\prime}{=}\left(\tilde{F}{\setminus}\bigcup\limits_{i{=}1}^{n}\left(\{(t_{i},p)\mid p{\in}t_{i}{\bullet}\}{\cup}\{(p,t_{i})\mid p{\in}{\bullet}t_{i}\}\right)\right){\cup}

    {{(p,t~)pt1}{(t~,p)ptn}if=i=1n({(p,t~)pti}{(t~,p)pti})if{×,}{(p,t~)pt1}{(t~,p)pt1}if=,\begin{cases}\{(p,\tilde{t}^{\prime})\mid p{\in}\bullet{t_{1}}\}{\cup}\{(\tilde{t}^{\prime},p)\mid p{\in}t_{n}{\bullet}\}&if\ \oplus{=}\to\\ \bigcup\limits_{i{=}1}^{n}\left(\{(p,\tilde{t}^{\prime})\mid p{\in}\bullet{t_{i}}\}{\cup}\{(\tilde{t}^{\prime},p)\mid p{\in}t_{i}{\bullet}\}\right)&if\oplus{\in}\{\times,\wedge\}\\ \{(p,\tilde{t}^{\prime})\mid p{\in}\bullet{t_{1}}\}{\cup}\{(\tilde{t}^{\prime},p)\mid p{\in}t_{1}{\bullet}\}&if\ \oplus{=}\circlearrowleft\end{cases},
  • ~=~|T~T{(t~,(~(t1),,~(tn)))}\tilde{\ell}^{\prime}{=}\tilde{\ell}|_{\tilde{T}{\setminus}T}{\cup}\{(\tilde{t}^{\prime},\oplus(\tilde{\ell}(t_{1}),...,\tilde{\ell}(t_{n})))\}.

3.4 Algorithm

input : W=(P,T,F,pi,po,)𝒲W{=}\left(P,T,F,p_{i},p_{o},\ell\right){\in}\mathcal{W}
output : W~=(P~,T~,F~,pi,po,~)𝒲𝒬\tilde{W}{=}(\tilde{P},\tilde{T},\tilde{F},p_{i},p_{o},\tilde{\ell}){\in}\mathcal{W}_{\mathcal{Q}}
1 N~(P,T,F,)\tilde{N}{\leftarrow}(P,T,F,\ell);
2 while SN𝒮𝒩𝒬\exists\ SN{\in}\mathcal{SN}_{\mathcal{Q}} s.t. θ(N~,SN){\theta_{\oplus}(\tilde{N},SN)} for {,×,,}\oplus{\in}\{\to,\times,\wedge,\circlearrowleft\} do
3       N~Θ(N~,SN)\tilde{N}\leftarrow\Theta_{\oplus}(\tilde{N},SN);
4      
5return (N,pi,po,~)(N,p_{i},p_{o},\tilde{\ell});
Algorithm 1 WF-net Reduction

Here, we present an algorithm that translates a WF-net into a process tree. We prove that, if the algorithm finds a process tree, the input WF-net is sound. Moreover, we show that the language of the input WF-net equals the language of the process tree found.

Consider Alg. 1, in which we present an algorithmic description of the reduction algorithm. As an input, the algorithm needs any WF-net WW. Initially, the elements of WW, excluding the initial and final place, are copied into variable N~\tilde{N}. In case a pattern of the form θ(N~,SN)\theta_{\oplus}(\tilde{N},SN) is found in N~\tilde{N}, the corresponding reduction Θ(N~,SN)\Theta_{\oplus}(\tilde{N},SN) is applied (Alg. 1). If no more pattern is found, the algorithm returns (N,pi,po,~)(N,p_{i},p_{o},\tilde{\ell}).

In case the obtained PTree-WF-net consists of just one transition, i.e., connected to place pip_{i} (incoming) and place pop_{o} (outgoing), cf. 3(e), the label of the transition represents a process tree, describing the same language as the original WF-net. Furthermore, we are able to conclude that the original WF-net is, in fact, a sound WF-net. We prove these observations in Theorem 3.1, however, prior to this, we first present two useful lemmas. In 1, we prove that the proposed reduction rules are bidirectionally soundness preserving, i.e., if a PTree-WF-net is sound, then also the reduced PTree-WF-net is sound, and, vice versa. In 2, we prove that, if we are able, from the initial marking [pi][p_{i}], to enable the observed fragment (enabling differs per fragment), then, the language of the original net and the reduced net is equal (and vice versa). Observe that, trivially, the reduction rules applied on a PTree-WF-net, yield a PTree-WF-net, i.e., none of the requirements of 1, are violated on the resulting net.

Lemma 1 (Pattern Reduction is Soundness Preserving)

Let {,×,,}\oplus{\in}\{\to,\times,\wedge,\circlearrowleft\}, let W~=(P~,T~,F~,p~i,p~o,~)𝒲𝒬\tilde{W}{=}(\tilde{P},\tilde{T},\tilde{F},\tilde{p}_{i},\tilde{p}_{o},\tilde{\ell}){\in}\mathcal{W}_{\mathcal{Q}}, let SN𝒮𝒩𝒬SN{\in}\mathcal{SN}_{\mathcal{Q}}, s.t., θ(W~,SN)\theta_{\oplus}(\tilde{W},SN), and, let W~=(P~,T~,F~,p~i,p~o,~)=Θ(W~,SN)𝒲𝒬\tilde{W}^{\prime}{=}(\tilde{P}^{\prime},\tilde{T}^{\prime},\tilde{F}^{\prime},\tilde{p}_{i},\tilde{p}_{o},\tilde{\ell}^{\prime}){=}\Theta_{\oplus}(\tilde{W},SN){\in}\mathcal{W}_{\mathcal{Q}}. W~\tilde{W}^{\prime} is sound iff W~\tilde{W} is sound.

Proof

(\Rightarrow) Let tT~T~t^{\prime}{\in}\tilde{T}^{\prime}{\setminus}\tilde{T}. Assume, W~\tilde{W} is sound, yet, W~\tilde{W}^{\prime} is not sound. By definition of any reduction Θ(W~,SN)\Theta_{\oplus}(\tilde{W},SN), if W~\tilde{W}^{\prime} is not safe, then W~\tilde{W} is not safe. For any tT~T~t{\in}\tilde{T}{\cap}\tilde{T}^{\prime}, if M(W~,[pi])((W~,M)[t)\nexists{M{\in}\mathcal{R}(\tilde{W}^{\prime},[p_{i}])}\left((\tilde{W}^{\prime},M)[t\rangle\right), then also, M(W~,[pi])((W~,M)[t)\nexists{M{\in}\mathcal{R}(\tilde{W},[p_{i}])}\left((\tilde{W},M)[t\rangle\right). Similarly, if M(W~,[pi])((W~,M)[t)\nexists{M{\in}\mathcal{R}(\tilde{W}^{\prime}\mathchar 44\relax\penalty 0[p_{i}])}\left((\tilde{W}^{\prime}\mathchar 44\relax\penalty 0M)[t^{\prime}\rangle\right), then this is also holds for the transitions in SNSN. In case M(W~,[pi])\exists{M{\in}\mathcal{R}(\tilde{W}^{\prime},[p_{i}])} s.t. σT((W~,M)𝜎(W~,[po]))\nexists{\sigma{\in}T^{\prime*}}\left((\tilde{W}^{\prime}\mathchar 44\relax\penalty 0M)\xrightarrow[]{\sigma}\mathrel{\mkern-14.0mu}\rightarrow(\tilde{W}^{\prime}\mathchar 44\relax\penalty 0[p_{o}])\right), then, again by definition of the reductions, also M(W~,[pi])M{\in}\mathcal{R}(\tilde{W}^{\prime},[p_{i}]) and
σT((W~,M)𝜎(W~,[po]))\nexists{\sigma{\in}T^{\prime*}}\left((\tilde{W},M)\xrightarrow[]{\sigma}\mathrel{\mkern-14.0mu}\rightarrow(\tilde{W},[p_{o}])\right). (\Leftarrow) Symmetrical. \hfill\square

Lemma 2 (Pattern Reduction is Language Preserving in Λ\Lambda)

Let {,×,,}\oplus{\in}\{\to,\times,\wedge,\circlearrowleft\}, let W~=(P~,T~,F~,p~i,p~o,~)𝒲𝒬\tilde{W}{=}(\tilde{P},\tilde{T},\tilde{F},\tilde{p}_{i},\tilde{p}_{o},\tilde{\ell}){\in}\mathcal{W}_{\mathcal{Q}}, let SN𝒮𝒩𝒬SN{\in}\mathcal{SN}_{\mathcal{Q}}, s.t., θ(W~,SN)\theta_{\oplus}(\tilde{W},SN), and, let W~=(P~,T~,F~,p~i,p~o,~)=Θ(W~,SN)𝒲𝒬\tilde{W}^{\prime}{=}(\tilde{P}^{\prime},\tilde{T}^{\prime},\tilde{F}^{\prime},\tilde{p}_{i},\tilde{p}_{o},\tilde{\ell}^{\prime}){=}\Theta_{\oplus}(\tilde{W},SN){\in}\mathcal{W}_{\mathcal{Q}}. 𝒩ν(Λ(W~))=𝒩ν(Λ(W~))\mathcal{L}_{\mathcal{N}}^{\nu}(\Lambda(\tilde{W})){=}\mathcal{L}_{\mathcal{N}}^{\nu}(\Lambda(\tilde{W}^{\prime})).

Proof

Let tT~T~t^{\prime}{\in}\tilde{T}^{\prime}{\setminus}\tilde{T}. By definition of any θ(W~,SN){\theta_{\oplus}(\tilde{W},SN)}, 𝒩ν(SN)=𝒬(~(t))\mathcal{L}_{\mathcal{N}}^{\nu}(SN){=}\mathcal{L}_{\mathcal{Q}}\left(\tilde{\ell}^{\prime}(t^{\prime})\right). Furthermore, given M,M(P~)M,M^{\prime}{\in}\mathcal{M}(\tilde{P}), s.t., for σ𝒩(SN)\sigma{\in}\mathcal{L}_{\mathcal{N}}(SN), (W~,M)𝜎(W~,M)(\tilde{W},M){\xrightarrow[]{\sigma}\mathrel{\mkern-14.0mu}\rightarrow}(\tilde{W},M^{\prime}), then also, (W~,M)t(W~,M)(\tilde{W}^{\prime},M){\xrightarrow{t^{\prime}}}(\tilde{W}^{\prime},M^{\prime}). Consequently, then also, (Λ(W~),M)λ^(~(σ)))(Λ(W~),M)(\Lambda(\tilde{W}),M){\xrightarrow[]{\hat{\lambda}(\tilde{\ell}(\sigma)))}\mathrel{\mkern-14.0mu}\rightarrow}(\Lambda(\tilde{W}),M^{\prime}) and (Λ(W~),M)λ^(~(t)))(Λ(W~),M)(\Lambda(\tilde{W}^{\prime}),M)\xrightarrow{\hat{\lambda}(\tilde{\ell}(t^{\prime})))}(\Lambda(\tilde{W}^{\prime}),M^{\prime}). For any tT~T~t{\in}\tilde{T}{\cap}\tilde{T}^{\prime}, s.t., (W~,M)[t(\tilde{W},M)[t\rangle, then also (W~,M)[t(\tilde{W}^{\prime},M)[t\rangle. Hence, inference of λ^(t)\hat{\lambda}(t) with the λ^\hat{\lambda} values of the transitions of SNSN and, λ^(~(t)))\hat{\lambda}(\tilde{\ell}(t^{\prime}))), remains the same. Since removal of some elements of SNSN, and addition of tt^{\prime}, are the only difference between W~\tilde{W} and W~\tilde{W}^{\prime}, i.e., every other element is both in W~\tilde{W} and W~\tilde{W}^{\prime}, we conclude that 𝒩ν(Λ(W~))=𝒩ν(Λ(W~))\mathcal{L}_{\mathcal{N}}^{\nu}(\Lambda(\tilde{W})){=}\mathcal{L}_{\mathcal{N}}^{\nu}(\Lambda(\tilde{W}^{\prime})).  \hfill\square

Theorem 3.1 (Alg. 1 is able to find Language-Equal Process Trees)

Let W=(P,T,F,pi,po,)𝒲W{=}\left(P,T,F,p_{i},p_{o},\ell\right){\in}\mathcal{W} and let W~=(P~,T~,F~,p~i,p~o,~)𝒲𝒬\tilde{W}{=}(\tilde{P},\tilde{T},\tilde{F},\tilde{p}_{i},\tilde{p}_{o},\tilde{\ell}){\in}\mathcal{W}_{\mathcal{Q}} be the resulting WF-net of Alg. 1 on WW. If T~={T}\tilde{T}{=}\{T\}, and, F={(pi,t),(t,po)}F{=}\left\{\left(p_{i},t\right),\left(t,p_{o}\right)\right\}, then, 𝒬(~(t))=𝒩ν(W)\mathcal{L}_{\mathcal{Q}}(\tilde{\ell}(t)){=}\mathcal{L}_{\mathcal{N}}^{\nu}(W).

Proof

Observe that, W~\tilde{W} is sound. 1 implies that if we (continuously) revert the reductions applied by Alg. 1, i.e., corresponding to all intermediate assignments of W~\tilde{W} in Alg. 1 are sound.333As a corollary of this fact, it follows that WW is sound. Observe that, 2 proves that the language of the unfoldings of all the intermediate WF-nets found is the same as well. Since the labels of the initial WF-net are all members of Σ{τ}\Sigma{\cup}\{\tau\}, their unfolding remains the same. Hence, we deduce 𝒬(~(t))=𝒩ν(W)\mathcal{L}_{\mathcal{Q}}(\tilde{\ell}(t)){=}\mathcal{L}_{\mathcal{N}}^{\nu}(W). \hfill\square

4 Evaluation

In this section, we evaluate the proposed algorithm. We briefly present the implementation, after which we discuss the experimental setup and the results.

4.0.1 Implementation

An implementation of Alg. 1 is available444https://github.com/s-j-v-zelst/pm4py-source/blob/pn˙to˙pt/scripts/pn˙to˙pt.py, i.e., built on top of the process mining framework PM4Py [7]. Note that, the size of the patterns identified has no influence on the correctness of the algorithm. Hence, the implementation searches for binary patterns, yielding binary trees. Such a tree can be further reduced, e.g., (Q1,(Q2,(Q3,τ))){\to}\left(Q_{1},{\to}\left(Q_{2},\to\left(Q_{3},\tau\right)\right)\right) corresponds to (Q1,Q2,Q3){\to}\left(Q_{1},Q_{2},Q_{3}\right).

4.0.2 Experimental Setup

Here, we briefly discuss the experimental setup of our experiments. Consider Fig. 5, in which we present a graphical overview.

Refer to caption
Figure 5: Overview of the experimental setup of the conducted experiments.

Using an implementation of PTandLogGenerator [10, 9], we generate process trees, using two triangular distributions for the number of activities, i.e., {10,20,30}\{10,20,30\} and {40,50,60}{\{40,50,60\}}. The process trees are translated to WF-nets, using two different translations. One translation creates invisible start and end transitions for each operator; the other translation only does so when required (similar to Fig. 2). The first translation generates larger nets in terms of transitions/places/arcs. For each tirangular distribution/translation combination, we generate 50.00050.000 process trees (yielding 200.000200.000 experiments). Finally, we compare the generated process tree in canonical form, to the resulting process tree in canonical form.

4.0.3 Results

Refer to caption
Figure 6: Average time performance of the implementation. A quadratic relation, in computation time (μ\mu-seconds), w.r.t. the size of the WF-net, is observable.

Here, we briefly discuss the results of the conducted experiments. Consider Fig. 6, in which we present the average time performance of the implementation. We plot the time performance, conditional to the size of the input WF-net. Additionally, we plot a polynomial trend-line, computed using polynomial least squares. As is clearly observable in Fig. 6, the time performance is quadratic in the size of the net (|P|+|T||P|+|T|). This is confirmed by the R2R^{2}-score of the trend-line, i.e,. 0.988\sim 0.988. In all experiments, the canonical form of the generated process tree equals the canonical form of the (re)discovered process tree.

5 Related Work

Process trees are often used in the domain of process mining. However, a complete overview of the field is outside of scope, hence, we refer to [4].

Various authors studied translating a certain process modeling formalism to another. Transformations of graph-oriented modeling formalisms, e.g., Petri nets, and block-oriented modeling formalisms, e.g., Process Trees, are often studied. In [13], the authors generalize work that transforms (both ways) graph-based process modeling formalisms into Business Process Execution Language for Webservices (BPEL) (an XML-based format). The authors characterize several strategies for such translations. In this context, the work presented in this paper belongs to the structure-identification category.

Of particular interest is the work of van der Aalst and Lassen [6, 11], i.e., on translating of WF-nets to BPEL. In the work, XML fragments of BEPL are generated on the basis of a given WF-net. The algorithm replaces components, i.e., connected, complete subnets with a unique start- and end element. Users are additionally allowed to define custom components. In [16, 15] the notion of the Refined Process Structure Tree (RPST) and its computation is introduced. RPSTs are similar to process trees, i.e., a tree structure describing control-flow behavior. The works [16, 15] focus on computing the RPST of a given BPMN model (the authors indicate that the concepts can be generalized to WF-nets). However, the discoverd fragments RPST-fragments need to be canonical, i.e., they are not allowed to overlap with any other fragment. Similar to [6, 11], the fragments need a single source and a single sink element.

6 Conclusion

In this paper, we presented an algorithm to construct a process tree, on the basis of a Workflow net (WF-net). The proposed algorithm replaces fragments of the WF-net, that correspond to a process tree operator, i.e., by means of reduction rules. If the algorithm reduces the WF-net into a net, containing just one transition, there exists a corresponding process tree for the given WF-net, with the same language. The reduction rules proposed are bidirectionally soundness preserving, hence, in case a process tree is found, the original WF-net is sound. We have conducted experiments using a prototypical implementation, indicating quadratic time complexity in the net, and, process tree rediscoverability.

Future Work We aim to provide diagnostics w.r.t. the reason why a given WF-net cannot be reduced further, e.g., by assessing if removal of certain elements of the WF-net allows for further reduction. Alternatively, it is interesting to “wrap” certain fragments of the net into an encapsulating transition, after which the search to process tree fragments is continued. Another interesting direction is the search for structural properties of WF-nets that directly indicate whether a given WF-net corresponds to a process tree.

References

  • [1] van der Aalst, W.M.P.: Workflow verification: Finding control-flow errors using petri-net-based techniques. In: Business Process Management, Models, Techniques, and Empirical Studies. pp. 161–183 (2000)
  • [2] van der Aalst, W.M.P.: The application of petri nets to workflow management. Journal of Circuits, Systems, and Computers 8(1), 21–66 (1998)
  • [3] van der Aalst, W.M.P.: Formalization and verification of event-driven process chains. Information & Software Technology 41(10), 639–650 (1999)
  • [4] van der Aalst, W.M.P.: Process Mining - Data Science in Action, Second Edition. Springer (2016)
  • [5] van der Aalst, W.M.P., Buijs, J.C.A.M., van Dongen, B.F.: Towards improving the representational bias of process mining. In: SIMPDA 2011, Campione d’Italia, Italy, June 29 - July 1, 2011, Revised Selected Papers. pp. 39–54 (2011)
  • [6] van der Aalst, W.M.P., Lassen, K.B.: Translating unstructured workflow processes to readable BPEL: theory and implementation. Information & Software Technology 50(3), 131–159 (2008)
  • [7] Berti, A., van Zelst, S.J., van der Aalst, W.M.P.: Process mining for python (PM4Py): Bridging the gap between process-and data science. In: ICPM Demo Track 2019, Aachen, Germany, June 24-26, 2019. p. 13–16 (2019)
  • [8] Dijkman, R.M., Dumas, M., Ouyang, C.: Semantics and analysis of business process models in BPMN. Information & Software Technology 50(12), 1281–1294 (2008)
  • [9] Jouck, T., Depaire, B.: Generating artificial data for empirical analysis of control-flow discovery algorithms - A process tree and log generator. Bus. Inf. Syst. Eng. 61(6), 695–712
  • [10] Jouck, T., Depaire, B.: Ptandloggenerator: A generator for artificial event data. In: BPM Demo Track 2016, Rio de Janeiro, Brazil, September 21, 2016. pp. 23–27 (2016)
  • [11] Lassen, K.B., van der Aalst, W.M.P.: Workflownet2bpel4ws: A tool for translating unstructured workflow processes to readable BPEL. In: CoopIS, DOA, GADA, and ODBASE, OTM Confederated International Conferences, 2006, Montpellier, France, October 29 - November 3, 2006. Proceedings, Part I. pp. 127–144 (2006)
  • [12] Lee, W.L.J., Verbeek, H.M.W., Munoz-Gama, J., van der Aalst, W.M.P., Sepúlveda, M.: Recomposing conformance: Closing the circle on decomposed alignment-based conformance checking in process mining. Inf. Sci. 466, 55–91 (2018)
  • [13] Mendling, J., Lassen, K.B., Zdun, U.: On the transformation of control flow between block-oriented and graph-oriented process modelling languages. IJBPIM 3(2), 96–108 (2008)
  • [14] Murata, T.: Petri nets: Properties, analysis and applications. Proceedings of the IEEE 77(4), 541–580 (1989)
  • [15] Polyvyanyy, A., Vanhatalo, J., Völzer, H.: Simplified computation and generalization of the refined process structure tree. In: WS-FM 2010, Hoboken, NJ, USA, September 16-17, 2010. Revised Selected Papers. pp. 25–41 (2010)
  • [16] Vanhatalo, J., Völzer, H., Koehler, J.: The refined process structure tree. Data Knowl. Eng. 68(9), 793–818 (2009)
  • [17] van Zelst, S.J., Bolt, A., van Dongen, B.F.: Computing alignments of event data and process models. ToPNoC 13, 1–26 (2018)