GSN validation
The rules a Goal Structuring Notation (GSN) goal structure is checked against and their severity, and the messages they produce with how to fix them.
Rules
| Rule | Severity |
|---|---|
| At least one goal, except in the architecture view | Error |
| No cycles in the support hierarchy | Error |
| SupportedBy and InContextOf join only what the standard permits | Warning |
| Contexts, assumptions and justifications are joined only by InContextOf | Warning |
| Identifiers are unique | Warning |
| Decorators are recognised and used where the standard allows | Warning |
| A connector carries at most one of multiplicity, optional and choice | Warning |
| Node and relationship types are recognised | Warning |
| Every element is joined to the argument | Warning |
| An element challenges a relationship | Information |
Several top goals are allowed. None of these rules stops the argument drawing; a missing Node ID, Node type or Relationship type mapping does. A goal structure has no advisories.
Messages and fixes
| Message | Fix |
|---|---|
| Map the required Node type. | Map a Node Type column. Relationship type gives the same message when it is not mapped. |
| Goal is missing. | Add an element with Node Type Goal. A diagram of modules only is exempt. |
| A strategy cannot support a solution. Support runs from a goal to a goal, strategy or solution, and from a strategy to a goal. | Put a goal between the strategy and the solution. The message names your two element types. |
| A solution cannot support a goal. Support runs from a goal to a goal, strategy or solution, and from a strategy to a goal. | The connection runs the wrong way. If the whole argument is upside down, change Reads as on the Data Mapping tab. |
| A goal cannot be put in the context of a goal. Context runs from a goal or a strategy to a context, assumption or justification. | Use SupportedBy, or make the second element a context. |
| A relationship connects incompatible node types. | A context, assumption or justification is joined by SupportedBy, or an InContextOf does not have exactly one of them at one end. Correct the Relationship Type. |
| More than one element is identified as "G2". The standard requires an identifier to name one element within a module, and a case is discussed by those identifiers rather than by quoting the claims. | Give each element its own Node ID, or its own value in the Identifier column. |
| A node is described by rows that disagree about Decorators; the first row's values are shown. | Keep an element's Decorators cells consistent. See An element with several rows on GSN decorators. |
| CH2 is levied at the relationship R-G2-Sn1, which the standard permits. It stands on its own because the arrow belongs on that relationship's line, and pointing it at either element instead would say the element is challenged rather than the inference. | Nothing to fix. The element challenges a relationship and is not joined to anything by design. |
| The graph contains a directed cycle that is invalid for this mode. | An element supports something above it. Check Connected Node ID. |
| The diagram contains 2 disconnected components. | Some elements are not joined to the argument. Check Connected Node ID. |
Decorator messages are listed on GSN decorators. Names and identifiers in all these messages come from your data.









