Force-layout of Cable2Graph
Update: This prototype has turned into a bigger project: http://is.gd/CableWeaver
Here's a small gallery of Cable2Graph cable reference culsters (the graphs are named after countries, but they don't "represent" the entire body of cables related to them. It's just a handy naming convention). Each node (circle) represents a cable. Each link (line) represents reference between 2 cables.
Instructions
- Hover over a node to see details of the cable it represents.
- Click on a node to open the related cable in a new tab.
- Shift+click on the node to toggle between manual placement and auto placement modes (see below). Default is auto placement.
- When you drag a node, all nodes in auto placement mode rearrange themselves as if the links were "rubber bands".
- When you release a node that is in auto placement mode, it snaps into place according to the "rubber bands" attached to it.
This is why it is usually best to switch a node to manual placement before dragging it.
Reaching a readable layout (where all arrows are visible and distinguishable) can take up to 20 minutes depending on the graph
(Syria and Jordan are the most complex, Iran is easy). Here's a screenshot gallery of all graphs after tidying them up a bit.
Legend
- Node's fill color represents sending Embassy.
- Border is dashed if cable is missing, otherwise the color represents classification
(UNCLASSIFIED, CONFIDENTIAL, and SECRET).
- Border is darker when node is in manual placement mode.
- Border width represents node's HITS authority (how "strongly" it is involved in [in]direct reference).
- Link arrowhead points to the referenced (i.e. earlier) cable.
- Link width represents [betweenness centrality](The color represents the embassy send://en.wikipedia.org/wiki/Betweenness_centrality)
of the reference (in how many shortest-paths between pairs of cables it appears).
Under the hood
- This is a proof of concept: trying to use d3 force-layout to render WikiLeaks
Cable2Graph clusters.
Hopefully, this will become a public web service with a server-side component generating the graphs on demand.
- If you fork this, bear in mind that the json file contains additional information you may wish to visualize (e.g. pagerank).
- If you want to try this with your own
nbh/splitgrraph
graphml files, you can convert them with g2json -
a minimalistic fork of g2svg (included in this gist).