Upload
claudio-di-ciccio
View
217
Download
0
Embed Size (px)
Citation preview
Ensuring Model Consistency in Declarative Process DiscoveryClaudio Di Ciccio, Fabrizio Maria Maggi, Marco Montali and Jan Mendling
13th International Conference on Business Process ManagementInnsbruck, Austria
Foreword
Event logsProcess discovery
Declarative process discovery
SEITE 2
The event log
Process model
SEITE 3
The event log
Process instance Event log
Trace
SEITE 4
The event log
EventTask
Process instance Event log
Trace
SEITE 5
The event log
SEITE 6
Event
The event log
SEITE 7
Event
The event log
SEITE 8
Event
The event log
Process instance Event log
Trace
SEITE 9
The event log
SEITE 10
Event
The event log
SEITE 11
Event
The event log
SEITE 12
Event
The event log
SEITE 13
Event
Process discovery
SEITE 14
Process discovery
SEITE 15
?
Mining flexible processes
Declarative process discovery
SEITE 17
?
Objective: understanding the constraints that best define the allowed behaviour of the process behind the event log
Declarative modelling ofprocesses
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 repeateduntil C is done
(alternate response)SEITE 18
Declare:existence templates
SEITE 19
Existence(n, A)Activity A occurs at least n times in the process instanceBCAAC ✓ BCAAAC ✓ BCAC ✗ (for n = 2)
Absence(A)Activity A does not occur in the process instanceBCC ✓ BCAC ✗
Absence(n+1, A)Activity A occurs at most n+1 times in the process instanceBCAAC ✗ BCAC ✓ BCC ✓ (for n = 2)
Exactly(n, A)Activity A occurs exactly n times in the process instanceBCAAC ✗ BCAAAC ✗ BCAC ✗ (for n = 2)
Init(A)Activity A is the first to occur in each process instanceBCAAC ✗ ACAAAC ✓ BCC ✗
Absence(2, A) AtMostOne(A)
Existence(1, A) Participation(A)
Subsumption hierarchy ofrelation Declare templates
SEITE 20
Declare: Forward-unidirectionalrelation constraint templates
RespondedExistence(A, B)If A occurs in the process instance, then B occurs as wellCAC ✗ CAACB ✓BCAC ✓ BCC ✓
Response(A, B)If A occurs in the process instance, then B occurs after ABCAAC ✗ CAACB ✓CAC ✗ BCC ✓
AlternateResponse(A, B)Each time A occurs in the process instance, then B occurs afterwards, before A recursBCAAC ✗ CAACB ✗ CACB ✓CABCA ✗ BCC ✓ CACBBAB ✓
ChainResponse(A, B)Each time A occurs in the process instance, then B occurs immediately afterwardsBCAAC ✗ BCAABC ✗ BCABABC ✓
Activation Target
Declare: Backward-unidirectionalrelation constraint templates
RespondedExistence(B, A)If B occurs in the process instance, then A occurs as wellCAC ✓ CAACB ✓BCAC ✓ BCC ✗
Precedence(A, B)B occurs in the process instance only if preceded by ABCAAC ✗ 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 betweenBCAAC ✗ CAACB ✓ CACB ✓CABCA ✓ BCC ✗ CACBAB ✓
ChainPrecedence(A, B)Each time B occurs in the process instance, then B occurs immediately beforehandBCAAC ✗ BCAABC ✗ CABABCA ✓
Target Activation
Declare:Coupling relation templates
CoExistence(A, B)If B occurs in the process instance, then A occurs, and viceversaCAC ✗ CAACB ✓BCAC ✓ BCC ✗
Succession(A, B)A occurs if and only if it is followed by B in the process instanceBCAAC ✗ CAACB ✓CAC ✗ BCC ✗
AlternateSuccession(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 traceBCAAC ✗ CAACB ✗ CACB ✓CABCA ✗ BCC ✗ CACBAB ✓
ChainSuccession(A, B)A and B occur in the process instance if and only if the latter immediately follows the formerBCAAC ✗ BCAABC ✗ CABABC ✓
Target Activation
Activation Target
Declare:negative relation constraints
NotCoExistence(A, B)A and B never occur together in the process instanceCAC ✓ CAACB ✗BCAC ✗ BCC ✓
NotSuccession(A, B)A can never occur before B in the process instanceBCAAC ✓ 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 formerBCAAC ✓ BCAABC ✗ CBACBA ✓
Target Activation
Activation Target
Mining declarative processes:ingredients
“Submit draft”,“Write deliverable”,“Organise agenda”,…
SEITE 25
a,b,c,…
Activities Process alphabet
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.
Threshold
Threshold
Threshold
Mining declarative processes
RespondedExistence(a,b) ?RespondedExistence(a,c) ?…Response(a,b) ?Response(a,c) ?…
SEITE 27
Support Conf. I.F.
Mining declarative processes
RespondedExistence(a,b) RespondedExistence(a,c) ?…Response(a,b) ?Response(a,c) …
SEITE 28
Support Conf. I.F.
Mining declarative processes
RespondedExistence(a,b) RespondedExistence(a,c) ?…Response(a,b) Response(a,c) …
SEITE 29
Support Conf. I.F.
Mining declarative processes
RespondedExistence(a,b) RespondedExistence(a,c) …Response(a,b) Response(a,c) …
SEITE 30
Support Conf. I.F.
Mining declarative processes
RespondedExistence(a,b)RespondedExistence(a,c) andResponse(a,b) Response(a,c)and…
SEITE 31
From constraints-based model to FSA
RespondedExistence(a,b)RespondedExistence(a,c) andResponse(a,b) Response(a,c)and…
SEITE 32
[^a]*((a.*b.*)|(b.*a.*))*[^a]* [^a]*(a.*c)*[^a]*
RegularExpression
DeterministicFiniteState
Automaton
To be kept in mind
RespondedExistence(a,b)RespondedExistence(a,c) andResponse(a,b) Response(a,c)and…
SEITE 33
[^a]*((a.*b.*)|(b.*a.*))*[^a]* [^a]*(a.*c)*[^a]*
RegularExpression
DeterministicFiniteState
Automaton
So far, so good
What is the problem?
SEITE 34
While mining a real-life log…
Support threshold: 0.85 Confidence threshold: 0.25 Interest factor threshold: 0.25
SEITE 35
While mining a real-life log…
SEITE 36
Submit
draft
Write
deliverableOrganise
agenda
Time to challenge the X
SEITE 37
Submit
draft
Write
deliverableOrganise
agenda
Time to challenge the X
Loading…SEITE 38
The result
SEITE 39
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 40
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 41
The problem
When support threshold is lower than 100%,constraints can be valid through most of the log, though being in conflict
How to trust a discovery algorithm that can return inconsistent models?
SEITE 42
Which
constraints
conflict?
How can we be
sure we found
all conflictin
g
constraints?
From whereshould westart?
Can we avoidto check the
same sets ofconstraints
more than once?
The solution
Cross-product of automata
SEITE 43
The solution
Rationale:1. How to find inconsistencies among constraints?
Use the automaton-based model for constraints Do cross-product automata recognise the empty
language?2. How to search the inconsistencies?
Exploit:a) The product operation between automatab) The hierarchy of Declare templates
Guideline: Preserve the most meaningful constraints
SEITE 44
The algorithm /1
1. Divide the constraints having a support of 100% from the rest
Those that have a support of 100% cannot contradict each other
In other words, we consider them “safe”
SEITE 45
NotChainSuccession(a, c) 0.75 0.75 0.75 Response(a, b) 0.83 0.83 0.83 ChainSuccession(b, a) 0.72 0.72 0.72 ChainResponse(b, a) 0.80 0.80 0.80 ChainSuccession(a, b) 0.91 0.91 0.91 NotChainSuccession(b, c) 0.71 0.71 0.71 …
Init(a) 1.00 1.00 1.00 Participation(b) 1.00 1.00 1.00 AtMostOne(c) 1.00 1.00 1.00 End(c) 1.00 1.00 1.00 ChainPrecedence(a, b) 1.00 1.00 1.00 CoExistence(a, b) 1.00 1.00 1.00 …
The algorithm /2
2. Sort constraints having a support of less than 100% (“unsafe”) by:
i. Support (desc.)ii. Confidence (desc.)iii. Interest Factor (desc.)
SEITE 46
Init(a) 1.00 1.00 1.00 Participation(b) 1.00 1.00 1.00 AtMostOne(c) 1.00 1.00 1.00 End(c) 1.00 1.00 1.00 ChainPrecedence(a, b) 1.00 1.00 1.00 CoExistence(a, b) 1.00 1.00 1.00 …
ChainSuccession(a, b) 0.91 0.91 0.91 Response(a, b) 0.83 0.83 0.83 ChainResponse(b, a) 0.80 0.80 0.80 NotChainSuccession(a, c) 0.75 0.75 0.75 ChainSuccession(b, a) 0.72 0.72 0.72 NotChainSuccession(b, c) 0.71 0.71 0.71 …
sort
The algorithm /3
3. Create the automaton representing the safe constraints, as the product of the single constraints’ automata
Initialise the“product automaton”
SEITE 47
…
Init(a) Participation(b)
ChainPrecedence(a,b)
The algorithm /3
3. Create the automaton representing the safe constraints, as the product of the single constraints’ automata
Initialise the“product automaton”
SEITE 48
The algorithm /4
For every unsafe-constraint automaton, following the order of step 2:4. Intersect the product
automaton with the unsafe constraint
SEITE 49
NotChainSuccession(a,c)
The algorithm /4
4. (…cnt) If the result accepts only
an empty language: discard it if no constraint
is higher in the hierarchy relax the constraint
otherwise, and repeat step 4.
Else, include the unsafe-constraint in the list of returned constraints, and save the product automaton
SEITE 50
…
NotChainSuccession(b,c)
The algorithm /4
4. Return the process model made of:
safe constraints, and unsafe constraints not
leading to automata recognising empty languages
SEITE 51
The algorithm: recap
SEITE 52
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)…
sort
…
…
1
Event log
Declare constraints
Automata
Safe constraints
(support 100%)
Unsafe
constr
aints
Product
automaton
The algorithm: recap
SEITE 53
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)…
sort
…
…
1
2
Event log
Declare constraints
Automata
Safe constraints
Unsafe
constr
aints
Product
automaton
Conclusion
Which were the conflicting constraints in the log?What is more in the paper
Limitations and future work
SEITE 55
Which were the conflicting constraints in the log?
1. NotSuccession(send meeting, organize agenda)2. NotChainSuccession(send draft, send deliverable)3. Succession(send draft, submit report)
SEITE 56
SEITE 57
Conclusions, limitations and future work
We have presented an algorithm that automatically finds inconsistencies in a mined Declare model (more in the paper)
The checks are purely based on operations over automata Optimisations exploit Declare semantics http://github.com/cdc08x/minerful
Limitations: The order in which the constraints are checked deeply affects the returned result Performances are heavily affected by the interplay of constraints
Future work: Application of the technique over mixed declarative-imperative models User-defined criteria for constraints sorting/selection Heuristics for a more efficient exploration of the search space are currently under
investigation http://www.promtools.org/prom6/nightly
SEITE 58
Ensuring Model Consistency in Declarative Process DiscoveryClaudio Di Ciccio, Fabrizio Maria Maggi, Marco Montali and Jan Mendling
13th International Conference on Business Process ManagementInnsbruck, Austria
Ensuring Model Consistency in Declarative Process DiscoveryClaudio Di Ciccio, Fabrizio Maria Maggi, Marco Montali and Jan Mendling
13th International Conference on Business Process ManagementInnsbruck, Austria
Extra slides deck
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 61
The application of the method to minimise the model
SEITE 62
BPIC 2012
The algorithm /4
4. Return the process model made of:
safe constraints, and unsafe constraints not
leading to automata recognising empty languages
SEITE 63
<a, b, a, b, a, b, c><a, b, a, b, a, c>