This is a viewer for decision maps, which record decisions made and places discovered during an exploration process. It has multiple tools for visualizing the sequence of decision graphs that represents an exploration process, including:
At the top left, the controls area shows global controls and view-specific controls (described in the help sections for each view).
At the top right, there is a legend that shows the styles used for the current view. See the legend section for more details.
On the bottom left, the current view is displayed. In all views, you can click on nodes (or bars in the histograms view) to select them. Selections filter which edges are visible, and also control how the focus and path views behave.
On the bottom right, the listing displays the name of each decision, along with its assigned symbol (if any), and a few other stats about that decision.
The global controls are:
The overview displays the connections among all nodes in the graph, using an automatic layout that tries to ensure most connections aren't too long but also that decisions don't get too close to each other.
You can drag around the nodes to adjust their position, but when you do that, the rest of the nodes will be allowed to move according to their constraints. By hovering over a node or selecting nodes (by clicking on them), you can limit which edges are shown, and hovering on a node or edge for a moment will display information about it.
The controls for this view are:
The position of the nodes is governed by two processes: the initial layout, and a physical simulation that includes several simulated forces.
The initial layout results can be viewed without running the physical simulation at all by selecting the “strict” layout option. This layout places nodes on a triangular grid. To produce this layout, the following algorithm is used:
This algorithm normally results in a roughly hexagonal group of nodes, even when connections aren’t thick, because it breaks ties towards the origin. The default listing sort order for this view shows the order in which nodes were added, which can help understand the layout.
Once the nodes are positioned in this grid, in the “loose” and “relaxed” layouts, relax those positions by simulating a few physical forces acting on the nodes in two dimensions.
When the “relax” further button is clicked, when a node is dragged, or during layout construction for the “loose” and “relaxed” variants, physical forces are simulated to position the nodes. The two main forces are:
In addition to these two main forces, there is a gathering force that pulls all nodes towards the origin. This ensures that disconnected nodes do not drift away from the main part of the graph. This force is fairly weak, so it does not introduce very much distortion.
The “loose” and “relaxed” layouts apply different amounts of simulation to relax the graph. The “relax further” button can always be used to see the consequences of more simulation updates, and dragging nodes also activates the simulation system. The “loose” layout is an intermediate between the rigid grid of the “strict” layout and the more relaxed positions of the “relaxed” layout.
This view shows detailed information about all of the options at a single decision, as well as some info on how that decision changed over the course of the exploration. This focus node is in the center, and can be switched by picking from the listing on the right, or by clicking on another non-focus node (TODO: implement this). All nodes that are connected to the focus node are arrayed in a circle around the focus node, ordered by their order of appearance in the exploration, starting from 0 degrees on the right and proceeding clockwise.
The control area for this view displays the ID of the focus decision.
TODO The affinity plot shows the relative strength of relationship between one or more inner nodes and a set of at least two outer nodes. The outer nodes are arranged in a circle, and the inner nodes are placed within that circle according to the strength of connection they have with each outer node.
In fact, the position of each inner node is just a weighted average of the positions of the outer nodes, where the weights are the total weight of the edges in both directions between the inner node and each outer node.
In some cases this causes overlap issues, but the plots are most informative when you can see distinctions in how certain nodes are positioned within the plot. Decreasing the node size using the “marker size” slider may help in cases where there is a lot of overlap.
The controls for this view are:
In this view, the position of the outside node is fixed (they are sorted around the circle by total edge weight, with ties broken by initiated edge weight and then alphabetically by ID). The position of the inside nodes is determined by which outside nodes they are most strongly connected to, however, and the purpose of the affinity plot is to be able to compare these connection strengths. If there are more than three outside nodes, position on the interior is ambiguous: exactly which node on one edge of the circle pulled the node to that side should be inspected by looking at specific edges. So if two inside nodes are close to each other, that doesn’t necessarily mean that they have exactly the same pattern of relationships with the exterior nodes. However, if two nodes are placed differently, it does mean that they have different relationship patterns, and if there are only two or three outside nodes, then similar interior placement does imply similar relationships patterns.
This view helps provide context for the edge weights used in the other views. By displaying a histogram of values (such as interactions, which is total initiated + received weight) this view gives a sense of how large or small a particular value is relative to all of the nodes in the graph. Each histogram displays a list of numbers along the x-axis, which are the distinct values present among all nodes, and for each value, there’s a bar indicating how many nodes had that much total edge weight, with a number on top indicating the precise count. So the x-axis is the combined edge weight (or # of neighbors) depending on which graph is selected, and the y-axis is the total number of nodes that have that combined edge weight (or # of neighbors).
This view can plot a histogram of the initiated weight, the received weight or the initiated + received weight (interactions). It can also plot a histogram of the number of neighbors each node has. In addition, you can select two histograms at once and it will plot one above the x-axis and one below so you can compare them visually (this really only makes sense for comparing among initiated, received and initiated + received graphs).
The width of each bar is determined by how many bars can fit in the graph area, but there is a minimum, and so if there are too many distinct values to display, you will have to scroll the graph horizontally to see them all. The height of the bars is determined such that the largest bar fills up the available vertical space, so only relative heights are relevant. When two graphs are shown, they are not scaled independently, so that the relative height of bars above and below the x-axis can be compared directly.
The controls for this view are:
In the histogram view, selection works a bit differently than in other views. You can still use the listing to select individual nodes, and this will highlight the bar(s) that they belong to (hovering on a bar will also display the ID of all nodes associated with it, although in some cases the list may be too long to fit on the screen). However, clicking on a bar will select all nodes that belong to that bar, and any other bar(s) they belong to (in the comparison view). Whether all or only some nodes at a bar are selected (e.g., because they were selected using the listing), clicking on that bar deselects all of them. So if you want to know which nodes have a total outgoing weight of exactly 5, you can select the “initiated” histogram, and click on the bar above the number 5 on the x-axis.
In the top-right of the window, there is a “Legend” panel which displays a legend for the current graph. In the overview, focus, and path views, this displays one style for each region, along with the name of that region. In the histogram view, it displays the different styles used for each different value that can be used to plot a histogram, which is useful when comparing histograms to distinguish which is which.
The regions and their names are defined as part of the dataset (we use level-1 zones by default).
The listing area is on the right of the screen, and contains a list of all decisions in the graph. It has controls for sorting or filtering decisions, and also displays key statistics for each decision.
The stats displayed are the number of outgoing (→) and incoming (←) transitions.
The controls for the listing area are: