4.1. Preliminaries
Let us illustrate some basic concepts and notations, partially from [
1]:
Definition 1 (Power set). The power set of a set A is the set of all possible subsets of A, and is denoted with $\mathcal{P}\left(A\right)$. ${\mathcal{P}}_{NE}\left(A\right)$ denotes the set of all the nonempty subsets of A: ${\mathcal{P}}_{NE}\left(A\right)=\mathcal{P}\left(A\right)\backslash \{\varnothing \}$.
Definition 2 (Multiset). A multiset is an extension of the concept of set that keeps track of the cardinality of each element. $\mathcal{B}\left(A\right)$ is the set of all multisets over some set A. Multisets are denoted with square brackets, e.g., $b=[x,x,y]$, or with the cardinality of the elements as superscript, e.g., $b=[{x}^{2},y]$. We denote the empty multiset with $\left[\phantom{\rule{3.33333pt}{0ex}}\right]$. The operator $(\xb7)$ retrieves the cardinality of an element of the multiset, e.g., $b\left(x\right)=2$, $b\left(y\right)=1$, $b\left(z\right)=0$. Over multisets we define $x\in b\iff b\left(x\right)\ge 1$, and $\mathit{set}\left(b\right)=\{x\in b\}$. The multiset union $b={b}_{1}\uplus {b}_{2}$ is the multiset b such that for all x we have $b\left(x\right)={b}_{1}\left(x\right)+{b}_{2}\left(x\right)$.
Definition 3 (Sequence and permutation). Given a set X, a finite sequence over X of length n is a function $s\in {X}^{*}:\{1,\dots ,n\}\to X$, and is written as $s=\langle {s}_{1},{s}_{2},\dots ,{s}_{n}\rangle $. For any sequence s we define $\lefts\right=n$, $s\left[i\right]={s}_{i}$, $x\in s\iff x\in \{{s}_{1},{s}_{2},\dots ,{s}_{n}\}$ and $s\oplus {s}_{0}=\langle {s}_{1},{s}_{2},\dots ,{s}_{n},{s}_{0}\rangle $. A permutation of the set X is a sequence ${x}_{\mathcal{S}}$ that contains all elements of X without duplicates: ${x}_{\mathcal{S}}\in X$, $X\in {x}_{\mathcal{S}}$, and for all $1\le i\le {x}_{\mathcal{S}}$ and for all $1\le j\le {x}_{\mathcal{S}}$, ${x}_{\mathcal{S}}\left[i\right]={x}_{\mathcal{S}}\left[j\right]\to i=j$. We denote with ${\mathcal{S}}_{X}$ all such permutations of set X. We overload the notation for sequences: given a sequence $s=\langle {s}_{1},{s}_{2},\dots ,{s}_{n}\rangle $, we will write ${\mathcal{S}}_{s}$ in place of ${\mathcal{S}}_{\{{s}_{1},{s}_{2},\dots ,{s}_{n}\}}$.
Definition 4 (Transitive relation and correct evaluation order). Let X be a set of objects and R be a binary relation $R\subseteq X\times X$. R is transitive if and only if for all $x,{x}^{\prime},{x}^{\u2033}\in X$ we have that $(x,{x}^{\prime})\in R\wedge ({x}^{\prime},{x}^{\u2033})\in R\to (x,{x}^{\u2033})\in R$. A correct evaluation order is a permutation $s\in {\mathcal{S}}_{X}$ of the elements of the set X such that for all $1\le i<j\le \lefts\right$ we have that $\left(s\right[i],s[j\left]\right)\in R$.
Definition 5 (Strict partial order). Let S be a set of objects. Let $s,{s}^{\prime}\in S$. A strict partial order $(\prec ,S)$ is a binary relation that have the following properties:
Definition 6 (Directed graph). A directed graph $G\in {\mathcal{U}}_{G}$ is a tuple $(V,E)$ where V is the set of vertices and $E\subseteq V\times V$ is the set of directed edges. The set ${\mathcal{U}}_{G}$ is the graph universe. A path in a directed graph $G=(V,E)$ is a sequence of vertices p such that for all $1<i<\leftp\right1$ we have that $({p}_{i},{p}_{i+1})\in E$. We denote with ${P}_{G}$ the set of all such possible paths over the graph G. Given two vertices $v,{v}^{\prime}\in V$, we denote with ${p}_{G}(v,{v}^{\prime})$ the set of all paths beginning in v and ending in ${v}^{\prime}$: ${p}_{G}(v,{v}^{\prime})=\{p\in {P}_{G}\mid p\left[1\right]=v\wedge p\left[\rightp\left\right]={v}^{\prime}\}$. v and ${v}^{\prime}$ are connected (and ${v}^{\prime}$ is reachable from v), denoted by $v\stackrel{G}{\mapsto}{v}^{\prime}$, if and only if there exists a path between them in G: ${p}_{G}(v,{v}^{\prime})\ne \varnothing $. Conversely, $v\stackrel{G}{\overline{)\mapsto}}{v}^{\prime}\iff {p}_{G}(v,{v}^{\prime})=\varnothing $. We drop the superscript G if it is clear from the context. A directed graph G is acyclic if there exists no path $p\in {P}_{G}$ satisfying $p\left[1\right]=p\left[\rightp\left\right]$.
Definition 7 (Topological sorting)
. Let $G=(V,E)$ be an acyclic directed graph. A topological sorting [11] ${o}_{G}=\langle {v}_{1},{v}_{2},\dots ,{v}_{\leftV\right}\rangle \in {\mathcal{S}}_{V}$ is a permutation of the vertices of G such that for all $1\le i<j\le \leftV\right$ we have that ${v}_{j}\overline{)\mapsto}{v}_{i}$. We denote with ${\mathcal{O}}_{G}\subseteq {\mathcal{S}}_{V}$ all such possible topological sortings over G. Definition 8 (Transitive reduction)
. A transitive reduction [12] $\rho :\mathcal{G}\to \mathcal{G}$ of a graph $G=(V,E)$ is a graph $\rho \left(G\right)=(V,{E}_{r})$ with ${E}_{r}\subseteq E$ where every pair of vertices connected in $\rho \left(G\right)$ is not connected by any other path: for all $(v,{v}^{\prime})\in {E}_{r}$, ${p}_{G}(v,{v}^{\prime})=\left\{\langle v,{v}^{\prime}\rangle \right\}$. $\rho \left(G\right)$ is the graph with the minimal number of edges that maintain the reachability between edges of G. The transitive reduction of a directed acyclic graph always exists and is unique [12]. This paper proposes an analysis technique on
uncertain event logs. These execution logs contain information about uncertainty explicitly associated with event data. A taxonomy of different types of uncertain event logs and attribute uncertainty has been described in [
2]; we will refer to the notion of
simple uncertainty, which includes uncertainty without probabilistic information on the controlflow perspective: activities, timestamps, and indeterminate events.
Definition 9 (Universes). Let ${\mathcal{U}}_{I}$ be the set of all the event identifiers. Let ${\mathcal{U}}_{C}$ be the set of all case ID identifiers. Let ${\mathcal{U}}_{A}$ be the set of all the activity identifiers. Let ${\mathcal{U}}_{T}$ be the totally ordered set of all the timestamp identifiers. Let ${\mathcal{U}}_{O}=\{!,?\}$, where the “!” symbol denotes determinate events, and the “?” symbol denotes indeterminate events.
Definition 10 (Simple uncertain events). $e=({e}_{i},A,{t}_{\mathit{min}},{t}_{\mathit{max}},o)$ is a simple uncertain event, where ${e}_{i}\in {\mathcal{U}}_{E}$ is its event identifier, $A\in {\mathcal{P}}_{NE}({\mathcal{U}}_{A}$ is the set of possible activity labels for e, ${t}_{\mathit{min}}$ and ${t}_{\mathit{max}}$ are the lower and upper bounds for the value of its timestamp, and o indicates if it is an indeterminate event. Let ${\mathcal{U}}_{E}=({\mathcal{U}}_{I}\times {\mathcal{P}}_{NE}\left({\mathcal{U}}_{A}\right)\times {\mathcal{U}}_{T}\times {\mathcal{U}}_{T}\times {\mathcal{U}}_{O})$ be the set of all simple uncertain events. Over the uncertain event $e=({e}_{i},A,{t}_{\mathit{min}},{t}_{\mathit{max}},o)$ we define the projection functions ${\pi}_{a}\left(e\right)=A$, ${\pi}_{{t}_{\mathit{min}}}\left(e\right)={t}_{\mathit{min}}$, ${\pi}_{{t}_{\mathit{max}}}\left(e\right)={t}_{\mathit{max}}$ and ${\pi}_{o}\left(e\right)=o$.
Definition 11 (Simple uncertain traces and logs). $\sigma \subseteq {\mathcal{U}}_{E}$ is a simple uncertain trace if for any $({e}_{i},A,{t}_{\mathit{min}},{t}_{\mathit{max}},o)\in \sigma $, ${t}_{\mathit{min}}<{t}_{\mathit{max}}$ and all the event identifiers are unique. ${\mathcal{T}}_{U}$ denotes the universe of simple uncertain traces. $L\subseteq {\mathcal{T}}_{U}$ is a simple uncertain log if all the event identifiers in the log are unique.
Definition 12 (Strict partial order over simple uncertain events)
. Let $e,{e}^{\prime}\in {\mathcal{E}}_{U}^{S}$ be two simple uncertain events. $(\prec ,{\mathcal{E}}_{U}^{S})$ is an order defined on the universe of strongly uncertain events ${\mathcal{E}}_{U}^{S}$ as: Definition 13 (Orderrealizations of simple uncertain traces). Let $\sigma \in {\mathcal{T}}_{U}$ be a simple uncertain trace. An orderrealization ${\sigma}_{O}=\langle {e}_{1},{e}_{2},\dots ,{e}_{\left\sigma \right}\rangle \in {\mathcal{S}}_{\sigma}$ is a permutation of the events in σ such that for all $1\le i<j\le \left\sigma \right$ we have that ${e}_{j}\nprec {e}_{i}$, i.e., ${\sigma}_{O}$ is a correct evaluation order for σ over $(\prec ,{\mathcal{E}}_{U}^{S})$, and the (total) order in which events are sorted in ${\sigma}_{O}$ is a linear extension of the strict partial order $(\prec ,{\mathcal{E}}_{U}^{S})$. We denote with ${\mathcal{R}}_{O}\left(\sigma \right)$ the set of all such orderrealizations of the trace σ.
A necessary step to allow for analysis of simple uncertain traces is to obtain their behavior graph. A behavior graph is a directed acyclic graph that synthesizes the information regarding the uncertainty on timestamps contained in the trace.
Definition 14 (Behavior graph). Let $\sigma \in {\mathcal{T}}_{U}$ be a simple uncertain trace. Let the identification function $id:\sigma \to \{1,2,\dots ,\sigma \left\right\}$ be a bijection between the events in σ and the first $\left\sigma \right$ natural numbers. A behavior graph $\beta :{\mathcal{T}}_{U}\to {\mathcal{U}}_{G}$ is the transitive reduction of a directed graph $\rho \left(G\right)$, where $G=(V,E)\in {\mathcal{U}}_{G}$ is defined as:
$V=\{(\mathit{id}\left(e\right),{\pi}_{a}\left(e\right),{\pi}_{o}\left(e\right))\mid e\in \sigma \}$
$E=\{(v,w)\mid v,w\in V\wedge {\pi}_{{t}_{\mathit{max}}}\left(v\right)<{\pi}_{{t}_{\mathit{min}}}\left(w\right)\}$
The set of topological sortings of a behavior graph $\beta \left(\sigma \right)$ corresponds to the set of all the orderrealizations of the trace σ:
A technical note: this definition for the nodes of the behavior graph is slightly different from the one in [
2], to simplify the notation in algorithms. The two definitions are functionally identical.
Figure 6 and
Figure 7 show the transitive reduction operation on the running example.
The semantics of a behavior graph can efficaciously communicate time and order information concerning the time relationships among events in the corresponding uncertain trace in a compact manner. For a behavior graph $\beta \left(\sigma \right)=(V,E)$ and two events ${e}_{1}\in \sigma $, ${e}_{2}\in \sigma $, $({e}_{1},{e}_{2})\in E$ holds if and only if ${e}_{1}$ is immediately followed by ${e}_{2}$ for some possible values of the timestamps of the events in the trace. A consequence of this fact is that if a pair of events in the graph are unreachable, they might have occurred in any order.
Definition 14 is meaningful and clear from a theoretical point of view. It rigorously defines a behavior graph and the semantics of its parts. Although helpful to understand the function of behavior graphs, obtaining them from process traces following this definition—that is, using the transitive reduction—is inefficient and slow. This hinders the analysis of logs with a large number of events, and with longer traces. It is nonetheless possible to build behavior graphs from process traces in a faster and more efficient way.
4.2. Efficient Construction of Behavior Graphs
The set of steps to efficiently create a behavior graph from an uncertain trace is separated into two distinct phases, described by Algorithms 1 and 2. An uncertain event e is associated with a time interval which is determined by two values: minimum and maximum timestamp of that event ${\pi}_{{t}_{\mathrm{min}}}\left(e\right)$ and ${\pi}_{{t}_{\mathrm{max}}}\left(e\right)$. If an event e has a certain timestamp, we have that ${\pi}_{{t}_{\mathrm{min}}}\left(e\right)={\pi}_{{t}_{\mathrm{max}}}\left(e\right)$.
We will examine here the effect of Algorithms 1 and 2 on a running example, the process trace shown in
Table 4. Notice that in this running example, no uncertainty on activity labels nor indeterminate events are present: this is because of the fact that the topology of a behavior graph only depends on the (uncertain) timestamps in the events belonging to the corresponding trace.
Algorithm 1:TimestampList($\sigma $)


Algorithm 2:BehaviorGraph(TimestampList($\sigma $))


The construction of the graph relies on a preprocessing step shown in Algorithm 1, where a support list $\mathcal{L}$ is created (lines 4–8). Every entry in this list is a tuple of four elements. For each event e in the trace, we insert two entries in the list—one for each timestamp ${\pi}_{{t}_{\mathrm{min}}}$ and ${\pi}_{{t}_{\mathrm{max}}}$ appearing in a trace. The four elements in each tuple contained in the list are:
an identifier, which in the list construction is an integer representing the rank of the uncertain event by minimum timestamp (computed in line 3);
the activity labels associated with the event ${\pi}_{a}\left(e\right)$;
the attribute ${\pi}_{o}\left(e\right)$, which will carry the information regarding indeterminate events;
the type of timestamp that generated this entry—if it is a minimum or maximum of an interval.
As we can see, the list is designed to contain all information about an uncertain event except the values of minimum and maximum timestamps, which we use to sort the list (line 9) and then discard prior to returning the list (lines 10–15).
The events of the trace in
Table 4 are represented in the list
${\mathcal{L}}^{*}$ by entries shown in
Table 5. These entries are then sorted by Algorithm 1 yielding the following list
$\mathcal{L}$:
One of the purposes the list
$\mathcal{L}$ serves is gathering the structural information to create the behavior graph; in fact, visiting the list in order is equivalent of sweeping the events of the trace on the time dimension, encountering each timestamp (minimum or maximum) sorted through time. We can visualize this on the Gantt diagram representation of the trace of
Table 4, visible in
Figure 8.
Every segment representing an uncertain event in the diagram is translated by TimestampList into two entries in a sorted list, representing the two extremes of the segment. Events without an uncertain timestamp collapse into a single point in the diagram, and their corresponding two entries in the list are characterized by the same timestamp.
Now, let us examine Algorithm 2. The idea leading the algorithm is to analyze the time relationship among uncertain events in a more precise manner, as opposed to adding a large number of edges to the graph and then removing them via transitive reduction. This is attained by searching all the viable successors of each event in the sorted timestamp list $\mathcal{L}$. We scan the list $\mathcal{L}$ with two nested loops, and we use the inner loop to look for successors of the entry selected by the outer loop. According to the semantics of behavior graphs, events with overlapping intervals as timestamps must not be connected by a path; thus, we draw outgoing edges from an event only when, reading the list, we arrive at a point in time in which the event has certainly occurred. This is the reason outgoing edges are not drawn when inspecting minimum timestamps (line 6) and incoming edges are not drawn when inspecting maximum timestamps (line 10).
First, we initialize the set of nodes with all the triples $(id,{\pi}_{a}\left(e\right),{\pi}_{o}\left(e\right))$ in the entries of $\mathcal{L}$, and we initialize the edges with an empty set (lines 1–2). For each maximum timestamp that we encounter in the list, we start searching for successors in the following entries (lines 3–9), so we proceed in looking for the successors of $(id,a,o,\mathit{type})$ only if $\mathit{type}=\u2018\mathrm{MAX}\u2019$.
If, while searching for successors of the entry
$(id,a,o,\u2018\mathrm{MAX}\u2019)$, we encounter the entry
$(i{d}^{*},{a}^{*},{o}^{*},{\mathit{type}}^{*})$ corresponding to a minimum timestamp (
${\mathit{type}}^{*}=\u2018\mathrm{MIN}\u2019$), we connect
$(id,a,o)$ and
$(i{d}^{*},{a}^{*},{o}^{*})$ in the graph, since their timestamps do not have any possible value in common. The search for successors must continue, since it is possible that other events took place before the maximum timestamp of the event corresponding to
$(i{d}^{*},{a}^{*},{o}^{*},{\mathit{type}}^{*})$. This configuration occurs for events
${e}_{1}$ and
${e}_{3}$ in
Table 4. As can be seen in
Figure 8,
${e}_{3}$ can indeed follow
${e}_{1}$, but the still undiscovered event
${e}_{2}$ is another possible successor for
${e}_{1}$.
If the entry
$(i{d}^{*},{a}^{*},{o}^{*},{\mathit{type}}^{*})$ corresponds to a maximum timestamp (line 12), so
${\mathit{type}}^{*}=\u2018\mathrm{MAX}\u2019$, there are two separate situations to consider. Case 1:
$(id,a,o)$ was not already connected to
$(i{d}^{*},{a}^{*},{o}^{*})$. Then, the timestamps of the events corresponding to
$(id,a,o)$ and
$(i{d}^{*},{a}^{*},{o}^{*})$ overlap with each other—if they did not, the two nodes would have already been connected, since we would have encountered
$(i{d}^{*},{a}^{*},{o}^{*},\u2018\mathrm{MIN}\u2019)$ from
$(id,a,o,\u2018\mathit{MAX}\u2019)$ before encountering
$(i{d}^{*},{a}^{*},{o}^{*},\u2018\mathrm{MAX}\u2019)$. Thus,
$(id,a,o)$ must not be connected to
$(i{d}^{*},{a}^{*},{o}^{*})$ and the search must continue. Events
${e}_{3}$ and
${e}_{4}$ are an example: when the maximum timestamp of
${e}_{4}$ is encountered during the search for the successor of
${e}_{3}$, the two are not connected, so the search for a viable successor of
${e}_{3}$ has to continue. Case 2:
$(id,a,o)$ and
$(i{d}^{*},{a}^{*},{o}^{*})$ are already connected. This means that we had already encountered
$(i{d}^{*},{a}^{*},{o}^{*},\u2018\mathrm{MIN}\u2019)$ during the search for the successors of
$(id,a,o)$. Since the entire time interval representing the possible timestamp of the event associated with
$(i{d}^{*},{a}^{*},{o}^{*})$ is detected after the occurrence of
$(id,a,o)$, there are no further events to consider as successors of
$(id,a,o)$ and the search stops (line 13). In the running example, this happens between
${e}_{5}$ and
${e}_{6}$: when searching for the successors of
${e}_{5}$, we first connect it with
${e}_{6}$ when we encounter its minimum timestamp; we then encounter its maximum timestamp, so no other successive event can be a successor for
${e}_{5}$. This concludes the walkthrough of the procedure, which shows why Algorithms 1 and 2 can be used to correctly compute the behavior graph of a trace. The behavior graph of the trace in
Table 4 obtained through this procedure is shown in
Figure 9.
Let us now prove, in more formal terms, the correctness of these algorithms. We will show that the procedures BehaviorGraph and TimestampList are able to construct a behavior graph with the semantics illustrated in Definition 14.
Theorem 1 (Correctness of the behavior graph construction). Let $\sigma \in {\mathcal{T}}_{U}$ be an uncertain trace. Let $bg=(V,E)=$BehaviorGraph(TimestampList(σ)) be the behavior graph of σ obtained through Algorithms 1 and 2. The graph $bg$ follows the behavior graph semantics: for all pairs of events $e\in \sigma $ and ${e}^{\prime}\in \sigma $ such that $id\left(e\right)={e}_{id}$, ${\pi}_{a}\left(e\right)={e}_{a}$, ${\pi}_{o}\left(e\right)={e}_{o}$, $id\left({e}^{\prime}\right)={e}_{id}^{\prime}$, ${\pi}_{a}\left({e}^{\prime}\right)={e}_{a}^{\prime}$, ${\pi}_{o}\left({e}^{\prime}\right)={e}_{o}^{\prime}$, we have that the node $({e}_{id},{e}_{a},{e}_{o})$ is connected to the node $({e}_{id}^{\prime},{e}_{a}^{\prime},{e}_{o}^{\prime})$ if and only if ${\pi}_{{t}_{\mathrm{max}}}\left(e\right)<{\pi}_{{t}_{\mathrm{min}}}\left({e}^{\prime}\right)$ and there exists no event ${e}^{\u2033}\in \sigma $ such that ${\pi}_{{t}_{\mathrm{max}}}\left(e\right)<{\pi}_{{t}_{\mathrm{min}}}\left({e}^{\u2033}\right)\le {\pi}_{{t}_{\mathrm{max}}}\left({e}^{\u2033}\right)<{\pi}_{{t}_{\mathrm{min}}}\left({e}^{\prime}\right)$. Thus, $bg=\beta \left(\sigma \right)$.
Proof. Let us first define a suitable $id$ function for the behavior graph using the list $\mathbb{E}$ created in TimestampList(σ). For all events ${e}^{*}\in \sigma $ and for $i\in \mathbb{N}$ such that $\mathbb{E}\left[i\right]={e}^{*}$, we define $id\left({e}^{*}\right)=i$. Since $id$ is just an enumeration of the events in $\sigma $, it is trivially bijective.
$(\Leftarrow )$ Assume ${\pi}_{{t}_{\mathrm{max}}}\left(e\right)<{\pi}_{{t}_{\mathrm{min}}}\left({e}^{\prime}\right)$. By construction, we have that $\mathcal{L}=\langle \dots ,({e}_{id},{e}_{a},{e}_{o},\u2019\mathrm{MAX}\u2019),\dots ,({e}_{id}^{\prime},{e}_{a}^{\prime},{e}_{o}^{\prime},\u2019\mathrm{MIN}\u2019),\dots \rangle $. The checks in line 6 and line 10 only allow for edges to be linked from entries of type ‘MAX’ to entries of type ‘MIN’ that only appear in a later position in the list $\mathcal{L}$. Thus, the configuration ${\pi}_{{t}_{\mathrm{max}}}\left(e\right)<{\pi}_{{t}_{\mathrm{min}}}\left({e}^{\prime}\right)$ is a strict prerequisite for $({e}_{id},{e}_{a},{e}_{o})$ and $({e}_{id}^{\prime},{e}_{a}^{\prime},{e}_{o}^{\prime})$ to be connected: $(({e}_{id},{e}_{a},{e}_{o}),({e}_{id}^{\prime},{e}_{a}^{\prime},{e}_{o}^{\prime}))\in E\Rightarrow {\pi}_{{t}_{\mathrm{max}}}\left(e\right)<{\pi}_{{t}_{\mathrm{min}}}\left({e}^{\prime}\right)$.
$(\Rightarrow )$ Assume
${\pi}_{{t}_{\mathrm{max}}}\left(e\right)<{\pi}_{{t}_{\mathrm{min}}}\left({e}^{\prime}\right)$, and that the algorithm is currently searching the successors for the entry
$({e}_{id},{e}_{a},{e}_{o},\u2019\mathrm{MAX}\u2019)$. Eventually, the inner loop will consider as a successor the entry
$({e}_{id}^{\prime},{e}_{a}^{\prime},{e}_{o}^{\prime},\u2019\mathrm{MIN}\u2019)$, and since it is of type ‘MIN’,
$({e}_{id},{e}_{a},{e}_{o})$ and
$({e}_{id}^{\prime},{e}_{a}^{\prime},{e}_{o}^{\prime})$ will necessarily be connected unless the algorithm executes the
break at line 13. To execute it, the algorithm needs to find a list entry
$({e}_{id}^{\u2033},{e}_{a}^{\u2033},{e}_{o}^{\u2033},\u2019\mathrm{MAX}\u2019)$ such that there already exist an arc between
$({e}_{id},{e}_{a},{e}_{o})$ and
$({e}_{id}^{\u2033},{e}_{a}^{\u2033},{e}_{o}^{\u2033})$, and this is only possible if
$({e}_{id}^{\u2033},{e}_{a}^{\u2033},{e}_{o}^{\u2033},\u2019\mathrm{MIN}\u2019)$ has been encountered while searching for successors of
$({e}_{id},{e}_{a},{e}_{o})$. This implies that
which by construction of
$\mathcal{L}$, is only possible if there exist some
${e}^{\u2033}\in \sigma $ such that
□
As mentioned earlier, the procedure of constructing a behavior graph has been structured in two different algorithms specifically to enable further optimization in processing uncertain process trace. This becomes evident once we consider the problem of converting in behavior graphs all the traces in an event log, as opposed as one single uncertain trace.
First, it is important to notice that different uncertain traces can have the same list $\mathcal{L}$. Similarly to directlyfollows relationships in more classical process mining, which can ignore the amount of time in absolute terms elapsed between two consecutive events, specific values of timestamps in an uncertain trace are not necessarily meaningful with respect to the connection in the behavior graph; their order, conversely, is crucial.
This fact enables further optimization at the log level. The construction of the list $\mathcal{L}$ in (TimestampList(σ)) is engineered in a way that allows for computing the behavior graph without direct lookup to the events in the trace. This implies that it is possible to extract a multiset of lists $\mathcal{L}$ from the event log, and to compute the conversion to behavior graph only for the set of lists induced by this multiset. This allows the saving of computation time in converting an entire event log to behavior graphs; furthermore, it enables a more compact representation of the log in memory, since we only need to store a smaller number of graphs to represent the whole log.
The procedure to efficiently convert an event log into graphs is detailed in Algorithm 3.
These considerations allow us to extend to the uncertain scenario some concepts that are essential in classical process mining. First, we can now derive the definition of variant, highly important for preexisting process mining techniques, to uncertain event data.
Algorithm 3:ProcessUncertainLog 

Definition 15 (Uncertain variants). Let $L\subseteq {\mathcal{T}}_{U}$ be a simple uncertain event log. The variants of L denoted by ${\mathcal{V}}_{L}$, are the multisets of behavior graphs for the uncertain traces in L, and are computed with ProcessUncertainLog(L.).
The computational advantage in representing a log through a multiset of behavior graphs is evident in the procedure described in Algorithm 2. We see that all data necessary to the creation of a behavior graph is contained in the list $\mathcal{L}$, fact that justifies the log representation method illustrated in Algorithm 3.
Lemma 1. Two uncertain traces ${\sigma}_{1}\in L$ and ${\sigma}_{2}\in L$ belong to the same variant, and share the same behavior graph, if and only if they result in the same timestamp list $\mathcal{L}$:TimestampList$\left({\sigma}_{1}\right)=$TimestampList$\left({\sigma}_{2}\right)$.
Another central concept in process mining is the socalled controlflow perspective of event data. In certain process traces, where timestamps have a total order, events have a single activity label and no event is indeterminate, the controlflow information is represented by a sequence of activity labels sorted by timestamp. Although there are many analysis approaches that also account for other perspectives (e.g., the performance perspective that considers the duration of events and their distance in time, or the resource perspective that accounts for the agents that execute the activities), a vast amount of process mining techniques, including most popular algorithms for process discovery and conformance checking, rely only on the controlflow perspective of a process. Analogously, behavior graphs carry over the controlflow information of an uncertain trace: instead of describing the flow of events like their certain counterpart, the behavior graph describes all possible flows of events in the uncertain trace.