aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-08-28 05:56:34 -0400
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2020-06-07 19:41:36 -0400
commit4c34e22d23197ca6b03827a24e9339f88f82df5f (patch)
tree96450d132cc4bd6be7127a9bd11716e932bf3507 /Metrics
parentPre-realisticBranchCreation Commit (diff)
downloadVIATRA-Generator-4c34e22d23197ca6b03827a24e9339f88f82df5f.tar.gz
VIATRA-Generator-4c34e22d23197ca6b03827a24e9339f88f82df5f.tar.zst
VIATRA-Generator-4c34e22d23197ca6b03827a24e9339f88f82df5f.zip
VAMPIRE: integrate local Vampire executeable #32
Diffstat (limited to 'Metrics')
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.java._tracebin0 -> 164 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.xtendbinbin0 -> 1885 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.java._tracebin0 -> 6539 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.xtendbinbin0 -> 8247 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.MetricDistanceGroup.java._tracebin0 -> 2918 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.java._tracebin0 -> 2152 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.xtendbinbin0 -> 6658 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.java._tracebin0 -> 12333 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.xtendbinbin0 -> 12384 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Domain.java10
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java99
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/MetricDistanceGroup.java49
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.java54
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.java180
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.java._tracebin0 -> 1591 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.xtendbinbin0 -> 4755 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.java._tracebin0 -> 6400 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.xtendbinbin0 -> 6373 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.java._tracebin0 -> 10274 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.xtendbinbin0 -> 7080 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.java._tracebin0 -> 5179 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.xtendbinbin0 -> 7053 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.StateData.java._tracebin0 -> 1071 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/CostDistance.java26
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/EuclideanDistance.java91
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.java136
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.java93
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/StateData.java38
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.java._tracebin0 -> 10303 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.xtendbinbin0 -> 7659 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.java._tracebin0 -> 5380 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.xtendbinbin0 -> 5215 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.java._tracebin0 -> 14346 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.xtendbinbin0 -> 8393 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.java._tracebin0 -> 10923 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.xtendbinbin0 -> 8678 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.java140
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.java96
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.java201
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.java162
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.java._tracebin0 -> 4046 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.xtendbinbin0 -> 4364 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.DataName.java._tracebin0 -> 395 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.java._tracebin0 -> 8762 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.xtendbinbin0 -> 7536 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.java._tracebin0 -> 2611 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.xtendbinbin0 -> 7213 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/CsvFileWriter.java75
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/DataName.java12
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.java138
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.java49
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.java._tracebin0 -> 3341 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.xtendbinbin0 -> 3968 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.java._tracebin0 -> 381 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.xtendbinbin0 -> 2472 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.java._tracebin0 -> 756 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.xtendbinbin0 -> 2822 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.java._tracebin0 -> 3277 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.xtendbinbin0 -> 6315 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.java._tracebin0 -> 1066 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.xtendbinbin0 -> 4941 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.java._tracebin0 -> 2658 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.xtendbinbin0 -> 3676 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.java._tracebin0 -> 1063 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.xtendbinbin0 -> 4940 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.java._tracebin0 -> 4325 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.xtendbinbin0 -> 6380 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.java._tracebin0 -> 4081 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.xtendbinbin0 -> 4458 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/EdgeTypeMetric.java65
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/Metric.java10
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MetricSampleGroup.java19
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java59
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeActivityMetric.java31
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.java54
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/OutDegreeMetric.java31
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedClusteringCoefficientMetric.java74
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedOutDegree.java73
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.java._tracebin0 -> 4597 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.xtendbinbin0 -> 6307 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/LinearModel.java90
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.java._tracebin0 -> 1968 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.xtendbinbin0 -> 6940 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.java._tracebin0 -> 607 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.xtendbinbin0 -> 5275 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ConstraintCollection.java79
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.java34
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcC.java._tracebin0 -> 5637 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcEDA.java._tracebin0 -> 13288 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMPC.java._tracebin0 -> 24403 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric.java._tracebin0 -> 522 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric2.java._tracebin0 -> 608 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNA.java._tracebin0 -> 13672 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDA.java._tracebin0 -> 10147 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDC.java._tracebin0 -> 7235 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRCNT.java._tracebin0 -> 7671 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRNUM.java._tracebin0 -> 15830 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQROSZ.java._tracebin0 -> 3437 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRTOT.java._tracebin0 -> 13017 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.xtendbinbin0 -> 7750 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CalculationsNA.java._tracebin0 -> 12572 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.FixModelURIs.java._tracebin0 -> 3743 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.MetricsCalculationUsingShapes.java._tracebin0 -> 19842 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.Util.java._tracebin0 -> 32376 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.gitignore1
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.java._tracebin0 -> 6221 bytes
106 files changed, 2269 insertions, 0 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.java._trace
new file mode 100644
index 00000000..8ab43fde
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.xtendbin
new file mode 100644
index 00000000..f502d04e
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.java._trace
new file mode 100644
index 00000000..7096f9db
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.xtendbin
new file mode 100644
index 00000000..2362ebad
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.MetricDistanceGroup.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.MetricDistanceGroup.java._trace
new file mode 100644
index 00000000..f6505088
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.MetricDistanceGroup.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.java._trace
new file mode 100644
index 00000000..8708c793
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.xtendbin
new file mode 100644
index 00000000..d9e88699
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.java._trace
new file mode 100644
index 00000000..3e381b10
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.xtendbin
new file mode 100644
index 00000000..5071eb03
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Domain.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Domain.java
new file mode 100644
index 00000000..9b626001
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Domain.java
@@ -0,0 +1,10 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3@SuppressWarnings("all")
4public enum Domain {
5 Yakindumm,
6
7 Ecore,
8
9 Github;
10}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java
new file mode 100644
index 00000000..dbb3bdd1
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java
@@ -0,0 +1,99 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.GraphReader;
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation.ViolationCheck;
8import com.google.common.base.Objects;
9import com.google.common.collect.Iterators;
10import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.YakindummPackageImpl;
11import java.io.File;
12import java.util.ArrayList;
13import java.util.Iterator;
14import org.eclipse.emf.ecore.EReference;
15import org.eclipse.emf.ecore.impl.EcorePackageImpl;
16import org.eclipse.xtext.xbase.lib.CollectionLiterals;
17import org.eclipse.xtext.xbase.lib.Functions.Function1;
18import org.eclipse.xtext.xbase.lib.InputOutput;
19import org.eclipse.xtext.xbase.lib.IteratorExtensions;
20import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
21
22@SuppressWarnings("all")
23public class Main {
24 public static class RWInformation {
25 public String inputFolder;
26
27 public String outputFolder;
28
29 public int numRuns;
30
31 public RWInformation(final String inputFolder, final String outputFolder, final int numRuns) {
32 this.inputFolder = inputFolder;
33 this.outputFolder = outputFolder;
34 this.numRuns = numRuns;
35 }
36 }
37
38 private static Domain d = Domain.Yakindumm;
39
40 private final static String suffix = ".xmi";
41
42 private final static String OUTPUT_FOLDER = "Inputs/measurement2/yakindu/Alloy/";
43
44 private final static String INPUT_FOLDER = "outputs/measurement2/yakindu/Alloy/";
45
46 private final static int NUM_RUNS = 1;
47
48 public static void main(final String[] args) {
49 throw new Error("Unresolved compilation problems:"
50 + "\nThe method or field ReteEngine is undefined"
51 + "\ngetClass cannot be resolved");
52 }
53
54 public static String calculateAllModels(final String inputFolder, final String outputFolder, final int numRuns, final GraphReader reader) {
55 String _xblockexpression = null;
56 {
57 new File(outputFolder).mkdir();
58 for (int i = 1; (i <= numRuns); i++) {
59 {
60 final ArrayList<EMFGraph> models = new ArrayList<EMFGraph>();
61 models.addAll(reader.readModels(((inputFolder + "run") + Integer.valueOf(i))));
62 for (final EMFGraph model : models) {
63 String _name = model.getName();
64 String _plus = (outputFolder + _name);
65 String _plus_1 = (_plus + "_run_");
66 String _plus_2 = (_plus_1 + Integer.valueOf(i));
67 String _plus_3 = (_plus_2 + ".csv");
68 Main.calculateAndOutputMetrics(model, YakindummPackageImpl.eNAME, _plus_3);
69 }
70 }
71 }
72 _xblockexpression = InputOutput.<String>println(("output results Ended for: " + outputFolder));
73 }
74 return _xblockexpression;
75 }
76
77 public static void calculateAndOutputMetrics(final EMFGraph model, final String metaModel, final String fileName) {
78 model.setMetaModel(metaModel);
79 boolean _equals = Objects.equal(Main.d, Domain.Ecore);
80 if (_equals) {
81 final Function1<EReference, Boolean> _function = (EReference it) -> {
82 return Boolean.valueOf((((((it.getName().equals("eGenericType") || it.getName().equals("eGenericSuperTypes")) || it.getName().equals("eFactoryInstance")) ||
83 it.getName().equals("eGenericExceptions")) || it.getName().equals("references")) || it.getName().equals("contents")));
84 };
85 Iterator<EReference> refsToRemove = IteratorExtensions.<EReference>filter(Iterators.<EReference>filter(EcorePackageImpl.eINSTANCE.eAllContents(), EReference.class), _function);
86 final Procedure1<EReference> _function_1 = (EReference it) -> {
87 model.removeReference(it);
88 };
89 IteratorExtensions.<EReference>forEach(refsToRemove, _function_1);
90 }
91 ArrayList<ArrayList<String>> outputs = model.evaluateAllMetrics();
92 int violations = ViolationCheck.calculateViolationCounts(model.getRoot(), Main.d);
93 InputOutput.<Integer>println(Integer.valueOf(violations));
94 String _plus = (Integer.valueOf(violations) + "");
95 ArrayList<String> violationsOutput = CollectionLiterals.<String>newArrayList("violations", _plus);
96 outputs.add(violationsOutput);
97 CsvFileWriter.write(outputs, fileName);
98 }
99}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/MetricDistanceGroup.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/MetricDistanceGroup.java
new file mode 100644
index 00000000..bb0e3ffb
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/MetricDistanceGroup.java
@@ -0,0 +1,49 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3import java.util.HashMap;
4
5@SuppressWarnings("all")
6public class MetricDistanceGroup {
7 private double mpcDistance;
8
9 private double naDistance;
10
11 private double outDegreeDistance;
12
13 private double nodeTypeDistance;
14
15 protected HashMap<String, Double> nodeTypeInfo;
16
17 public MetricDistanceGroup(final double mpcDistance, final double naDistance, final double outDegreeDistance, final double nodeTypeDistance) {
18 this.mpcDistance = mpcDistance;
19 this.naDistance = naDistance;
20 this.outDegreeDistance = outDegreeDistance;
21 this.nodeTypeDistance = nodeTypeDistance;
22 }
23
24 public MetricDistanceGroup(final double mpcDistance, final double naDistance, final double outDegreeDistance) {
25 this.mpcDistance = mpcDistance;
26 this.naDistance = naDistance;
27 this.outDegreeDistance = outDegreeDistance;
28 }
29
30 public double getNodeTypeDistance() {
31 return this.nodeTypeDistance;
32 }
33
34 public double getMPCDistance() {
35 return this.mpcDistance;
36 }
37
38 public double getNADistance() {
39 return this.naDistance;
40 }
41
42 public double getOutDegreeDistance() {
43 return this.outDegreeDistance;
44 }
45
46 public double getNodeTypePercentage(final String typeName) {
47 return (this.nodeTypeInfo.getOrDefault(typeName, Double.valueOf(0.0))).doubleValue();
48 }
49}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.java
new file mode 100644
index 00000000..d1d75d0d
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.java
@@ -0,0 +1,54 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.PartialInterpretationGraph;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter;
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
8import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric;
9import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric;
10import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric;
11import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
12import java.io.File;
13import java.util.ArrayList;
14import java.util.List;
15
16@SuppressWarnings("all")
17public class PartialInterpretationMetric {
18 private static KSDistance ks;
19
20 private static JSDistance js;
21
22 public static void initPaths() {
23 new File("debug/metric/").mkdir();
24 new File("debug/metric/trajectories/").mkdir();
25 }
26
27 public static void calculateMetric(final PartialInterpretation partial, final String path, final String currentStateId, final Integer counter) {
28 final ArrayList<Metric> metrics = new ArrayList<Metric>();
29 OutDegreeMetric _outDegreeMetric = new OutDegreeMetric();
30 metrics.add(_outDegreeMetric);
31 NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric();
32 metrics.add(_nodeActivityMetric);
33 MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric();
34 metrics.add(_multiplexParticipationCoefficientMetric);
35 new File(path).mkdir();
36 final String filename = (((((path + "/state_") + currentStateId) + "-") + counter) + ".csv");
37 final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, currentStateId);
38 CsvFileWriter.write(metricCalculator.evaluateAllMetrics(), filename);
39 }
40
41 public static void outputTrajectories(final PartialInterpretation empty, final /* List<Solution> */Object solutions) {
42 throw new Error("Unresolved compilation problems:"
43 + "\nshortestTrajectory cannot be resolved"
44 + "\nmodel cannot be resolved"
45 + "\ndoNextTransformation cannot be resolved"
46 + "\nstateCoder cannot be resolved"
47 + "\ncreateStateCode cannot be resolved"
48 + "\ntoString cannot be resolved"
49 + "\ngetModel cannot be resolved"
50 + "\nstateCoder cannot be resolved"
51 + "\ncreateStateCode cannot be resolved"
52 + "\ntoString cannot be resolved");
53 }
54}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.java
new file mode 100644
index 00000000..c98cbeea
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.java
@@ -0,0 +1,180 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.MetricDistanceGroup;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.EuclideanDistance;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance;
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance;
8import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.StateData;
9import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.PartialInterpretationGraph;
10import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
11import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup;
12import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric;
13import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric;
14import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric;
15import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric;
16import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.predictor.LinearModel;
17import com.google.common.base.Objects;
18import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
19import java.util.ArrayList;
20import java.util.List;
21import java.util.Map;
22import org.eclipse.xtend.lib.annotations.AccessorType;
23import org.eclipse.xtend.lib.annotations.Accessors;
24import org.eclipse.xtext.xbase.lib.InputOutput;
25import org.eclipse.xtext.xbase.lib.Pure;
26
27@SuppressWarnings("all")
28public class PartialInterpretationMetricDistance {
29 private KSDistance ks;
30
31 private JSDistance js;
32
33 private EuclideanDistance ed;
34
35 private Map<Object, StateData> stateAndHistory;
36
37 private /* OLSMultipleLinearRegression */Object regression;
38
39 private List<StateData> samples;
40
41 private MetricSampleGroup g;
42
43 @Accessors(AccessorType.PUBLIC_GETTER)
44 private LinearModel linearModel;
45
46 public PartialInterpretationMetricDistance(final Domain d) {
47 throw new Error("Unresolved compilation problems:"
48 + "\nOLSMultipleLinearRegression cannot be resolved."
49 + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression"
50 + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression"
51 + "\nnoIntercept cannot be resolved");
52 }
53
54 public MetricDistanceGroup calculateMetricDistanceKS(final PartialInterpretation partial) {
55 final ArrayList<Metric> metrics = new ArrayList<Metric>();
56 OutDegreeMetric _outDegreeMetric = new OutDegreeMetric();
57 metrics.add(_outDegreeMetric);
58 NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric();
59 metrics.add(_nodeActivityMetric);
60 MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric();
61 metrics.add(_multiplexParticipationCoefficientMetric);
62 NodeTypeMetric _nodeTypeMetric = new NodeTypeMetric();
63 metrics.add(_nodeTypeMetric);
64 final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, null);
65 MetricSampleGroup metricSamples = metricCalculator.evaluateAllMetricsToSamples();
66 double mpc = this.ks.mpcDistance(metricSamples.mpcSamples);
67 double na = this.ks.naDistance(metricSamples.naSamples);
68 double outDegree = this.ks.outDegreeDistance(metricSamples.outDegreeSamples);
69 double nodeType = this.ks.nodeTypeDistance(metricSamples.nodeTypeSamples);
70 MetricDistanceGroup distance = new MetricDistanceGroup(mpc, na, outDegree, nodeType);
71 distance.nodeTypeInfo = metricSamples.nodeTypeSamples;
72 return distance;
73 }
74
75 public MetricDistanceGroup calculateMetricEuclidean(final PartialInterpretation partial) {
76 final ArrayList<Metric> metrics = new ArrayList<Metric>();
77 OutDegreeMetric _outDegreeMetric = new OutDegreeMetric();
78 metrics.add(_outDegreeMetric);
79 NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric();
80 metrics.add(_nodeActivityMetric);
81 MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric();
82 metrics.add(_multiplexParticipationCoefficientMetric);
83 final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, null);
84 MetricSampleGroup metricSamples = metricCalculator.evaluateAllMetricsToSamples();
85 double mpc = this.ed.mpcDistance(metricSamples.mpcSamples);
86 double na = this.ed.naDistance(metricSamples.naSamples);
87 double outDegree = this.ed.outDegreeDistance(metricSamples.outDegreeSamples);
88 return new MetricDistanceGroup(mpc, na, outDegree);
89 }
90
91 public MetricDistanceGroup calculateMetricDistance(final PartialInterpretation partial) {
92 final ArrayList<Metric> metrics = new ArrayList<Metric>();
93 OutDegreeMetric _outDegreeMetric = new OutDegreeMetric();
94 metrics.add(_outDegreeMetric);
95 NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric();
96 metrics.add(_nodeActivityMetric);
97 MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric();
98 metrics.add(_multiplexParticipationCoefficientMetric);
99 final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, null);
100 MetricSampleGroup metricSamples = metricCalculator.evaluateAllMetricsToSamples();
101 double mpc = this.js.mpcDistance(metricSamples.mpcSamples);
102 double na = this.js.naDistance(metricSamples.naSamples);
103 double outDegree = this.js.outDegreeDistance(metricSamples.outDegreeSamples);
104 return new MetricDistanceGroup(mpc, na, outDegree);
105 }
106
107 public String resetRegression(final Object state) {
108 String _xblockexpression = null;
109 {
110 this.samples.clear();
111 boolean _containsKey = this.stateAndHistory.containsKey(state);
112 if (_containsKey) {
113 StateData data = this.stateAndHistory.get(state);
114 Object curState = state;
115 this.samples.add(data);
116 while ((this.stateAndHistory.containsKey(data.getLastState()) && (!Objects.equal(data.getLastState(), curState)))) {
117 {
118 curState = data.getLastState();
119 data = this.stateAndHistory.get(data.getLastState());
120 this.samples.add(data);
121 }
122 }
123 int _size = this.samples.size();
124 boolean _equals = (_size == 0);
125 if (_equals) {
126 InputOutput.<String>println(("state: " + state));
127 Object _lastState = data.getLastState();
128 String _plus = ("last state: " + _lastState);
129 InputOutput.<String>println(_plus);
130 }
131 }
132 int _size_1 = this.samples.size();
133 String _plus_1 = ("trajectory sample size:" + Integer.valueOf(_size_1));
134 _xblockexpression = InputOutput.<String>println(_plus_1);
135 }
136 return _xblockexpression;
137 }
138
139 public boolean feedData(final Object state, final double[] features, final double value, final Object lastState) {
140 boolean _xblockexpression = false;
141 {
142 StateData data = new StateData(features, value, lastState);
143 this.stateAndHistory.put(state, data);
144 _xblockexpression = this.samples.add(data);
145 }
146 return _xblockexpression;
147 }
148
149 public Object getPredictionForNextDataSample(final double[] features, final double value, final double[] featuresToPredict) {
150 throw new Error("Unresolved compilation problems:"
151 + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression"
152 + "\nThe method predict(double[]) from the type PartialInterpretationMetricDistance refers to the missing type Object"
153 + "\nnewSampleData cannot be resolved");
154 }
155
156 private Object predict(final double[] featuresToPredict) {
157 throw new Error("Unresolved compilation problems:"
158 + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression"
159 + "\nestimateRegressionParameters cannot be resolved"
160 + "\nget cannot be resolved"
161 + "\n+= cannot be resolved"
162 + "\nget cannot be resolved"
163 + "\n* cannot be resolved");
164 }
165
166 public double[] calculateFeature(final int step, final int violations) {
167 double[] features = new double[2];
168 features[0] = 1;
169 double _sqrt = Math.sqrt(step);
170 double _plus = (_sqrt + 30);
171 features[0] = _plus;
172 features[1] = (1.0 / (step + 30));
173 return features;
174 }
175
176 @Pure
177 public LinearModel getLinearModel() {
178 return this.linearModel;
179 }
180}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.java._trace
new file mode 100644
index 00000000..b7325732
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.xtendbin
new file mode 100644
index 00000000..1b30d47a
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.java._trace
new file mode 100644
index 00000000..fa849d42
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.xtendbin
new file mode 100644
index 00000000..e7be4117
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.java._trace
new file mode 100644
index 00000000..66b1b229
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.xtendbin
new file mode 100644
index 00000000..7a08f8e5
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.java._trace
new file mode 100644
index 00000000..c7256d9a
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.xtendbin
new file mode 100644
index 00000000..309066cc
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.StateData.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.StateData.java._trace
new file mode 100644
index 00000000..d4cde029
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.StateData.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/CostDistance.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/CostDistance.java
new file mode 100644
index 00000000..cb366f64
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/CostDistance.java
@@ -0,0 +1,26 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance;
2
3import java.text.DecimalFormat;
4import java.util.HashMap;
5import java.util.List;
6
7@SuppressWarnings("all")
8public abstract class CostDistance {
9 public abstract double naDistance(final List<Double> samples);
10
11 public abstract double mpcDistance(final List<Double> samples);
12
13 public abstract double outDegreeDistance(final List<Double> samples);
14
15 protected HashMap<String, Double> pmfFromSamples(final double[] samples, final DecimalFormat formatter) {
16 int length = samples.length;
17 HashMap<String, Double> pmfMap = new HashMap<String, Double>();
18 for (final double sample : samples) {
19 String _format = formatter.format(sample);
20 Double _orDefault = pmfMap.getOrDefault(formatter.format(sample), Double.valueOf(0.0));
21 double _plus = ((_orDefault).doubleValue() + (1.0 / length));
22 pmfMap.put(_format, Double.valueOf(_plus));
23 }
24 return pmfMap;
25 }
26}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/EuclideanDistance.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/EuclideanDistance.java
new file mode 100644
index 00000000..6a80d750
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/EuclideanDistance.java
@@ -0,0 +1,91 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.CostDistance;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup;
5import com.google.common.collect.Sets;
6import java.text.DecimalFormat;
7import java.util.ArrayList;
8import java.util.HashMap;
9import java.util.List;
10import java.util.Map;
11import java.util.Set;
12import java.util.function.ToDoubleFunction;
13import org.eclipse.xtext.xbase.lib.Conversions;
14import org.eclipse.xtext.xbase.lib.DoubleExtensions;
15
16@SuppressWarnings("all")
17public class EuclideanDistance extends CostDistance {
18 private MetricSampleGroup g;
19
20 private HashMap<String, Double> mpcPMF;
21
22 private HashMap<String, Double> naPMF;
23
24 private HashMap<String, Double> outDegreePMF;
25
26 private DecimalFormat formatter;
27
28 public EuclideanDistance(final MetricSampleGroup g) {
29 this.g = g;
30 List<Double> mpcSamples = g.mpcSamples;
31 final ToDoubleFunction<Double> _function = (Double it) -> {
32 return (it).doubleValue();
33 };
34 double[] naSamples = g.naSamples.stream().mapToDouble(_function).toArray();
35 final ToDoubleFunction<Double> _function_1 = (Double it) -> {
36 return (it).doubleValue();
37 };
38 double[] outDegreeSamples = g.outDegreeSamples.stream().mapToDouble(_function_1).toArray();
39 DecimalFormat _decimalFormat = new DecimalFormat("#0.00000");
40 this.formatter = _decimalFormat;
41 final List<Double> _converted_mpcSamples = (List<Double>)mpcSamples;
42 this.mpcPMF = this.pmfFromSamples(((double[])Conversions.unwrapArray(_converted_mpcSamples, double.class)), this.formatter);
43 this.naPMF = this.pmfFromSamples(naSamples, this.formatter);
44 this.outDegreePMF = this.pmfFromSamples(outDegreeSamples, this.formatter);
45 }
46
47 @Override
48 public double naDistance(final List<Double> samples) {
49 HashMap<String, Double> pmfMap = this.pmfFromSamples(((double[])Conversions.unwrapArray(samples, double.class)), this.formatter);
50 return this.euclideanDistance(pmfMap, this.naPMF);
51 }
52
53 @Override
54 public double mpcDistance(final List<Double> samples) {
55 HashMap<String, Double> pmfMap = this.pmfFromSamples(((double[])Conversions.unwrapArray(samples, double.class)), this.formatter);
56 return this.euclideanDistance(pmfMap, this.mpcPMF);
57 }
58
59 @Override
60 public double outDegreeDistance(final List<Double> samples) {
61 HashMap<String, Double> pmfMap = this.pmfFromSamples(((double[])Conversions.unwrapArray(samples, double.class)), this.formatter);
62 return this.euclideanDistance(pmfMap, this.outDegreePMF);
63 }
64
65 private double euclideanDistance(final HashMap<String, Double> pmf1, final HashMap<String, Double> pmf2) {
66 Sets.SetView<String> keys = Sets.<String>union(pmf1.keySet(), pmf2.keySet());
67 ArrayList<Double> pmfList1 = this.pmfMapToList(pmf1, keys);
68 ArrayList<Double> pmfList2 = this.pmfMapToList(pmf2, keys);
69 double distance = 0.0;
70 for (int i = 0; (i < pmfList1.size()); i++) {
71 double _distance = distance;
72 Double _get = pmfList1.get(i);
73 Double _get_1 = pmfList2.get(i);
74 double _plus = DoubleExtensions.operator_plus(_get, _get_1);
75 double _pow = Math.pow(_plus, 2);
76 distance = (_distance + _pow);
77 }
78 return Math.sqrt(distance);
79 }
80
81 private ArrayList<Double> pmfMapToList(final Map<String, Double> map, final Set<String> keys) {
82 ArrayList<Double> list = new ArrayList<Double>();
83 for (final String key : keys) {
84 {
85 Double value = map.getOrDefault(key, Double.valueOf(0.0));
86 list.add(value);
87 }
88 }
89 return list;
90 }
91}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.java
new file mode 100644
index 00000000..d3e7e3ad
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.java
@@ -0,0 +1,136 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.CostDistance;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup;
5import com.google.common.collect.Sets;
6import java.text.DecimalFormat;
7import java.util.HashMap;
8import java.util.List;
9import java.util.Set;
10import java.util.function.ToDoubleFunction;
11import org.eclipse.xtext.xbase.lib.Conversions;
12import org.eclipse.xtext.xbase.lib.DoubleExtensions;
13
14@SuppressWarnings("all")
15public class JSDistance extends CostDistance {
16 private HashMap<String, Double> mpcPMF;
17
18 private HashMap<String, Double> naPMF;
19
20 private HashMap<String, Double> outDegreePMF;
21
22 private HashMap<String, Double> nodeTypesPMF;
23
24 private DecimalFormat formatter;
25
26 public JSDistance(final MetricSampleGroup g) {
27 List<Double> mpcSamples = g.mpcSamples;
28 final ToDoubleFunction<Double> _function = (Double it) -> {
29 return (it).doubleValue();
30 };
31 double[] naSamples = g.naSamples.stream().mapToDouble(_function).toArray();
32 final ToDoubleFunction<Double> _function_1 = (Double it) -> {
33 return (it).doubleValue();
34 };
35 double[] outDegreeSamples = g.outDegreeSamples.stream().mapToDouble(_function_1).toArray();
36 DecimalFormat _decimalFormat = new DecimalFormat("#0.00000");
37 this.formatter = _decimalFormat;
38 final List<Double> _converted_mpcSamples = (List<Double>)mpcSamples;
39 this.mpcPMF = this.pmfFromSamples(((double[])Conversions.unwrapArray(_converted_mpcSamples, double.class)), this.formatter);
40 this.naPMF = this.pmfFromSamples(naSamples, this.formatter);
41 this.outDegreePMF = this.pmfFromSamples(outDegreeSamples, this.formatter);
42 this.nodeTypesPMF = g.nodeTypeSamples;
43 }
44
45 private HashMap<String, Double> combinePMF(final HashMap<String, Double> pmf1, final HashMap<String, Double> pmf2) {
46 HashMap<String, Double> pmfMap = new HashMap<String, Double>();
47 Sets.SetView<String> union = Sets.<String>union(pmf1.keySet(), pmf2.keySet());
48 for (final String key : union) {
49 {
50 Double _orDefault = pmf1.getOrDefault(key, Double.valueOf(0.0));
51 Double _orDefault_1 = pmf2.getOrDefault(key, Double.valueOf(0.0));
52 double _plus = DoubleExtensions.operator_plus(_orDefault, _orDefault_1);
53 double value = ((1.0 / 2) * _plus);
54 pmfMap.put(key, Double.valueOf(value));
55 }
56 }
57 return pmfMap;
58 }
59
60 private double jsDivergence(final HashMap<String, Double> p, final HashMap<String, Double> q) {
61 final HashMap<String, Double> m = this.combinePMF(q, p);
62 double _klDivergence = this.klDivergence(p, m);
63 double _multiply = ((1.0 / 2) * _klDivergence);
64 double _klDivergence_1 = this.klDivergence(q, m);
65 double _multiply_1 = ((1.0 / 2) * _klDivergence_1);
66 double distance = (_multiply + _multiply_1);
67 return distance;
68 }
69
70 public double klDivergence(final HashMap<String, Double> p, final HashMap<String, Double> q) {
71 double distance = 0.0;
72 Set<String> _keySet = q.keySet();
73 for (final String key : _keySet) {
74 boolean _containsKey = p.containsKey(key);
75 if (_containsKey) {
76 double _distance = distance;
77 Double _get = p.get(key);
78 Double _get_1 = q.get(key);
79 Double _get_2 = p.get(key);
80 double _divide = DoubleExtensions.operator_divide(_get_1, _get_2);
81 double _log = Math.log(_divide);
82 double _multiply = ((_get).doubleValue() * _log);
83 double _log_1 = Math.log(2);
84 double _divide_1 = (_multiply / _log_1);
85 distance = (_distance - _divide_1);
86 }
87 }
88 return distance;
89 }
90
91 @Override
92 public double mpcDistance(final List<Double> samples) {
93 final ToDoubleFunction<Double> _function = (Double it) -> {
94 return (it).doubleValue();
95 };
96 HashMap<String, Double> map = this.pmfFromSamples(samples.stream().mapToDouble(_function).toArray(), this.formatter);
97 int _size = map.size();
98 boolean _lessThan = (_size < 2);
99 if (_lessThan) {
100 return 1;
101 }
102 return this.jsDivergence(map, this.mpcPMF);
103 }
104
105 @Override
106 public double naDistance(final List<Double> samples) {
107 final ToDoubleFunction<Double> _function = (Double it) -> {
108 return (it).doubleValue();
109 };
110 HashMap<String, Double> map = this.pmfFromSamples(samples.stream().mapToDouble(_function).toArray(), this.formatter);
111 int _size = map.size();
112 boolean _lessThan = (_size < 2);
113 if (_lessThan) {
114 return 1;
115 }
116 return this.jsDivergence(map, this.naPMF);
117 }
118
119 @Override
120 public double outDegreeDistance(final List<Double> samples) {
121 final ToDoubleFunction<Double> _function = (Double it) -> {
122 return (it).doubleValue();
123 };
124 HashMap<String, Double> map = this.pmfFromSamples(samples.stream().mapToDouble(_function).toArray(), this.formatter);
125 int _size = map.size();
126 boolean _lessThan = (_size < 2);
127 if (_lessThan) {
128 return 1;
129 }
130 return this.jsDivergence(map, this.outDegreePMF);
131 }
132
133 public double nodeTypeDistance(final HashMap<String, Double> samples) {
134 return this.klDivergence(samples, this.nodeTypesPMF);
135 }
136}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.java
new file mode 100644
index 00000000..638ff332
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.java
@@ -0,0 +1,93 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.CostDistance;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup;
5import java.util.ArrayList;
6import java.util.HashMap;
7import java.util.List;
8import java.util.Set;
9import org.eclipse.xtext.xbase.lib.CollectionLiterals;
10
11@SuppressWarnings("all")
12public class KSDistance extends CostDistance {
13 private static Object ksTester /* Skipped initializer because of errors */;
14
15 private MetricSampleGroup g;
16
17 public KSDistance(final MetricSampleGroup g) {
18 this.g = g;
19 }
20
21 @Override
22 public double mpcDistance(final List<Double> samples) {
23 throw new Error("Unresolved compilation problems:"
24 + "\nThe field KSDistance.ksTester refers to the missing type Object"
25 + "\nkolmogorovSmirnovStatistic cannot be resolved");
26 }
27
28 @Override
29 public double naDistance(final List<Double> samples) {
30 throw new Error("Unresolved compilation problems:"
31 + "\nThe field KSDistance.ksTester refers to the missing type Object"
32 + "\nkolmogorovSmirnovStatistic cannot be resolved");
33 }
34
35 @Override
36 public double outDegreeDistance(final List<Double> samples) {
37 throw new Error("Unresolved compilation problems:"
38 + "\nThe field KSDistance.ksTester refers to the missing type Object"
39 + "\nkolmogorovSmirnovStatistic cannot be resolved");
40 }
41
42 public double typedOutDegreeDistance(final HashMap<String, List<Integer>> map) {
43 throw new Error("Unresolved compilation problems:"
44 + "\nThe field KSDistance.ksTester refers to the missing type Object"
45 + "\nkolmogorovSmirnovStatistic cannot be resolved");
46 }
47
48 public double nodeTypeDistance(final HashMap<String, Double> samples) {
49 HashMap<String, Double> typesDistMap = this.g.nodeTypeSamples;
50 ArrayList<Double> sourceDist = CollectionLiterals.<Double>newArrayList();
51 ArrayList<Double> instanceDist = CollectionLiterals.<Double>newArrayList();
52 Set<String> _keySet = typesDistMap.keySet();
53 for (final String key : _keySet) {
54 {
55 sourceDist.add(typesDistMap.get(key));
56 instanceDist.add(samples.getOrDefault(key, Double.valueOf(0.0)));
57 }
58 }
59 return this.ks_distance_two_dist(sourceDist, instanceDist);
60 }
61
62 public double edgeTypeDistance(final HashMap<String, Double> samples) {
63 HashMap<String, Double> typesDistMap = this.g.edgeTypeSamples;
64 ArrayList<Double> sourceDist = CollectionLiterals.<Double>newArrayList();
65 ArrayList<Double> instanceDist = CollectionLiterals.<Double>newArrayList();
66 Set<String> _keySet = typesDistMap.keySet();
67 for (final String key : _keySet) {
68 {
69 sourceDist.add(typesDistMap.get(key));
70 instanceDist.add(samples.getOrDefault(key, Double.valueOf(0.0)));
71 }
72 }
73 return this.ks_distance_two_dist(sourceDist, instanceDist);
74 }
75
76 public double ks_distance_two_dist(final List<Double> dist1, final List<Double> dist2) {
77 double ksStatistics = 0.0;
78 double sum1 = 0.0;
79 double sum2 = 0.0;
80 for (int i = 0; (i < dist1.size()); i++) {
81 {
82 double _sum1 = sum1;
83 Double _get = dist1.get(i);
84 sum1 = (_sum1 + (_get).doubleValue());
85 double _sum2 = sum2;
86 Double _get_1 = dist2.get(i);
87 sum2 = (_sum2 + (_get_1).doubleValue());
88 ksStatistics = Math.max(ksStatistics, Math.abs((sum1 - sum2)));
89 }
90 }
91 return ksStatistics;
92 }
93}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/StateData.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/StateData.java
new file mode 100644
index 00000000..29a310f4
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/StateData.java
@@ -0,0 +1,38 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance;
2
3import org.eclipse.xtend.lib.annotations.AccessorType;
4import org.eclipse.xtend.lib.annotations.Accessors;
5import org.eclipse.xtext.xbase.lib.Pure;
6
7@SuppressWarnings("all")
8public class StateData {
9 @Accessors(AccessorType.PUBLIC_GETTER)
10 private double[] features;
11
12 @Accessors(AccessorType.PUBLIC_GETTER)
13 private double value;
14
15 @Accessors(AccessorType.PUBLIC_GETTER)
16 private Object lastState;
17
18 public StateData(final double[] features, final double value, final Object lastState) {
19 this.features = features;
20 this.value = value;
21 this.lastState = lastState;
22 }
23
24 @Pure
25 public double[] getFeatures() {
26 return this.features;
27 }
28
29 @Pure
30 public double getValue() {
31 return this.value;
32 }
33
34 @Pure
35 public Object getLastState() {
36 return this.lastState;
37 }
38}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.java._trace
new file mode 100644
index 00000000..6e2ea420
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.xtendbin
new file mode 100644
index 00000000..e949bb11
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.java._trace
new file mode 100644
index 00000000..e1d021fd
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.xtendbin
new file mode 100644
index 00000000..547fdc38
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.java._trace
new file mode 100644
index 00000000..5928ed9d
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.xtendbin
new file mode 100644
index 00000000..e9269f16
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.java._trace
new file mode 100644
index 00000000..f19eb46c
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.xtendbin
new file mode 100644
index 00000000..c634ef10
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.java
new file mode 100644
index 00000000..8a9aa8d3
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.java
@@ -0,0 +1,140 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.Graph;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
6import java.util.ArrayList;
7import java.util.HashSet;
8import java.util.List;
9import java.util.function.Consumer;
10import org.eclipse.emf.common.util.EList;
11import org.eclipse.emf.ecore.EObject;
12import org.eclipse.emf.ecore.EReference;
13import org.eclipse.xtend.lib.annotations.AccessorType;
14import org.eclipse.xtend.lib.annotations.Accessors;
15import org.eclipse.xtext.xbase.lib.IteratorExtensions;
16import org.eclipse.xtext.xbase.lib.Pure;
17
18@SuppressWarnings("all")
19public class EMFGraph extends Graph {
20 @Accessors(AccessorType.PUBLIC_GETTER)
21 private EObject root;
22
23 public void init(final EObject root, final List<Metric> metrics, final String name, final List<EReference> referenceTypes) {
24 final List<EObject> otherContents = IteratorExtensions.<EObject>toList(root.eAllContents());
25 this.root = root;
26 otherContents.add(root);
27 this.init(otherContents, metrics, name, referenceTypes);
28 }
29
30 /**
31 * init the graph with all nodes and reference types in the meta model
32 * @param objects: objects in the instance model (exclude root)
33 * @param metrics: metrics to be evaluated
34 * @param name: name of the instance model
35 * @param ReferenceTypes: reference types defined in the meta model
36 */
37 public void init(final List<EObject> objects, final List<Metric> metrics, final String name, final List<EReference> referenceTypes) {
38 final Consumer<EObject> _function = (EObject it) -> {
39 HashSet<String> types = new HashSet<String>();
40 types.add(it.eClass().getName());
41 this.statistic.addNodeWithAllTypes(it, types);
42 };
43 objects.forEach(_function);
44 final Consumer<EReference> _function_1 = (EReference it) -> {
45 boolean _isDerived = it.isDerived();
46 boolean _not = (!_isDerived);
47 if (_not) {
48 this.statistic.addEdgeType(it.getName());
49 }
50 };
51 referenceTypes.forEach(_function_1);
52 final Consumer<EObject> _function_2 = (EObject source) -> {
53 final Consumer<EReference> _function_3 = (EReference r) -> {
54 boolean _isMany = r.isMany();
55 if (_isMany) {
56 final Consumer<EObject> _function_4 = (EObject target) -> {
57 this.addEdge(source, target, r);
58 };
59 this.getNeighbours(source, r).forEach(_function_4);
60 } else {
61 Object _eGet = source.eGet(r);
62 final EObject target = ((EObject) _eGet);
63 this.addEdge(source, target, r);
64 }
65 };
66 source.eClass().getEAllReferences().forEach(_function_3);
67 };
68 objects.forEach(_function_2);
69 this.metrics = metrics;
70 this.name = name;
71 }
72
73 public void removeReference(final EReference r) {
74 boolean _containsEdgeType = this.statistic.containsEdgeType(r.getName());
75 if (_containsEdgeType) {
76 this.statistic.removeReference(r.getName(), r.isContainment());
77 }
78 }
79
80 /**
81 * Set basic information for the output
82 */
83 @Override
84 public void setBasicInformation(final ArrayList<ArrayList<String>> output) {
85 final ArrayList<String> metaInfo = new ArrayList<String>();
86 metaInfo.add(Graph.META_MODEL_HEADER);
87 metaInfo.add(this.metaModel);
88 final ArrayList<String> edgeInfo = new ArrayList<String>();
89 edgeInfo.add(Graph.NUM_EDGE_TYPE_HEADER);
90 int _size = this.statistic.getAllTypes().size();
91 String _plus = (Integer.valueOf(_size) + "");
92 edgeInfo.add(_plus);
93 final ArrayList<String> nodeInfo = new ArrayList<String>();
94 nodeInfo.add(Graph.NUM_NODE_HEADER);
95 int _size_1 = this.statistic.getAllNodes().size();
96 String _plus_1 = (Integer.valueOf(_size_1) + "");
97 nodeInfo.add(_plus_1);
98 final ArrayList<String> stateInfo = new ArrayList<String>();
99 stateInfo.add(Graph.STATE_ID_HEADER);
100 stateInfo.add(this.name);
101 output.add(metaInfo);
102 output.add(edgeInfo);
103 output.add(nodeInfo);
104 output.add(stateInfo);
105 }
106
107 public EList<EObject> getNeighbours(final EObject o, final EReference r) {
108 Object _eGet = o.eGet(r, true);
109 return ((EList<EObject>) _eGet);
110 }
111
112 public void addEdge(final EObject source, final EObject target, final EReference r) {
113 if ((((target != null) && (r != null)) && (!r.isDerived()))) {
114 this.statistic.addEdge(source, target, r.getName());
115 }
116 }
117
118 @Override
119 public GraphStatistic getStatistic() {
120 return this.statistic;
121 }
122
123 @Override
124 public String getName() {
125 return this.name;
126 }
127
128 public void setMetaModel(final String model) {
129 this.metaModel = model;
130 }
131
132 public String getMetaModel() {
133 return this.metaModel;
134 }
135
136 @Pure
137 public EObject getRoot() {
138 return this.root;
139 }
140}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.java
new file mode 100644
index 00000000..f9923a63
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.java
@@ -0,0 +1,96 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup;
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric;
8import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric;
9import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric;
10import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric;
11import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree;
12import java.util.ArrayList;
13import java.util.Collection;
14import java.util.HashMap;
15import java.util.List;
16import org.eclipse.xtext.xbase.lib.Conversions;
17
18@SuppressWarnings("all")
19public abstract class Graph {
20 protected final static String META_MODEL_HEADER = "Meta Mode";
21
22 protected final static String NUM_NODE_HEADER = "Number Of Nodes";
23
24 protected final static String NUM_EDGE_TYPE_HEADER = "Number of Edge types";
25
26 protected final static String STATE_ID_HEADER = "State Id";
27
28 protected final GraphStatistic statistic = new GraphStatistic();
29
30 protected List<Metric> metrics;
31
32 protected String name = "";
33
34 protected String metaModel = "";
35
36 /**
37 * evaluate all metrics for this model
38 * return the result as a two dimentional list
39 */
40 public ArrayList<ArrayList<String>> evaluateAllMetrics() {
41 final ArrayList<ArrayList<String>> result = new ArrayList<ArrayList<String>>();
42 this.setBasicInformation(result);
43 for (final Metric metric : this.metrics) {
44 {
45 final String[][] datas = metric.evaluate(this.statistic);
46 for (final String[] row : datas) {
47 ArrayList<String> _arrayList = new ArrayList<String>((Collection<? extends String>)Conversions.doWrapArray(row));
48 result.add(_arrayList);
49 }
50 }
51 }
52 return result;
53 }
54
55 public MetricSampleGroup evaluateAllMetricsToSamples() {
56 MetricSampleGroup sample = new MetricSampleGroup();
57 for (final Metric metric : this.metrics) {
58 if ((metric instanceof MultiplexParticipationCoefficientMetric)) {
59 Object _evaluateSamples = ((MultiplexParticipationCoefficientMetric)metric).evaluateSamples(this.statistic);
60 sample.mpcSamples = ((ArrayList<Double>) _evaluateSamples);
61 } else {
62 if ((metric instanceof NodeActivityMetric)) {
63 Object _evaluateSamples_1 = ((NodeActivityMetric)metric).evaluateSamples(this.statistic);
64 sample.naSamples = ((ArrayList<Double>) _evaluateSamples_1);
65 } else {
66 if ((metric instanceof OutDegreeMetric)) {
67 Object _evaluateSamples_2 = ((OutDegreeMetric)metric).evaluateSamples(this.statistic);
68 sample.outDegreeSamples = ((ArrayList<Double>) _evaluateSamples_2);
69 } else {
70 if ((metric instanceof TypedOutDegree)) {
71 Object _evaluateSamples_3 = ((TypedOutDegree)metric).evaluateSamples(this.statistic);
72 sample.typedOutDegreeSamples = ((HashMap<String, List<Integer>>) _evaluateSamples_3);
73 } else {
74 if ((metric instanceof NodeTypeMetric)) {
75 Object _evaluateSamples_4 = ((NodeTypeMetric)metric).evaluateSamples(this.statistic);
76 sample.nodeTypeSamples = ((HashMap<String, Double>) _evaluateSamples_4);
77 } else {
78 if ((metric instanceof EdgeTypeMetric)) {
79 Object _evaluateSamples_5 = ((EdgeTypeMetric)metric).evaluateSamples(this.statistic);
80 sample.edgeTypeSamples = ((HashMap<String, Double>) _evaluateSamples_5);
81 }
82 }
83 }
84 }
85 }
86 }
87 }
88 return sample;
89 }
90
91 public abstract void setBasicInformation(final ArrayList<ArrayList<String>> result);
92
93 public abstract GraphStatistic getStatistic();
94
95 public abstract String getName();
96}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.java
new file mode 100644
index 00000000..7bd1d899
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.java
@@ -0,0 +1,201 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph;
2
3import com.google.common.collect.ArrayListMultimap;
4import com.google.common.collect.Multimap;
5import java.util.Collection;
6import java.util.HashMap;
7import java.util.HashSet;
8import java.util.List;
9import java.util.Map;
10import java.util.Set;
11import java.util.function.Consumer;
12import org.eclipse.emf.ecore.EObject;
13import org.eclipse.xtext.xbase.lib.IterableExtensions;
14import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
15
16@SuppressWarnings("all")
17public class GraphStatistic {
18 private final HashMap<String, Multimap<EObject, EObject>> incomingEdges = new HashMap<String, Multimap<EObject, EObject>>();
19
20 private final HashMap<String, Multimap<EObject, EObject>> outgoingEdges = new HashMap<String, Multimap<EObject, EObject>>();
21
22 private final HashSet<String> edgeTypes = new HashSet<String>();
23
24 private final HashMap<EObject, Set<String>> nodeToType = new HashMap<EObject, Set<String>>();
25
26 /**
27 * Add an edge type to to the graph
28 * @param type: type to add
29 */
30 public void addEdgeType(final String type) {
31 boolean _contains = this.edgeTypes.contains(type);
32 if (_contains) {
33 return;
34 }
35 this.edgeTypes.add(type);
36 this.incomingEdges.put(type, ArrayListMultimap.<EObject, EObject>create());
37 this.outgoingEdges.put(type, ArrayListMultimap.<EObject, EObject>create());
38 }
39
40 /**
41 * Add a node to the graph with one type in its type hierarchy
42 * @param node: node to add
43 */
44 public void addNodeWithType(final EObject n, final String Type) {
45 HashSet<String> _hashSet = new HashSet<String>();
46 Set<String> types = this.nodeToType.getOrDefault(n, _hashSet);
47 types.add(Type);
48 this.nodeToType.put(n, types);
49 }
50
51 public boolean containsNode(final EObject o) {
52 return this.nodeToType.containsKey(o);
53 }
54
55 public Set<String> getTypesForNode(final EObject o) {
56 HashSet<String> _hashSet = new HashSet<String>();
57 return this.nodeToType.getOrDefault(o, _hashSet);
58 }
59
60 public void overwriteCurrentType(final EObject o, final String type) {
61 HashSet<String> _hashSet = new HashSet<String>();
62 Set<String> typeSet = this.nodeToType.getOrDefault(o, _hashSet);
63 typeSet.clear();
64 typeSet.add(type);
65 this.nodeToType.put(o, typeSet);
66 }
67
68 /**
69 * Add a node to the graph with all types in its type hierarchy
70 */
71 public void addNodeWithAllTypes(final EObject n, final Set<String> types) {
72 this.nodeToType.put(n, types);
73 }
74
75 /**
76 * Add an edge to the graph
77 * @param source: source node
78 * @param target: target node
79 * @param type: type of the reference
80 */
81 public void addEdge(final EObject source, final EObject target, final String type) {
82 this.outgoingEdges.get(type).put(source, target);
83 this.incomingEdges.get(type).put(target, source);
84 }
85
86 /**
87 * check if this graph contains a specific edge type
88 */
89 public boolean containsEdgeType(final String typeName) {
90 if ((this.outgoingEdges.containsKey(typeName) && this.incomingEdges.containsKey(typeName))) {
91 return true;
92 }
93 return false;
94 }
95
96 /**
97 * remove references from the statistics, potentially remove the nodes associated with it
98 * @Param name: name of the reference
99 * @Param isContainment: if true then the corresponding nodes on the incoming side will also be removed
100 */
101 public void removeReference(final String name, final boolean isContainment) {
102 boolean _contains = this.edgeTypes.contains(name);
103 boolean _not = (!_contains);
104 if (_not) {
105 return;
106 }
107 this.edgeTypes.remove(name);
108 Multimap<EObject, EObject> incomingSet = this.incomingEdges.remove(name);
109 this.outgoingEdges.remove(name);
110 if ((!isContainment)) {
111 return;
112 }
113 final Set<EObject> nodesToRemove = incomingSet.keySet();
114 final Consumer<EObject> _function = (EObject it) -> {
115 this.nodeToType.remove(it);
116 };
117 nodesToRemove.forEach(_function);
118 final Procedure1<Multimap<EObject, EObject>> _function_1 = (Multimap<EObject, EObject> refMap) -> {
119 final Consumer<EObject> _function_2 = (EObject it) -> {
120 refMap.removeAll(it);
121 };
122 nodesToRemove.forEach(_function_2);
123 Collection<EObject> values = refMap.values();
124 values.removeAll(nodesToRemove);
125 return;
126 };
127 final Procedure1<Multimap<EObject, EObject>> removeForMultimap = _function_1;
128 IterableExtensions.<Multimap<EObject, EObject>>forEach(this.incomingEdges.values(), removeForMultimap);
129 IterableExtensions.<Multimap<EObject, EObject>>forEach(this.outgoingEdges.values(), removeForMultimap);
130 }
131
132 /**
133 * calculate the out degree for an object
134 */
135 public int outDegree(final EObject o) {
136 int count = 0;
137 for (final String type : this.edgeTypes) {
138 int _count = count;
139 int _size = this.outgoingEdges.get(type).get(o).size();
140 count = (_count + _size);
141 }
142 return count;
143 }
144
145 /**
146 * calculate the in degree of an object
147 */
148 public int inDegree(final EObject o) {
149 int count = 0;
150 for (final String type : this.edgeTypes) {
151 int _count = count;
152 int _size = this.incomingEdges.get(type).get(o).size();
153 count = (_count + _size);
154 }
155 return count;
156 }
157
158 /**
159 * calculate the dimentional degree of a node
160 */
161 public int dimentionalDegree(final EObject o, final String type) {
162 int _size = this.incomingEdges.get(type).get(o).size();
163 int _size_1 = this.outgoingEdges.get(type).get(o).size();
164 return (_size + _size_1);
165 }
166
167 /**
168 * calculate the number of edge types for a given node.
169 */
170 public int numOfEdgeTypes(final EObject o) {
171 int count = 0;
172 for (final String type : this.edgeTypes) {
173 int _dimentionalDegree = this.dimentionalDegree(o, type);
174 boolean _greaterThan = (_dimentionalDegree > 0);
175 if (_greaterThan) {
176 count++;
177 }
178 }
179 return count;
180 }
181
182 public List<String> getAllTypes() {
183 return IterableExtensions.<String>toList(this.edgeTypes);
184 }
185
186 public Map<EObject, Set<String>> getNodeToTypesMap() {
187 return this.nodeToType;
188 }
189
190 public List<EObject> getAllNodes() {
191 return IterableExtensions.<EObject>toList(this.nodeToType.keySet());
192 }
193
194 public HashMap<String, Multimap<EObject, EObject>> getOutgoingEdges() {
195 return this.outgoingEdges;
196 }
197
198 public HashMap<String, Multimap<EObject, EObject>> incomingEdges() {
199 return this.incomingEdges;
200 }
201}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.java
new file mode 100644
index 00000000..83bb92ca
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.java
@@ -0,0 +1,162 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.Graph;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
6import com.google.common.collect.Iterables;
7import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement;
8import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration;
9import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type;
10import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition;
11import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.BinaryElementRelationLink;
12import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
13import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialRelationInterpretation;
14import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.impl.PartialComplexTypeInterpretationImpl;
15import java.util.ArrayList;
16import java.util.List;
17import java.util.function.Consumer;
18import org.eclipse.emf.common.util.EList;
19import org.eclipse.xtext.xbase.lib.Conversions;
20import org.eclipse.xtext.xbase.lib.Functions.Function1;
21import org.eclipse.xtext.xbase.lib.IterableExtensions;
22import org.eclipse.xtext.xbase.lib.ListExtensions;
23
24@SuppressWarnings("all")
25public class PartialInterpretationGraph extends Graph {
26 private final String typeToExclude = "undefinedpart";
27
28 private final String classSuffix = " class";
29
30 /**
31 * Define a new PartialInterpretationGraph by parse every element from a PartialInterpretation
32 */
33 public PartialInterpretationGraph(final PartialInterpretation partial, final List<Metric> metrics, final String name) {
34 final Consumer<RelationDeclaration> _function = (RelationDeclaration it) -> {
35 String n = it.getName().split(" ")[0];
36 this.statistic.addEdgeType(n);
37 };
38 Iterables.<RelationDeclaration>filter(partial.getProblem().getRelations(), RelationDeclaration.class).forEach(_function);
39 final Iterable<PartialComplexTypeInterpretationImpl> typeInterpretations = this.getTypes(partial);
40 for (final PartialComplexTypeInterpretationImpl type : typeInterpretations) {
41 boolean _isConcreteType = this.isConcreteType(type.getInterpretationOf());
42 if (_isConcreteType) {
43 String typeName = type.getInterpretationOf().getName().replace(this.classSuffix, "");
44 EList<DefinedElement> _elements = type.getElements();
45 for (final DefinedElement node : _elements) {
46 boolean _containsNode = this.statistic.containsNode(node);
47 boolean _not = (!_containsNode);
48 if (_not) {
49 this.statistic.addNodeWithType(node, typeName);
50 } else {
51 String currentType = ((String[])Conversions.unwrapArray(this.statistic.getTypesForNode(node), String.class))[0];
52 boolean _isSuperType = this.isSuperType(currentType, type.getInterpretationOf());
53 if (_isSuperType) {
54 this.statistic.overwriteCurrentType(node, typeName);
55 }
56 }
57 }
58 }
59 }
60 EList<PartialRelationInterpretation> _partialrelationinterpretation = partial.getPartialrelationinterpretation();
61 for (final PartialRelationInterpretation relationInterpretation : _partialrelationinterpretation) {
62 {
63 final String type_1 = relationInterpretation.getInterpretationOf().getName().split(" ")[0];
64 Iterable<BinaryElementRelationLink> _filter = Iterables.<BinaryElementRelationLink>filter(relationInterpretation.getRelationlinks(), BinaryElementRelationLink.class);
65 for (final BinaryElementRelationLink edge : _filter) {
66 this.statistic.addEdge(edge.getParam1(), edge.getParam2(), type_1);
67 }
68 }
69 }
70 this.name = name;
71 this.metrics = metrics;
72 }
73
74 /**
75 * recursively check if a type is the super type of another
76 */
77 public boolean isSuperType(final String typeName, final Type subtypeToCheck) {
78 EList<Type> superTypes = subtypeToCheck.getSupertypes();
79 int _size = superTypes.size();
80 boolean _equals = (_size == 0);
81 if (_equals) {
82 return false;
83 } else {
84 final Function1<Type, String> _function = (Type it) -> {
85 return it.getName().replace(this.classSuffix, "");
86 };
87 boolean _contains = ListExtensions.<Type, String>map(subtypeToCheck.getSupertypes(), _function).contains(typeName);
88 if (_contains) {
89 return true;
90 } else {
91 for (final Type superType : superTypes) {
92 boolean _isSuperType = this.isSuperType(typeName, superType);
93 if (_isSuperType) {
94 return true;
95 }
96 }
97 return false;
98 }
99 }
100 }
101
102 /**
103 * Check if a Type object is the class that we want to consider
104 * A type object is to be considered if it satisfy one of the following:
105 * 1. if it is not abstract
106 * 2. if it is abstract but has a subclass of type TypeDefinition (This means the generation is
107 * started with nodes in this type)
108 */
109 public boolean isConcreteType(final Type t) {
110 if (((!t.isIsAbstract()) || (IterableExtensions.<Type>findFirst(t.getSubtypes(), ((Function1<Type, Boolean>) (Type it) -> {
111 return Boolean.valueOf((it instanceof TypeDefinition));
112 })) != null))) {
113 return true;
114 }
115 return false;
116 }
117
118 /**
119 * Set basic information for the output
120 */
121 @Override
122 public void setBasicInformation(final ArrayList<ArrayList<String>> output) {
123 final ArrayList<String> metaInfo = new ArrayList<String>();
124 metaInfo.add(Graph.META_MODEL_HEADER);
125 metaInfo.add(this.metaModel);
126 final ArrayList<String> edgeInfo = new ArrayList<String>();
127 edgeInfo.add(Graph.NUM_EDGE_TYPE_HEADER);
128 int _size = this.statistic.getAllTypes().size();
129 String _plus = (Integer.valueOf(_size) + "");
130 edgeInfo.add(_plus);
131 final ArrayList<String> nodeInfo = new ArrayList<String>();
132 nodeInfo.add(Graph.NUM_NODE_HEADER);
133 int _size_1 = this.statistic.getAllNodes().size();
134 String _plus_1 = (Integer.valueOf(_size_1) + "");
135 nodeInfo.add(_plus_1);
136 final ArrayList<String> stateInfo = new ArrayList<String>();
137 stateInfo.add(Graph.STATE_ID_HEADER);
138 stateInfo.add(this.name);
139 output.add(metaInfo);
140 output.add(edgeInfo);
141 output.add(nodeInfo);
142 output.add(stateInfo);
143 }
144
145 private Iterable<PartialComplexTypeInterpretationImpl> getTypes(final PartialInterpretation partial) {
146 final Function1<PartialComplexTypeInterpretationImpl, Boolean> _function = (PartialComplexTypeInterpretationImpl it) -> {
147 boolean _contains = it.getInterpretationOf().getName().toLowerCase().contains(this.typeToExclude);
148 return Boolean.valueOf((!_contains));
149 };
150 return IterableExtensions.<PartialComplexTypeInterpretationImpl>filter(Iterables.<PartialComplexTypeInterpretationImpl>filter(partial.getPartialtypeinterpratation(), PartialComplexTypeInterpretationImpl.class), _function);
151 }
152
153 @Override
154 public GraphStatistic getStatistic() {
155 throw new UnsupportedOperationException("TODO: auto-generated method stub");
156 }
157
158 @Override
159 public String getName() {
160 return this.name;
161 }
162}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.java._trace
new file mode 100644
index 00000000..983bd97e
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.xtendbin
new file mode 100644
index 00000000..daf9b285
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.DataName.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.DataName.java._trace
new file mode 100644
index 00000000..7a93f65a
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.DataName.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.java._trace
new file mode 100644
index 00000000..2ee37cec
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.xtendbin
new file mode 100644
index 00000000..8dda7d21
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.java._trace
new file mode 100644
index 00000000..e7945d8c
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.xtendbin
new file mode 100644
index 00000000..74675aec
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/CsvFileWriter.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/CsvFileWriter.java
new file mode 100644
index 00000000..d166e31b
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/CsvFileWriter.java
@@ -0,0 +1,75 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io;
2
3import java.io.File;
4import java.io.FileNotFoundException;
5import java.io.FileOutputStream;
6import java.io.PrintWriter;
7import java.util.ArrayList;
8import java.util.List;
9import org.eclipse.xtext.xbase.lib.Exceptions;
10
11@SuppressWarnings("all")
12public class CsvFileWriter {
13 public static void write(final ArrayList<ArrayList<String>> datas, final String uri) {
14 try {
15 int _size = datas.size();
16 boolean _lessEqualsThan = (_size <= 0);
17 if (_lessEqualsThan) {
18 return;
19 }
20 File _file = new File(uri);
21 final PrintWriter writer = new PrintWriter(_file);
22 CsvFileWriter.output(writer, datas, uri);
23 } catch (Throwable _e) {
24 throw Exceptions.sneakyThrow(_e);
25 }
26 }
27
28 public static void append(final ArrayList<ArrayList<String>> datas, final String uri) {
29 try {
30 int _size = datas.size();
31 boolean _lessEqualsThan = (_size <= 0);
32 if (_lessEqualsThan) {
33 return;
34 }
35 File _file = new File(uri);
36 FileOutputStream _fileOutputStream = new FileOutputStream(_file, true);
37 final PrintWriter writer = new PrintWriter(_fileOutputStream);
38 CsvFileWriter.output(writer, datas, uri);
39 } catch (Throwable _e) {
40 throw Exceptions.sneakyThrow(_e);
41 }
42 }
43
44 private static void output(final PrintWriter writer, final ArrayList<ArrayList<String>> datas, final String uri) {
45 try {
46 final StringBuilder output = new StringBuilder();
47 for (final List<String> datarow : datas) {
48 {
49 for (int i = 0; (i < (datarow.size() - 1)); i++) {
50 String _get = datarow.get(i);
51 String _plus = (_get + ",");
52 output.append(_plus);
53 }
54 int _size = datarow.size();
55 boolean _greaterEqualsThan = (_size >= 1);
56 if (_greaterEqualsThan) {
57 int _size_1 = datarow.size();
58 int _minus = (_size_1 - 1);
59 output.append(datarow.get(_minus));
60 output.append("\n");
61 }
62 }
63 }
64 writer.write(output.toString());
65 writer.close();
66 } catch (final Throwable _t) {
67 if (_t instanceof FileNotFoundException) {
68 final FileNotFoundException e = (FileNotFoundException)_t;
69 e.printStackTrace();
70 } else {
71 throw Exceptions.sneakyThrow(_t);
72 }
73 }
74 }
75}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/DataName.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/DataName.java
new file mode 100644
index 00000000..9e2c9c86
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/DataName.java
@@ -0,0 +1,12 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io;
2
3@SuppressWarnings("all")
4public class DataName {
5 public final static String REP_PATH = "data/";
6
7 public final static String MPC_REP = "mpc_rep";
8
9 public final static String NA_REP = "na_rep";
10
11 public final static String OUT_D_REP = "out_d_rep";
12}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.java
new file mode 100644
index 00000000..0299fc0c
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.java
@@ -0,0 +1,138 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric;
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric;
8import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric;
9import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric;
10import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree;
11import java.io.File;
12import java.io.FileNotFoundException;
13import java.util.ArrayList;
14import java.util.List;
15import org.eclipse.emf.common.util.EList;
16import org.eclipse.emf.common.util.URI;
17import org.eclipse.emf.ecore.EObject;
18import org.eclipse.emf.ecore.EPackage;
19import org.eclipse.emf.ecore.EReference;
20import org.eclipse.emf.ecore.resource.Resource;
21import org.eclipse.emf.ecore.resource.ResourceSet;
22import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
23import org.eclipse.xtext.xbase.lib.Conversions;
24import org.eclipse.xtext.xbase.lib.Exceptions;
25import org.eclipse.xtext.xbase.lib.Functions.Function1;
26import org.eclipse.xtext.xbase.lib.IterableExtensions;
27
28@SuppressWarnings("all")
29public class GraphReader {
30 private final ResourceSet resSet = new ResourceSetImpl();
31
32 private final ArrayList<EReference> referenceTypes = new ArrayList<EReference>();
33
34 private String suffix;
35
36 public GraphReader(final EPackage metaModel, final String suffix) {
37 throw new Error("Unresolved compilation problems:"
38 + "\nXMIResourceFactoryImpl cannot be resolved.");
39 }
40
41 public List<EMFGraph> readModels(final String path) {
42 try {
43 final File dir = new File(path);
44 boolean _isDirectory = dir.isDirectory();
45 boolean _not = (!_isDirectory);
46 if (_not) {
47 throw new Exception("expecting a directory");
48 }
49 final ArrayList<EMFGraph> graphs = new ArrayList<EMFGraph>();
50 final ArrayList<Metric> metrics = new ArrayList<Metric>();
51 OutDegreeMetric _outDegreeMetric = new OutDegreeMetric();
52 metrics.add(_outDegreeMetric);
53 NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric();
54 metrics.add(_nodeActivityMetric);
55 MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric();
56 metrics.add(_multiplexParticipationCoefficientMetric);
57 TypedOutDegree _typedOutDegree = new TypedOutDegree();
58 metrics.add(_typedOutDegree);
59 NodeTypeMetric _nodeTypeMetric = new NodeTypeMetric();
60 metrics.add(_nodeTypeMetric);
61 EdgeTypeMetric _edgeTypeMetric = new EdgeTypeMetric();
62 metrics.add(_edgeTypeMetric);
63 int count = 1;
64 final Function1<String, Boolean> _function = (String it) -> {
65 return Boolean.valueOf(it.endsWith(this.suffix));
66 };
67 Iterable<String> _filter = IterableExtensions.<String>filter(((Iterable<String>)Conversions.doWrapArray(dir.list())), _function);
68 for (final String name : _filter) {
69 {
70 final File file = new File(name);
71 final List<EObject> roots = this.<EObject>readModel(EObject.class, path, file.getName());
72 final EMFGraph g = new EMFGraph();
73 for (final EObject root : roots) {
74 g.init(root, metrics, name.replaceFirst(this.suffix, ""), this.referenceTypes);
75 }
76 count++;
77 graphs.add(g);
78 }
79 }
80 return graphs;
81 } catch (Throwable _e) {
82 throw Exceptions.sneakyThrow(_e);
83 }
84 }
85
86 public EMFGraph readModel(final String path, final String filename) {
87 final ArrayList<Metric> metrics = new ArrayList<Metric>();
88 OutDegreeMetric _outDegreeMetric = new OutDegreeMetric();
89 metrics.add(_outDegreeMetric);
90 NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric();
91 metrics.add(_nodeActivityMetric);
92 MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric();
93 metrics.add(_multiplexParticipationCoefficientMetric);
94 TypedOutDegree _typedOutDegree = new TypedOutDegree();
95 metrics.add(_typedOutDegree);
96 NodeTypeMetric _nodeTypeMetric = new NodeTypeMetric();
97 metrics.add(_nodeTypeMetric);
98 EdgeTypeMetric _edgeTypeMetric = new EdgeTypeMetric();
99 metrics.add(_edgeTypeMetric);
100 final File file = new File(filename);
101 final List<EObject> roots = this.<EObject>readModel(EObject.class, path, file.getName());
102 final EMFGraph g = new EMFGraph();
103 for (final EObject root : roots) {
104 g.init(root, metrics, filename.replaceFirst(this.suffix, ""), this.referenceTypes);
105 }
106 return g;
107 }
108
109 public <RootType extends EObject> List<RootType> readModel(final Class<RootType> type, final String path, final String name) {
110 try {
111 try {
112 final Resource resource = this.resSet.getResource(GraphReader.getURI(path, name), true);
113 if ((resource == null)) {
114 String _string = GraphReader.getURI(path, name).toString();
115 throw new FileNotFoundException(_string);
116 } else {
117 EList<EObject> _contents = resource.getContents();
118 return ((List<RootType>) _contents);
119 }
120 } catch (final Throwable _t) {
121 if (_t instanceof Exception) {
122 final Exception e = (Exception)_t;
123 e.printStackTrace();
124 String _string_1 = GraphReader.getURI(path, name).toString();
125 throw new Exception(_string_1);
126 } else {
127 throw Exceptions.sneakyThrow(_t);
128 }
129 }
130 } catch (Throwable _e) {
131 throw Exceptions.sneakyThrow(_e);
132 }
133 }
134
135 public static URI getURI(final String path, final String name) {
136 return URI.createFileURI(((path + "/") + name));
137 }
138}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.java
new file mode 100644
index 00000000..2486cf83
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.java
@@ -0,0 +1,49 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.GraphReader;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup;
7import com.google.common.base.Objects;
8import com.google.common.collect.Iterators;
9import java.util.Iterator;
10import org.eclipse.emf.ecore.EReference;
11import org.eclipse.emf.ecore.impl.EcorePackageImpl;
12import org.eclipse.xtext.xbase.lib.Functions.Function1;
13import org.eclipse.xtext.xbase.lib.IterableExtensions;
14import org.eclipse.xtext.xbase.lib.IteratorExtensions;
15import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
16
17/**
18 * Read the sample of the distribution of a metric provided the csv file of the metric
19 */
20@SuppressWarnings("all")
21public class RepMetricsReader {
22 private static Domain domain;
23
24 public static MetricSampleGroup read(final Domain d) {
25 throw new Error("Unresolved compilation problems:"
26 + "\nThe method or field GithubPackageImpl is undefined"
27 + "\neINSTANCE cannot be resolved");
28 }
29
30 /**
31 * Read representative model
32 */
33 private static MetricSampleGroup readMetrics(final GraphReader r, final String path) {
34 final EMFGraph model = IterableExtensions.<EMFGraph>head(r.readModels(path));
35 boolean _equals = Objects.equal(RepMetricsReader.domain, Domain.Ecore);
36 if (_equals) {
37 final Function1<EReference, Boolean> _function = (EReference it) -> {
38 return Boolean.valueOf((((((it.getName().equals("eGenericType") || it.getName().equals("eGenericSuperTypes")) || it.getName().equals("eFactoryInstance")) ||
39 it.getName().equals("eGenericExceptions")) || it.getName().equals("references")) || it.getName().equals("contents")));
40 };
41 Iterator<EReference> refsToRemove = IteratorExtensions.<EReference>filter(Iterators.<EReference>filter(EcorePackageImpl.eINSTANCE.eAllContents(), EReference.class), _function);
42 final Procedure1<EReference> _function_1 = (EReference it) -> {
43 model.removeReference(it);
44 };
45 IteratorExtensions.<EReference>forEach(refsToRemove, _function_1);
46 }
47 return model.evaluateAllMetricsToSamples();
48 }
49}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.java._trace
new file mode 100644
index 00000000..6f941f84
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.xtendbin
new file mode 100644
index 00000000..97674c9e
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.java._trace
new file mode 100644
index 00000000..4feb0150
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.xtendbin
new file mode 100644
index 00000000..ffe985d4
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.java._trace
new file mode 100644
index 00000000..e206794e
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.xtendbin
new file mode 100644
index 00000000..478004db
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.java._trace
new file mode 100644
index 00000000..7e322646
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.xtendbin
new file mode 100644
index 00000000..14cb7ae5
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.java._trace
new file mode 100644
index 00000000..b6cf817f
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.xtendbin
new file mode 100644
index 00000000..074a8167
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.java._trace
new file mode 100644
index 00000000..fbf9468d
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.xtendbin
new file mode 100644
index 00000000..38aa72c1
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.java._trace
new file mode 100644
index 00000000..bfec1ccd
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.xtendbin
new file mode 100644
index 00000000..eeed0bd4
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.java._trace
new file mode 100644
index 00000000..5cc35d7c
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.xtendbin
new file mode 100644
index 00000000..3d9fe56e
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.java._trace
new file mode 100644
index 00000000..0b3e6e4f
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.xtendbin
new file mode 100644
index 00000000..5f61f506
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/EdgeTypeMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/EdgeTypeMetric.java
new file mode 100644
index 00000000..58dea567
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/EdgeTypeMetric.java
@@ -0,0 +1,65 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import com.google.common.collect.Multimap;
6import java.util.ArrayList;
7import java.util.Collection;
8import java.util.HashMap;
9import java.util.Set;
10import java.util.function.BiConsumer;
11import org.eclipse.emf.ecore.EObject;
12import org.eclipse.xtext.xbase.lib.CollectionLiterals;
13import org.eclipse.xtext.xbase.lib.Conversions;
14import org.eclipse.xtext.xbase.lib.Functions.Function2;
15import org.eclipse.xtext.xbase.lib.IterableExtensions;
16
17@SuppressWarnings("all")
18public class EdgeTypeMetric extends Metric {
19 @Override
20 public String[][] evaluate(final GraphStatistic g) {
21 Object _evaluateSamples = this.evaluateSamples(g);
22 HashMap<String, Double> map = ((HashMap<String, Double>) _evaluateSamples);
23 ArrayList<String[]> output = new ArrayList<String[]>();
24 output.add(((String[])Conversions.unwrapArray(CollectionLiterals.<String>newArrayList("Edge Type"), String.class)));
25 Set<String> keys = map.keySet();
26 ArrayList<String> values = CollectionLiterals.<String>newArrayList();
27 for (final String key : keys) {
28 Double _get = map.get(key);
29 String _plus = (_get + "");
30 values.add(_plus);
31 }
32 final Set<String> _converted_keys = (Set<String>)keys;
33 output.add(((String[])Conversions.unwrapArray(_converted_keys, String.class)));
34 final ArrayList<String> _converted_values = (ArrayList<String>)values;
35 output.add(((String[])Conversions.unwrapArray(_converted_values, String.class)));
36 return ((String[][])Conversions.unwrapArray(output, String[].class));
37 }
38
39 @Override
40 public Object evaluateSamples(final GraphStatistic g) {
41 final HashMap<String, Double> map = new HashMap<String, Double>();
42 HashMap<String, Multimap<EObject, EObject>> outgoingEdges = g.getOutgoingEdges();
43 final Function2<Integer, Multimap<EObject, EObject>, Integer> _function = (Integer r, Multimap<EObject, EObject> t) -> {
44 final Function2<Integer, Collection<EObject>, Integer> _function_1 = (Integer r1, Collection<EObject> t1) -> {
45 int _size = t1.size();
46 return Integer.valueOf(((r1).intValue() + _size));
47 };
48 Integer _fold = IterableExtensions.<Collection<EObject>, Integer>fold(t.asMap().values(), Integer.valueOf(0), _function_1);
49 return Integer.valueOf(((r).intValue() + (_fold).intValue()));
50 };
51 Integer _fold = IterableExtensions.<Multimap<EObject, EObject>, Integer>fold(outgoingEdges.values(), Integer.valueOf(0), _function);
52 final double edgeCount = ((double) (int) _fold);
53 final BiConsumer<String, Multimap<EObject, EObject>> _function_1 = (String k, Multimap<EObject, EObject> v) -> {
54 final Function2<Integer, Collection<EObject>, Integer> _function_2 = (Integer r, Collection<EObject> t) -> {
55 int _size = t.size();
56 return Integer.valueOf(((r).intValue() + _size));
57 };
58 Integer _fold_1 = IterableExtensions.<Collection<EObject>, Integer>fold(v.asMap().values(), Integer.valueOf(0), _function_2);
59 double value = ((_fold_1).intValue() / edgeCount);
60 map.put(k, Double.valueOf(value));
61 };
62 outgoingEdges.forEach(_function_1);
63 return map;
64 }
65}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/Metric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/Metric.java
new file mode 100644
index 00000000..be6353a2
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/Metric.java
@@ -0,0 +1,10 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4
5@SuppressWarnings("all")
6public abstract class Metric {
7 public abstract String[][] evaluate(final GraphStatistic g);
8
9 public abstract Object evaluateSamples(final GraphStatistic g);
10}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MetricSampleGroup.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MetricSampleGroup.java
new file mode 100644
index 00000000..6db61944
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MetricSampleGroup.java
@@ -0,0 +1,19 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import java.util.HashMap;
4import java.util.List;
5
6@SuppressWarnings("all")
7public class MetricSampleGroup {
8 public List<Double> mpcSamples;
9
10 public List<Double> naSamples;
11
12 public List<Double> outDegreeSamples;
13
14 public HashMap<String, List<Integer>> typedOutDegreeSamples;
15
16 public HashMap<String, Double> nodeTypeSamples;
17
18 public HashMap<String, Double> edgeTypeSamples;
19}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java
new file mode 100644
index 00000000..660a5978
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java
@@ -0,0 +1,59 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import java.text.DecimalFormat;
6import java.util.ArrayList;
7import java.util.List;
8import java.util.function.Consumer;
9import org.eclipse.emf.ecore.EObject;
10
11@SuppressWarnings("all")
12public class MultiplexParticipationCoefficientMetric extends Metric {
13 public final static String countName = "MPCCount";
14
15 public final static String valueName = "MPCValue";
16
17 private final DecimalFormat formatter = new DecimalFormat("#0.00000");
18
19 @Override
20 public String[][] evaluate(final GraphStatistic g) {
21 throw new Error("Unresolved compilation problems:"
22 + "\nInvalid number of arguments. The method newArrayOfSize(int) is not applicable for the arguments (int,int)");
23 }
24
25 @Override
26 public Object evaluateSamples(final GraphStatistic g) {
27 final ArrayList<Double> samples = new ArrayList<Double>();
28 final int typeCounts = g.getAllTypes().size();
29 final Consumer<EObject> _function = (EObject it) -> {
30 samples.add(Double.valueOf(this.calculateMPC(it, g, typeCounts)));
31 };
32 g.getAllNodes().forEach(_function);
33 return samples;
34 }
35
36 public double calculateMPC(final EObject n, final GraphStatistic g, final int typeCounts) {
37 int _outDegree = g.outDegree(n);
38 int _inDegree = g.inDegree(n);
39 final int edgeCounts = (_outDegree + _inDegree);
40 double coef = 0.0;
41 List<String> _allTypes = g.getAllTypes();
42 for (final String type : _allTypes) {
43 {
44 int _dimentionalDegree = g.dimentionalDegree(n, type);
45 final double degree = ((double) _dimentionalDegree);
46 double _coef = coef;
47 double _pow = Math.pow((degree / edgeCounts), 2);
48 coef = (_coef + _pow);
49 }
50 }
51 coef = (1 - coef);
52 coef = ((coef * typeCounts) / (typeCounts - 1));
53 boolean _isNaN = Double.isNaN(coef);
54 if (_isNaN) {
55 coef = 0;
56 }
57 return Double.parseDouble(this.formatter.format(coef));
58 }
59}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeActivityMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeActivityMetric.java
new file mode 100644
index 00000000..12bec460
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeActivityMetric.java
@@ -0,0 +1,31 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import java.util.ArrayList;
6import java.util.function.Consumer;
7import org.eclipse.emf.ecore.EObject;
8
9@SuppressWarnings("all")
10public class NodeActivityMetric extends Metric {
11 public final static String countName = "NACount";
12
13 public final static String valueName = "NAValue";
14
15 @Override
16 public String[][] evaluate(final GraphStatistic g) {
17 throw new Error("Unresolved compilation problems:"
18 + "\nInvalid number of arguments. The method newArrayOfSize(int) is not applicable for the arguments (int,int)");
19 }
20
21 @Override
22 public Object evaluateSamples(final GraphStatistic g) {
23 final ArrayList<Double> samples = new ArrayList<Double>();
24 final Consumer<EObject> _function = (EObject it) -> {
25 int _numOfEdgeTypes = g.numOfEdgeTypes(it);
26 samples.add(Double.valueOf(((double) _numOfEdgeTypes)));
27 };
28 g.getAllNodes().forEach(_function);
29 return samples;
30 }
31}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.java
new file mode 100644
index 00000000..75c2cfef
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.java
@@ -0,0 +1,54 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import java.util.ArrayList;
6import java.util.HashMap;
7import java.util.List;
8import java.util.Map;
9import java.util.Set;
10import org.eclipse.emf.ecore.EObject;
11import org.eclipse.xtext.xbase.lib.CollectionLiterals;
12import org.eclipse.xtext.xbase.lib.Conversions;
13
14@SuppressWarnings("all")
15public class NodeTypeMetric extends Metric {
16 @Override
17 public String[][] evaluate(final GraphStatistic g) {
18 Object _evaluateSamples = this.evaluateSamples(g);
19 HashMap<String, Double> map = ((HashMap<String, Double>) _evaluateSamples);
20 ArrayList<String[]> output = new ArrayList<String[]>();
21 output.add(((String[])Conversions.unwrapArray(CollectionLiterals.<String>newArrayList("Node Type"), String.class)));
22 Set<String> keys = map.keySet();
23 ArrayList<String> values = CollectionLiterals.<String>newArrayList();
24 for (final String key : keys) {
25 Double _get = map.get(key);
26 String _plus = (_get + "");
27 values.add(_plus);
28 }
29 final Set<String> _converted_keys = (Set<String>)keys;
30 output.add(((String[])Conversions.unwrapArray(_converted_keys, String.class)));
31 final ArrayList<String> _converted_values = (ArrayList<String>)values;
32 output.add(((String[])Conversions.unwrapArray(_converted_values, String.class)));
33 return ((String[][])Conversions.unwrapArray(output, String[].class));
34 }
35
36 @Override
37 public Object evaluateSamples(final GraphStatistic g) {
38 HashMap<String, Double> map = new HashMap<String, Double>();
39 List<EObject> nodes = g.getAllNodes();
40 int _size = nodes.size();
41 double single = (1.0 / _size);
42 Map<EObject, Set<String>> nodeToType = g.getNodeToTypesMap();
43 for (final EObject node : nodes) {
44 Set<String> _get = nodeToType.get(node);
45 for (final String cl : _get) {
46 {
47 Double value = map.getOrDefault(cl, Double.valueOf(0.0));
48 map.put(cl, Double.valueOf(((value).doubleValue() + single)));
49 }
50 }
51 }
52 return map;
53 }
54}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/OutDegreeMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/OutDegreeMetric.java
new file mode 100644
index 00000000..67e4be0d
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/OutDegreeMetric.java
@@ -0,0 +1,31 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import java.util.ArrayList;
6import java.util.function.Consumer;
7import org.eclipse.emf.ecore.EObject;
8
9@SuppressWarnings("all")
10public class OutDegreeMetric extends Metric {
11 public final static String countName = "OutDegreeCount";
12
13 public final static String valueName = "OutDegreeValue";
14
15 @Override
16 public String[][] evaluate(final GraphStatistic g) {
17 throw new Error("Unresolved compilation problems:"
18 + "\nInvalid number of arguments. The method newArrayOfSize(int) is not applicable for the arguments (int,int)");
19 }
20
21 @Override
22 public Object evaluateSamples(final GraphStatistic g) {
23 final ArrayList<Double> samples = new ArrayList<Double>();
24 final Consumer<EObject> _function = (EObject it) -> {
25 int _outDegree = g.outDegree(it);
26 samples.add(Double.valueOf(((double) _outDegree)));
27 };
28 g.getAllNodes().forEach(_function);
29 return samples;
30 }
31}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedClusteringCoefficientMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedClusteringCoefficientMetric.java
new file mode 100644
index 00000000..042af5c3
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedClusteringCoefficientMetric.java
@@ -0,0 +1,74 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import com.google.common.base.Objects;
6import java.text.DecimalFormat;
7import java.util.ArrayList;
8import java.util.Collection;
9import java.util.HashSet;
10import java.util.List;
11import java.util.function.Consumer;
12import org.eclipse.emf.ecore.EObject;
13
14@SuppressWarnings("all")
15public class TypedClusteringCoefficientMetric extends Metric {
16 public final static String countName = "TCCCount";
17
18 public final static String valueName = "TCCValue";
19
20 private final DecimalFormat formatter = new DecimalFormat("#0.00000");
21
22 @Override
23 public String[][] evaluate(final GraphStatistic g) {
24 throw new Error("Unresolved compilation problems:"
25 + "\nInvalid number of arguments. The method newArrayOfSize(int) is not applicable for the arguments (int,int)");
26 }
27
28 @Override
29 public Object evaluateSamples(final GraphStatistic g) {
30 final ArrayList<Double> samples = new ArrayList<Double>();
31 final Consumer<EObject> _function = (EObject it) -> {
32 samples.add(Double.valueOf(this.calculateTCC1(it, g)));
33 };
34 g.getAllNodes().forEach(_function);
35 return samples;
36 }
37
38 /**
39 * Compute TCC1 metric for node n
40 */
41 public double calculateTCC1(final EObject n, final GraphStatistic g) {
42 int wedges = 0;
43 int triangles = 0;
44 List<String> _allTypes = g.getAllTypes();
45 for (final String type1 : _allTypes) {
46 {
47 Collection<EObject> _get = g.getOutgoingEdges().get(type1).get(n);
48 final HashSet<EObject> typed1RelatedOfN = new HashSet<EObject>(_get);
49 Collection<EObject> _get_1 = g.incomingEdges().get(type1).get(n);
50 final HashSet<EObject> type1EdgeSourceNodesOfN = new HashSet<EObject>(_get_1);
51 typed1RelatedOfN.addAll(type1EdgeSourceNodesOfN);
52 final int d = typed1RelatedOfN.size();
53 int _wedges = wedges;
54 wedges = (_wedges + (d * (d - 1)));
55 for (final EObject n1 : typed1RelatedOfN) {
56 for (final EObject n2 : typed1RelatedOfN) {
57 List<String> _allTypes_1 = g.getAllTypes();
58 for (final String type2 : _allTypes_1) {
59 if (((!Objects.equal(type1, type2)) && (g.getOutgoingEdges().get(type2).containsEntry(n1, n2) ||
60 g.getOutgoingEdges().get(type2).containsEntry(n2, n1)))) {
61 triangles++;
62 }
63 }
64 }
65 }
66 }
67 }
68 if ((wedges == 0.0)) {
69 return 0.0;
70 } else {
71 return (((double) triangles) / wedges);
72 }
73 }
74}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedOutDegree.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedOutDegree.java
new file mode 100644
index 00000000..dce80389
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedOutDegree.java
@@ -0,0 +1,73 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import com.google.common.collect.Multimap;
6import java.util.ArrayList;
7import java.util.HashMap;
8import java.util.List;
9import java.util.Map;
10import java.util.Set;
11import org.eclipse.emf.ecore.EObject;
12import org.eclipse.xtext.xbase.lib.CollectionLiterals;
13import org.eclipse.xtext.xbase.lib.Conversions;
14
15@SuppressWarnings("all")
16public class TypedOutDegree extends Metric {
17 private HashMap<String, List<Integer>> calculateMetric(final GraphStatistic g) {
18 HashMap<String, Multimap<EObject, EObject>> outgoingEdges = g.getOutgoingEdges();
19 HashMap<String, List<Integer>> metric = new HashMap<String, List<Integer>>();
20 Map<EObject, Set<String>> nodeToTypes = g.getNodeToTypesMap();
21 Set<String> _keySet = outgoingEdges.keySet();
22 for (final String edgeType : _keySet) {
23 Set<EObject> _keySet_1 = outgoingEdges.get(edgeType).keySet();
24 for (final EObject node : _keySet_1) {
25 {
26 Set<String> classes = nodeToTypes.get(node);
27 for (final String cl : classes) {
28 {
29 String key = ((cl + " ") + edgeType);
30 List<Integer> typeCount = metric.get(key);
31 if ((typeCount == null)) {
32 ArrayList<Integer> _arrayList = new ArrayList<Integer>();
33 typeCount = _arrayList;
34 metric.put(key, typeCount);
35 }
36 typeCount.add(Integer.valueOf(outgoingEdges.get(edgeType).get(node).size()));
37 }
38 }
39 }
40 }
41 }
42 return metric;
43 }
44
45 @Override
46 public String[][] evaluate(final GraphStatistic g) {
47 HashMap<String, List<Integer>> metric = this.calculateMetric(g);
48 ArrayList<String[]> output = new ArrayList<String[]>();
49 output.add(((String[])Conversions.unwrapArray(CollectionLiterals.<String>newArrayList("Typed Out Degree"), String.class)));
50 Set<String> _keySet = metric.keySet();
51 for (final String key : _keySet) {
52 {
53 List<Integer> samples = metric.get(key);
54 int _size = samples.size();
55 int _plus = (_size + 1);
56 String[] outputForOnePair = new String[_plus];
57 outputForOnePair[0] = key;
58 for (int i = 0; (i < samples.size()); i++) {
59 Integer _get = samples.get(i);
60 String _plus_1 = (_get + "");
61 outputForOnePair[(i + 1)] = _plus_1;
62 }
63 output.add(outputForOnePair);
64 }
65 }
66 return ((String[][])Conversions.unwrapArray(output, String[].class));
67 }
68
69 @Override
70 public Object evaluateSamples(final GraphStatistic g) {
71 return this.calculateMetric(g);
72 }
73}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.java._trace
new file mode 100644
index 00000000..906a396a
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.xtendbin
new file mode 100644
index 00000000..06925afd
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/LinearModel.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/LinearModel.java
new file mode 100644
index 00000000..6a7f8497
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/LinearModel.java
@@ -0,0 +1,90 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.predictor;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.StateData;
4import com.google.common.base.Objects;
5import java.util.ArrayList;
6import java.util.HashMap;
7import java.util.List;
8import java.util.Map;
9
10@SuppressWarnings("all")
11public class LinearModel {
12 private double ridge;
13
14 private Map<Object, StateData> stateAndHistory;
15
16 private List<StateData> samples;
17
18 public LinearModel(final double ridge) {
19 this.ridge = ridge;
20 HashMap<Object, StateData> _hashMap = new HashMap<Object, StateData>();
21 this.stateAndHistory = _hashMap;
22 ArrayList<StateData> _arrayList = new ArrayList<StateData>();
23 this.samples = _arrayList;
24 }
25
26 /**
27 * reset the current train data for regression to a new trajectory
28 * @param state: the last state of the trajectory
29 */
30 public void resetRegression(final Object state) {
31 this.samples.clear();
32 boolean _containsKey = this.stateAndHistory.containsKey(state);
33 if (_containsKey) {
34 StateData data = this.stateAndHistory.get(state);
35 Object curState = state;
36 this.samples.add(data);
37 while ((this.stateAndHistory.containsKey(data.getLastState()) && (!Objects.equal(data.getLastState(), curState)))) {
38 {
39 curState = data.getLastState();
40 data = this.stateAndHistory.get(data.getLastState());
41 this.samples.add(data);
42 }
43 }
44 }
45 }
46
47 /**
48 * Add a new data point to the current training set
49 * @param state: the state on which the new data point is calculated
50 * @param features: the set of feature value(x)
51 * @param value: the value of the state (y)
52 * @param lastState: the state which transformed to current state, used to record the trajectory
53 */
54 public boolean feedData(final Object state, final double[] features, final double value, final Object lastState) {
55 boolean _xblockexpression = false;
56 {
57 StateData data = new StateData(features, value, lastState);
58 this.stateAndHistory.put(state, data);
59 _xblockexpression = this.samples.add(data);
60 }
61 return _xblockexpression;
62 }
63
64 /**
65 * get prediction for next state, without storing the data point into the training set
66 * @param features: the feature values of current state
67 * @param value: the value of the current state
68 * @param: featuresToPredict: the features of the state wanted to be predected
69 * @return the value of the state to be predicted
70 */
71 public double getPredictionForNextDataSample(final double[] features, final double value, final double[] featuresToPredict) {
72 throw new Error("Unresolved compilation problems:"
73 + "\nMatrix cannot be resolved."
74 + "\nMatrix cannot be resolved."
75 + "\nLinearRegression cannot be resolved."
76 + "\ncoefficients cannot be resolved");
77 }
78
79 private double predict(final double[] parameters, final double[] featuresToPredict) {
80 double result = parameters[0];
81 for (int i = 0; (i < featuresToPredict.length); i++) {
82 double _result = result;
83 double _get = parameters[i];
84 double _get_1 = featuresToPredict[i];
85 double _multiply = (_get * _get_1);
86 result = (_result + _multiply);
87 }
88 return result;
89 }
90}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.java._trace
new file mode 100644
index 00000000..1756f86a
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.xtendbin
new file mode 100644
index 00000000..708955a4
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.java._trace
new file mode 100644
index 00000000..0cb68ca8
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.java._trace
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.xtendbin
new file mode 100644
index 00000000..63721784
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.xtendbin
Binary files differ
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ConstraintCollection.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ConstraintCollection.java
new file mode 100644
index 00000000..92c69bea
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ConstraintCollection.java
@@ -0,0 +1,79 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation;
2
3import java.util.ArrayList;
4import java.util.List;
5import java.util.Map;
6import org.eclipse.emf.common.notify.Notifier;
7import org.eclipse.emf.common.util.URI;
8import org.eclipse.emf.ecore.resource.Resource;
9import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
10import org.eclipse.xtext.xbase.lib.InputOutput;
11
12@SuppressWarnings("all")
13public class ConstraintCollection {
14 private final /* ArrayList<IConstraintSpecification> */Object constraints /* Skipped initializer because of errors */;
15
16 private /* BaseGeneratedPatternGroup */Object patterns;
17
18 private List<Notifier> resources = new ArrayList<Notifier>();
19
20 public ConstraintCollection(final /* List<IConstraintSpecification> */Object constraints, final List<String> uris, final /* BaseGeneratedPatternGroup */Object patterns) {
21 throw new Error("Unresolved compilation problems:"
22 + "\nThe field ConstraintCollection.constraints refers to the missing type IConstraintSpecification"
23 + "\nThe field ConstraintCollection.patterns refers to the missing type BaseGeneratedPatternGroup");
24 }
25
26 public ConstraintCollection(final /* List<IConstraintSpecification> */Object constraints, final /* BaseGeneratedPatternGroup */Object patterns) {
27 throw new Error("Unresolved compilation problems:"
28 + "\nThe field ConstraintCollection.constraints refers to the missing type IConstraintSpecification"
29 + "\nThe field ConstraintCollection.patterns refers to the missing type BaseGeneratedPatternGroup");
30 }
31
32 public boolean addModel(final Notifier n) {
33 return this.resources.add(n);
34 }
35
36 public String setURIs(final List<String> uris) {
37 String _xblockexpression = null;
38 {
39 final ResourceSetImpl resSet = new ResourceSetImpl();
40 for (final String uri : uris) {
41 {
42 Resource resource = resSet.getResource(URI.createURI(uri), true);
43 this.resources.add(resource);
44 }
45 }
46 _xblockexpression = InputOutput.<String>println("reading model finished");
47 }
48 return _xblockexpression;
49 }
50
51 public List<Integer> calculateViolations() {
52 throw new Error("Unresolved compilation problems:"
53 + "\nThe method or field querySpecification is undefined for the type Object"
54 + "\nThe method initEngine(Notifier) from the type ConstraintCollection refers to the missing type Object"
55 + "\nThe field ConstraintCollection.constraints refers to the missing type IConstraintSpecification"
56 + "\ngetMatcher cannot be resolved"
57 + "\ncountMatches cannot be resolved");
58 }
59
60 public ArrayList<Map<String, Integer>> calculateViolationMaps() {
61 throw new Error("Unresolved compilation problems:"
62 + "\nThe method or field querySpecification is undefined for the type Object"
63 + "\nThe method or field querySpecification is undefined for the type Object"
64 + "\nThe method initEngine(Notifier) from the type ConstraintCollection refers to the missing type Object"
65 + "\nThe field ConstraintCollection.constraints refers to the missing type IConstraintSpecification"
66 + "\ngetMatcher cannot be resolved"
67 + "\ncountMatches cannot be resolved"
68 + "\nsimpleName cannot be resolved");
69 }
70
71 private Object initEngine(final Notifier r) {
72 throw new Error("Unresolved compilation problems:"
73 + "\nThe method or field ViatraQueryEngine is undefined"
74 + "\nEMFScope cannot be resolved."
75 + "\nThe field ConstraintCollection.patterns refers to the missing type BaseGeneratedPatternGroup"
76 + "\non cannot be resolved"
77 + "\nprepare cannot be resolved");
78 }
79}
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.java
new file mode 100644
index 00000000..7eb3ec77
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.java
@@ -0,0 +1,34 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain;
4import java.util.ArrayList;
5import java.util.Map;
6import org.eclipse.emf.ecore.EObject;
7
8@SuppressWarnings("all")
9public class ViolationCheck {
10 /**
11 * Return the total number of violations
12 */
13 public static int calculateViolationCounts(final EObject root, final Domain d) {
14 throw new Error("Unresolved compilation problems:"
15 + "\nThe method loadConstraints(String) from the type ViolationCheck refers to the missing type IConstraintSpecification"
16 + "\nThe constructor ConstraintCollection(List<IConstraintSpecification>, BaseGeneratedPatternGroup) refers to the missing type IConstraintSpecification");
17 }
18
19 /**
20 * return a map contain the count for each type of violation
21 */
22 public static Map<String, Integer> violationMaps(final EObject root) {
23 throw new Error("Unresolved compilation problems:"
24 + "\nThe method loadConstraints(String) from the type ViolationCheck refers to the missing type IConstraintSpecification"
25 + "\nThe constructor ConstraintCollection(List<IConstraintSpecification>, BaseGeneratedPatternGroup) refers to the missing type IConstraintSpecification");
26 }
27
28 public static /* ArrayList<IConstraintSpecification> */Object loadConstraints(final String packageName) {
29 throw new Error("Unresolved compilation problems:"
30 + "\nIConstraintSpecification cannot be resolved to a type."
31 + "\nIConstraintSpecification cannot be resolved to a type."
32 + "\nThe method or field IConstraintSpecification is undefined");
33 }
34}
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcC.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcC.java._trace
new file mode 100644
index 00000000..5ab4c0fb
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcC.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcEDA.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcEDA.java._trace
new file mode 100644
index 00000000..605b2480
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcEDA.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMPC.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMPC.java._trace
new file mode 100644
index 00000000..16ded94b
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMPC.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric.java._trace
new file mode 100644
index 00000000..bd23cb35
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric2.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric2.java._trace
new file mode 100644
index 00000000..71d80e38
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric2.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNA.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNA.java._trace
new file mode 100644
index 00000000..b423786d
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNA.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDA.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDA.java._trace
new file mode 100644
index 00000000..cce23aec
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDA.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDC.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDC.java._trace
new file mode 100644
index 00000000..e46f9600
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDC.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRCNT.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRCNT.java._trace
new file mode 100644
index 00000000..9ce2edb2
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRCNT.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRNUM.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRNUM.java._trace
new file mode 100644
index 00000000..cdfcef6e
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRNUM.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQROSZ.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQROSZ.java._trace
new file mode 100644
index 00000000..787e63c7
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQROSZ.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRTOT.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRTOT.java._trace
new file mode 100644
index 00000000..0c8cc5d0
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRTOT.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.xtendbin b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.xtendbin
new file mode 100644
index 00000000..e826d04b
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.xtendbin
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CalculationsNA.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CalculationsNA.java._trace
new file mode 100644
index 00000000..76aa59b0
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CalculationsNA.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.FixModelURIs.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.FixModelURIs.java._trace
new file mode 100644
index 00000000..edd88562
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.FixModelURIs.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.MetricsCalculationUsingShapes.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.MetricsCalculationUsingShapes.java._trace
new file mode 100644
index 00000000..fc92b1d3
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.MetricsCalculationUsingShapes.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.Util.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.Util.java._trace
new file mode 100644
index 00000000..306c1361
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.Util.java._trace
Binary files differ
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.gitignore b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.gitignore
new file mode 100644
index 00000000..b5da4aad
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.gitignore
@@ -0,0 +1 @@
/.CSERposterSample.java._trace
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.java._trace
new file mode 100644
index 00000000..08d35ce0
--- /dev/null
+++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.java._trace
Binary files differ