1 / 27

7 Lessons Learned Case Study: Replay a Log on Petri Net for Conformance Checking plug-in

Hasselt, 28 Sept 2012. 7 Lessons Learned Case Study: Replay a Log on Petri Net for Conformance Checking plug-in. A. Adriansyah. ProM Workshop. Overview. Event Log. Replay. Alignments. Visualizations. ABBCE ABCDE …. <<uses>>. <<uses>>. <<uses>>. <<uses>>. Petri net. <<uses>>. 1.

naomi
Download Presentation

7 Lessons Learned Case Study: Replay a Log on Petri Net for Conformance Checking plug-in

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hasselt, 28 Sept 2012 7 Lessons LearnedCase Study: Replay a Log on Petri Net for Conformance Checking plug-in A. Adriansyah ProM Workshop

  2. Overview Event Log Replay Alignments Visualizations ABBCE ABCDE … <<uses>> <<uses>> <<uses>> <<uses>> Petri net <<uses>> 1 … 2 3 <<uses>>

  3. Replay algorithm // pseudocode Map event classes to transitions Check existence of Final Marking, create one if user wants Choose replay algorithm Execute replay algorithm Event Log ABBCE ABCDE … Replay Alignments <<uses>> <<uses>> <<uses>> Petri net 1 2 …

  4. 1. Reuse object via connection

  5. Check connection using ConnectionManager EvClassLogPetrinetConnection EvClassLogPetrinetConnectionFactory connectionManager.getFirstConnection(EvClassLogPetrinetConnection.class,…) Event Log ABBCE ABCDE … Replay <<uses>> If no connection, automatically create one <<uses>> <<uses>> @ConnectionObjectFactory Petri net Mapping is stored in EvClassLogPetrinetConnection

  6. Replay algorithm // pseudocode Map event classes to transitions Check existence of Final Marking, create one if user wants Choose replay algorithm Execute replay algorithm Event Log ABBCE ABCDE … Replay Alignments <<uses>> <<uses>> <<uses>> Petri net 1 2 …

  7. 2. Create connection and objects altogether

  8. Construct new objects, not just connection FinalMarkingConnection Marking @ConnectionObjectFactory New object needs to be created Petri net Create Final Marking <<uses>> <<uses>> colPairOfIntPluginParamBinding = pluginManager.find(ConnectionObjectFactory.class, FinalMarkingConnection.class,...); … childContext = context.createChildContext(...); … pluginParameterBinding.invoke(childContext, net); … childContext.getParentContext().deleteChild(childContext); Replay Constructing Final Marking object using existing plugin

  9. Overview Event Log Replay Alignments Visualizations ABBCE ABCDE … 1 2 <<uses>> <<uses>> <<uses>> <<uses>> Petri net <<uses>> 1 … 2 3 <<uses>>

  10. 3. Use annotations to register variants

  11. Designing variants using interface IPNReplayParamProvider + constructReplayParameter + constructGUI IPNReplayAlgorithm + replayLog + isReqWOParameterSatisfied + isAllReqSatisfied + constructParamProvider IPNReplayParameter + isCreatingConn + isGUIMode + setInitialMarking <<uses>> Event Log <<uses>> ABBCE ABCDE … Replay <<uses>> Alignments <<uses>> <<uses>> <<uses>> Petri net 1 2 …

  12. Register new algorithms without changing GUI code pluginManager.getKnownClassAnnotatedWith(PNReplayAlgorithm.class) Event Log ABBCE ABCDE … Replay Alignments <<uses>> <<uses>> <<uses>> @PNReplayAlgorithm @PNReplayAlgorithm @PNReplayAlgorithm Petri net 1 2 … Create annotation @PNReplayAlgorithm Annotate all algorithms with @PNReplayAlgorithm Use the annotation in replay GUI to register algorithms

  13. Overview Event Log Replay Alignments Visualizations ABBCE ABCDE … 1 2 3 <<uses>> <<uses>> <<uses>> <<uses>> Petri net <<uses>> 1 … 2 3 <<uses>>

  14. 4. Visual Analytics <<uses>> <<uses>> <<uses>> <<uses>> <<uses>>

  15. Visualization without heavy computation Alignments Project Alignment to Log Model Projected With Alignments Simply create visualization panel

  16. Visualization may require extra computation Alignments xFrequent Movement Sets Mining for Deviation Analysis Frequent Item Sets need to be calculated Computation is postponed until visualization is needed

  17. Visualization using another package Alignments Trace Alignment of Alignments <<uses>> <<uses>> TraceAlignmentWithGuideTree GuideTreeMiner Possible because of separated visualization panel class Don’t forget to add package dependencies

  18. GUI Components in the Widgets package Widgets

  19. 5. Create reusable side-object as needed ProvidedObjectHelper.publish(context, “Log of shown cases”, log, XLog.class, true);

  20. Overview Event Log Replay Alignments Visualizations ABBCE ABCDE … 1 2 3 <<uses>> <<uses>> <<uses>> <<uses>> Petri net 4 5 <<uses>> 1 … 2 3 <<uses>>

  21. 6. Keep package size as small as possible

  22. Package distribution PNetReplayer Event Log Replay Alignments Visualizations ABBCE ABCDE … <<uses>> <<uses>> <<uses>> <<uses>> <<uses>> <<uses>> Petri net <<uses>> 1 … 2 3 <<uses>> <<uses>> <<uses>> PNetAlignmentAnalysis GuideTreeMiner & TraceAlignmentWithGuideTree

  23. 7. Make your code reusable

  24. Improving reusability of your code context.tryToFindOrConstructFirstObject(...) <<uses>> ETConformance <<uses>> PNetReplayer CNetReplayer <<uses>> Compliance replayAlgorithm.replayLog(...) … replayAlgorithm.replayLog(...) Provide headless version and one without connection

  25. Overview Event Log Replay Alignments Visualizations ABBCE ABCDE … 1 2 3 <<uses>> <<uses>> <<uses>> <<uses>> Petri net 4 5 <<uses>> 1 … 2 3 <<uses>> 6 7

  26. Take home points • Designing plugin • Create a headless version of your plugin • Reuse objects • Utilize interface and annotations to cover variants • Designing GUI • Separate visualization panel • Reuse code: see Widgets package • Designing package • Keep it small

  27. Q&A

More Related