Hi!

Relationen sind ein ganz schwieriges Kapitel. Erstmal stellt sich die Frage, um
was für Relationen es geht. Es gibt quasi niemanden, der "Relationen" als
solche in aller Allgemeinheit auswertet für irgendwas. Denn für was sollen die
denn gut sein? Relationen stellen ja nur erstmal Verbindungen zwischen
verschiedenen OSM-Elementen her. Was diese Verbindungen bedeuten sollen, das
ergibt sich aus dem Typ der Relation, den Tags und den Roles. Es gibt viele
verschiedene Typen von Relationen, z.B.  Multipolygone, Routes,
Abbiegerelationen, usw. Etwa ein halbes Dutzend, die eine Rolle spielen.
Genauso wie bei Tags gilt auch hier, jeder kann Typen von Relationen erfinden,
das heisst aber nicht, dass die jemand auswertet.

Multipolygon-Relations (bzw. boundary) sind die einzigen, die von vielen Leuten
wirklich ausgewertet werden. Das liegt daran, dass dafür Support in osm2pgsql
und diverser anderer Software vorhanden ist. Es gibt einige Leute, die sich
Spezialsoftware geschrieben haben für Routenrelationen. Aber schon da gibt es
Unterschiede. Wanderrouten sind halt was anderes als ÖPNV-Routen. Es braucht
da jede Menge Spezialhandling. Abbiegerelationen werden von einigen
Navi-Programmen verwendet.

Die Flexibilität von Relationen macht sie so schwierig in der Handhabung.
Immer wird auf andere Elemente verwiesen. Die muss man also auch vorhalten,
um eine Relation verarbeiten zu können. Und das ganze kann rekursiv sein,
also von einer Relation kann auf eine andere verwiesen werden. Geographisch
können Relations sehr sehr gross werden ("Grenze von Russland"), man kann
also einen großen Job nicht so einfach in Teile aufteilen, wie das bei
anderen OSM-Daten manchmal geht. Da sich OSM-Daten ständig ändern, muss
man die Daten nachführen. Ändert sich ein Node in Siberien, der in einem 
Way ist, der in einer Relation ist, so ändert sich was auch immer diese
Relation darstellt.

Dazu kommt, die schlechte Definition, was denn genau welches Tag, welche Role
in einer Relation bedeutet. Vielfach gibt es deutliche Unterschiede, wie
verschiedene Leute diese Relations im Detail taggen. Damit muss man dann auch
umgehen. Das ist mit Tags an Nodes und Ways auch nicht anders, aber es gibt
viel mehr Freiheitsgrade, viel mehr Variation, viel mehr durcheinander, wie
Leute Taggen. Und es gibt auch viel mehr Möglichkeiten, die Daten fehlerhaft
einzutragen. Es ist z.B. schwierig einen kompletten Satz Grenzen aus OSM-Daten
zu extrahieren, weil jeden Tag irgendwelche davon kaputt sind.

All diese Dinge kann man für kleine Datensätze vielleicht in den Griff bekommen
und wenn man keine Updates fahren will. Aber für den ganzen Planeten und immer
aktuell und schnell in der Verarbeitung, das ist schwierig. Das sieht man auch
daran, wie wenig Leute das wirklich machen.

Jochen

On Sat, Jul 07, 2012 at 11:09:31PM +0200, Jan Tappenbeck wrote:
> Date: Sat, 07 Jul 2012 23:09:31 +0200
> From: Jan Tappenbeck <o...@tappenbeck.net>
> To: Openstreetmap allgemeines in Deutsch <talk-de@openstreetmap.org>
> Subject: [Talk-de] Relationen aus der Sicht der Auswertung - Segen oder
>       Fluch??
> 
> Moin !
> 
> ich möchte mal wieder eine Frage an die Allgemeinheit stellen auch
> auf die Gefahr hin zerrissen zu werden.
> 
> Es geht konkret um ein Zenario was Relationen und Hausnummern
> betrifft und nachfolgend bitte keine Diskussion über "diese Relation
> ist aber doof, weil ...". Es geht um die Frage wie ist soetwas
> überhaupt vernünftig und performant in der Auswertung zu
> realisieren. Das Beispiel kann sicherlich auch auf andere Relationen
> übertragen werden. Immer werden verschiedene Elemente bei Relationen
> zusammengeführt die irgendetwas gemeinsam haben und man so
> verhindern will das Redundante Daten entstehen.
> 
> Auf dem letzten Stammtisch in Lübeck [1] haben wir über die
> verschiedenen Geschäfte und die Adressen gesprochen.
> 
> Einfacher Fall: in einem Gebäude sind mehrere Geschäfte enthalten.
> Nun macht es keinen Sinn auf jeden POI eine Adresse zu legen und
> deshalb gibt es zum Beispiel die Building-Relation [2] (zu der wir
> uns in etwas abgewandelter Form [1] entschieden haben) um Gebäude,
> Eingänge, Geschäfte miteinander zu verknüpfen. Wie gesagt nur ein
> Beispiel - geiches läßt sich auch auf Straßen-Relationen etc.
> übertragen (Straßenname am Objekt überflüssig, weil Gebäude gehört
> ja zur Straße).
> 
> Die Frage die ich nun stellen möchte - ist es überhaupt irgendwie
> möglich solche Verbindungen performant aufzuschlüsseln? und gibt es
> vielleicht schon Programm(teile) dafür von denen ich nicht weiß.
> 
> Ein weiteres Beispiel hierzu. Ich habe das ganze einmal mit der
> OpenLinkMap [3] abgecheckt und da werden solche Verbindungen über
> Relationen nicht ausgewertet. Dann habe ich mich an Alexander
> gewandt und nachgefragt. Ich fasse die ausführliche Antwort kurz
> zusammen: "Er sieht keinen einfachen Lösungsansatz dazu und
> vermutlich wird zuviel Performance dabei auf der Strecke bleiben".
> 
> Wenn dem so ist - wir zwar nicht für die Renderer (damit auch nicht
> für andere Programme) mappen - ja wofür brauchen wir denn
> Relationen, wenn diese sowieso nur sehr sehr schwer auszuwerten
> sind???
> 
> Also nochmal die beiden Fragen:
> * welche Ansätze für die Auswertung gibt es?
> * gibt es Software die die Relationen aufschlüsselt - zum Beispiel
> die Daten aus den Relationen auf die beteiligten Elemente
> "überträgt"?
> 
> Gruß jan :-)
> 
> [1] http://wiki.openstreetmap.org/wiki/L%C3%BCbecker_Mappertreffen
> -> Archiv-Beitrag Nr. 40 vom 5.7.2012
> [2] http://wiki.openstreetmap.org/wiki/Relations/Proposed/Buildings
> [3] http//www.openlinkmap.org
> 
> _______________________________________________
> Talk-de mailing list
> Talk-de@openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-de
> 

-- 
Jochen Topf  joc...@remote.org  http://www.remote.org/jochen/  +49-721-388298


_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an