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 7b89e0c42a8f2faf8f18a0c960b2ab6feb9e7caa..5429f3b83f399fa0661be73112b6e1e045a70c60 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 @@ -16,53 +16,80 @@ import org.camunda.bpm.dmn.engine.DmnDecision; import org.slf4j.LoggerFactory; public enum VerifierType { + /** Detecting rules which have an identical input, i.e. are redundant. */ Identical("Checking for identical rules.", IdenticalVerifier.class, true, true, false), + /** + * Detecting individual rules which are subsumed by other rules, i.e. they are not necessary. For + * example, rules containing wildcards often render more specific rules unnecessary due to + * subsumption. + */ Subsumption( "Checking for rules, which subsume other rules.", SubsumptionVerifier.class, true, true, false), + /** + * Detecting rules which are not identical, but still semantically equivalent. Here, our tool can + * verify if there exist multiple rules which use synonyms as inputs and are therefore equivalent, + * based on synonym relations via Wordnet. + */ Equivalent( "Checking for semantically equivalent rules.", EquivalentVerifier.class, true, false, false), + /** Detecting whether there are any overlaps in rule conditions. */ Overlap("Checking for overlapping rules.", OverlappingVerifier.class, true, true, false), + /** + * Detecting whether there are any missing business rules, i.e. if there are rules missing for + * expected inputs. + */ Missing("Checking for missing rules.", MissingVerifier.class, true, false, false), + /** Checking wether ranges can be combined to simplify decision tables. */ PartialReduction( "Checking for partial reduction of rules (combination).", PartialReductionVerifier.class, true, false, false), + /** + * Detecting rules which will always be activated together, but have differing or contradicting + * conclusions. For example, rules which will be activated together must not yield that a customer + * is both credit worthy, and not creditworthy, as this is logically inconsistent. + */ Interdeterminism( "Checking for rules that are activated together but have different conclusions.", InterdeterminismVerifier.class, false, false, false), + /** Same as {@link VerifierType#Identical}, including a multi table view. */ MultiTableIdentical( "Checking for identical rules in multiple tables (identical outcome column).", MultiTableIdenticalVerifier.class, true, true, true), + /** Same as {@link VerifierType#Overlap}, including a multi table view. */ MultiTableOverlapping( "Checking for overlapping rules in multiple tables (identical outcome column).", MultiTableOverlappingVerifier.class, true, true, true), + /** Same as {@link VerifierType#Subsumption}, including a multi table view. */ MultiTableSubsumption( "Checking for subsumptions in multiple tables (identical outcome column).", MultiTableSubsumptionVerifier.class, true, true, true), + /** Same as {@link VerifierType#Equivalent}, including a multi table view. */ MultiTableEquivalent( "Checking for equivalent rules in multiple tables (identical outcome column).", MultiTableEquivalentVerifier.class, true, false, true), + /** Same as {@link VerifierType#PartialReduction}, including a multi table view. */ MultiTablePartialReduction( "Checking for partial reduction of rules in multiple tables (identical outcome column).", MultiTablePartialReductionVerifier.class,