Um Daten zu untersuchen, müssen wir erstmal Daten bekommen. Die zweite Einheit setzt sich deshalb mit der Datenakquise auseinander. Wie man einen bestehenden Datensatz herunterladen und importieren kann, haben wir ja schon letzte Woche besprochen. In dieser Einheit geht es um das Sammeln und Anlegen von neuen Datensätzen aus Internetquellen sowie erste Analysen davon.
Inhaltsverzeichnis
Beim Arbeiten mit Daten muss eine grundlegende Unterscheidung zwischen strukturierten und unstrukturierten Daten getroffen werden:
Bei strukturierten Daten besteht eine klar definierte Struktur. Der Datensatz zu den VfGH Richter*innen aus der letzten Einheit ist ein gutes Beispiel. Es gibt dort zB ein Feld „Name“ in dem (ausschließlich) der Name desjenigen Mitglieds angeführt wird. Dementsprechend leicht können auch alle Namen aufgerufen werden. Gerade Tabellen (und Data Frames) eignen sich gut um strukturierte Daten zu speichern und mit ihnen zu arbeiten. Ein anderes Format ist zB das JSON-Format, mit dem wir uns weiter unten noch näher beschäftigen werden.
Unstrukturierten Daten fehlt eben so eine Struktur. Ein gutes Beispiel für unstrukturierte Daten ist Text, zB ein OGH-Urteil. Aus einem solchen Text lässt sich nicht unmittelbar ein Datenpunkt, zB die zitierten Urteile oder die Namen der beteiligten Richter*innen ablesen.
Weil die Arbeit mit strukturierten Daten um einiges einfacher – und die Ergebnisse eindeutig(er) – sind, werden wir uns in dieser Einheit damit beschäftigen, wie strukturierte Daten abgerufen werden können und einen ersten Blick darauf werfen, wie man unstrukturierte Daten in strukturierte Daten umwandeln kann.
Sog. APIs (Application Programming Interfaces) erlauben es, Daten zwischen verschiedenen Systemen auf eine standardisierte Weise auszutauschen. Dazu wird zuerst eine Anfrage an die API gesendet. Dabei wird mithilfe von vordefinierten Parametern angegeben, welche Daten man erhalten will. Die API antwortet dann mit den angeforderten Daten in standardisierter Form.
Der Vorteil der Abfrage via API ist, dass nur die Daten, ohne zusätzliche Informationen maschinenlesbar übermittelt werden. Meist handelt es sich dabei um strukturierte Daten. Wir setzen uns im Folgenden vor allem mit sog. Web APIs auseinander, also solche die über das Internet abrufbar sind. Im Hintergrund funktioniert das Abrufen der API dann so wie das öffnen einer Website, mit dem Unterschied, dass die Daten ohne zusätzliches Styling wiedergegeben werden.
APIs werden zum Beispiel eingesetzt, um eine App mit den Servern des Appanbieters zu verbinden. Aber es gibt auch eine Reihe an öffentlichen APIs, die von jedermann abgefragt werden können. Zum Beispiel um Daten über das Wetter oder den öffentlichen Verkehr zu bekommen. Eine Sammlung an öffentlich zugänglichen APIs gibt es zB hier: https://github.com/public-apis/public-apis
Aber auch der Staat stellt manche seiner Daten via APIs zur Verfügung. Ein Beispiel ist die RIS API, die die Daten des Rechtsinformationssystem des Bundes frei zugänglich macht.
Bevor wir in die technischen Details eintauchen, möchte ich einen kurzen Überblick über die Funktionen der RIS API geben. Über die API sind grundsätzlich alle Daten verfügbar, die auch auf der Website, der sogenannten Bürgerapplikation angezeigt werden.
Die API teilt sich in sechs sog. Endpoints, die den Reitern im RIS entsprechen: