semantical vacuity detection in declarative process mining
TRANSCRIPT
Semantical Vacuity Detection in Declarative Process MiningFabrizio Maria Maggi, Marco Montali, Claudio Di Ciccio and Jan Mendling
14th International Conference on Business Process ManagementRio de Janeiro, Brazil
Prelude
Every unicorn is green
SEITE 2
)(. xxUnicorn
Prelude
Every unicorn is green
SEITE 3
)(. xxUnicorn )(xGreen
It is true. After all, have you ever seen a unicorn?We thank Prof. M. Lenzerini for inspiring this example
Declarative process modellingDECLARE
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 5
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 6
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
A fragment of declarative process model
SEITE 7
Submit abstract
Write new paper Submit paper
Send confirmation email
Review paper Accept paper
Reject paper
Every DECLARE constraintcan be abstracted as an FSA
SEITE 8
Accepting state
Any task but ‘a’ or ‘b’
Any task but ‘b’Any task
State
FSA: Deterministic Finite State Automaton
Task ‘a’Init
Declarative process miningProcess discovery with DECLARE
Declarative process discovery
SEITE 10
?
Objective: understanding the constraints that best define the allowed behaviour of the process behind the event log
Mining declarative processes:ingredients
“Submit paper”,“Write new paper”,“Accept paper”,…
SEITE 11
s,w,y,…
Activities Process alphabet
Declarative process discovery
SEITE 12
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
R.Ex.(s,y)
SEITE 13
Res.(w,y)
Res.(s,e)
Support: 50% 70% 100%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
R.Ex.(s,y)
SEITE 14
Res.(w,y)
Res.(s,e)
Support: 50% 70% 100%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
R.Ex.(s,y)
SEITE 15
Res.(w,y)
Res.(s,e)
Support: 50% 70% 100%
A fragment of declarative process model
SEITE 16
Submit abstract(a)
Write new paper(w)
Submit paper(s)
Send conf. email(e)
Review paper(r)
Accept paper(y)
Reject paper(x)
?
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
R.Ex.(s,y)
SEITE 17
Res.(w,y)
Res.( ,y)
Support: 50% 70% 100%
A fragment of declarative process model
SEITE 18
Submit abstract(a)
Write new paper(w)
Submit paper(s)
Send conf. email(e)
Review paper(r)
Accept paper(y)
Reject paper(x)
?
Vacuity detection
A constraint is vacuously satisfied by a trace if it is verified yet never “triggered” E.g., Response(w,y) is vacuously satisfied in
s e r x e a s e r r y e s e s e
For standard DECLARE templates, techniques exist that detect the vacuous satisfaction of constraints
SEITE 19
Discovering a DECLARE model:example with vacuity check (~)Example event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
R.Ex.(s,y)
SEITE 20
Res.(w,y) ~ ~ ~
Res.( ,y) ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Support: 50% 70% 100%
Discovering a DECLARE model:example with vacuity check (~)Example event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
R.Ex.(s,y)
SEITE 21
Res.(w,y) ~ ~ ~
Res.( ,y) ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Support: 50% 70% 100%
Res.(w,y) ~ ~ ~
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
R.Ex.(s,y)
SEITE 22
Res.(s,e)
Support: 50% 70% 100%
Summary of the status quo
DECLARE mining techniques return a model made of those constraints that have a sufficient fraction of fulfilling traces
Vacuity check already works for standard DECLARE templates with ad-hoc procedures
DECLARE is extendible
What happens with non-standard DECLARE templates?
SEITE 23
Declarative process miningWhat happens with non-standard DECLARE templates?
The problem
A general framework for the vacuity detection in the context of declarative process mining is missing. Existing techniques are either syntax-based…
Different formulations of the same constraints lead to different results
... Or ad-hoc Not extendible
Result: Mining non-standard Declare constraints can lead to
loads of vacuously satisfied constraints returned as if they were interesting discovery results
SEITE 25
An example of new template:“Progression response 3:2”
SEITE 26
Prog.resp3:2(u1,u2,u3, v1,v2)
Prog.resp3:2(Write paper,Submit abstract,Submit paper,Send notification email,Accept paper)
Example:
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,a,s, e,y)
SEITE 27 Support: 90%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,a,s, e,y)
SEITE 28 Support: 90%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,a,s, e,y)
SEITE 29 Support: 90%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,a,s, e,y)
SEITE 30 Support: 90%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,a,s, e,y)
SEITE 31 Support: 90%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,a,s, e,y)
SEITE 32 Support: 90%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,a,s, e,y)
SEITE 33 Support: 90%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,a,s, e,y)
SEITE 34 Support: 90%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,a,s, e,y)
SEITE 35 Support: 90%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,a,s, e,y)
SEITE 36 Support: 90%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,a,s, e,y)
SEITE 37 Support: 90%
An example of new template:“Progression response 3:2”
SEITE 38
Prog.resp3:2(u1,u2,u3, v1,v2)
Prog.resp3:2(Submit paper,Write paper,Submit abstract,Reject paper,Accept paper)
Example:
It makes no sense. Yet…
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(s,w,a, x,y)
SEITE 39 Support: 100%
“Impossible” activations make for a support of 100%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,s, , y,e)
SEITE 40 Support: 100%
Summary of the status quo
DECLARE mining techniques return a model made of those constraints that have a sufficient count of fulfilling traces
Vacuity check already works for standard DECLARE templates with ad-hoc procedures
DECLARE is extendible
With non-standard DECLARE templates, should unicorns hold the truth?
SEITE 41
ProblemHow to return only interesting constraints when looking for any template?
The solution: sketch (1)
SEITE 43
For every constraint FSA, activation-aware automata are built, i.e., states get labelled with:1. the satisfaction status reached so far
1. temporarily/permanently satisfied/violated: ts, ps, tv, pv2. the allowed tasks for the future moves
Satisfaction
Allowed tasksSatisfaction
The solution: sketch (1)
SEITE 44 Satisfaction
Allowed tasksSatisfaction
Activation-aware automata:Standard DECLARE
SEITE 45
The solution: sketch (2)
SEITE 46
Task executions are marked as relevant when they make the satisfaction status change, or they make the allowed tasks change
Irrelevant
Relevant
Allowed tasksSatisfaction
Irrelevant
Relevant
The solution: sketch (3)
SEITE 47
A trace is an interesting witness when a relevant task execution is performed
A trace satisfies a constraint when its replay terminates in an accepting state
We look for interesting traces that satisfy the constraints
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,a,s, e,y) ~ ~ ~ ~ ~
SEITE 48 Support: 90%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,a,s, e,y) ~ ~ ~ ~ ~
SEITE 49 Support: 90%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,s, , y,e) ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
SEITE 50 Support: 100%
Discovering a DECLARE model:exampleExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
Prog.resp3:2(w,s, , y,e) ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
SEITE 51 Support: 100%
Discovering a DECLARE model:example with relevance checkExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
SEITE 52 Support: 70%
Res.(w,y) ~ ~ ~
Discovering a DECLARE model:example with relevance checkExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
SEITE 53 Support: 70%
Res.(w,y) ~ ~ ~
Discovering a DECLARE model:example with vacuity check (~)Example event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
SEITE 54 Support:
Res.( ,y) ~ ~ ~ ~ ~ ~ ~ ~ ~ ~100%
Discovering a DECLARE model:example with vacuity check (~)Example event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
SEITE 55 Support:
Res.( ,y) ~ ~ ~ ~ ~ ~ ~ ~ ~ ~100%
The algorithm: recap
SEITE 56
Event logreplay
Candidate
templates
Activation-awareautomata
Response(a,b)Responded existence(a,b)…
Prog.resp3:2(u1,u2,u3,v1,v2)
~~~
~~~~~~~~~~
…
Responded existence(a,w)
Response(s,y)
Prog.resp3:2(s,w,a,x,y)
Evaluation
Interesting
constraints
EndingEvaluation, conclusion and future work
Evaluation
SEITE 58
Implemented in Java Extension of MINERful
Real-world logs BPIC 2013:
9,442 msec 426 for the automata 9,016 for the checking
Conclusion
Contribution: A generalised approach for the discovery of
interesting declarative constraints Check based on the relevance of task executions w.r.t.
the semantics of the constraints
Future work: Differentiation of positive and negative interestingness Extended declarative mining integrating general
vacuity detection Data-awareness
SEITE 59
Semantical Vacuity Detection in Declarative Process MiningFabrizio Maria Maggi, Marco Montali, Claudio Di Ciccio and Jan Mendling
14th International Conference on Business Process ManagementRio de Janeiro, Brazil
No unicorns were harmed in the making of this paper
Semantical Vacuity Detection in Declarative Process MiningFabrizio Maria Maggi, Marco Montali, Claudio Di Ciccio and Jan Mendling
Extra slides
A fragment of declarative process model
SEITE 62
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
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 = activation task
A fragment of declarative process model
SEITE 63
Submit abstract(a)
Write new paper(w)
Submit paper(s)
Send conf. email(e)
Review paper(r)
Accept paper(y)
Reject paper(x)
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 64
“Until”
“Eventually”“Always”
“Next”
Semantics of Declare:LTL
SEITE 65
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 66
Extendibility of DECLARE:A clear business impact
SEITE 67
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 68
Semantics of Declare:LTLf
SEITE 69
Semantics of Declare:SCIFF
SEITE 70
Semantics of Declare:R/I-nets
SEITE 71
Semantics of Declare:FOL over finite traces
SEITE 72
Semantics of Declare:Regular expressions
SEITE 73
More alternatives for DECLARE spec.: A clear business impact
SEITE 74
Discovering a DECLARE model:example with relevance checkExample event logw a s e s e r r r y e s ea s e r r y e s e s ew w w s e r r r r x es e r x ew a s e r r r y e s ew a s e r r r y e s ew a s e r r r x e s e s e s e r r r e x ea w s e s e r r e x ew a e s e r r r e y e s e
SEITE 75 Support:
Res.(s,e)100%