Verwendete Komponente - DlieBG/tagesschau_dashboard GitHub Wiki

MongoDB

Die Daten aus der TagesschauAPI und der NewsAPI werden als JSON-Dokumente geliefert, diese werden ohne weitere Säuberung in einer MongoDB gespeichert. Dies ist nötig, da wir vor allem bei der TagesschauAPI nicht auf vergangene Artikel zugreifen können und diese entsprechend selbst speichern müssen.

PostgreSQL

Die Daten aus der MongoDB werden dann gesäubert, auf verschiedene Tabellen aufgeteilt und dann in einer Postgres Datenbank gespeichert. Hier setzen wir auf PostgreSQL, da hier effiziente Abfragen möglich sind und so gut wie jedes Tool zur Dashboard-Visualisierung diese Datenbank unterstützt.

Docker

Die MongoDB, die Postgres Datenbank, sowie unsere eigens erstellten Komponenten werden mithilfe von Docker ausgeführt. So kann die Software auf allen Systemen laufen und ist außerdem leicht zu verwalten.

TagesschauAPI

Die Tagesschau bietet eine API an um aktuelle Artikel abzufragen. Dabei werden den Artikeln verschiedene Tags zugeordnet, welche von uns ausgewertet werden können. Zudem werden den Artikeln teilweise Regionen zugeordnet und es stehen weitere Metadaten zu den Artikeln zur Verfügung.

NewsAPI

Da die TagesschauAPI nur Artikel aus Deutschland und auch nur Artikel des öffentlichen Rundfunks anbietet, wollten wir noch weitere Artikel aus anderen Ländern und von anderen Anbietern auswerten können. Hier hat sich die NewsAPI angeboten, diese kann Artikel aus verschiedenen Ländern, sowie verschiedener bekannter Anbieter liefern. Leider werden hier die Artikel nicht mit Tags versehen und insgesamt ist hier die Menge an Informationen pro Artikel überschaubar.

Eigene Komponenten

Um die Daten zu sammeln, zu säubern und darzustellen wurden verschiedene eigene Komponenten erstellt.

Crawler

Mit dem Crawler werden die Daten der beiden APIs gesammelt und einfach ohne weitere Bearbeitung in einer MongoDB gespeichert. So haben wir alle Daten immer parat und müssen nicht auf wiederholte API-Anfragen setzen, welche möglicherweise ein Limit an Anfragen haben und keine Artikel aus der Vergangenheit liefern.

Migrator

Mithilfe des Migrators werden die vorher in der MongoDB gespeicherten Daten in die Postgres Datenbank überführt. Die Daten werden dabei auf verschiedene Tabellen aufgeteilt, z.B. gibt es eine eigene Tabelle für die Tags und für die Regionen. (Siehe ER-Modell)

regionMatcher

Die Regionen aus den Artikeln der TagesschauAPI werden als Zahlen zwischen 0 und 16 gespeichert. Die 0 steht dabei für Gesamt-Deutschland und die Werte 1 bis 16 für die entsprechenden Bundesländer. Um die Regionen in Superset anzeigen zu können, werden die Daten allerdings im ISO 3166-2 Format benötigt, diese Übersetzung findet hier statt. Außerdem werden im regionMatcher noch weitere Daten z.B. zu den Einwohnern pro Bundesland oder die Mitarbeiterzahl der einzelnen Sender in jeder Region gespeichert.

cleaner

Da die Tags zu den Artikel von Menschen eingetragen werden, kann es vorkommen, dass sich kleinere Fehler in der Recht- oder Groß- und Kleinschreibung einschleichen. Zudem werden oft verschiedene Schreibeweisen von Tags verwendet, z.B. verschiedene Varianten von Covid-19 (Sars-CoV-19, Corona, Coronavirus, etc.). Deshalb werden die Tags im cleaner bereinigt und das Ergebnis in einer neuen Tabelle gespeichert.

copyright

In den Artikeln aus der TagesschauAPI werden häufig Bilder verwendet bei denen der Copyright Inhaber angegeben ist. Auch hier werden oft verschiedene Schreibweisen verwendet: z.B. die einzelnen regionalen Ableger der dpa. Diese werden in der Komponente copyright zusammengefasst, sodass entsprechende Darstellungen über die Verteilung der Copyright Inhaber erstellt werden können.

analysis

Mit der Komponente analysis wird der eigentliche Text der Artikel analyisiert. Hier werden die Arten der Satzbausteine gezählt, also z.B. die Anzahl der Nomen und Verben. Hierüber können möglicherweise Aufschlüsse über den Inhalt der Artikel getroffen werden.