1 - The wtg language

This is a description of the wtg language

wtg (wardleyToGo) is a descriptive language used to build Wardley Maps.

This language seperate the construction of the value chain and the position of the components regarding their evolution.

It allows to build a map in two steps:

  • you build the value chain without taking care of the placement of the components.
  • each component can then be configured independently. You can set their evolutions, type and even colors

The parser has a placement algorithm and it takes care of the position of the component on the vertical axis.

Components that are not configured are spread on the map on the horizontal axis and their color indicates that they are not configured yet

1.1 - Pipeline

This is a description of the pipeline

Caution Pipeline is a work in progress

The pipeline component

A pipeline can be declared as a type of a component.

Example:

a - mycomponent
mycomponent - b

mycomponent: {
    evolution: |..|..x|..|..|
    type: pipeline
}

Rendering

Declaration of the components of a pipeline

Considering P the main pipeline element. Each component belonging to the P pipeline is attached via a semicolon :.

example: P:a means a is a component of the P pipeline

as a is a component, it can be configured like any other component. Its evolution is configured like any other component (with the |.|.|.|.| syntax)

Value chain

A pipeline is declared on the value chain:

ex:

  • P:a - P2: a is linked to P2
  • P = P2:b: P is linked to b
  • P:a - P2:b: a is linked to b

Note when a pipeline is declared, the type of the host is set to Pipeline

Rendering

a rectangle is automatically drawn including the lower and upper components

anchor - P1
P1:a - P2
P1:c

P1: |...|...x...|...|...|
P2: |...|...x...|...|...|
a: |..x.|......|...|...|
c: |...|......|...|x..|

1.2 - Value Chain

This is a description of the value chain object

The value chain is created by simple adding dashes (-) between two compoents.

The number of dashes reflect the visibility of two components: the more - the less visibile are components to one another.

example:

a - b
a -- c

means that b is nearer to a than c.

The absolute position on the map is computed by the parser of the language.

1.3 - Components options

This is a description of the components options

It is possible to configure the components by grouping the configuration elements in a block {}

example:

mycomponent: {
    type: build
    color: Green
    evolution: |..|..|.x.|..|
}

1.3.1 - Components Colors

The colors that can be used in wtg

Adding Colors

a - b
b - c

a: {
    evolution: |||x||
    color: Red
}

b: {
    evolution: |||x||
    color: Green
}

Palette

  • AquaMarine

  • SteelBlue

  • LightYellow

  • BurlyWood

  • LightCoral

  • Salmon

  • ForestGreen

  • LightSeaGreen

  • SkyBlue

  • DarkBlue

  • BlueViolet

  • DarkViolet

  • Ivory

  • MediumAquaMarine

  • MediumSeaGreen

  • DodgerBlue

  • Plum

  • Azure

  • Fuchsia

  • LightCyan

  • NavajoWhite

  • Grey

  • DarkKhaki

  • SandyBrown

  • PaleVioletRed

  • HotPink

  • Wheat

  • LightSlateGray

  • Gainsboro

  • Aqua

  • Magenta

  • BlanchedAlmond

  • Peru

  • Maroon

  • RoyalBlue

  • DarkSlateBlue

  • MediumSlateBlue

  • Orchid

  • SlateGray

  • Teal

  • Brown

  • DarkCyan

  • DarkMagenta

  • DimGrey

  • Green

  • DarkSlateGray

  • DarkOrchid

  • CornSilk

  • Linen

  • LightSalmon

  • MediumSpringGreen

  • Turquoise

  • MediumVioletRed

  • Coral

  • YellowGreen

  • LightGreen

  • OldLace

  • Black

  • Yellow

  • LavenderBlush

  • AliceBlue

  • DarkSalmon

  • SaddleBrown

  • Sienna

  • RosyBrown

  • Silver

  • LightPink

  • Thistle

  • Red

  • MediumTurquoise

  • Gold

  • GoldenRod

  • LightSteelBlue

  • LightGray

  • Bisque

  • Chocolate

  • LightGoldenRod

  • Navy

  • LightSkyBlue

  • SpringGreen

  • MediumPurple

  • MediumOrchid

  • WhiteSmoke

  • Firebrick

  • LimeGreen

  • DarkGreen

  • SeaShell

  • MintCream

  • Snow

  • Crimson

  • LawnGreen

  • DarkSeaGreen

  • Pink

  • Tan

  • Moccasin

  • Olive

  • OliveDrab

  • Honeydew

  • DimGray

  • Orange

  • PaleTurquoise

  • PaleGoldenRod

  • CadetBlue

  • MediumBlue

  • Lavender

  • Tomato

  • DarkOrange

  • DarkGray

  • LightGrey

  • MidnightBlue

  • SlateBlue

  • DarkTurquoise

  • IndianRed

  • Khaki

  • PowderBlue

  • LightBlue

  • Violet

  • GhostWhite

  • Lime

  • Gray

  • Indigo

  • LemonChiffon

  • MistyRose

  • PapayaWhip

  • DarkGoldenRod

  • DeepSkyBlue

  • DeepPink

  • Blue

  • GreenYellow

  • CornFlowerBlue

  • DarkGrey

  • White

  • DarkRed

  • SeaGreen

  • Beige

  • FloralWhite

  • OrangeRed

  • PaleGreen

  • DarkOliveGreen

  • ChartReuse

  • AntiqueWhite

  • PeachPuff

  • Cyan

  • Purple

1.3.2 - Setting the evolution

This page describes the evolution placement.

Evolution’s syntax is composed of 5 pipes | and a x which represents the position

example : |..|..|.x.|..|

The interval between the pipes represents the stages of evolution:

|.........|........|....x...|.......|
  stage1    stage2   stage3  stage4

you can add as many dots (.) (even zero) as you want. This allows fine-tuning the placement of the component on the evolution

Inline configuration

It is possible to set the evolution “inline” for a component:

example:

mycomponent: |..|..|..x..|..|

block configuration

If you have decalred a block configuration for the component, you can use the evolution keyword like this:

mycomponent: {
    evolution: |..|..|..x..|..|
}

Evolution

You can add a > to display the evolution of the component.

example:

mycomponent: |..|..|..x..|.>.|

1.3.3 - label position

Tweak the label position.

On the map, labels are placed automatically in a pseudo-smart way. It is possible to change the position of a label by using the label keywork in a configuration block.

The allowed values are: N,S,E,W,NE,NW,SE,SW` (for north, south, east, west, north-east, north-west, south-east, south-west)

example:

N - NE
NE - E
E - SE
SE - S
S - SW
SW - W
W - NW

N: {
    label: N
}

NE: {
    label: NE
}

E: {
    label: E
}

SE: {
    label: SE
}

S: {
    label: S
}

SW: {
    label: SW
}

W: {
    label: W
}

NW: {
    label: NW
}

1.3.4 - component types

The component types

wtg supports four types of components:

  • build
  • buy
  • outsource
  • pipeline

those components are set in a block configuration of the component thanks to the type keyword.

Example:

build - buy
buy - outsource
outsource - pipeline

build: {
    type: build
}
buy: {
    type: buy
}
outsource: {
    type: outsource
}
pipeline: {
    type: pipeline
}

1.4 - Meta options

Options that influence the rendering

1.4.1 - evolution axis

Setting the labels of the evolution axis

The labels of the stages on the evolution axis can be tweaked using the stage1, stage2, stage3 and stage4 keywords.

It is not mandatory to add all the four labels.

exemple:

sample

stage1: genesis / concept
stage2: custom / emerging
stage3: product / converging
stage4: commodity / accepted

1.4.2 - title

Title of the map

the title keyword allow setting the title of the map.