TRANSIT_COLUMN
Description
TRANSIT_COLUMN computes transition edges between related cases from two different processes.
The TRANSIT_COLUMN operator provides transitions showing where activities of two processes interact. The type of interaction is defined by the miner that is placed as input to the TRANSIT_COLUMN operator. All available miners are described in detail below in the miner section. For calculating transitions between two cases, the corresponding tables have to be linked in the Data Model Editor. In general, there are two scenarios how the activity tables can be linked in the data model. The following section describes these two scenarios.
1:n Scenario
Given two activity tables whose case tables are connected directly or indirectly via a 1:n relationship, the transit column operator computes the edges that visualize the interaction between the two related cases. The resulting columns belong to special edge tables ('Transit Table 1' and 'Transit Table N' in the figure below) that are joined to corresponding activity tables. One row in the edge table corresponds to one transition.
The two case tables can also be identical like shown in the following picture.
n:m Scenario
Given two activity tables ('Activity Table Left' and 'Activity Table Right') whose case tables ('Case Table Left' and 'Case Table Right') are in a n:m relationship which is e.g. modeled via two 1:n relationships and an intermediate table 'Intermediate Table' as shown below, the TRANSIT_COLUMN
operator computes the edges that visualize the interaction between the two related cases. The resulting columns belong to special edge tables ('Transit Table Left' and 'Transit Table Right') that are joined to corresponding activity tables. One row in the edge table corresponds to one transition.
Given a more complex n:m scenario shown below, the n:m relationship is modeled via multiple intermediate tables ('Intermediate Table A', 'Intermediate Table B' and 'Intermediate Table C') and the join from 'Case Table Left' to 'Case Table Right' is calculated transitively over these intermediate tables. TRANSIT_COLUMN
computes the edges that visualize the interaction between the two related cases. The resulting columns belong to special edge tables ('Transit Table Left' and 'Transit Table Right' in the figure below) that are joined to corresponding activity tables. One row in the edge table corresponds to one transition. This behavior is analog to the simpler n:m case described above.
Miners
Currently, there are four miners implemented. Two miners compute the edges based on the timestamps of the events in the related cases, the interleaved and the non-interleaved miner. For these miners, the direction of the edges can be retrieved by comparing the timestamps. The third miner computes the edges based on an additional message and is called the match miner. The fourth miner computes the edges based on manually defined connections.
Tie resolution on timestamps: If both event logs have a sorting column of type integer defined, the sorting column is used to resolve ties. Otherwise or if there is still a tie, the following logic applies: For 1:n cases, the event on the rn side is treated as if it comes first. For n:m cases, the event on the left side (as specified by the miner parameters) is treated as if it comes first.
Interleaved miner
The interleaved miner outputs an edge for every transition from one case to the other.
Syntax
TRANSIT_COLUMN(TIMESTAMP_INTERLEAVED_MINER(activity_table_a.activity_column, activity_table_b.activity_column), activity_column )
activity_column: A column of activity table activity_table_a or activity_table_b.
Example
[1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
[2] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
[3] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
[4] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Non-interleaved miner
The non-interleaved miner outputs the first transition (same edge as interleaved miner). Furthermore, the last transition in the opposite direction is output if such a transition exists.
Syntax
TRANSIT_COLUMN(TIMESTAMP_NONINTERLEAVED_MINER(activity_table_a.activity_column, activity_table_b.activity_column), activity_column )
activity_column: A column of activity table activity_table_a or activity_table_b.
Example
[5] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Match miner
The match miner outputs an edge for every matched message from one case.
Syntax
TRANSIT_COLUMN(MATCH_MINER(activity_table_a.activity_column, activity_table_b.activity_column, activity_table_a.out_msg, activity_table_b.in_msg), activity_column )
activity_column: A column of activity table activity_table_a or activity_table_b.
Example
[6] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
[7] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Manual Miner
The manual miner outputs an edge for every manually set combination.
Syntax
TRANSIT_COLUMN(MANUAL_MINER(activity_table_a.activity_column, activity_table_b.activity_column, [manual_value_1, manual_value_2], ...), activity_column )
activity_column: A column of activity table activity_table_a or activity_table_b.
Examples
[8] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
[9] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|