1 Introduction
Id  Activity  Timestamp  Item  Order  Package  Delivery  Resource  Prepaidamount  weight  Totalweight 

\(e_1\)  Place order  20200709 08:20:01.527+01:00  { \(i_1\), \(i_2\) }  { \(o_1\) }  Alessandro  200.0  
\(e_2\)  Check availability  20200709 08:21:01.527+01:00  { \(i_1\) }  Anahita  10.0  
\(e_3\)  Check availability  20200709 08:22:01.527+01:00  { \(i_2\) }  Anahita  20.0  
\(e_4\)  Create package  20200709 08:21:01.527+01:00  { \(i_1\) }  { \(p_1\) }  Miriam  10.0  
\(e_5\)  Create package  20200709 08:21:01.527+01:00  { \(i_2\) }  { \(p_2\) }  Tobias  20.0  
\(e_6\)  Load package  20200709 08:23:01.527+01:00  { \(p_1\), \(p_2\) }  { \(d_1\) }  Marco  30.0  
\(e_7\)  Delivery successful  20200709 08:23:01.527+01:00  { \(d_1\) }  Marco  30.0  
\(e_8\)  Order completed  20200709 08:24:01.527+01:00  { \(o_1\) }  Alessandro 
Id  Type  Customer  Costs  Color  Size  Ensured  Priority 

\(o_1\)  Order  Apple  3500.0  
\(i_1\)  Item  Orange  Big  
\(i_2\)  Item  Green  Small  
\(p_1\)  Package  Yes  
\(p_2\)  Package  No  
\(d_1\)  Delivery  High 

The exploration of objectcentric event logs: its events and the lifecycle of its objects.

The filtering possibilities on objectcentric event logs.

Provide the automatic discovery of objectcentric process models with different complexity (less/more activities, less/more edges).

Describe meaningful annotations (number of events/objects) at the activity and the edge level.

Provide some conformance metrics on objectcentric event logs.
2 Background
2.1 Traditional event log

\({U_e}\) is the universe of event identifiers. Example: \({U_e} = \{ e_1, e_2, e_3, \ldots \}\)

\({U_c}\) is the universe of case identifiers. Example: \({U_c} = \{ c_1, c_2, \ldots \}\)

\({U_{act}}\) is the universe of activities. Example: \({U_{act}} = \) { place order, check availability, ...}

\({U_{timest}}\) is the universe of timestamps. Example: \({U_{timest}} = \) { 20200709T08:21:01.527+01:00, ...} We assume \({U_{timest}}\) to be totally ordered. Moreover, a difference − operation is defined for timestamps as the number of seconds separating the subtrahend from the minuend.

\(E \subseteq {U_e}\) is a set of events.

\(\pi _{act} : E \rightarrow {U_{act}}\) associates an activity to each event.

\(\pi _{time} : E \rightarrow {U_{timest}}\) associates a timestamp to each event.

\(\pi _{case} : E \rightarrow {\mathcal {P}}({U_c}) \setminus \{ \emptyset \}\) associates a nonempty set of cases to each event.

\(\le ~ \subseteq E \times E\) is a total order on E.

\(\pi _{act}(TL) = \{ \pi _{act}(e) ~ \arrowvert ~ e \in E \}\)

\(\pi _{case}(TL) = \cup _{e \in E} ~ \pi _{case}(e)\)

For \(c \in \pi _{case}(TL)\), \(case_{TL}(c) = \langle e_1, \ldots , e_n \rangle \) where:

\(\{ e_1, \ldots , e_n \} = \{ e \in E ~ \arrowvert ~ c \in \pi _{case}(e) \}\)

\(\forall _{1 \le i< n} ~ e_i < e_{i+1}\)


Given \(c \in \pi _{case}(TL)\) and \(case_{TL}(c) = \langle e_1, \ldots , e_n \rangle \):

\(\text {trace}_{TL}(c) = \langle \pi _{act}(e_1), \ldots , \pi _{act}(e_n) \rangle \)

\(\text {start}_{TL}(c) = \pi _{act}(e_1)\).

\(\text {end}_{TL}(c) = \pi _{act}(e_n)\).


\(\pi _{start}(TL) = \{ \text {start}_{TL}(c) ~ \arrowvert ~ c \in \pi _{case}(TL) \}\) is the set of start activities.

\(\pi _{end}(TL) = \{ \text {end}_{TL}(c) ~ \arrowvert ~ c \in \pi _{case}(TL) \}\) is the set of end activities.
2.2 Directlyfollows graphs

\(A \subseteq {U_{act}}\) is a set of activities.

\(\triangleright \) is the start node of the graph, \(\square \) is the end node of the graph.

\(F \subseteq \left( \{ \triangleright \} \cup A \right) \times \left( A \cup \{ \square \} \right) \) is the set of edges.

\(\pi _{freqn} : A \not \rightarrow \mathbb {N}\) is a frequency measure on the nodes.

\(\pi _{freqe} : F \not \rightarrow \mathbb {N}\) is a frequency measure on the edges.

\(A = \pi _{act}(TL)\) and$$\begin{aligned} F = \{ (\triangleright , \text {start}_{TL}(c)), (\text {end}_{TL}(c), \square ) ~ \arrowvert ~ c \in \pi _{case}(TL) \} \cup \\ \cup _{c \in \pi _{case}(TL), \text {trace}_{TL}(c) = \langle a_1, \ldots , a_n \rangle } \{ (a_i, a_{i+1}) ~ \arrowvert ~ 1 \le i < n \} \end{aligned}$$

For \(a \in A\), \(\pi _{freqn}(a) = \arrowvert \{ e \in E ~ \arrowvert ~ \pi _{act}(e) = a \} \arrowvert \)

For \((\triangleright , a) \in F\), \(\pi _{freqe}(\triangleright , a) = \arrowvert \{ c \in \pi _{case}(TL) ~ \arrowvert ~ \text {start}_{TL}(c) = a \} \arrowvert \)

For \((a, \square ) \in F\), \(\pi _{freqe}(a, \square ) = \arrowvert \{ c \in \pi _{case}(TL) ~ \arrowvert ~ \text {end}_{TL}(c) = a \} \arrowvert \)

For \((a, b) \in F \cap (A \times A)\),$$\begin{aligned}&\pi _{freqe}(a, b) = \sum _{\begin{array}{c} c \in \pi _{case}(TL),\\ \text {trace}_{TL}(c) = \langle a_1, \ldots , a_n \rangle \end{array}} \\&\quad \arrowvert \{ i \in \mathbb {N} ~ \arrowvert ~ 1 \le i < n ~ \wedge a_i = a ~ \wedge ~ a_{i+1} = b \} \arrowvert \end{aligned}$$
3 Approach
3.1 Objectcentric event log and flattening

\({U_{att}}\) is the universe of attribute names. Example: \({U_{att}} = \) { resource, weight, ...}

\({U_{val}}\) is the universe of attribute values. Example: \({U_{val}} = \) { 500, 1000, Mike, ...}

\({U_{typ}}\) is the universe of attribute types. Example: \({U_{typ}} = \) { string, integer, float, ...}

\({U_{o}}\) is the universe of object identifiers. Example: \({U_{o}} = \{ o_1, i_1, \ldots \} \)

\({U_{ot}}\) is the universe of objects types. Example: \({U_{ot}} = \) { order, item, ...}

\(E \subseteq {U_e}\) is the set of event identifiers. Example: the first event shown in Table 1 is related to the event identifier \(e_1\).

\(AT \subseteq {U_{typ}}\) is the set of attribute types. Example: the type of the attribute resource in Table 1 is string.

\(OT \subseteq {U_{ot}}\) is the set of object types. Example: in Table 2, for the first object, the type is order.

\(O \subseteq {U_{o}}\) is the set of object identifiers. Example: the first object in Table 2 is related to the object identifier \(o_1\).

\(\pi _{typ} : AN \cup AV \rightarrow AT\) is the function associating an attribute name or value to its corresponding type. Example: for the attributes in Table 1, \(\pi _{typ}(prepaidamount ) = float \), \(\pi _{typ} (200.0 ) = float \).

\(\pi _{act} : E \rightarrow {U_{act}}\) is the function associating an event (identifier) to its activity. Example: for the first event shown in Table 1, the activity is place order.

\(\pi _{time} : E \rightarrow {U_{timest}}\) is the function associating an event (identifier) to a timestamp. Example: for the first event shown in Table 1, the timestamp is 20200709T08:21:01.527+01:00.

\(\pi _{vmap}: E \rightarrow (AN \not \rightarrow AV)\) such thatis the function associating an event (identifier) to its attribute value assignments. Example: for the first event in Table 1\(, \pi _{vmap}(e_1)(prepaidamount )=200.0 \)$$\begin{aligned}&\pi _{typ}(n) = \pi _{typ}(\pi _{vmap}(e)(n)) \\&\forall e \in E ~ \forall n \in \text {dom}(\pi _{vmap}(e)) \end{aligned}$$

\(\pi _{omap} : E \rightarrow {\mathcal {P}}(O)\) is the function associating an event (identifier) to a set of related object identifiers. Example: the first event in Table 1 is related to three objects \(\pi _{omap}(e_1) = \{ o_1, i_1, i_2 \}\).

\(\pi _{otyp} \in O \rightarrow OT\) assigns precisely one object type to each object identifier. Example: for the first object in Table 2, \(\pi _{otyp}(o_1) = \) order.

\(\pi _{ovmap} : O \rightarrow (AN \not \rightarrow AV)\) such thatis the function associating an object to its attribute value assignments. Example: for the second object in Table 2, \(\pi _{ovmap}(i_2)(color ) = \) green.$$\begin{aligned}&\pi _{typ}(n) = \pi _{typ}(\pi _{ovmap}(o)(n)) \\&\forall n \in \text {dom}(\pi _{ovmap}(o)) ~ \forall o \in O \end{aligned}$$

\(\le \) is a total order (i.e., it respects the antisymmetry, transitivity, and connexity properties).

\(E^{ot} = \{ e \in E ~ \arrowvert ~ \exists _{o \in O} ~ \pi _{otyp}(o) = \text {ot} ~ \wedge ~ o \in \pi _{omap}(e) \}\)

\(\pi _{act}^{ot} = { {{\pi _{act}}\arrowvert }_{E^{ot}} }\)

\(\pi _{time}^{ot} = { {{\pi _{time}}\arrowvert }_{E^{ot}} }\)

For \(e \in E^{ot}\), \(\pi _{case}^{ot}(e) = \{ o \in \pi _{omap}(e) ~ \arrowvert ~ \pi _{otyp}(o) = ot \}\)

\(\le ^{ot} = \{ (e_1, e_2) \in \le ~ \arrowvert ~ \exists _{o \in O} ~ \pi _{otyp}(o) = \text {ot} ~ \wedge ~ o \in \pi _{omap}(e_1) \cap \pi _{omap}(e_2) \}\)

The lifecycle of an object \(o \in O\) as the sequence of events to which the object is related: \(\text {lif}(o) = \text {case}_{FL(L, \pi _{otyp}(o))}(o)\)

The trace of an object \(o \in O\) as the sequence of activities of the events belonging to its lifecycle: \(\text {trace}(o) = \text {trace}_{FL(L, \pi _{otyp}(o))}(o)\)

The start activity of an object \(o \in O\) as the first activity of its trace: \(\text {start}(o) = \text {start}_{FL(L, \pi _{otyp}(o))}(o)\)

The end activity of an object \(o \in O\) as the last activity of its trace: \(\text {end}(o) = \text {end}_{FL(L, \pi _{otyp}(o))}(o)\)
3.2 Filtering
3.3 Process discovery  OCDFG

They can be straightforwardly discovered from objectcentric event logs (flattening  discovery of DFG  collating).

They can be easily annotated, given that no replay operation is necessary.

A is a set of activities.

OT is a set of object types.

\(N = A \cup \{ n_{S,\text {ot}} ~ \arrowvert ~ ot \in OT \} \cup \{ n_{E,\text {ot}} ~ \arrowvert ~ ot \in OT \}\) is the set of nodes of the graph, which includes the set of activities and a start/end node for each object type (\(n_{S,\text {ot}}\) and \(n_{E,\text {ot}}\) respectively).

\(F \subseteq N \times OT \times N\) is a set of typed arcs.

\(\pi _{freqn} : A \not \rightarrow \mathbb {N}\) assigns a frequency to the activities.

\(\pi _{freqe} : F \not \rightarrow \mathbb {R}^{+} \cup \{ 0 \}\) assigns a frequency to the arcs.

The lifecycle of the objects with type DOCTYPE_Inquiry starts and ends with the activity “Create Quotation”.

The lifecycle of the objects with type DOCTYPE_Quotation starts with a “Create Quotation” activity, which can end the lifecycle of the quotation or lead to the “Create Order” activity.

The lifecycle of the objects with type DOCTYPE_Order allows for a “Create Order” activity, which can end the lifecycle of the order or lead to the “Create Goods Movement” activity.
3.4 Activity/Path metrics

The name of the activity.

The three frequency annotations (\(\mathbb {E}\), \({\mathbb {U}}{\mathbb {O}}\), \({\mathbb {T}}{\mathbb {O}}\)) on the overall log.

The three frequency annotations on the log filtered on the DOCTYPE_Order object type (which is colored blue).

The three frequency annotations on the log filtered on the DOCTYPE_Quotation object type (which is colored red).
4 Tool
4.1 OCPM (Webbased tool)

The top menu presents the different pages/features of the application.

The second menu presents some options, shown in Fig. 4(1), including the type of the process model:and the type of annotation:

Objectcentric directlyfollows multigraphs (described in Sect. 3.3).
Moreover, the filtering on object types, along with a filters chain functionality (which shows the active filters, with the possibility to remove them), is implemented in this menu (see Fig. 4(23)).
With the E/EC option, the process model is annotated using the measure \(\mathbb {E}\) for the activities and the measure \({\mathbb {E}}{\mathbb {C}}\) for the edges.

With the UO option, the process model is annotated using the measure \({\mathbb {U}}{\mathbb {O}}\) for the activities and the edges.

With the TO option, the process model is annotated using the measure \({\mathbb {T}}{\mathbb {O}}\) for the activities and the edges.


The right panel shows the process model.
4.2 OCPM (ProM framework)
5 Related work
5.1 Artifactcentric approaches
5.2 Objectcentric behavioral constraint models
5.3 Petri netsbased approaches

Unbounded dynamic synchronization of transitions.

Cardinality constraints limit the size of the synchronization.

Correlation of the token identities based on history.
5.4 Graph and process querying
5.5 Flatteningbased process discovery

Objectcentric directlyfollows graphs: in [7], the usage of objectcentric directlyfollows multigraphs is proposed to describe the activities of an objectcentric event log, and the interactions between them.

Objectcentric Petri nets: in [8], objectcentric Petri nets have been proposed to support a subset of the semantics of colored Petri nets. A discovery approach is proposed starting from objectcentric event logs, in which a flattened log is obtained for each object type, a mainstream process discovery algorithm (such as the alpha miner or the inductive miner) is applied on top of the flattened log, and the Petri nets are then collated together into an objectcentric Petri net. In the model, every place and arc is associated with a unique object type, and an arc can be allowed to consume/produce a single or multiple tokens.