• No results found

Verzamelen van sociale media data

In document Inzet van sociale media bij incidenten (pagina 22-25)

In dit hoofdstuk wordt gekeken hoe de informatie uit de verschillende relevante bronnen efficiënt verzameld kan worden. Daarmee wordt antwoord gegeven op deelvraag drie. Informatie verzamelen uit verschillende bronnen levert een aantal obstakels op. Dit komt doordat de APIs van de verschillende bronnen allemaal verschillend zijn. De aspecten waarop deze APIs van elkaar verschillen worden in de volgende paragrafen één voor één behandeld.

5.1. Authenticatie

Om verbinding te maken met een API moet de applicatie meestal eerst geauthenticeerd worden. Dit gebeurt doorgaans volgens een

“Oauth 1.0” of “Oauth 2.0” protocol. In tabel 5.5 is een overzicht te zien van de authenticatie

methodes per medium. Oauth is een authenticatie methode waarbij zowel de applicatie, als de gebruiker, voor wie de applicatie informatie wil opvragen, een geheime en een publieke code hebben. De publieke codes worden gebruikt om de aanvraag naar de API te versleutelen, waarna de API de aanvraag kan valideren aan de hand van de geheime codes. Hoewel Oauth 1.0 een verouderde versie is van het Oauth protocol wordt het nog veel gebruikt, onder andere door Twitter. Oauth 2.0 is niet backward compatible met Oauth 1.0 maar gebruikt wel ongeveer dezelfde stappen, waardoor het mogelijk is om een applicatie te maken die zowel Oauth 1.0 als Oauth 2.0 aanvragen kan doen bij verschillende APIs.

Tabel 5.5. Authenticatie methode per medium

Twitter Facebook Google+ YouTube Flickr Wikipedia Blogger Wordpress Tumblr NOS.nl Nu.nl

Authenticatie Oauth 1.0 Ouath

2.0 Oauth 2.0Oauth 2.0Oauth 1.0 Geen Oauth 2.0 Geen Oauth

1,0 Eenvou-dig Geen

5.2. Response-types

Als de applicatie geauthenticeerd is kan deze gegevens opvragen bij de API. Bij de meeste sociale media APIs kan bijvoorbeeld gezocht worden naar berichten. De gevonden berichten worden daarna door de API teruggestuurd in een bepaald format. Dit format wordt ook wel de

“response-type” genoemd. Deze response-types verschillen per API. Bij sommige APIs kan de gebruiker tussen verschillende response-types kiezen. Veel APIs maken tegenwoordig gebruik van het JSON format als response-type.

Nieuws-feeds, van bijvoorbeeld blogs, maken echter veel gebruik van RSS/XML. Deze formats (JSON en RSS) zijn beide gestructureerd en kunnen daarom relatief eenvoudig worden gelezen door een applicatie. Sommige bronnen hebben geen API of feed en stellen de informatie alleen via een HTML pagina beschikbaar. Het is technisch mogelijk om ook deze bronnen te indexeren, maar in dit onderzoek worden deze bronnen buiten beschouwing gelaten. Tabel 5.6 geeft een overzicht van de verschillende response-types per medium.

Tabel 5.6. Response-types per medium

Twitter Facebook Google+ YouTube Flickr Wikipedia Blogger Wordpress Tumblr NOS.nl Nu.nl

Response-type JSON JSON JSON XML XML/

JSON HTML JSON RSS/XML JSON JSON/

XML RSS/XML

Verzamelen van sociale media data | 23

5.3. Metadata

Naast de response-types zit er ook verschil in de metadata die gekoppeld is aan de berichten van verschillende bronnen. Deze metadata bestaat uit verschillende velden, bijvoorbeeld een datum en een geo-locatie. De namen van deze velden verschillen sterk per API. Bovendien zijn er vaak verschillen tussen de notatie van datum en tijd. Hier kan op twee manieren mee worden omgegaan. Eén manier is om de metadata per bron te normaliseren. Bijvoorbeeld door bepaalde metadata-velden niet op te slaan, of door zelf velden toe te voegen of aan te passen. De andere mogelijkheid is om de metadata per bron intact te laten en te accepteren dat er verschillen zijn tussen berichten uit verschillende bronnen;

hiermee moet bij de opslag en de weergave van de data rekening gehouden worden. Meer hierover is te lezen in het hoofdstuk over de opslag.

5.4. Rate-limiting

Twitter, Facebook en veel andere sociale media APIs stellen limieten aan de hoeveelheid aanvragen die gemaakt kunnen worden binnen

een bepaalde tijd. Dit wordt ook wel “rate-limiting” genoemd. Rate-limiting kan een grote beperking zijn. Er zijn meestal rate-limits voor het aantal aanvragen dat gedaan kan worden in een bepaalde tijdsperiode en rate-limits voor het aantal berichten per aanvraag. Tijdens incidenten kan de hoeveelheid berichten zo sterk toenemen dat de rate-limits van de APIs het onmogelijk maken om alle berichten over een incident te verzamelen. Twitter heeft een streaming API die constant nieuwe berichten naar de applicatie stuurt. Voor deze API geldt geen beperking in het aantal aanvragen dat gedaan kan worden omdat deze API een constante stroom van berichten naar de applicatie stuurt. De hoeveelheid van de gestuurde berichten verschilt continu maar kan nooit groter zijn dan 10% van het totaal aantal tweets dat op dat moment geplaatst wordt op Twitter door gebruikers over de hele wereld.

Tabel 5.7 geeft een overzicht van limieten van de belangrijkste APIs waarmee Tweets gezocht kunnen worden.

Tabel 5.7. Limieten van de verschillende APIs waarmee Tweets gezocht kunnen worden

Bron Aanvragen/uur Berichten/

aanvraag Berichten/minuut Berichten/uur

Twitter REST API 720 100 1200 72000

Twitter Streaming API nvt nvt max 10% van totaal

op Twitter max 10% van totaal op Twitter

Topsy Otter API ~290 100 ~480 ~29000

APIs van andere sociale media zijn minder duidelijk over de limieten die zij stellen. Tabel 5.8 geeft een overzicht van de gevonden rate-limits per medium.

Tabel 5.8. Rate-limits per medium

Twitter Facebook Google+ YouTube Flickr Wikipedia Blogger Wordpress Tumblr NOS.nl Nu.nl

Rate-limits 1200

24 | Verzamelen van sociale media data

5.5. Conclusie

Er is gezocht naar een antwoord op de vraag hoe de data van verschillende sociale media efficiënt verzameld kan worden. Daarbij is gekeken naar vier verschillende obstakels bij het verzamelen van data uit verschillende bronnen. Er is geconstateerd dat het verschil in de manieren van authenticatie en het verschil in de response-types van de APIs gering zijn en gemakkelijk programmatisch opgelost kunnen worden.

Ook voor de afwijkingen in de metadata bij de berichten uit de verschillende bronnen zijn verschillende oplossingen. De grootste afwijking zit echter in de rate-limiting. Alleen Twitter is duidelijk over het aantal berichten dat via de API verzameld kan worden per minuut. Voor dit onderzoek is dit geen probleem omdat Twitter als detectiebron gekozen is juist omdat het bij de Twitter API mogelijk is om een groot aantal berichten per minuut te verzamelen.

Opslag van sociale media data | 25

In document Inzet van sociale media bij incidenten (pagina 22-25)