VGL Guide — Notations
Estimated reading time: 4 minutes.
Notations
Fifteen notations are built in. Each has its own section in the notation reference, giving its node types, its edge types and a complete worked example.
| Notation | For |
|---|---|
| IBIS | decision-making and argumentation |
| BBS | benefit breakdown and analysis |
| ImpactMapping | strategic planning and goal alignment |
| ConceptMap | domain vocabulary as falsifiable propositions |
| CRT | root cause analysis (Theory of Constraints) |
| FRT | solution validation (ToC) |
| TRT | step-by-step implementation planning (ToC) |
| PRT | planning with necessary-condition thinking (ToC) |
| EC | conflict resolution (ToC necessary-condition logic) |
| GoalTree | strategic planning through Goal, CSFs and Necessary Conditions |
| ADTree | security modelling of attack and defense interactions |
| CLD | systems analysis: what reinforces or balances what over time |
| DecisionTree | decision logic as questions, choices and outcomes |
| Timeline | events across multiple tracks on a shared time axis |
| C4 | software architecture across four levels of zoom |
You can also render a notation's own structure as a diagram with a metagraph declaration — see Metagraph.
The rest of this section covers what applies across notations: how multiple arrows into one node are read, what the quality checks report, and how extensions add cross-cutting types.
Diagram logic and junctors
Each notation has a diagram logic that decides how multiple arrows into one node are read, and therefore which junctor has to be an explicit node.
| Diagram logic | Multiple unjoined arrows mean… | Explicit junctor | Implicit |
|---|---|---|---|
sufficientCause |
OR — any one arrow suffices | AND | OR |
necessaryCondition |
AND — all arrows required | OR | AND |
noLogic |
notation-defined | — | — |
Add only the exception junctor for your logic. In sufficient-cause notations (CRT, FRT, TRT, ADTree) declare an AndJunctor only for "all of these together"; in necessary-condition ones (EC, PRT, GoalTree) declare an
OrJunctor only for "any one of these alternatives". Adding the implicit junctor raises a redundantJunctor warning, since direct edges already say the same thing with less noise. The same applies to notations you declare with
vnotation.
Quality checks
Separately from notation breaks, four notations run quality checks: advisory analyses of the shape of a graph rather than its syntax. Each result carries a severity — info, warning or error — but none of them stops a document opening, and an error here means "this cannot be read as the notation intends", not "this failed to parse". Most are advice you can knowingly ignore; the thresholds are fixed, so they are worth knowing before you argue with one.
IBIS
- warning — a
Questionwith noAnswer. - warning — any node with two or more incoming edges. This is a tree-shape check across every node type, so a Question raised by two separate
Pronodes trips it even though the map is legitimate.
ConceptMap — the largest set, ten diagnostics in all.
- info — the concept and relation counts and their ratio, reported on every map. This one is a statistic, not a complaint.
- warning — fewer than 5 concepts ("consider adding more"), or more than 25 ("consider splitting into sub-maps").
- warning — a concept label of 4 words or more; 1–3 is the preferred range.
- warning — a vague relation verb. This matches a fixed list of eleven exact phrases — "relates to", "is related to", "is connected to", "involves", "is involved in", "is associated with", "is linked to", "pertains to", "concerns", "has something to do with", "is about" — case-insensitively, and nothing else. It is a blocklist, not a judgement of your wording.
- warning — a concept connected to no relation.
- warning — more than one disconnected cluster (single stray nodes are left to the check above).
- warning — two concepts linked in both directions; keep the more meaningful one.
- warning — a relation with several concepts on both sides, which asserts every combination: n inbound × m outbound propositions, all of which must hold.
- error — the same, but where a concept appears on both sides, making a proposition circular.
- error — a relation missing a concept on either side, so it forms no proposition at all.
GoalTree
- error — no
Goal, or more than one. Exactly one is required. - info — a CSF count outside the recommended 3–5. A partial draft with none yet reports this too.
C4
- warning — an external element inside the Enterprise boundary.
- warning — a
ContainerorDatabasenot inside any System boundary. External containers are exempt: they legitimately live outside one. - warning — an element with no relationships at all. This one applies to every node type, not just elements that look like they should collaborate.
Two more quality warnings come from elsewhere: a redundant junctor, and an unknown node or edge type.
Extensions
Extensions add cross-cutting node types to any notation, listed after it and comma-separated:
vgraph myGraph: ConceptMap, Annotation "My Diagram" { ... }
Annotation is the available extension: it adds an Annotation node type that can be connected from any node in the notation, for notes and clarifications. Edge types to Annotation are inferred, so annotation edges need no explicit type.
vgraph productMap: ConceptMap, Annotation "Product Strategy" {
node c1: Concept "Customer Need"
node r1: Relation "drives"
node c2: Concept "Feature"
node a1: Annotation "Validated in user research"
edge c1 -> r1
edge r1 -> c2
edge c1 -> a1
}
Home