Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Checks

Validation checks

The tool automatically performs the following validation checks on the input YAML.

Validations can be performed on individual input files.

IDMeaning
V01All IDs must either start with a known prefix or a node_type must explicitly set.
V02All Goals and Strategies must be either marked with undeveloped: true or have supporting Goals, Strategies or Solutions.
V03Goals and Strategies marked as undeveloped, must have no supporting arguments.
V04All elements listed under supportedBy and inContextOf must be known elements types and semantically sensible (e.g. a Justification cannot be listed under supportedBy).
V05All referenced elements in supportedBy and inContextOf must be unique i.e., no duplicates in the list.
V06All referenced elements in supportedBy and inContextOf must not refer to the element itself.
V07All elements listed as extending other elements must be known elements of the current module and semantically sensible (see V04).
V08 The ID's start contradicts the type of the element set with node_type. Note: only reported with --extended-check option.
V09Element has an assurance claim point that references another element, that this is neither its own ID nor any of the connected elements.
V10An element is marked as defeated, but has no other elements challenging it.
V11A CounterGoal or CounterSolution is used in input files. Note: only reported with --warn-dialectic option.
V12Element that is not a CounterGoal nor a CounterSolution challenges another element or relation.
V13Element marks relation to an element as defeated, but the element has no relation to that element.

The following checks apply to the complete set of input files.

IDMeaning
C01There should be only one but must be at least one top-level element (G,S,C,J,A,Sn) unreferenced.
C02The top-level element must be a Goal. A top-level element is an element that is not referenced by any other element.
C03All referenced elements in supportedBy, inContextOf, challenges must exist.
C04There must be no circular supportedBy references.
C06All module names must be unique.
C07All IDs must be unique across all modules.
C08All elements must be reachable from the root elements. This message can e.g. happen if there are multiple independent graphs where one contains circular references only.
C09All extended modules must exist.
C10All extended elements must exist in the named module and must be undeveloped.
C11The reference that is not found (see C03), could actually be a list, but a YAML string was used. Use [] around your comma separated references.
C12Element challenges a relation, but an element of the relation does not exist.
C13Element challenges itself.
C14Element challenges an element, but that element does not exist.
C15 Element challenges a relation, but both end are pointing to the same element.
C16Element challenges a relation, but the referenced elements do not have a relation.

Uniqueness of keys (i.e. element IDs) is automatically enforced by the YAML format.

If called with option -c or --check the input file is only checked for validity, but the resulting graph is not written. The checks for references (Cxx) can be skipped for individual files by using the -x option.

Format of messages

Error messages and warnings are printed to stderr.

The following format is used:

(Warning|Error): \((?<module>.+)\) \((?<num>[CV][0-9][0-9])\): (?<msg>.+)