org.processmining.mining.dmcscanning
Class DmcMiner

java.lang.Object
  extended by org.processmining.mining.dmcscanning.DmcMiner
All Implemented Interfaces:
Plugin, MiningPlugin

public class DmcMiner
extends java.lang.Object
implements MiningPlugin

DMCMiner. This ProM mining plugin implements the concept of Modification Cluster Scanning. Applicable for any sort of event logs, preferrably for sc. data modification logs.

Author:
Christian W. Guenther (christian at deckfour dot org)

Field Summary
protected  AdmcSet admcs
           
protected static java.util.ArrayList aggregationMethods
           
protected  AggregationMethod aggregator
           
protected  boolean checkDmcConsistency
           
protected  boolean consolidateADMC
           
protected  boolean enforceEventType
           
protected  boolean enforceOriginator
           
protected  ObjectEquivalence equivalence
           
protected static java.util.ArrayList equivalenceRelations
           
protected  DmcSet initialDmcs
           
protected  long maxNoEvents
           
protected  long maxProximity
           
protected  MdmcSet mdmcs
           
protected  double mdmcSelectionBalance
           
protected  int mdmcSelectionIterations
           
protected  DmcOptionsPanel optionsPanel
           
protected  boolean useBreakingProximity
           
 
Constructor Summary
DmcMiner()
          constructor
 
Method Summary
static java.util.ArrayList aggregationMethods()
           
protected  void displayErrorMessage(java.lang.String message)
           
static java.util.ArrayList equivalenceRelations()
           
 AggregationMethod getAggregationMethod()
           
 ObjectEquivalence getEquivalence()
           
 java.lang.String getHtmlDescription()
          Gets a description of this plugin in HTML.
 long getMaxNoEvents()
           
 long getMaxProximity()
           
 double getMdmcSelectionBalance()
           
 int getMdmcSelectionIterations()
           
 java.lang.String getName()
          Gets the name of this plugin.
 javax.swing.JPanel getOptionsPanel(LogSummary summary)
          Returns the option panel associated with this mining algorithm or null if it has no options panel.
protected  void initialize()
          initializes all scan-dependent data structures and settings
 boolean isCheckDmcConsistency()
           
 boolean isConsolidateADMC()
           
 boolean isEnforceEventType()
           
 boolean isEnforceOriginator()
           
 boolean isUsingBreakingProximity()
          Whether proximity is interpreted as split-on-break clustering threshold
 MiningResult mine(LogReader log)
          Execute this mining algorithm on the given log file.
 void setAggregationMethod(AggregationMethod method)
          sets the aggregation method for ADMC generation
 void setCheckDmcConsistency(boolean checkDmcConsistency)
           
 void setConsolidateADMC(boolean consolidateADMC)
           
 void setEnforceEventType(boolean enforceEventType)
           
 void setEnforceOriginator(boolean enforceOriginator)
           
 void setEquivalence(ObjectEquivalence equivalence)
           
 void setMaxNoEvents(long maxNoEvents)
           
 void setMaxProximity(long maxProximity)
           
 void setMdmcSelectionBalance(double mdmcSelectionBalance)
           
 void setMdmcSelectionIterations(int mdmcSelectionIterations)
           
 void setUseBreakingProximity(boolean isUsed)
          Sets whether proximity is interpreted as split-on-break clustering threshold
 void testOutput()
          creates the required Message.TEST output
protected  void updateConfiguration()
          retrieves the current configuration data from the options panel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

initialDmcs

protected DmcSet initialDmcs

admcs

protected AdmcSet admcs

mdmcs

protected MdmcSet mdmcs

maxProximity

protected long maxProximity

maxNoEvents

protected long maxNoEvents

useBreakingProximity

protected boolean useBreakingProximity

enforceOriginator

protected boolean enforceOriginator

enforceEventType

protected boolean enforceEventType

consolidateADMC

protected boolean consolidateADMC

aggregator

protected AggregationMethod aggregator

mdmcSelectionBalance

protected double mdmcSelectionBalance

mdmcSelectionIterations

protected int mdmcSelectionIterations

checkDmcConsistency

protected boolean checkDmcConsistency

aggregationMethods

protected static java.util.ArrayList aggregationMethods

equivalence

protected ObjectEquivalence equivalence

equivalenceRelations

protected static java.util.ArrayList equivalenceRelations

optionsPanel

protected DmcOptionsPanel optionsPanel
Constructor Detail

DmcMiner

public DmcMiner()
constructor

Method Detail

aggregationMethods

public static java.util.ArrayList aggregationMethods()
Returns:
ArrayList of all available Aggregation Methods

equivalenceRelations

public static java.util.ArrayList equivalenceRelations()

initialize

protected void initialize()
initializes all scan-dependent data structures and settings


getOptionsPanel

public javax.swing.JPanel getOptionsPanel(LogSummary summary)
Description copied from interface: MiningPlugin
Returns the option panel associated with this mining algorithm or null if it has no options panel. The option panel is the panel that is shown when a log file has just been opened. The user can set the options for the mining algorithm here.

Specified by:
getOptionsPanel in interface MiningPlugin
Parameters:
summary - all known information about the log that's going to be mined with this algorithm
Returns:
the option panel associated with this mining algorithm or null if it has no options panel

displayErrorMessage

protected void displayErrorMessage(java.lang.String message)

mine

public MiningResult mine(LogReader log)
Description copied from interface: MiningPlugin
Execute this mining algorithm on the given log file. The log parameter provides methods to extract the process instances and audit trail entries (cases) from the log file. This method is allowed to return null in case there are no results.

Specified by:
mine in interface MiningPlugin
Parameters:
log - process instances and audit trail entries
Returns:
the result of the mining algorithm, in a MininResult object

updateConfiguration

protected void updateConfiguration()
retrieves the current configuration data from the options panel


getName

public java.lang.String getName()
Description copied from interface: Plugin
Gets the name of this plugin. Implementing classes should use this method to return their own name.

Specified by:
getName in interface Plugin
Returns:
the name of this plugin

getHtmlDescription

public java.lang.String getHtmlDescription()
Description copied from interface: Plugin
Gets a description of this plugin in HTML. The string returned by this method should only contain the contents of the body of the html page, so the html, head and body tags should not be used. This HTML page is displayed in the help system or as context sensitive help. The HTML body can be stored in an external file in the /lib/documentation/ sub folder and in this case it can be obtained by calling PluginDocumentationLoader.load(this)

Specified by:
getHtmlDescription in interface Plugin
Returns:
a description of this plugin in HTML

getAggregationMethod

public AggregationMethod getAggregationMethod()
Returns:
the currently active aggregation method for ADMC generation

setAggregationMethod

public void setAggregationMethod(AggregationMethod method)
sets the aggregation method for ADMC generation

Parameters:
method -

isConsolidateADMC

public boolean isConsolidateADMC()
Returns:
Returns whether ADMC is to be consolidated after derivation.

setConsolidateADMC

public void setConsolidateADMC(boolean consolidateADMC)
Parameters:
consolidateADMC - Whether ADMC is to be consolidated after derivation.

getMaxNoEvents

public long getMaxNoEvents()
Returns:
Returns the maximal number of events within a DMC.

setMaxNoEvents

public void setMaxNoEvents(long maxNoEvents)
Parameters:
maxNoEvents - The maximal number of events within a DMC.

getMaxProximity

public long getMaxProximity()
Returns:
Returns the maximal proximity (in milliseconds) between the first and last events within a DMC.

setMaxProximity

public void setMaxProximity(long maxProximity)
Parameters:
maxProximity - The maximal proximity (in milliseconds) between the first and last events within a DMC.

isEnforceEventType

public boolean isEnforceEventType()
Returns:
whether all events within a DMC are enforced to have the same event type

setEnforceEventType

public void setEnforceEventType(boolean enforceEventType)
Parameters:
enforceEventType - whether all events within a DMC are enforced to have the same event type

isEnforceOriginator

public boolean isEnforceOriginator()
Returns:
whether all events within a DMC are enforced to have the same originator

setEnforceOriginator

public void setEnforceOriginator(boolean enforceOriginator)
Parameters:
enforceOriginator - whether all events within a DMC are enforced to have the same originator

getMdmcSelectionBalance

public double getMdmcSelectionBalance()
Returns:
Returns the mdmcSelectionBalance.

setMdmcSelectionBalance

public void setMdmcSelectionBalance(double mdmcSelectionBalance)
Parameters:
mdmcSelectionBalance - The mdmcSelectionBalance to set.

getMdmcSelectionIterations

public int getMdmcSelectionIterations()
Returns:
Returns the mdmcSelectionIterations.

setMdmcSelectionIterations

public void setMdmcSelectionIterations(int mdmcSelectionIterations)
Parameters:
mdmcSelectionIterations - The mdmcSelectionIterations to set.

getEquivalence

public ObjectEquivalence getEquivalence()
Returns:
Returns the equivalence.

setEquivalence

public void setEquivalence(ObjectEquivalence equivalence)
Parameters:
equivalence - The equivalence to set.

isCheckDmcConsistency

public boolean isCheckDmcConsistency()
Returns:
Returns the checkDmcConsistency.

setCheckDmcConsistency

public void setCheckDmcConsistency(boolean checkDmcConsistency)
Parameters:
checkDmcConsistency - The checkDmcConsistency to set.

isUsingBreakingProximity

public boolean isUsingBreakingProximity()
Whether proximity is interpreted as split-on-break clustering threshold

Returns:

setUseBreakingProximity

public void setUseBreakingProximity(boolean isUsed)
Sets whether proximity is interpreted as split-on-break clustering threshold

Parameters:
isUsed -

testOutput

public void testOutput()
creates the required Message.TEST output