org.processmining.analysis.decisionmining
Class DecisionPoint

java.lang.Object
  extended by org.processmining.analysis.decisionmining.DecisionPoint
Direct Known Subclasses:
DecisionPointPetriNet

public abstract class DecisionPoint
extends java.lang.Object

Represents a decision point in a model-independent way. More precisely, the occurrence of one of the specified log events per category determines whether the belonging alternative has been taken or not.
Note that the model is assumed not to contain any duplicate tasks, and that more complex loop semantics are ignored for this first simple version.

Author:
Anne Rozinat (a.rozinat@tm.tue.nl)

Field Summary
protected  DecisionPointContext myContext
          Contains those attributes that are within the selected scope
protected  ModelGraphVertex myNode
          the node reflecting this choice construct (i.e., the source node for all data dependencies discovered for this decision point)
 
Constructor Summary
DecisionPoint(java.lang.String name, DecisionPointAnalysisResult parent)
          Creates an empty decision point.
 
Method Summary
 void addTargetCategory(java.util.ArrayList logEvents, ModelGraphVertex targetNode)
          Adds a new category to the target concept.
 DecisionPointContext getContext()
          Retrieves the context for this decision point.
 DecisionCategory getDecisionCategory(java.lang.String index)
          Retrieves the specified decision class from this decision point.
 int getID()
          Retrieves the ID for this decision point.
 java.lang.String getName()
          Retrieves the name for this decision point.
 DecisionPointAnalysisResult getParent()
          Retrieves the enclosing parent analysis result (providing access to the model and the log being analysed).
 java.util.List<DecisionCategory> getTargetConcept()
          Retrieves the target concept associated to this decision point.
 weka.core.Attribute getTargetConceptAsWekaAttribute()
          Retrieves the target concept associated to this decision point as a weka attribute.
 void setDataDependencies(java.lang.String tree, HLPetriNet highLevelPN)
          Updates the discovered data dependencies for this decision point.
 java.lang.String toString()
          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

myContext

protected DecisionPointContext myContext
Contains those attributes that are within the selected scope


myNode

protected ModelGraphVertex myNode
the node reflecting this choice construct (i.e., the source node for all data dependencies discovered for this decision point)

Constructor Detail

DecisionPoint

public DecisionPoint(java.lang.String name,
                     DecisionPointAnalysisResult parent)
Creates an empty decision point.

Parameters:
name - the name of the decision point
parent - the enclosing parent analysis result (providing access to the model and the log being analysed)
Method Detail

getName

public java.lang.String getName()
Retrieves the name for this decision point.

Returns:
the name

getID

public int getID()
Retrieves the ID for this decision point.

Returns:
the ID

getTargetConcept

public java.util.List<DecisionCategory> getTargetConcept()
Retrieves the target concept associated to this decision point. That is, the list of alternative branches that can be taken from here (each containing another list of log events which all indicate that a certain path has been taken).

Returns:
the list of alternative branches spawned from this decision point

getTargetConceptAsWekaAttribute

public weka.core.Attribute getTargetConceptAsWekaAttribute()
Retrieves the target concept associated to this decision point as a weka attribute. That is, an enumeration type (i.e., a nominal one) listing the name of the log event associated to each of the paths. Note that empty categories are not treated properly yet (future work).

Returns:
the nominal weka attribute representing the target concept for this decision point

toString

public java.lang.String toString()

Overrides:
toString in class java.lang.Object

getContext

public DecisionPointContext getContext()
Retrieves the context for this decision point.

Returns:
the belonging context object

getParent

public DecisionPointAnalysisResult getParent()
Retrieves the enclosing parent analysis result (providing access to the model and the log being analysed).

Returns:
the belonging parent result panel

getDecisionCategory

public DecisionCategory getDecisionCategory(java.lang.String index)
Retrieves the specified decision class from this decision point.

Parameters:
index - the global ID of the decision class to be found (i.e., decision point index + "." + decision class index)
Returns:
the decision class if found, null otherwise

addTargetCategory

public void addTargetCategory(java.util.ArrayList logEvents,
                              ModelGraphVertex targetNode)
Adds a new category to the target concept.

Parameters:
logEvents - the list of log events representing the new category to be added to this target concept

setDataDependencies

public void setDataDependencies(java.lang.String tree,
                                HLPetriNet highLevelPN)
Updates the discovered data dependencies for this decision point.
Assumes that no "[" or ":" characters are present in the attribute names.

Parameters:
tree - the decision tree in prefix notation
highLevelPN - the simulation model to export discovered data dependencies