Wikipedia-Projekt “Multilingual Maps”

Im Herbst letzen Jahres hat der Wikimedia e.V. eine Ausschreibung gestartet. Hier konnten sich Projekte um Geldmittel bewerben, die etwas für freies Wissen im allgemeinen und für die Wikipedia im besonderen machen wollen.

Unter den Bewerbern wurde auch das Projekt zu mehrsprachigen Karten ausgewählt. Initiiert wurde es von Tim Alder, der sich seit Jahren mit der Zusammenarbeit von OpenStreetMap und Wikipedia beschäftigt. Für die programmiertechnische Umsetzung hat er sich an mich, Jochen Topf, gewandt. Ich habe mich als Hauptautor von Tirex, das bei der Wikipedia eingesetzt wird, schon lange mit dem Thema Webkarten beschäftigt.

Ziel des Projektes ist es, die technischen Grundlagen zu schaffen, dass OpenStreeMap-Karten in allen Sprachen angezeigt werden können, in denen es die Wikipedia gibt. Derzeit gibt es Karten in etwa zehn Sprachen. Das ist aber nur ein kleiner Teil der circa 270 Sprachen, die derzeit von der Wikipedia abgedeckt werden. Die Wikipedia sieht sich in ihren Artikeln zu geographischen Objekten durchaus auch als Reiseführer und auch als Alternative zum Schulatlas (selbsterklärter Bildungsauftrag). Bei diesen beiden Anwendungen sind Übersetzungen der Karte in die jeweilige Sprache des Nutzers absolut üblich.

Zur Anzeige im Web werden Karten in Kacheln (Tiles) zerlegt, die jeweils 256×256 Punkte umfassen. Derzeit ist es so, dass die Kacheln für jede Sprache völlig getrennt betrachtet werden. Aber viele Kacheln sind natürlich in allen Sprachen gleich (weil gar kein Name darauf vorkommt). Und viele Kacheln gibt es nur in einigen wenigen Varianten, zum Beispiel wird man für die meisten Kacheln in Deutschland auf einer englischen Karte die gleichen Namen drucken, nur einige Orte wie München haben auch einen besonderen Namen im Englischen (Munich).

Die derzeitige Lösung ist ineffizient und mit vertretbarem Hardwareaufwand nicht für so viele Sprachen umzusetzen. Um eine bessere Lösung zu finden, muss sich das Projekt mit verschiedene Fragen beschäftigen. Zuerst muss man irgendwie erkennen, in welchen Sprachen eine Kachel überhaupt vorliegen könnte. Wir wollen nicht mühsam 200 Mal eine Kachel in Patagonien berechnen, wenn wir nachher feststellen, dass es es nur zwei Sprachvarianten davon gibt. Dafür muss irgendeine Art von Datenbank eingerichtet werden, die einem angibt, wo überhaupt welche Sprachen verwendet werden.

Dann muss der Mapnik-Renderer entsprechend konfiguriert werden, damit er die Namen in der richtigen Sprache in die Kacheln hineinrendert. Derzeit ist das etwas problematisch, weil die ganze riesige Konfiguration für den Mapnik für jede Sprache vorgehalten werden muss, obwohl nur kleine Teile eigentlich verschieden sind.

Sind die Kacheln dann gerendert müssen sie effizient gespeichert werden, zusammen mit der Information für welche Sprachen sie verwendet werden können. Dabei wird es sich häufig nicht vermeiden lassen, dass doch mal zwei Kacheln berechnet werden, die sich als gleich herausstellen. Wir sollten also auch feststellen, wenn Kacheln gleich sind, damit wir sie dann nur einmal speichern, um nicht zu viel Plattenplatz zu verbrauchen.

Bei all diesen Stufen ist auch noch zu berücksichtigen, dass sich die OSM-Daten häufig ändern und die Kacheln daher immer wieder neu berechnet werden müssen. Dabei kann es zum Beispiel sein, dass eine Kachel, die bisher nur in einer Sprache vorlag, jetzt in zwei Sprachen vorliegt und es müssen dann alle nötigen Anpassungen vorgenommen werden.

Die Lösung sollte auch möglichst flexibel sein, sodass man dann im Betrieb experimentieren kann, zum Beispiel damit, wann welche Kacheln neu gerendert werden.

Und trotz dieser vielen komplexen Komponenten muss es auch noch schnell gehen. Die Wikipedia wird von sehr vielen Leuten verwendet und die Kacheln müssen schnell und effizient an den Browser ausgeliefert werden. Und um so weniger Ressourcen das verbraucht, um so besser, weil Hardware in Anschaffung und Betrieb viel Geld kostet.

Eine denkbare Alternative wäre es natürlich, komplette auf Vektordaten umzustellen, also erst im Browser die Karten aus den Rohdaten zu zeichnen und dabei die gewünschte Sprache zu berücksichtigen. Ebenfalls denkbar wäre ein Hybridmodell, bei dem die Karten weiterhin auf dem Server gezeichnet werden, die Namen von Orten, Straßen, usw. aber erst im Browser dazugezeichnet werden. Beide Ansätze gehen aber möglicherweise zu Lasten der Darstellungsqualität und sie erfordern moderne Browser und schnelle Rechner, womit man noch nicht überall rechnen kann. Die Wikimedia muss vorallem auch auf ärmere Länder Rücksicht nehmen, wo viele das Internet über ihr Mobiltelefon oder mit älteren Rechnern nutzen. Außerdem sind die Techniken zum Kartenrendering im Browser noch recht neu und es liegen lange nicht so viele Erfahrung damit vor wie der bewährten “Bitmap-Kachel-Technik”. Wir haben uns daher entschlossen, in diesem Projekt die bewährte Technik fortzuführen und auszubauen.

Das Projekt bringt nicht nur die Wikipedia vorran, sondern hilft allen, die OpenStreetMap-Karten verwenden. Größere und robustere Tileserver brauchen wir auch an anderer Stelle. Und die hier zu entwickelnde Software ist auch über den Bereich der mehrsprachigen Karten hinaus interessant. Will man zum Beispiel Autobahnen entsprechend der in einem Land üblichen Farbe zeichnen und mit den passenden Symbolen versehen, so hat man eigentlich ein vergleichbares Problem: Karten, die für verschiedene Gegenden etwas anders aussehen als in anderen Bereichen. Die Lösung sollte sich also auf andere Anwendungen erweitern lassen, auch wenn das nicht im Fokus dieses Projektes ist.

Das Projekt wird vom Wikimedia e.V. mit 20.000 EUR gefördert. Das erlaubt es mir mehrere Monate lang konzentriert daran zu arbeiten. In der ersten Phase geht es jetzt darum einen Plan zu entwickeln, wie das ganze aussehen soll. Welche vorhandene Software soll zum Einsatz kommen? Welche Komponenten müssen neu programmiert werden? Eine mögliche Komponente ist dabei natürlich der Tileserver Tirex, aber noch sind keine endgültigen Entscheidungen getroffen worden, welche Software verwendet wird.

Hier sind wir auch auf Euren Input angewiesen. Wir wollen insbesondere von denjenigen unter Euch hören, die bereits große Tileserver oder Tileserver mit mehreren Stilen betreiben. Aber auch sonst gibt es sicher Ideen, wie man zum Beispiel die vielen Kacheln effizient speichern oder wie man die Zuordnung von Sprachen zu Kacheln realisieren könnte.

Anregungen, Ideen und Diskussionen sind am besten auf der OSM-Developer-Liste aufgehoben. Ihr könnt Euch aber auch direkt an mich wenden. Koordiniert wird das Projekt über das OSM-Wiki.

Am Mittwoch, den 21. März 2012 werden wir im Rahmen der FOSSGIS-Konferenz in Dessau auch eine Community-Session dazu veranstalten.

Jochen Topf

Jochen ist seit 2006 bei OpenStreetMap aktiv. Er ist Co-Autor des Buches OpenStreetMap - Die freie Weltkarte nutzen und mitgestalten. Außerdem entwickelt er Software für OSM (Osmium, Tirex, Taginfo, ...). Als freiberuflicher Entwickler und Berater hat er sich auf OpenStreetMap spezialisiert.

Kategorie: Artikel, Gastblog | Tags: ,

  1. Chaos99

    Hach, wie passend, ich stehe gerade vor genau diesem Problem.

    Eine Reise nach Bulgarien steht an, alle von mir genutzten Varianten von OSM Karten (Tiles, Garmin, Mapsforge-Binaries fuer Locus) zeigen nur kyrillische Namen an.

    Das steht man im Ausland dumm da, wenn man zwar eine wunderbar detailierte Karte hat, aber doch nicht mal den Namen der Strasse vorlesen kann, zu der man moechte. Eine Transkription ist sicher technisch machbar, aber mir fehlen die noetigen Skills mit Osmium oder mkgmap.

    Danke also, dass ihr euch um die Internationalisierung kuemmert. Auch aus ganz persoenlichen, egositischen Gruenden.

    Chaos_99

  2. Raimond Spekking

    Hallo Jochen, ich freue mich, das Tim dich ins Boot geholt hat und wünsche dir viel Erfolg. Ein überaus wichtiges und spannendes Projekt, das WMDE hier fördert.

  3. hfs

    Vielleicht wäre es eine Möglichkeit, zwei Bitmap-Kachel-Layer zu verwenden? Eine einheitliche Basiskarte ohne Beschriftungen, und darüber ein transparenter Layer nur mit den Beschriftungen in der gewünschten Sprache. Das würde zumindest ersparen, die Karte an sich mehrmals zu rendern.

    • Sven Geggus

      Das wurde bereits versucht und funktioniert in der Praxis leider nicht besonders gut. Das Problem ist, dass der Prozess der die Beschriftung erzeugt keine Info mehr über die Basiskarte hat und daher die Positionen der Beschriftung nicht mehr geschickt verändern kann.

  4. Ich fände es auch hilfreich, als Nutzer die Sprache einer Karte auswählen zu können. z.B. sollten in der Deutschen Wikipedia standardmäßig Karten in Deutsch angezeigt werden aber einfach auf die Sprache gewechselt werden, die in dem angezeigten Gebiet gesprochen wird.

  5. Mazbln

    Das oben von Chaos99 angeführte Beispiel Bulgarien zeigt recht gut, welche Probleme da auftauchen können. Da gibt es einerseits die kyrillische Originalschreibung der Orte, andererseits mehrere Transkriptionsvarianten. Offiziell gibt es in Bulgarien eine an das Englische angelehnte Transkription, im Deutschen (und auch in der deutschen Wikipedia) verwenden wir aber eine andere Transkription. Aus Sicht des Nutzers wäre es wahrscheinlich sinnvoll, sowohl die Originalschreibung als auch die der jeweiligen Sprachversion angemessenen Transkription zu sehen. Andererseits führ das dann wieder zu sehr viel unterzubringendem Text. Beispielsweise wäre das im Kosovo die albanische, die serbisch-kyrillische und die im deutschen Sprachgebrauch übliche Version, die sich in der Regel unterscheiden. Es ist dann schon spannend zu beobachten, wie das im rahmend es Projekt gelöst werden wird.

    • Welche Sprache(n) in welcher Karte in welcher Wikipedia-Version genau erscheinen wird, das müssen die Leute der jeweiligen Wikipedia dann überlegen. Ziel des Projektes ist es die softwaretechnischen Grundlagen zu schaffen, nicht solche Entscheidungen zu treffen.

  6. Martin

    Eine sehr gute Sache, dass diese Problem einmal angegangen wird. Als 08/15 Kartenbenutzer steht man oft auf dem Alphabets-Schlauch, wie oben schon am Beispiel Bulgarien beschrieben wurde. In Asien ist (zumindest für mich) die Lange dann auch nicht gerade einfacher. Den Chinesen geht es wohl im Durchschnitt umgekehrt nicht besser.
    Ein Ansatz zur Darstellung existiert ja schon unter mit den localized Maps auf dem Toolserver (http://toolserver.org/~osm/locale/) und die Umsetzung in der Datenbank ist eigentlich auch klar (http://wiki.openstreetmap.org/wiki/Bilingual_street_names).
    Auch wenn man jetzt die Darstellung nochmal optimiert und effizienter gestaltet sollte man nicht vergessen, dass nur die Sachen in der gewünschten Sprache dargestellt werden können, die auch übersetzt sind. Und das ist meist kläglich wenig.
    Sinnvoll wäre es, parallel zu dem Darstellungs-Projekt noch ein Translation/Localization-Projekt ins Rollen zu bringen, ähnlich den Projekten zur Übersetzung freier Software.

    PS: Wird das “Multilingual Maps”-Thema eigentlich schon auf einer Mailingliste oder im Forum diskutiert? Ich habe nach kurzer Suche nichts gefunden.