Skip to content

Commit 4a14c90

Browse files
committed
runnable LPMClusteringRunner
1 parent 12c87a7 commit 4a14c90

File tree

8 files changed

+527
-1122
lines changed

8 files changed

+527
-1122
lines changed

data/clustering/bpi2012_res10939_clustering.csv

Lines changed: 491 additions & 1111 deletions
Large diffs are not rendered by default.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
version https://git-lfs.github.com/spec/v1
2-
oid sha256:999ee126c50a4bef5fb8664331ad5443e209bfbfafbbc360bde526b7d686cb09
3-
size 635
2+
oid sha256:ff28a1c8d66466018b041ee1375395c4f1b4b9ee3774706ef847aaf047ad97c2
3+
size 794
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
package org.processmining.placebasedlpmdiscovery.grouping;
22

3+
import org.deckfour.xes.model.XLog;
4+
import org.processmining.placebasedlpmdiscovery.lpmdistances.ModelDistanceService;
35
import org.processmining.placebasedlpmdiscovery.model.LocalProcessModel;
46

57
import java.util.Collection;
68

79
public interface GroupingService {
810

11+
static GroupingService getInstance(XLog log) {
12+
return new DefaultGroupingService(ModelDistanceService.getInstance(log));
13+
}
14+
915
void groupLPMs(Collection<LocalProcessModel> lpms, GroupingConfig config);
1016
}

src/org/processmining/placebasedlpmdiscovery/lpmdistances/ModelDistanceFactory.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
package org.processmining.placebasedlpmdiscovery.lpmdistances;
22

33
import com.google.inject.Inject;
4-
import org.processmining.placebasedlpmdiscovery.lpmdistances.dataattributes.*;
4+
import org.deckfour.xes.model.XLog;
5+
import org.processmining.placebasedlpmdiscovery.lpmdistances.dataattributes.DataAttributeModelDistance;
6+
import org.processmining.placebasedlpmdiscovery.lpmdistances.dataattributes.DataAttributeModelDistanceConfig;
7+
import org.processmining.placebasedlpmdiscovery.lpmdistances.dataattributes.DataAttributeVectorExtractorFactory;
8+
import org.processmining.placebasedlpmdiscovery.lpmdistances.dataattributes.EuclideanDataAttributeModelDistance;
59
import org.processmining.placebasedlpmdiscovery.lpmdistances.mixed.MixedModelDistance;
610
import org.processmining.placebasedlpmdiscovery.lpmdistances.mixed.MixedModelDistanceConfig;
711
import org.processmining.placebasedlpmdiscovery.lpmdistances.mixed.WeightedModelDistanceConfig;
@@ -21,6 +25,10 @@ public ModelDistanceFactory(DataAttributeVectorExtractorFactory dataAttributeVec
2125
this.dataAttributeVectorExtractorFactory = dataAttributeVectorExtractorFactory;
2226
}
2327

28+
public static ModelDistanceFactory getInstance(XLog log) {
29+
return new ModelDistanceFactory(DataAttributeVectorExtractorFactory.getInstance(log));
30+
}
31+
2432
public ModelDistance getModelDistance(ModelDistanceConfig distanceConfig) {
2533
switch (distanceConfig.getDistanceMethod()) {
2634
case DataAttributeModelDistanceConfig.METHOD:
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package org.processmining.placebasedlpmdiscovery.lpmdistances;
22

3+
import org.deckfour.xes.model.XLog;
34
import org.processmining.placebasedlpmdiscovery.model.LocalProcessModel;
45

56
import java.util.List;
67

78
public interface ModelDistanceService {
9+
static ModelDistanceService getInstance(XLog log) {
10+
return new DefaultModelDistanceService(ModelDistanceFactory.getInstance(log));
11+
}
12+
813
double[][] getDistanceMatrix(List<LocalProcessModel> lpmList, ModelDistanceConfig modelDistanceConfig);
914
}
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
package org.processmining.placebasedlpmdiscovery.lpmdistances.dataattributes;
22

3-
import com.google.inject.assistedinject.Assisted;
3+
import org.deckfour.xes.model.XLog;
44

55
import java.util.Collection;
66

77
public interface DataAttributeVectorExtractorFactory {
88

9+
static DataAttributeVectorExtractorFactory getInstance(XLog log) {
10+
return new DefaultDataAttributeVectorExtractorFactory(log);
11+
}
12+
913
DataAttributeVectorExtractor create(Collection<String> attributes);
1014
}

src/org/processmining/placebasedlpmdiscovery/prom/plugins/visualization/visualizers/LPMResultGroupedVisualizer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import org.processmining.placebasedlpmdiscovery.model.discovery.LPMDiscoveryResult;
1111
import org.processmining.placebasedlpmdiscovery.model.serializable.grouped.GroupedLPMResult;
1212
import org.processmining.placebasedlpmdiscovery.model.serializable.grouped.GroupingProperty;
13-
import org.processmining.placebasedlpmdiscovery.runners.clustering.ClusteringRunner;
13+
import org.processmining.placebasedlpmdiscovery.runners.clustering.LPMClusteringRunner;
1414

1515
import javax.swing.*;
1616

@@ -102,7 +102,7 @@ public JComponent visualize(UIPluginContext context, LPMDiscoveryResult result)
102102
// TODO: See whether you don't have to do this if it has already be done
103103
if (property.equals(GroupingProperty.Clustering)) {
104104
GroupingConfig groupingConfig = new DefaultGroupingConfig();
105-
GroupingController groupingController = ClusteringRunner
105+
GroupingController groupingController = LPMClusteringRunner
106106
.getGroupingController(groupingConfig, result.getInput().getLog().getOriginalLog());
107107
groupingController.groupLPMs(result.getAllLPMs(), groupingConfig);
108108
}

src/org/processmining/placebasedlpmdiscovery/runners/clustering/ClusteringRunner.java renamed to src/org/processmining/placebasedlpmdiscovery/runners/clustering/LPMClusteringRunner.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.processmining.placebasedlpmdiscovery.grouping.ClusteringConfig;
1515
import org.processmining.placebasedlpmdiscovery.grouping.GroupingConfig;
1616
import org.processmining.placebasedlpmdiscovery.grouping.GroupingController;
17+
import org.processmining.placebasedlpmdiscovery.grouping.GroupingService;
1718
import org.processmining.placebasedlpmdiscovery.grouping.serialization.GroupingConfigDeserializer;
1819
import org.processmining.placebasedlpmdiscovery.lpmdiscovery.results.FromFileLPMDiscoveryResult;
1920
import org.processmining.placebasedlpmdiscovery.lpmdistances.ModelDistanceConfig;
@@ -38,7 +39,7 @@
3839
import java.util.List;
3940
import java.util.stream.Collectors;
4041

41-
public class ClusteringRunner {
42+
public class LPMClusteringRunner {
4243

4344
public static void main(String[] args) throws Exception {
4445
if (args.length != 1) {
@@ -60,10 +61,11 @@ private static void run(String configPath) throws Exception {
6061

6162
System.out.println("LPMs imported");
6263

63-
GroupingController groupingController = getGroupingController(
64-
config.getClusteringConfig(),
65-
LogUtils.readLogFromFile(config.getInput().get(RunnerInput.EVENT_LOG)));
66-
groupingController.groupLPMs(lpms, config.getClusteringConfig());
64+
XLog eventLog = LogUtils.readLogFromFile(config.getInput().get(RunnerInput.EVENT_LOG));
65+
GroupingService groupingService = GroupingService.getInstance(eventLog);
66+
groupingService.groupLPMs(lpms, config.getClusteringConfig());
67+
// GroupingController groupingController = getGroupingController(config.getClusteringConfig(), eventLog);
68+
// groupingController.groupLPMs(lpms, config.getClusteringConfig());
6769

6870

6971
writeClustering(config, lpms);

0 commit comments

Comments
 (0)