I've started experimenting with generating "readings" of race battlemaps:
These charts show, for a specific driver, and for each lap (x-axis), the time to the named car ahead/behind. Intervening cars on a different lap are coloured (blue for a car on a lap ahead, read for a car on a lap behind).
Here's a quick possible reading of the above:
Although fighting with various cars ahead for the first 10 laps, ERI spent the first 20 laps fending of RIC behind. After being passed by ALO midway through the race, there was no-one to focus on ahead, but there was RIC on a charge from behind, who then continued to charge on ahead. Behind, KVY posed no threat, but the race was on the last few laps as PAL looked increasingly like he could be caught.
What I'd like to try to do next is automate the production of that sort of text directly from the data using simple natural language generation rules.
Source: http://www.f1datajunkie.com/2016/05/f1- ... chart.html