Newer
Older
# Verifier
## Overview
- [Verification Classification (Group of verifier)](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/classification)
- [Verification Type (identification of verifier + name + description for single verifier)](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types)
- [Verifier (Concrete implementation)](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl)
## DRD Modeling Level Verification
- Classification: [DrdModelingLevelVerification](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/classification/DrdModelingLevelVerification.java)
### Lonely Data Input Verification
- Type: [LonelyDataInputVerification](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/LonelyDataInputVerification.java)
- Verifier: [LonelyDataInputVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/LonelyDataInputVerifier.java)
#### Description
Detection input data nodes, which has no connection to at least one decision table.
#### Algorithm
```
doVerification (Definition d) {
define rL as ResultList
for each (InputNode i in d.getInputNodes()) {
if (i.hasNoConnectedDecisionNodes()) {
add i to rL
}
}
return rL
}
```
### Missing Input Data Verification
- Type: [MissingInputDataVerification](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/MissingInputDataVerification.java)
- Verifier: [MissingInputDataVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/MissingInputDataVerifier.java)
#### Description
Detecting columns which has no reference to either a input node or a decision node with a corresponding output column.
#### Algorithm
```
TODO
```
### Missing Input Column Verification
- Type: [MissingInputColumnVerification](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/MissingInputColumnVerification.java)
- Verifier: [MissingInputColumnVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/MissingInputColumnVerifier.java)
#### Description
Detecting for all decisions and input data nodes if their output names are found in the corresponding input columns of the connected decision.
### Multiple Input Data Verification
- Type: [MultipleInputDataVerification](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/MultipleInputDataVerification.java)
- Verifier: [MultipleInputDataVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/MultipleInputDataVerifier.java)
#### Description
Detecting columns which has more than one input data (or output columns from decisions).
#### Algorithm
```
TODO
```
## Modeling Level Verification
- Classification: [ModelingLevelVerification](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/classification/ModelingLevelVerification.java)
### Predefined Existing Value Verification
- Type: [PredefinedExistingValueVerification](/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/PredefinedExistingValueVerification.java)
- Verifier: [PredefinedExistingValueVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PredefinedExistingValueVerifier.java)
#### Description
Detecting string values, which are not defined in list of predefined values of the column.
#### Algorithm
```
TODO
```
### Predefined Missing Value Verification
- Type: [PredefinedMissingValueVerification](/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/PredefinedMissingValueVerification.java)
- Verifier: [PredefinedMissingValueVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PredefinedMissingValueVerifier.java)
#### Description
Detecting predefined string values of a column, which itself are not used in the column.
#### Algorithm
```
TODO
```
### Empty Output Verification
- Type: [EmptyOutputVerification](/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/EmptyOutputVerification.java)
- Verifier: [EmptyOutputVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/EmptyOutputVerifier.java)
#### Description
Detection rules with an empty output values."
#### Algorithm
```
TODO
```
## Decision Logic Level Verification
- Classification: [DecisionLogicLevelVerification](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/classification/DecisionLogicLevelVerification.java)
### Subsumption Verification
- Type: [SubsumptionVerification](/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/SubsumptionVerification.java)
- Verifier: [SubsumptionVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/SubsumptionVerifier.java)
#### Description
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.
#### Algorithm
```
TODO
```
### Partial Reduction Verification
- Type: [PartialReductionVerification](/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/PartialReductionVerification.java)
- Verifier: [PartialReductionVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/PartialReductionVerifier.java)
#### Description
Checking whether ranges can be combined to simplify decision tables.
#### Algorithm
```
TODO
```
### Overlapping Verification
- Type: [OverlappingVerification](/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/OverlappingVerification.java)
- Verifier: [OverlappingVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/OverlappingVerifier.java)
#### Description
Detecting whether there are any overlaps in rule conditions. This verifier does not show identical, overlaps or subsumptions.
#### Algorithm
```
TODO
```
### Missing Rule Verification
- Type: [MissingRuleVerification](/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/MissingRuleVerification.java)
- Verifier: [MissingRuleVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/MissingRuleVerifier.java)
#### Description
Detecting whether there are any missing business rules, i.e. if there are rules missing for expected inputs.
### Identical Rule Verification
- Type: [IdenticalRuleVerification](/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/IdenticalRuleVerification.java)
- Verifier: [IdenticalRuleVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/IdenticalRuleVerifier.java)
Detecting rules which have an identical input, i.e. are redundant.
#### Algorithm
```
TODO
```
### Equivalent String Verification
- Type: [EquivalentStringVerification](/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/EquivalentStringVerification.java)
- Verifier: [EquivalentVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/EquivalentVerifier.java)
#### Description
Detecting rules which are not identical, but still semantically equivalent. Here, the verifier checks if there exist multiple rules which use synonyms as inputs and are therefore equivalent, based on synonym relations via Wordnet.
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
#### Algorithm
```
TODO
```
## Syntax Level Verification
- Classification: [SyntaxLevelVerification](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/classification/SyntaxLevelVerification.java)
### Date Format Verification
- Type: [DateVerification](/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/DateVerification.java)
- Verifier: [DateVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/DateVerifier.java)
#### Description
This verification checks the correctness of the date format for all date entries. Each date should be in the format "data and time(yyyy-MM-ddThH:mm:ss)".
#### Algorithm
```
TODO
```
### Input Value Syntax Verification
- Type: [InputValueSyntaxVerification](/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/InputValueSyntaxVerification.java)
- Verifier: [InputValueSyntaxVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/InputValueSyntaxVerifier.java)
#### Description
This verification checks the correctness of the input formats for all input entries. They should have no syntax errors.
For example:
A numeric input value must have one of the following formats:
- `= x`
- `<= x`
- `> x`
- `>= x`
- `[x..y]`
- `]x..y[`
- `[x..y[`
- `]x..y]`
#### Algorithm
```
TODO
```