ensuring model consistency in declarative process discovery

Post on 16-Jan-2017

209 Views

Category:

Data & Analytics

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

claudio.di.ciccio@wu.ac.at

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

claudio.di.ciccio@wu.ac.at

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>

top related