diff --git a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/models/VerifierType.java b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/models/VerifierType.java index 74386bf1aac19cf3d053ed7a4d08c8c870475f24..a5b43f8da6a05c3cc240fa489ad6a5ffcae6294b 100644 --- a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/models/VerifierType.java +++ b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/models/VerifierType.java @@ -23,7 +23,7 @@ public enum VerifierType { true, true, false), - Equivalent("Checking for synonyms in columns.", EquivalentVerifier.class, true, false, false), + Equivalent("Checking for semantically equivalent rules.", EquivalentVerifier.class, true, false, false), Overlap("Checking for overlapping rules.", OverlappingVerifier.class, true, true, false), Missing("Checking for missing rules.", MissingVerifier.class, true, false, false), PartialReduction( @@ -33,37 +33,37 @@ public enum VerifierType { false, false), Interdeterminism( - "Identical, Overlapping or Subsumption with different conclusions.", + "Checking for rules that are activated together but have different conclusions.", InterdeterminismVerifier.class, false, false, false), MultiTableIdentical( - "Checking for identical rules in multiple tables with identical outcome column.", + "Checking for identical rules in multiple tables (identical outcome column).", MultiTableIdenticalVerifier.class, true, true, true), MultiTableOverlapping( - "Checking for overlapping rules in multiple tables with identical outcome column.", + "Checking for overlapping rules in multiple tables (identical outcome column).", MultiTableOverlappingVerifier.class, true, true, true), MultiTableSubsumption( - "Checking for subsumptions in multiple tables with identical outcome column.", + "Checking for subsumptions in multiple tables (identical outcome column).", MultiTableSubsumptionVerifier.class, true, true, true), MultiTableEquivalent( - "Checking for synonyms in columns in multiple tables with identical outcome column.", + "Checking for equivalent rules in multiple tables (identical outcome column).", MultiTableEquivalentVerifier.class, true, false, true), MultiTablePartialReduction( - "Checking for partial reduction of rules (combination) in multiple tables with identical outcome column.", + "Checking for partial reduction of rules in multiple tables (identical outcome column).", MultiTablePartialReductionVerifier.class, true, false, diff --git a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/EquivalentVerifier.java b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/EquivalentVerifier.java index ee53b23b9bce3446b95d093c780969ca484b1a97..ab4d7e65d575622b45de9932f67087c1a86dced2 100644 --- a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/EquivalentVerifier.java +++ b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/EquivalentVerifier.java @@ -65,8 +65,8 @@ public class EquivalentVerifier extends AbstractVerifier { protected String getMessageText(RuleIdentifier r1, RuleIdentifier r2, String v1, String v2) { return String.format( - "In rule %d string \"%s\" and in rule %d string \"%s\": equal meaning? Are they synonyms?", - r1.getRowNumber(), v1, r2.getRowNumber(), v2); + "\"%s\" in rule %d and \"%s\" in rule %d are synonyms. Rules might be equivalent.", + v1, r1.getRowNumber(), v2, r2.getRowNumber()); } @Override diff --git a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/IdenticalVerifier.java b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/IdenticalVerifier.java index ac41bc99fec9c7e10a967311572ab54a7af0f32d..a44e26f36b75830a992583eeedaa7cc841f9ec24 100644 --- a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/IdenticalVerifier.java +++ b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/IdenticalVerifier.java @@ -85,7 +85,7 @@ public class IdenticalVerifier extends AbstractVerifier { sb.append(currentRuleIdentifiers.get(0).getTableName()); sb.append(" are identical."); if (isDifferentConclusion) { - sb.append(" The output has different conclusions!"); + sb.append(" The outputs have different conclusions!"); } else { sb.append(" The output is the same."); } diff --git a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/MissingVerifier.java b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/MissingVerifier.java index 3093f0cf1195e4399282be6962ccff7f3ba7dad7..f041b16d46cfb67d5f3a29b9b3b1e21da2a818ea 100644 --- a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/MissingVerifier.java +++ b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/MissingVerifier.java @@ -29,7 +29,7 @@ public class MissingVerifier extends AbstractVerifier { for (Value[] missingInt : missingRules) { StringBuilder sb = new StringBuilder("In table "); sb.append(d.getName()); // TODO: add real name - sb.append(" the following rule is not defined: ("); + sb.append(", the following rule is not defined: ("); sb.append( Arrays.stream(missingInt) .map(Value::getOrgExpression) diff --git a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/OverlappingVerifier.java b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/OverlappingVerifier.java index 3f6421b2b45cec90148961714e3d82eef15e8ab0..56cbabad70dd96219fe46635f6bdbc0f3e705966 100644 --- a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/OverlappingVerifier.java +++ b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/OverlappingVerifier.java @@ -147,14 +147,14 @@ public class OverlappingVerifier extends AbstractVerifier { StringBuilder sb = new StringBuilder(); sb.append("In table "); sb.append(currentRuleIdentifiers.get(0).getTableName()); - sb.append(" rules "); + sb.append(", rules "); sb.append( currentRuleIdentifiers.stream() .map(c -> c.getRowNumber().toString()) .collect(Collectors.joining(", "))); sb.append(" are overlapping."); if (isDifferentConclusion) { - sb.append(" The output has different conclusions!"); + sb.append(" The outputs have different conclusions!"); } else { sb.append(" The output is the same."); } diff --git a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/SubsumptionVerifier.java b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/SubsumptionVerifier.java index d5c1aca1b7cd60ca6a010b3b9c304eddda38e084..dec9fc1a9535df2a4396bc554d562542ad9e72c6 100644 --- a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/SubsumptionVerifier.java +++ b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/SubsumptionVerifier.java @@ -172,7 +172,7 @@ public class SubsumptionVerifier extends AbstractVerifier { StringBuilder sb = new StringBuilder(); sb.append("In table "); sb.append(subsumptionRules.get(0).getRuleIdentifier().getTableName()); - sb.append(" rule"); + sb.append(", rule"); if (subsumptionRules.size() > 1) { sb.append("s"); } @@ -182,9 +182,14 @@ public class SubsumptionVerifier extends AbstractVerifier { .map(c -> c.getRuleIdentifier().getRowNumber().toString()) .sorted() .collect(Collectors.joining(", "))); - sb.append(" subsumes rule"); + if (subsumptionRules.size() > 1) { + sb.append("subsume"); //Plural + }else{ + sb.append(" subsumes rule"); + } + if (currentRuleIdentifiers.size() > 2) { - sb.append("s"); + sb.append("s"); } sb.append(" "); sb.append( @@ -200,7 +205,7 @@ public class SubsumptionVerifier extends AbstractVerifier { .collect(Collectors.joining(", "))); sb.append("."); if (isDifferentConclusion) { - sb.append(" The output has different conclusions!"); + sb.append(" The outputs have different conclusions!"); } else { sb.append(" The output is the same."); } diff --git a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableEquivalentVerifier.java b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableEquivalentVerifier.java index 1be692c54d44b466cc44fc6ecd657f9c1f9de5e4..aea05d63b295da7fd11dd2518f489d1b7247534b 100644 --- a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableEquivalentVerifier.java +++ b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableEquivalentVerifier.java @@ -26,7 +26,7 @@ public class MultiTableEquivalentVerifier extends EquivalentVerifier { @Override protected String getMessageText(RuleIdentifier r1, RuleIdentifier r2, String v1, String v2) { return String.format( - "In rule %d (%s) string \"%s\" and in rule %d (%s) string \"%s\": equal meaning? Are they synonyms?", + "In rule %d, (%s) string \"%s\" is a synonym to rule %d (%s) string \"%s\". Rules might be equivalent", r1.getRowNumber(), r1.getTableName(), v1, r2.getRowNumber(), r2.getTableName(), v2); } } diff --git a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableIdenticalVerifier.java b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableIdenticalVerifier.java index 120cd5b99691f80d6e3a0751b2333379efd75412..790ed8c96bb8d4d3ed68d94458492eb7368237da 100644 --- a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableIdenticalVerifier.java +++ b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableIdenticalVerifier.java @@ -38,7 +38,7 @@ public class MultiTableIdenticalVerifier extends IdenticalVerifier { .collect(Collectors.joining(", "))); sb.append(" are identical."); if (isDifferentConclusion) { - sb.append(" The output has different conclusions!"); + sb.append(" The outputs have different conclusions!"); } else { sb.append(" The output is the same."); } diff --git a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableOverlappingVerifier.java b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableOverlappingVerifier.java index 507078bbd8736f2cb6757e52b08bde3a9e16214a..f907e24f3bbadf72fe4495270bd19abed0687cc5 100644 --- a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableOverlappingVerifier.java +++ b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableOverlappingVerifier.java @@ -39,7 +39,7 @@ public class MultiTableOverlappingVerifier extends OverlappingVerifier { .collect(Collectors.joining(", "))); sb.append(" are overlapping."); if (isDifferentConclusion) { - sb.append(" The output has different conclusions!"); + sb.append(" The outputs have different conclusions!"); } else { sb.append(" The output is the same."); } diff --git a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableSubsumptionVerifier.java b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableSubsumptionVerifier.java index 92c68bc2182a6633c07c92062770751d72c83fb8..54f500e994ce55ea832f4675f6711c9b8d2d24cc 100644 --- a/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableSubsumptionVerifier.java +++ b/dmn-verifier-app/src/main/java/de/unikoblenz/fgbks/dmn/core/verifier/multitable/MultiTableSubsumptionVerifier.java @@ -34,9 +34,8 @@ public class MultiTableSubsumptionVerifier extends SubsumptionVerifier { List<Value> subsumptionRules, boolean isDifferentConclusion) { StringBuilder sb = new StringBuilder(); - sb.append("In table "); - sb.append(subsumptionRules.get(0).getRuleIdentifier().getTableName()); - sb.append(" rule"); + + sb.append("Rule"); if (subsumptionRules.size() > 1) { sb.append("s"); } @@ -46,7 +45,14 @@ public class MultiTableSubsumptionVerifier extends SubsumptionVerifier { .map(c -> c.getRuleIdentifier().getRowNumber().toString()) .sorted() .collect(Collectors.joining(", "))); - sb.append(" subsumes rule"); + sb.append("in table "); + sb.append(subsumptionRules.get(0).getRuleIdentifier().getTableName()); + if (subsumptionRules.size() > 1) { + sb.append(" subsume rule"); + }else{ + sb.append(" subsumes rule"); + } + if (currentRuleIdentifiers.size() > 2) { sb.append("s"); } @@ -64,7 +70,7 @@ public class MultiTableSubsumptionVerifier extends SubsumptionVerifier { .collect(Collectors.joining(", "))); sb.append("."); if (isDifferentConclusion) { - sb.append(" The output has different conclusions!"); + sb.append(" The outputs have different conclusions!"); } else { sb.append(" The output is the same."); }