Eine ALLRIS-Schnittstelle für Aachen

Eine ALLRIS-Schnittstelle für Aachen

Problemstellung

Viele Städte und Kommunen nutzen inzwischen ein Ratsinformationssystem (z.B. ALLRIS), um die Ratsarbeit der Öffentlichkeit gegenüber transparent zu machen. Die Konzepte dieser Ratsinformationssysteme spiegeln in den meisten Fällen die Sicht der Verwaltung wieder und sind nicht vom Bürger aus gedacht. Daraus folgt eine suboptimale Benutzerführung für den Bürger: so wird z.B. der Fokus auf Tagesordnungen anstatt auf Projekte gelegt.

Eine alternative Darstellung wäre also hilfreich und wünschenswert, scheitert jedoch meist daran, dass die gängigen Ratsinformationssysteme keine Schnittstelle besitzen, mit der Daten exportiert und besser aufbereitet werden könnten.

Auf diesem Stand befindet sich auch Aachen, wo das Ratsinformationssystem ALLRIS zum Einsatz kommt.

Export mit Python

Durch unser Engagement für Open Data wollten wir gerne die Daten des Ratsinformationssystems unserer Heimatstadt in diesem Sinne nutzbar machen und haben begonnen, einen ALLRIS-Parser in Python zu implementieren. Dieser Parser nutzt zunächst eine nicht dokumentierte XML-Schnittstelle aus, um an Tagesordnungen und Tagesordnungspunkte zu gelangen.

Jedoch ist nicht alles über die XML-Schnittstelle verfügbar, z.B. fehlen die Detailinformationen zu den einzelnen Vorlagen und den dazugehörigen Entscheidungen. Dies mussten wir daher direkt aus dem HTML mittels Webscraping implementieren. Ein normalerweise eher aufwändiges Vorgehen, dass jedoch dank Python einfach zu implementieren war. 

Dank Open Source von Aachen aus in die Welt

ALLRIS-Parser bei politik-bei-uns.de

Wir haben den ALLRIS-Parser (wie viele unserer Projekte) unter einer Open Source-Lizenz veröffentlicht. Daher ist der ALLRIS-Parser inzwischen nicht nur in Aachen im Einsatz, sondern deutschlandweit. So nutzen einige Bezirksverwaltungen in Berlin und einige Städte im Ruhrgebiet ALLRIS, denn auch dort gibt es ein Engagement für Open Data und Menschen, die diese Daten anders und damit 'bürgernah' aufbereiten möchten. 

Ein gelungenes Beispiel für die Nutzung und Weiterentwicklung des Parsers findet sich bei politik-bei-uns.de. Hier sind die oben genannten Datenbestände aus Berlin und dem Ruhrgebiet auch abrufbar. 

unserac.de - Aachen nutzt den ALLRIS-Parser

Open Data: unserac nutzt die ALLRIS-Schnittstelle

Auch in Aachen wird der ALLRIS-Parser genutzt und zwar im Rahmen des Projekts unserac.de der Aachener Stiftung Kathy Beys. Hier ergab sich eine längere Zusammenarbeit in der wir den Parser, der zunächst nur für die Stadt Aachen bestimmt war, für weitere Städte der Städteregion angepasst haben. 

So werden u.a. die Ratsinformationssysteme der Städte Aachen, Alsdorf, Herzogenrath, Würselen, Eschweiler und der Städteregion Aachen eingelesen, geparst und per JSON-Schnittstelle an unserac.de weitergereicht. 

Die Technik hinter dem ALLRIS-Parser

Im ersten Schritt wird eine undokumentierte XML-Schnittstelle des ALLRIS-Systems genutzt. Diese wird mit Python per lxml eingelesen und die Ergebnisse in einer MongoDB-Datenbank gespeichert. 

Im nächsten Schritt werden die verlinkten Vorlagen der Tagesordnungspunkte aufgelistet und das zugehörige HTML-Dokument abgerufen. Wir nutzen wieder lxml, um das HTML-Dokument zu parsen und nutzen dann CSS-Selektoren, um bestimmte Elemente zu extrahieren. Auch diese werden in die MongoDB gespeichert.

Verortung über Straßennamen

Da die Ratsvorlagen auch auf einer Karte dargestellt werden sollen, nutzen wir eine Liste von Straßennamen, die wir aus Open Streemap extrahieren und gleichen diese in mit den Vorlagen-Texten ab. Bei erfolgreicher Übereinstimmung (am besten direkt im Titel) wird die Straße und die zugehörigen Geo-Koordinaten gespeichert.

Aufgrund der möglichen Fehlerquote werden die Daten durch die Redakteure von unserac.de geprüft und wenn nötig manuell hinzugefügt.

Export über eine JSON-Schnittstelle

Der Abruf und Zugang zu den Daten geschieht über eine JSON-basierte Schnittstelle, über die man Tagesordnungen, Tagesordnungspunkte oder Vorlagen abrufen kann.