Mehrere 100.000 historische Ansichten von Berlin, versehen mit Annotation zu den abgebildeten Gebäuden und Objekten. Bei einem solchen Datenbestand musste ich sofort an zig Museumsbesuche denken, bei denen ich vor historischen Gemälden stand und mich etwas verloren fühlte: Wo ist dieser Ort? Gibt es die Gebäude noch? Was hatten die Gebäude für eine Funktion? Und wer war nochmal König Typischer Name der Römische Ziffer?

Aber zurück zum Anfang, im letzten Semester habe ich im Zuge der Vorlesung XML-Technologien ein Projekt umgesetzt, bei dem als novum die Anforderungen des Coding da Vinci Wettberwerbes erfüllt werden mussten.

Konkret mussten wir in Gruppen eine Datenquelle aus dem Wettbewerb verwerten und bei der Erstellung einer Webanwendung mindestens XQuery, XPath, XSLT, XML-Schema (selbst definiert), DBpedia mit SPARQL und einen Webservice mit REST oder SOAP verwenden.

Statische Live-Version des Projektes „Zwei Welten – Berlin damals und heute“.

Die XML Datenquelle des Stadtmuseums Berlin

Wie schon angedeutet ist mir die Datenquelle Schichten der Geschichte des Stadtmuseums Berlin aufgefallen. Von den angedeuteten 100.000 Ansichten, wurden aber lediglich 31 Stadtansichten zur Verfügung gestellt. Konkret waren dies Links zu der Wikimedia Commons Seite der Stadtansichten, Informationen zum Künstler und zum Bild (Technik, Rahmen, Größe, …) und für meine Projektidee besonders wichtig die Annotationen (Tags), welche in Stichworten beschreiben, was auf den einzelnen Bildern abgebildet ist.

Exemplarische Auswahl der Daten eines Datensatz

Radierung Das „Brandenburger Tor“ von Daniel Chodowiecki

„Das Brandenburger Tor“ von Daniel Chodowiecki (1764), Radierung auf Büttenpapier

Tags:

  • Stadtbefestigung
  • Preußen
  • Akzise
  • Stadttor
  • Pferdekutsche
  • Brandenburger Tor

Projektidee: Zwei Welten – Berlin damals und heute

Projektidee Zwei Welten

Die erste Idee für die Struktur des Projektes Projekt „Zwei Welten“.

Wie schon beschrieben bestand meine Idee darin, eine Client-Anwendung zu entwickeln, die zusätzliche Informationen zu den Stadtansichten liefert. Eine erste Entwurfsskizze ist rechts abgebildet.

Datenbankschicht

Zu den Tags in der XML Datenquelle des Berliner Stadtmuseums werden Informationen und Bilder aus der DBpedia abgerufen und mit Hilfe von XML Technologien in eine abgeleitete statische Datenbank überführt.

Clientschicht

In der Client-Anwendung werden grundlegende Informationen zum Gemälde angezeigt, außerdem ein kurzer Text und wenn möglich ein Bild und die Position der dargestellten Objekte.

Außerdem sollen über die extrahierten Geodaten aktuelle Bilder und Informationen dynamisch via Webservices wie Twitter, Panoramio und Flickr nachgeladen werden. Als denkbare Erweiterung wäre es auch denkbar ähnliche Gemälde aus der eigenen Datenbank anzuzeigen.

Serverschicht

Der Python Webserver agierte in dem Zwei Welten Projekt als Sicherheitsnetz. Er sollte bei der Skalierung helfen, falls doch noch weitere 99 969 Datensätze auftauchen, bei der Datenrepresentation helfen (Geodaten von Tags in Geofence umrechnen), ein einfaches Templatesystem anbieten und gegebenenfalls als Proxy für Anfragen an die Webservices dienen, falls dies Clientseitig per JavaScript nicht möglich sein sollte.

Fehler und inkonsistente Daten in der XML Datenquelle

Etwas enttäuscht war ich, als sich herausstellte, dass die relativ kleine XML Datenquelle einige Fehler hatte. Das XML lies sich nicht mit dem angegebenen Schema validieren, einige Bildlinks zu Wikimedia Commons waren falsch, es gab offensichtliche Schreib- oder Einlesefehler in den Bildtiteln und die Annotationen haben entweder komplett gefehlt, oder waren ziemlich inkonsistent. Teilweise wurden in den Annotationen die relevanten Stichworte des Titels berücksichtigt (teilweise nicht), teilweise der Künstler genannt, teilweise die Entstehungszeit, teilweise wurde jedes Detail (Kind, Kleinkind, Säugling) annotiert, teilweise gab es lediglich ein (oder gar keine) Stichwort(e). Auch waren die Annotationen für ein Bild teilweise lokalisiert (Berliner Stadtschloss), teilweise allgemein (Schloss) und teilweise gemischt (Berliner Stadtschloss, Schloss, Stadtschloss).

Für mich stellte sich schon zu Beginn des Projektes die Frage, ob die Original-Datenquelle korrigiert werden sollte, oder diese Probleme Softwareseitig gelöst werden können. Um dies gleich vorweg zu nehmen: offensichtliche Fehler (Schreibfehler, fehlende Annotationen, falsche Verlinkung) wurden in der Originaldatenquelle korrigiert. Bei den Annotationen wurde -wenn nötig- mit Ersetzungstabellen gearbeitet (Stadtschloss => Berliner Stadtschloss), die in einem weiterführenden Projekt automatisch ermittelt werden könnten. Dazu aber später mehr.


Im nächsten Teil beschreibe ich, mit welchen XML Technologien wir die benötigten Informationen extrahiert und wieder zusammengeführt haben.