Leipzig Data Events Framework



Eine Demo-Oberfläche als WordPress-Plugin

Im Kalender sind die Events nach Eventdatum einsortiert, Klicken auf den Tag zeigt die Liste der Events für diesen Tag, Klick auf einen Event-Link zeigt eine (rohe) Übersicht über die Informationen zu diesem Event mit weiteren Links in die Leipzig Data Datenbasis. Hier kann (und da endet die Nutzerfreundlichkeit der prototypischen Implementierung, mit der allein die Möglichkeiten des Konzepts gezeigt werden) nach Linked Data Prinzipien weiter navigiert werden.

[sparqalendar]

Zielstellung

Ziel dieses Teilprojekts ist es, eine Infrastruktur aufzubauen, in die Event-Daten in einheitlichem Format aus verschiedenen Quellen und von verschiedenen Akteuren eingespeist werden und der Allgemeinheit zum Gebrauch zur Verfügung stehen.

Die Infrastruktur bietet keinen elaborierten eigenen Service zur Präsentation dieser Event-Daten, sondern überlässt die Zusammenführung mit weiteren Event-Daten, Filterung und Präsentation den Anbietern, die auf diese Infrastruktur zugreifen möchten. Die prinzipiellen Möglichkeiten des Leipzig Data Events Frameworks demonstriert auch unser Leipzig Data Event Widget.

Der primäre Zugriff erfolgt über Sparql-Anfragen auf einen Sparql-Endpunkt, in dem die Event-Daten mit weiteren Daten über Veranstalter und Veranstaltungsorte aus dem Leipzig Data Teilprojekt Gelbe Seiten angereichert und zusammengeführt sind. Derzeit werden die Event-Daten der assoziierten Partner zusammengeführt und einmal wöchentlich aktualisiert. Beim Design des Gesamtprozesses sind wir davon ausgegangen, dass es (zukünftig) eine Betreibergruppe der Infrastruktur gibt, in der alle wichtigen Fragen abgestimmt werden.

Das derzeit vorliegende einheitliche Format (aka Protokoll) als Ergebnis eines längeren Entwicklungsprozesses ist in der Leipzig Ontology genauer definiert. Fragen der Weiterentwicklung des Protokolls werden in der Betreibergruppe abzustimmen sein.

Um Event-Daten in die Infrastruktur einzuspielen, müssen interessierte Akteure einen Service aufsetzen, mit dem relevante eigene Daten (verfügbar etwa als RSS- oder ical-Feed) in das vereinbarte Format überführt werden. Hierzu gibt es eine Reihe von Beispielskripten. Wir beraten interessierte Akteure im Rahmen unserer Möglichkeiten, wie eine solche (nicht schwierige) Bereitstellung erfolgen kann.

Termine werden drei Monate nach Ablauf aus der Datenbasis herausgenommen. Werden Daten lokal weiter benötigt, so müssen diese rechtzeitig aus dem Endpunkt ausgelesen und in eigener Verantwortung gespeichert werden. Auch hierfür gibt eine Reihe von Beispielskripten.

Stand der Umsetzung

Die Basisentwicklungen wurden im Rahmen des Projekts Leipzig Open Data ausgeführt.

Folgender Workflow ist dazu mit den assoziierten Partnern besprochen:

Betreibergruppe

  • Hans-Gert Gräbe (Maintainer), Andreas Nareike, Johannes Frey
  • Christof Pieloth (city:cult)

Weitere Interessenten sind herzlich willkommen.

Aktivitäten

  • Regelmäßige Informationen über den Stand des Projekts auf dem Seminar
  • 12.10.2013: Einspielen der WordPress-Demo als weitere Sicht auf die Daten (Johannes Frey)
  • 26.04.2013: Vorstellung des Projekts auf dem Abschlusstreffen des Leipzig Open Data Projekts (Andreas Nareike, Johannes Frey)
  • 11.-19.01.2013: Arbeiten im Rahmen der Ideenbörse
  • 20.07.2012: Vorstellung und Diskussion der Arbeiten an einer Präsentationsplattform basierend auf dem Exhibit-Framework (Johannes Frey)

Vom Projektteam entwickelte Lösungen

  • API Leipzig Events – wird derzeit vor allem von Kreatives Leipzig genutzt
    • Ein Beispiel-Perl-Skript (getAPIEvents.pl) greift auf die Webschnittstelle von APILeipzig zu
  • API Leipzig Rückbindung: Christoph Pieloth hat einen Beispiel-Client in Java geschrieben, der auf die LD.Events Schnittstelle (also den Sparql Endpunkt) eine calendarAPI aufsetzt, welche die API.Leipzig Event-API Spezifikation erfüllt. Damit können parallel Events aus LD.Events und aus API.Leipzig ausgelesen und zu einem Upstream federiert werden. Dieser Upstream wird von city:cult verwendet, um die eigene Android-App mit Daten zu füttern.
    • https://github.com/LeipzigData/JavaExamples/tree/master/src/calendarApi
    • Es sind nicht alle Services implementiert, wer diese jedoch braucht, kann dies schnell per Copy & Paste implementieren. Aktuell funktionieren z.B. die Venue-Details nicht und ohne Veranstaltungsort erscheinen die Events aktuell bei City:Cult auch nicht :( Daran werden wir bei Gelegenheit arbeiten.
  • Mehr als Chillen Grünau
    • Beispiel-Perl-Skript (getMehrAlsChillenEvents.pl) greift auf einen lokal eingespielten Datenbank-Dump zu. Mehr als Chillen hat die Zusammenarbeit inzwischen eingestellt.
  • Netzwerk Energie und Umwelt
    • Beispiel-Perl-Skripte greifen auf ics-Export (neu-ics.pl) sowie RSS-Feed (neu-xml.pl) zu
    • Identifizierung der Events erfolgt über eine MD5-Summe als Wert des Prädikats ld:hasMD5Sum, die über DTSTART, SUMMARY und DESCRIPTION eines von NEU übernommenen ical-Events gebildet wird.

Die Präsentationsschicht ist unabhängig von der Datenhaltung gestaltbar – über eine Sparql-Anfrage (konzeptionell vergleichbar mit einer SQL-Anfrage an eine lokale Datenbank) werden die relevanten Daten ausgelesen und auf die gewünschte Weise präsentiert.

Als Proof of Concept hat Johannes Frey das Javascript-Frameworks Exhibit für eine Widget-Lösung verwendet und dokumentiert, mit der sich schnell Webseiten mit Suchmasken und Tagwolken herstellen lassen. Die zur Präsentation verwendeten Widgets setzen dieses Framework ein.

Weitere Projekte ähnlicher Ausrichtung