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 - 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..|
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.
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.|..|
}
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
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..|.>.|
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
}
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
}
4 - Meta options
Options that influence the rendering
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
4.2 - title
Title of the map
the title
keyword allow setting the title of the map.