Author: Andreas Platschek Review: Nicholas Mc Guire Date: Dec 20, 2015 Expires: ---- Keywords: GSN, ogsn instalation Status: reviewed draft Phase: all Ref: GSN standard http://www.goalstructuringnotation.info/documents/GSN_Standard.pdf 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 node. -> Justifications are missing the 'J' in the bottom right corner of the node. -> 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 osgn3.py
git clone https://user:firstname.lastname@example.org/gitolite/git/OGSN
This directory also contains a couple of examples, to build them just run e.g.
python3 ogsn3.py -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 ogsn3.py -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 file.dot on every run -- this is for testing.
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
For type the following are available: GOAL, STRATEGY, UGOAL, USTRATEGY, ASSUMPTION, JUSTIFICATION, CONTEXT, SOLUTION
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!