Slides of the presentation held at the Humboldt University of Berlin on 2016, December the 7th.
Abstract:
The declarative modelling of business processes is based upon the specification of behavioural rules that constrain the work-flows enactment. It is meant not to explicitly specify every possible execution path from the beginning to the end: The carry-out of the process is up to the actors, who can vary the execution dynamics as long as they do not violate the constraints imposed by the declarative model. The constraints specify the conditions that require or forbid the execution of activities, either considering them singularly or depending on the occurrence of other ones. In this talk, the recent advancements in the automated discovery of declarative control flows from event logs are discussed, together with open challenges in the field.
7. 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 7
11. Declarative process modelling
“Open model”
Specify constraints for
permitted behaviour
Every execution that
complies with them is
acceptable
Works best with flexible
processes
The set of DECLARE
templates is extendible
SEITE 11
12. A fragment of declarative
process model
If an abstract is submitted, a new paper
had been written or will be written
After the paper submission, a
confirmation email is sent
After the paper submission, the paper
will be reviewed;
there can be no review without a
preceding submission
A paper can be accepted only after it has
been reviewed
After the rejection, no further
submission follows
Paper cannot be both accepted and
rejected
SEITE 12
Submit abstract Write new paper
Submit paper
Send
confirmation
email
Submit paper Review paper
Review paper Accept paper
Reject paper Submit paper
Accept paper Reject paper
= activation task
Responded existence(Submit abstract, Write new
paper)
Response(Submit paper, Send confirmation email)
Succession(Submit paper, Review paper)
Precedence(Review paper, Accept paper)
Not succession(Reject paper, Submit paper)
Not co-existence(Accept paper, Reject paper)
Template Tasks
13. A fragment of declarative
process model
SEITE 13
Submit abstract
Write new paper Submit paper
Send
confirmation
email
Review paper Accept paper
Reject paper
14. Declare:
Existence Constraint Templates
Existence(n, A)
Activity A occurs at least n times in the process instance
BCAAC ✓ BCAAAC ✓ BCAC ✗ (for n = 2)
Absence(A)
Activity A does not occur in the process instance
BCC ✓ BCAC ✗
Absence(n+1, A)
Activity A occurs at most n-1 times in the process instance
BCAAC ✗ BCAC ✓ BCC ✓ (for n = 2)
Exactly(n, A)
Activity A occurs exactly n times in the process instance
BCAAC ✓ BCAAAC ✗ BCAC ✗ (for n = 2)
Init(A)
Activity A is the first to occur in each process instance
BCAAC ✗ ACAAAC ✓ BCC ✗
Absence(2, A) ≡ AtMostOne(A)
Existence(1, A) ≡ Participation(A)
SEITE 14
16. 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 ✓
SEITE 16
17. 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 ✓
SEITE 17
18. 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
19. 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
20. Declare:
Relation Constraint Templates
CoExistence(A, B) ≡ Resp’dEx.(A, B) ∧ Resp’dEx.(B, A)
If B occurs in the process instance, then A occurs, and viceversa
CAC ✗ CAACB ✓
BCAC ✓ BCC ✗
Succession(A, B) ≡ Response(A, B) ∧ Precedence(A, B)
A occurs if and only if it is followed by B in the process instance
BCAAC ✗ CAACB ✓
CAC ✗ BCC ✗
AlternateSuccession(A, B) ≡ Alt.Resp.(A, B) ∧ Alt.Prec.(A, B)
A and B occur in the process instance if and only if the latter
follows the former, and they alternate each other in the trace
BCAAC ✗ CAACB ✗ CACB ✓
CABCA ✗ BCC ✗ CACBAB ✓
ChainSuccession(A, B) ≡ ChainResp.(A, B) ∧ ChainPrec.(A, B)
A and B occur in the process instance if and only if the latter
immediately follows the former
BCAAC ✗ BCAABC ✗ CABABC ✓
Activation Target
Target Activation
21. Declare: Negative
Relation Constraint Templates
NotCoExistence(A, B)
A and B never occur together in the process instance
CAC ✓ CAACB ✗
BCAC ✗ BCC ✓
NotSuccession(A, B)
A can never occur before B in the process instance
BCAAC ✓ CAACB ✗
CAC ✓ BCC ✓
NotChainSuccession(A, B)
A and B occur in the process instance if and only if the latter
does not immediately follows the former
BCAAC ✓ BCAABC ✗ CBACBA ✓
Activation Target
Target Activation
26. Mining declarative processes
RespondedExistence(A, B) ?
RespondedExistence(A, C) ?
…
Response(A, B) ?
Response(A, C) ?
…
SEITE 26
• Support:
fraction of cases fulfilling the constraint
• Confidence:
support scaled by fraction of traces in
which the activation occurs
• Interest factor:
confidence scaled by fraction of traces in
which the target occurs
Support Conf. I.F.
27. Mining declarative processes
RespondedExistence(A, B) ?
RespondedExistence(A, C) ?
…
Response(A, B) ?
Response(A, C) ?
…
SEITE 27
Support Conf. I.F.
• Support:
fraction of cases fulfilling the constraint
• Confidence:
support scaled by fraction of traces in
which the activation occurs
• Interest factor:
confidence scaled by fraction of traces in
which the target occurs
28. Mining declarative processes
RespondedExistence(A, B)
RespondedExistence(A, C)
…
Response(A, B) ?
Response(A, C)
…
SEITE 28
Support Conf. I.F.
• Support:
fraction of cases fulfilling the constraint
• Confidence:
support scaled by fraction of traces in
which the activation occurs
• Interest factor:
confidence scaled by fraction of traces in
which the target occurs
29. Mining declarative processes
RespondedExistence(A, B)
RespondedExistence(A, C)
…
Response(A, B)
Response(A, C)
…
SEITE 29
Support Conf. I.F.
• Support:
fraction of cases fulfilling the constraint
• Confidence:
support scaled by fraction of traces in
which the activation occurs
• Interest factor:
confidence scaled by fraction of traces in
which the target occurs
30. Constraints mining
An example
SEITE 30
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
31. The role of Support
(event-based)
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 31
http://github.com/cdc08x/minerful
Prom Nightly Builds > “Declare MINERful” plug-in
32. The role of Support
(trace-based)
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.818 (9/11)
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”
SEITE 32 http://sourceforge.net/projects/prom/files/ProM/6.3
36. Make mined models
intelligible
Prune irrelevant/redundant information
Detect inconsistencies (yes, it happens)
Picture what the model tells
Increase the expressiveness of discovered
models
Specify templates
SEITE 36
38. Redundancies in discovered
constraints
E.g.,
A trace like
A B A B C A B C C
satisfies (w.r.t. A and B):
RespondedExistence(A, B), RespondedExistence(B, A),
Response(A, B), AlternateResponse(A, B), ChainResponse(A, B),
Precedence(A, B), AlternatePrecedence(A, B), ChainPrecedence(A, B),
CoExistence(A, B), CoExistence(B, A),
Succession(A, B), AlternateSuccession(A, B), ChainSuccession(A, B)
Among them, the mining algorithm should return only
the most restricting constraint – i.e., ChainSuccession(A, B)
In order to face this issue, returned constraints
are pruned on the basis of the subsumption
hierarchy of constraints
SEITE 38
43. Mining declarative processes
RespondedExistence(A, B)
RespondedExistence(A, C)
…
Response(A, B)
Response(A, C)
…
SEITE 43
Support Conf. I.F.
http://github.com/cdc08x/minerful
Prom Nightly Builds > “Declare MINERful” plug-in
http://sourceforge.net/projects/prom/files/ProM/6.3
44. Make mined models
intelligible
Prune irrelevant/redundant information
Detect inconsistencies (yes, it happens)
Picture what the model tells
Increase the expressiveness of discovered
models
Specify templates
SEITE 44
45. Make mined models
intelligible
Prune irrelevant/redundant information
Detect inconsistencies (yes, it happens)
Picture what the model tells
Increase the expressiveness of discovered
models
Specify templates
Interlude
DECLARE & Regular Expressions
SEITE 45
48. From constraints-based model
to FSA
SEITE 48
[^a]*((a.*b.*)|(b.*a.*))*[^a]* [^a]*(a.*c)*[^a]*
Regular
Expression
Deterministic
Finite
State
Automaton
RespondedExistence(A, B)
RespondedExistence(A, C)
and
Response(A, B)
Response(A, C)
and
…
49. Make mined models
intelligible
Prune irrelevant/redundant information
Detect inconsistencies (yes, it happens)
Picture what the model tells
Increase the expressiveness of discovered
models
Reprise
SEITE 49
53. The problem
When support threshold is lower than 100%,
constraints can be valid through most of the log, though being in conflict
Example: an event log consists of two traces:
1. <A, B, A, B, A, B, C>
2. <A, B, A, B, A, C>
Support threshold: 0.7
• a is always the first
Init(A)
• c is always the last
End(C)
• In 6 cases over 8 (75%), a and c do not directly follow
each other
NotChainSuccession(A, C)
• In 5 cases over 7 (71.143%), b and c do not directly follow
each other
NotChainSuccession(B, C)
SEITE 53
54. The problem
When support threshold is lower than 100%,
constraints can be valid through most of the log, though being in conflict
Example: an event log consists of two traces:
1. <A, B, A, B, A, B, C>
2. <A, B, A, B, A, C>
Support threshold: 0.7
• a is always the first
Init(A)
• c is always the last
End(C)
• In 6 cases over 8 (75%), a and c do not directly follow
each other
NotChainSuccession(A, C)
• In 5 cases over 7 (71.143%), a and b do not directly follow
each other
NotChainSuccession(B, C)
Question: what can be done right before C?
inconsistency!
SEITE 54
55. The algorithm to detect
inconsistencies
SEITE 55
Init(a)
Participation(b)
AtMostOne(c)
End(c)
ChainPrecedence(a, b)
…
ChainSuccession(a, b)
Response(a, b)
ChainResponse(b, a)
NotChainSuccession(a, c)
ChainSuccession(b, a)
NotChainSuccession(b, c)
…
…
…
1
56. The algorithm to detect
inconsistencies
Init(a)
Participation(b)
AtMostOne(c)
End(c)
ChainPrecedence(a, b)
…
ChainSuccession(a, b)
Response(a, b)
ChainResponse(b, a)
NotChainSuccession(a, c)
ChainSuccession(b, a)
NotChainSuccession(b, c)
…
…
…
1
2
SEITE 56 http://github.com/cdc08x/minerful
59. The application of the method
to minimise the model
Rationale:
1. How to find redundancies among constraints?
Use the automaton-model correspondence
Same language recognised after the product?
Main difference with the inconsistency-
checking algorithm
Constraints having support 100% are checked for
redundancies
More details in the paper
SEITE 59 http://github.com/cdc08x/minerful
61. Make mined models
intelligible
Prune irrelevant/redundant information
Detect inconsistencies (yes, it happens)
Picture what the model tells
Inspect the imperative counterpart
Simulate runs
Increase the expressiveness of discovered
models
Specify templates
SEITE 61
62. From declarative to imperative
models
SEITE 62
Response(Queued, Accepted)
NotChainSuccession(Queued, Completed)
Response(Queued, Completed)
NotChainSuccession(Queued, Unmatched)
Response(Accepted, Completed)
End(Completed)
NotSuccession(Completed, Unmatched)
AtMostOne(Unmatched)
RespondedExistence(Unmatched, Accepted)
AlternateResponse(Unmatched, Completed)
…
63. Make mined models
intelligible
Prune irrelevant/redundant information
Detect inconsistencies (yes, it happens)
Picture what the model tells
Inspect the imperative counterpart
Simulate runs
Increase the expressiveness of discovered
models
Specify templates
SEITE 63
64. Generation of logs
SEITE 64
http://github.com/cdc08x/minerful
http://github.com/processmining/synthetic-log-generator
65. Make mined models
intelligible
Prune irrelevant/redundant information
Detect inconsistencies (yes, it happens)
Picture what the model tells
Inspect the imperative counterpart
Simulate runs
Increase the expressiveness of discovered
models
Specify templates
SEITE 65
66. Target-Branched Declare
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 66
Activation
Target
Branching factor = 2
70. Make mined models
intelligible
Prune irrelevant/redundant information
Detect inconsistencies (yes, it happens)
Picture what the model tells
Inspect the imperative counterpart
Simulate runs
Increase the expressiveness of discovered
models
Specify templates
SEITE 70
71. Semantics of Declare:
LTL and LTLf
Linear Temporal Logic (LTL) initially was a
specification language for the execution of
(endless) concurrent programs (Pnueli, 1977)
Syntax (let A be a propositional symbol):
DECLARE was initially based on LTL
SEITE 71
“Until”
“Eventually”“Always”
“Next”
73. Declarative process modelling
“Open model”
Specify constraints for
permitted behaviour
Every execution that
complies with them is
acceptable
Works best with flexible
processes
The set of DECLARE
templates is extendible
SEITE 73
75. Semantics of Declare:
LTL and LTLf
Linear Temporal Logic (LTL) initially was a
specification language for the execution of
(endless) concurrent programs (Pnueli, 1977)
Syntax (let A be a propositional symbol):
Interpretation over infinite traces,
i.e., an infinite sequence of consecutive instants of time
LTLf formulae are meant to be interpreted over
finite traces
“Until”
“Eventually”“Always”
“Next”
SEITE 75
81. More alternatives for DECLARE
spec.: A clear business impact
SEITE 81
Source: http://businessconsultantsnewyork.blogspot.co.at/
82. My long-term objective
Establish an algebra of constraint templates,
built on a basis of behavioural relations that
are:
orthogonal to one another (no entailments,
subsumptions…)
covering multiple trace-based behavioural relations
definition languages by linear composition
have clear semantics (last but for sure NOT least)
...
SEITE 82
83. Further reading
Presented:
About MINERful:
Claudio Di Ciccio, Massimo Mecella: On the Discovery of Declarative Control Flows for Artful Processes. ACM Trans.
Management Inf. Syst. 5(4): 24:1-24:37 (2015)
Simulation of DECLARE models:
Claudio Di Ciccio, Mario Luca Bernardi, Marta Cimitile, Fabrizio Maria Maggi: Generating Event Logs Through the
Simulation of Declare Models. EOMAS@CAiSE 2015: 20-36
Discovery of target-branched DECLARE models:
Claudio Di Ciccio, Fabrizio Maria Maggi, Jan Mendling: Efficient discovery of Target-Branched Declare constraints. Inf.
Syst. 56: 258-283 (2016)
Getting rid of redundancies and inconsistencies:
Claudio Di Ciccio, Fabrizio Maria Maggi, Marco Montali, Jan Mendling: Ensuring Model Consistency in Declarative
Process Discovery. BPM 2015: 144-159
From DECLARE to Petri nets:
Johannes Prescher, Claudio Di Ciccio, Jan Mendling: From Declarative Processes to Imperative Models. SIMPDA 2014:
162-173
More:
First steps towards data awareness of discovered DECLARE models:
Stefan Schönig, Claudio Di Ciccio, Fabrizio Maria Maggi, Jan Mendling: Discovery of Multi-perspective Declarative
Process Models. ICSOC 2016: 87-103
Against the little learnibility of DECLARE:
Michael Hanser, Claudio Di Ciccio, Jan Mendling: A New Notational Framework for Declarative Process Modeling.
Softwaretechnik-Trends 36(2) (2016)
Guarantee of the significance of discovered DECLARE models:
Fabrizio Maria Maggi, Marco Montali, Claudio Di Ciccio, Jan Mendling: Semantical Vacuity Detection in Declarative
Process Mining. BPM 2016: 158-175
SEITE 83