Insurgent Dynamics: A systematic analysis of social unrest using the GDELT Event database

Click here if you prefer to read this post on (5 minute read).
Click here to look at the data visualization only on

In this post I have rekindled one of my earlier data analysis and visualization projects from last year, about my explorations of conflict and insurgence dynamics using data from the GDELT event dataset and a simple epidemiological SIR model. The data visualization was done in Matlab, so it is a bit chunky, but please go ahead and check it out here.

Last year, I have started writing a paper about my the results of my exploration, but it is not ready yet. Meanwhile, here are the brief findings.

While the social dynamics that may drive social unrest events have been extensively studied recently and the general patterns regarding the distribution of event-sizes and timings are well-known, I tried to delve deeper into the problem and attempt to gain an insight into individual event dynamics. Using an event classification based on news reports from the Global Database of Events, Language and Tone (GDELT), I looked at social unrest events of different types across different scales and timelines and find that there is an underlying repetitive pattern in their dynamic. Using this information, I postulated a simple SIR system dynamics model and simulated it for various types of social unrest for the period covered by GDELT, including all armed conflicts and major protests between 1979 and 2014. I found that the great majority of unrests are characterized by very similar diffusion and decay rates, independent of their place, time or duration, thus implying a scale-free structure. What is even more interesting is that the variation of these parameters is also small when comparing across different unrest types, such as conflicts and nonviolent protests. The Achilles-heel of the analysis is the establishment of the correlation between actual events and the news reports covering them, for which there is limited literature. I tried to demonstrate the validity of this conjecture through semantic mining in Wikipedia and the BBC Country Profiles databases. So far, I found that there might be a possible universality in the dynamics and this could offer extensibility to dynamics disaster relief programs or social gatherings.

GDELT conflict

Insurgent Dynamics – A visual exploratory of GDELT events

Read More

How is a D3.js visualization made? – the road from CSV to SVG

People tell me that they would like to make a visualizations in D3.js. And it is too complicated. The learning curve is too steep. Even crafting C3.js or Vega simplified D3.js code seems too complicated. In this post, we will examine the road the data takes from the database or website until the drawing canvas – that is your computer screen.

In my previous post I explained how to load data with D3.js from the Quandl database aggregator directly into NVD3, an easy-to-use graphing library for D3.js. If you you want to visualize just one set of data and don’t worry too much about customization, this is a valid option. However, if you want add your own touch, combine or extend the data with additional fields, or add your own comments, usually you would have to do some additional data processing.

Read More