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.
### Missing Input Value Verification
- Type: [MissingInputValueVerification](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/MissingInputValueVerification.java)
- Verifier: [MissingInputValueVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/MissingInputValueVerifier.java)
#### Description
Detecting output values of output columns in decision tables which are not used in the connected decision table as input values.
#### Algorithm
```
TODO
```
### Missing Output Value Verification
- Type: [MissingOutputValueVerification](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/MissingOutputValueVerification.java)
- Verifier: [MissingOutputValueVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/MissingOutputValueVerifier.java)
#### Description
Detecting input values of input columns in decision tables which are not defined in the connected decision table as output values.
#### 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.
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
#### 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
```