Presented at the 12th International Conference on Business Process Management (BPM 2014), 7-11 September 2014, Eindhoven, The Netherlands.
Abstract: Process discovery is the task of generating models from event logs. Mining processes that operate in an environment of high variability is an ongoing research challenge because various algorithms tend to produce spaghetti-like models. This is particularly the case when procedural models are generated. A promising direction to tackle this challenge is the usage of declarative process modelling languages like Declare, which summarise complex behaviour in a compact set of behavioural constraints. However, Declare constraints with branching are expensive to be calculated.In addition, it is often the case that hundreds of branching Declare constraints are valid for the same log, thus making, again, the discovery results unreadable. In this paper, we address these problems from a theoretical angle. More specifically, we define the class of Target- Branched Declare constraints and investigate the formal properties it exhibits. Furthermore, we present a technique for the efficient discovery of compact Target-Branched Declare models. We discuss the merits of our work through an evaluation based on a prototypical implementation using both artificial and real-world event logs.
24. Declarative modelling of
processes
Usage of constraints
“Open model”
Declare
state-of-the-art language
If A is performed,
B must be performed,
no matter if before or afterwards
(responded existence)
Whenever B is performed,
C must be performed afterwards
and B can not be repeated
until C is done
(alternate response)
SEITE 24
25. Declare:
Relation Constraint Templates
RespondedExistence(A, B)
If A occurs in the process instance, then B occurs as well
CAC ✗ CAACB ✓
BCAC ✓ BCC ✓
Response(A, B)
If A occurs in the process instance, then B occurs after A
BCAAC ✗ CAACB ✓
CAC ✗ BCC ✓
AlternateResponse(A, B)
Each time A occurs in the process instance, then B occurs
afterwards, before A recurs
BCAAC ✗ CAACB ✗ CACB ✓
CABCA ✗ BCC ✓ CACBBAB ✓
ChainResponse(A, B)
Each time A occurs in the process instance, then B occurs
immediately afterwards
BCAAC ✗ BCAABC ✗ BCABABC ✓
Activation Target
26. Declare:
Relation Constraint Templates
RespondedExistence(B, A)
If B occurs in the process instance, then A occurs as well
CAC ✓ CAACB ✓
BCAC ✓ BCC ✗
Precedence(A, B)
B occurs in the process instance only if preceded by A
BCAAC ✗ CAACB ✓
CAC ✓ BCC ✓
AlternatePrecedence(A, B)
Each time B occurs in the process instance, it is preceded by A
and no other B can recur in between
BCAAC ✗ CAACB ✓ CACB ✓
CABCA ✓ BCC ✗ CACBAB ✓
ChainPrecedence(A, B)
Each time B occurs in the process instance, then B occurs
immediately beforehand
BCAAC ✗ BCAABC ✗ CABABCA ✓
Target Activation
28. Constraints mining
An example
SEITE 28
A A B C A B C A C B C D
A C C A B B C B C A C B B D
C C C C C A A B C A A B A A B
A B B B D
C B A B D
A B B D
A A A C A C B D
A B C D
C A B A A C C B B D
B C C D
C A A C C C A A B C B C C B D
29. The role of Support
A A B C A B C A C B C D
A C C A B B C B C A C B B D
C C C C C A A B C A A B A A B
A B B B D
C B A B D
A B B D
A A A C A C B D
A B C D
C A B A A C C B B D
B C C D
C A A C C C A A B C B C C B D
Support for
Response(A, B)
1.0
Precedence(A, B)
0.926 (25/27)
Pruning on the basis of a
support threshold
E.g., 0.95
A threshold equal to 1.0
for a constraint means
“always valid in the log”
Activation
Target
Target
Activation
SEITE 29
30. Target-Branched Declare
Response(A, {B,C})
If A occurs in the trace,
then B or C occur
afterwards
AADB BCAAC
CABD CAABC
BCAA BCBDCC
Precedence({A,C}, B)
If B occurs in the trace,
then A or C occur
beforehand
AADB BCAAC
CABD CCCBC
BCAA BCBDCC
Target
Target
Target
Activation
Activation
Target
SEITE 30
31. The expressive power of
TBDeclare
SEITE 31
B A A B A B C D
A A D B B A A D C
B A D D A D D A B E
C A B C
D A D B D
A E A C
A A A D B
D A D D B D
A A A D C D
A D D D A C
A A B
E D E B C E E C B E
32. The expressive power of
TBDeclare
SEITE 32
B A A B A B C D
A A D B B A A D C
B A D D A D D A B E
C A B C
D A D B D
A E A C
A A A D B
D A D D B D
A A A D C D
A D D D A C
A A B
E D E B C E E C B E
33. The expressive power of
TBDeclare
B A A B A B C D
A A D B B A A D C
B A D D A D D A B E
C A B C
D A D B D
A E A C
A A A D B
D A D D B D
A A A D C D
A D D D A C
A A B
E D E B C E E C B E
Support for
Response(A, B)
0.640 (16/25)
SEITE 33
34. B A A B A B C D
A A D B B A A D C
B A D D A D D A B E
C A B C
D A D B D
A E A C
A A A D B
D A D D B D
A A A D C D
A D D D A C
A A B
E D E B C E E C B E
The expressive power of
TBDeclare
Support for
Response(A, B)
0.640 (16/25)
Response(A, C)
0.600 (15/25)
SEITE 34
35. B A A B A B C D
A A D B B A A D C
B A D D A D D A B E
C A B C
D A D B D
A E A C
A A A D B
D A D D B D
A A A D C D
A D D D A C
A A B
E D E B C E E C B E
The expressive power of
TBDeclare
Support for
Response(A, B)
0.640 (16/25)
Response(A, C)
0.600 (15/25)
RespondedExistence(A, B)
0.720 (18/25)
RespondedExistence(A, C)
0.600 (15/25)
Precedence(A, B)
0.714 (10/14)
SEITE 35
…
36. The expressive power of
TBDeclare
Support for
Response(A, B)
0.640 (16/25)
Response(A, C)
0.600 (15/25)
No non-branched
constraint is valid in the
whole log
(no Support eq. to 1)
No Response constraint has
Support higher than 0.75
B A A B A B C D
A A D B B A A D C
B A D D A D D A B E
C A B C
D A D B D
A E A C
A A A D B
D A D D B D
A A A D C D
A D D D A C
A A B
E D E B C E E C B E
SEITE 36
37. The expressive power of
TBDeclare
B A A B A B C D
A A D B B A A D C
B A D D A D D A B E
C A B C
D A D B D
A E A C
A A A D B
D A D D B D
A A A D C D
A D D D A C
A A B
E D E B C E E C B E
SEITE 37 Threshold 0.75
39. The expressive power of
TBDeclare
Support for
Response(A, {B, C})
1.0
B A A B A B C D
A A D B B A A D C
B A D D A D D A B E
C A B C
D A D B D
A E A C
A A A D B
D A D D B D
A A A D C D
A D D D A C
A A B
E D E B C E E C B E
SEITE 39
42. Amount of constraints
B A A B A B C D
A A D B B A A D C
B A D D A D D A B E
C A B C
D A D B D
A E A C
A A A D B
D A D D B D
A A A D C D
A D D D A C
A A B
E D E B C E E C B E
Support for
Response(A, {B, C}),
Response(A, {B, C, E}),
Response(A, {B, C, D}),
Response(A, {B, C, D, E}),
RespondedExistence(A, {B, C}),
RespondedExistence(A, {B, C, E}),
RespondedExistence(A, {B, C, D}),
RespondedExistence(A, {B, C, D, E}):
1.0
Redundant!
Constraints
set-
dominance-
based
pruning
Constraints
subsumpt’n-
based
pruning
SEITE 42
Redundant!
43. Amount of constraints
B A A B A B C D
A A D B B A A D C
B A D D A D D A B E
C A B C
D A D B D
A E A C
A A A D B
D A D D B D
A A A D C D
A D D D A C
A A B
E D E B C E E C B E
Support for
Response(A, {B, C}),
Response(A, {B, C, E}),
Response(A, {B, C, D}),
Response(A, {B, C, D, E}),
RespondedExistence(A, {B, C}),
RespondedExistence(A, {B, C, E}),
RespondedExistence(A, {B, C, D}),
RespondedExistence(A, {B, C, D, E}):
1.0
Redundant!
Constraints
set-
dominance-
based
pruning
Constraints
subsumpt’n-
based
pruning
SEITE 43
Redundant!
49. Redundant!
Amount of constraints
B A A B A B C D
A A D B B A A D C
B A D D A D D A B E
C A B C
D A D B D
A E A C
A A A D B
D A D D B D
A A A D C D
A D D D A C
A A B
E D E B C E E C B E
Support for
Response(A, {B, C}),
Response(A, {B, C, E}),
Response(A, {B, C, D}),
Response(A, {B, C, D, E}),
RespondedExistence(A, {B, C}),
RespondedExistence(A, {B, C, E}),
RespondedExistence(A, {B, C, D}),
RespondedExistence(A, {B, C, D, E}):
1.0
Constraints
set-
dominance-
based
pruning
Constraints
subsumpt’n-
based
pruning
SEITE 49
Redundant!
61. Conclusions
What we saw:
Properties of TBDeclare constraints
Mining TBDeclare models
Reducing the number of returned items
Effectiveness and performance evaluation
More in the paper:
Algorithm for computing support
Proof of set-dominance property for TBDeclare constraints
Future work:
Better performance for Alternate-* constraints
Branched Declare mining
Inclusion of data into the mining process
SEITE 61
62. Discovering
Target-Branched Declare Constraints
Claudio Di Ciccio, Fabrizio Maria Maggi, and Jan Mendling
12th International Conference on Business Process Management
Eindhoven, The Netherlands
claudio.di.ciccio@wu.ac.at