Vithanco

VGL Guide — Notations

Estimated reading time: 5 minutes.

Notations

These 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
Arithmetic simple equations, checked as they are built

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, 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.

Shared by most notations: noParallelEdges — error — two edges between the same two nodes in the same direction. The editor does not offer to draw the second one. C4 and Arithmetic do without it.

The notation-specific checks below were current when written; there may be more by now.

IBIS

  • warning — a Question with no Answer.
  • 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 Pro nodes 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 element with no relationships at all. This one applies to every node type, not just elements that look like they should collaborate.
  • Where elements may sit is the containment check every notation with detailings gets (below).

CLD

  • warning — more loops than can be marked; only the shortest get a marker.

Arithmetic

  • warning — a division by zero, which cannot be evaluated.
  • error — an operator with more than one first operand, second operand or result.

More quality warnings come from elsewhere: a redundant junctor, an unknown node or edge type, and a node placed where its notation's detailings do not allow.

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 two node types, Annotation for notes and clarifications and Warning for caveats, that can be connected from any node in the notation. Edge types to them are inferred, so these 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"
    node w1: Warning "Depends on a vendor contract"
    edge c1 -> r1
    edge r1 -> c2
    edge c1 -> a1
    edge c2 -> w1
}