Visual Global Entity Graph 2.0: Tracking Protests On The Evening News 2009-2020

Last year we used the pilot version of the Visual Global Entity Graph to track depictions of protests on the evening news. Using the new Visual Global Entity Graph 2.0, what can we learn about the amount of airtime depicting police over the past decade on ABC, CBS and NBC evening news?

The timeline below shows the percentage of the total airtime on the ABC, CBS and NBC evening news broadcasts by day over the past decade that depicted protests, smoothed with a rolling 14 day average to make the trends more apparent. The 2011 Arab Spring is starkly visible, as is a sharp increase in protest depictions since late December 2019. Overall, however, unlike depictions of police, protest imagery has not systematically increased over the past decade.

Breaking this timeline down by station, CBS appears to be a clear outlier, covering protests at the same time as the other two stations, but typically affording those protests greater airtime each time.

This is reflected in their overall numbers, with CBS spending 0.72% of its evening news airtime of the past decade on protests, followed by NBC with 0.69% and ABC with just 0.50%.

The inter-station correlations can be seen in the barchart below. Compared with police depictions, there is far more variability in the correlations of the stations. ABC and NBC are more similar across the board, reflecting again CBS' outsized attention to protest activity.

TECHNICAL DETAILS

As with police depictions, creating the graphs above took just a single SQL query in BigQuery.

select DAY,
SUM(KGOEntitySeconds) KGOTotEntitySeconds, SUM(KGOAllSeconds) KGOTotAllSeconds, SAFE_DIVIDE(SUM(KGOEntitySeconds), SUM(KGOAllSeconds))*100 KGOPercEntityAirtime,
SUM(KPIXEntitySeconds) KPIXTotEntitySeconds, SUM(KPIXAllSeconds) KPIXTotAllSeconds, SAFE_DIVIDE(SUM(KPIXEntitySeconds), SUM(KPIXAllSeconds))*100 KPIXPercEntityAirtime,
SUM(KNTVEntitySeconds) KNTVTotEntitySeconds, SUM(KNTVAllSeconds) KNTVTotAllSeconds, SAFE_DIVIDE(SUM(KNTVEntitySeconds), SUM(KNTVAllSeconds))*100 KNTVPercEntityAirtime,
SUM(KGOEntitySeconds)+SUM(KPIXEntitySeconds)+SUM(KNTVEntitySeconds) TotEntitySeconds, SUM(KGOAllSeconds)+SUM(KPIXAllSeconds)+SUM(KNTVAllSeconds) TotAllSeconds, SAFE_DIVIDE((SUM(KGOEntitySeconds)+SUM(KPIXEntitySeconds)+SUM(KNTVEntitySeconds)), (SUM(KGOAllSeconds)+SUM(KPIXAllSeconds)+SUM(KNTVAllSeconds)))*100 PercEntityAirtime
 from (
SELECT DATE(date, "America/Los_Angeles") DAY, count(1) KGOEntitySeconds, 0 KGOAllSeconds, 0 KPIXEntitySeconds, 0 KPIXAllSeconds, 0 KNTVEntitySeconds, 0 KNTVAllSeconds FROM `gdelt-bq.gdeltv2.vgegv2_iatv`,UNNEST(entities) AS entity where entity.name='protest' and station='KGO' group by DAY
UNION ALL
SELECT DATE(date, "America/Los_Angeles") DAY, 0 KGOEntitySeconds, 0 KGOAllSeconds, count(1) KPIXEntitySeconds, 0 KPIXAllSeconds, 0 KNTVEntitySeconds, 0 KNTVAllSeconds FROM `gdelt-bq.gdeltv2.vgegv2_iatv`,UNNEST(entities) AS entity where entity.name='protest' and station='KPIX' group by DAY
UNION ALL
SELECT DATE(date, "America/Los_Angeles") DAY, 0 KGOEntitySeconds, 0 KGOAllSeconds, 0 KPIXEntitySeconds, 0 KPIXAllSeconds, count(1) KNTVEntitySeconds, 0 KNTVAllSeconds FROM `gdelt-bq.gdeltv2.vgegv2_iatv`,UNNEST(entities) AS entity where entity.name='protest' and station='KNTV' group by DAY
UNION ALL
SELECT DATE(date, "America/Los_Angeles") DAY, 0 KGOEntitySeconds, count(1) KGOAllSeconds, 0 KPIXEntitySeconds, 0 KPIXAllSeconds, 0 KNTVEntitySeconds, 0 KNTVAllSeconds FROM `gdelt-bq.gdeltv2.vgegv2_iatv` where station='KGO' group by DAY
UNION ALL
SELECT DATE(date, "America/Los_Angeles") DAY, 0 KGOEntitySeconds, 0 KGOAllSeconds, 0 KPIXEntitySeconds, count(1) KPIXAllSeconds, 0 KNTVEntitySeconds, 0 KNTVAllSeconds FROM `gdelt-bq.gdeltv2.vgegv2_iatv` where station='KPIX' group by DAY
UNION ALL
SELECT DATE(date, "America/Los_Angeles") DAY, 0 KGOEntitySeconds, 0 KGOAllSeconds, 0 KPIXEntitySeconds, 0 KPIXAllSeconds, 0 KNTVEntitySeconds, count(1) KNTVAllSeconds FROM `gdelt-bq.gdeltv2.vgegv2_iatv` where station='KNTV' group by DAY
) group by DAY order by DAY asc