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
```
### Missing Column
- Type: [MissingColumnVerification](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/MissingColumnVerification.java)
- Verifier: [MissingInputDataVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/MissingColumnVerifier.java)
#### Description
Detection decision which has no input columns or no output columns.
#### 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 the 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
```
### Wrong Data Type Verification
- Type: [WrongDataTypeVerification](/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/WrongDataTypeVerification.java)
- Verifier: [WrongDataTypeVerifier](src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/WrongDataTypeVerifier.java)
#### Description
Detecting output columns and their connected input columns, which have different data types.
#### 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.
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
#### 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
```