Author: Andreas Platschek
Review: Nicholas Mc Guire
Date: Dec 20, 2015
Expires: ----
Keywords: GSN, ogsn instalation 
Status: reviewed draft
Phase: all
Ref: GSN standard
QA: initial review
Tracking: GIT
Format: ascii text
License: GPLv2 or later


The prototype for tool that draws GSN trees. The notation shall be strictly to the standard. You can find the standard here:

Currently the Core GSN Elements as described in Part1 of the standard are implemented with the following shortcomings:

-> Assumptions are missing the 'A' in the bottom right corner of the
-> Justifications are missing the 'J' in the bottom right corner of the
-> Strategies are a bit bigger than they have to be (this is not a
   deviation from the standard, just a bit annoying :-) ) 


Dependencies have not been tested yet, but installation of graphviz should suffice. So in debian jessie, just do a

For python-2.X sudo apt-get install graphviz python-pygraphviz For python-3.X sudo apt-get install graphviz python3-pip sudo pip3 install graphviz

and you should have all you need to run


via git:

git clone


This directory also contains a couple of examples, to build them just run e.g.

python3 -i examples/GSN_Community_Standard -o fig6.png

This will result in a file called fig6.png which contains the same GSN tree that is depicted in the GSN community standard in Figure 6. If you rather have the output in some other format, then just change the extension of the output file, e.g. to

python3 -i examples/GSN_Community_Standard -o fig6.svg

to yield a vector graphic. Available formats depend on the ones built into the graphviz library on your system, but usually the following are available:

‘canon’, ‘cmap’, ‘cmapx’, ‘cmapx_np’, ‘dia’, ‘dot’, ‘fig’, ‘gd’, ‘gd2’, ‘gif’, ‘hpgl’, ‘imap’, ‘imap_np’, ‘ismap’, ‘jpe’, ‘jpeg’, ‘jpg’, ‘mif’, ‘mp’, ‘pcl’, ‘pdf’, ‘pic’, ‘plain’, ‘plain-ext’, ‘png’, ‘ps’, ‘ps2’, ‘svg’, ‘svgz’, ‘vml’, ‘vmlz’, ‘vrml’, ‘vtx’, ‘wbmp’, ‘xdot’, ‘xlib’

So far, .png, .svg and .eps have been tested in debian. In addition osgn will generate a on every run -- this is for testing.

Write a GSN

Writing your own GSN configuration file is rather simple. The structure is as you might know from config files, where some fields are expected for each node, the description of a node looks as follows:

[NODENAME] parents: space separated list of nodes (ROOT for the first element in the tree.) desc: a textual description which may contain (a subset of) HTML tags type: the type of node


While most of those types are straight forward, there are two that need some explanation and that are UGOAL and USTRATEGY. The U stands for undeveloped, so these two types are used to create an undeveloped goal / strategy respectively.

You will find a lot of examples on this in the examples directory!