org.processmining.mining.dmcscanning.aggregation
Class SimpleAggregation

java.lang.Object
  extended by org.processmining.mining.dmcscanning.aggregation.SimpleAggregation
All Implemented Interfaces:
AggregationMethod

public class SimpleAggregation
extends java.lang.Object
implements AggregationMethod

Simple merging method to start from. A DMC is merged with an ADMC if, and only if, their footprints match exactly, i.e. the same set of data objects is being modified (regardless of order) in all DMCs of an ADMC.

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

Constructor Summary
SimpleAggregation()
           
 
Method Summary
 double compliance(Admc anAdmc, Dmc aDmc)
          In case 'isCompliant()' returns false, this method can be used to check for to which degree the two parameters are compliant.
 double consolidate(AdmcSet anAdmcSet)
          Consolidates a set of ADMCs.
 java.lang.String getDescription()
           
 boolean isCompliant(Admc anAdmc, Dmc aDmc)
          Checks for compliance of a DMC with an ADMC.
 Admc merge(Admc anAdmc, Dmc aDmc)
          Merges the provided DMC with the provided ADMC.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SimpleAggregation

public SimpleAggregation()
Method Detail

isCompliant

public boolean isCompliant(Admc anAdmc,
                           Dmc aDmc)
Description copied from interface: AggregationMethod
Checks for compliance of a DMC with an ADMC. Compliance in this context means, that the DMC can positively be merged with the ADMC.

Specified by:
isCompliant in interface AggregationMethod
Parameters:
anAdmc - the ADMC to test compliance with
aDmc - the DMC to check compliance
Returns:
whether the parameters are compliant

compliance

public double compliance(Admc anAdmc,
                         Dmc aDmc)
Description copied from interface: AggregationMethod
In case 'isCompliant()' returns false, this method can be used to check for to which degree the two parameters are compliant. More fuzzy merging algorithms could use this to merge not completely compliant ADMCs/DMCs anyway.

Specified by:
compliance in interface AggregationMethod
Parameters:
anAdmc - the ADMC to test compliance with
aDmc - the DMC to check compliance
Returns:
to which degree parameters are compliant (within [0,1], 1=fully compliant)

merge

public Admc merge(Admc anAdmc,
                  Dmc aDmc)
Description copied from interface: AggregationMethod
Merges the provided DMC with the provided ADMC. Notice: This method is intended to modify the original ADMC, i.e. the returned reference is to equal the supplied ADMC parameter!

Specified by:
merge in interface AggregationMethod
Parameters:
anAdmc - the ADMC to merge with
aDmc - the DMC to merge into
Returns:
the result of merging, i.e. a new ADMC.

toString

public java.lang.String toString()
Specified by:
toString in interface AggregationMethod
Overrides:
toString in class java.lang.Object
Returns:
the name of this aggregation method

getDescription

public java.lang.String getDescription()
Specified by:
getDescription in interface AggregationMethod
Returns:
a short description of how merging and checking compliance is performed (1-3 sentences)

consolidate

public double consolidate(AdmcSet anAdmcSet)
Description copied from interface: AggregationMethod
Consolidates a set of ADMCs. The implementation of this method is up to the specific aggregation method, the rationale behind it is to strip down a set of ADMCs to the most fundamental elements. As such, the method is expected to merge similar ADMCs together or to delete less significant elements, according to its intent and implementation.

Specified by:
consolidate in interface AggregationMethod
Parameters:
anAdmcSet - the set of ADMCs to be consolidated
Returns:
value within [0,1]; 0=all elements removed; 1=nothing removed