[Talk-de] Fehler in relations

Frederik Ramm frederik at remote.org
Mi Nov 5 13:03:34 UTC 2008


Hallo,

Willi Rehfeld wrote:
> Ich versuche die relation 9148 - Radverkehrsnetz NRW zu erweitern. 

Leider sind solche Relationen sehr schwerfaellig zu bearbeiten. Das 
Problem sind Datenbankinkonsistenzen, die es eigentlich nicht geben 
dürfte, aber trotzdem immer wieder gibt: Relationen, die einen Way 
enthalten, der gelöscht wurde, oder Ways, die einen Node enthalten, der 
gelöscht wurde. Je größer eine Relation wird, desto größer auch das 
Risiko, daß sie einen solchen kaputten Way enthaelt.

Der von Dir beschriebene Fehler tritt insbesondere auch dann auf, wenn 
die Relation einen Way enthält, der einen gelöschten Node enthält!

Ich beschreibe im folgenden kurz, wie man mit solchen Fällen umgehen 
muss, aber das ist ganz bewusst kurz und nur für Experten geeignet, und 
jeder, der irgendwas davon nicht versteht, soll es bitte nicht probieren!

0. Benötigt werden: Ein Editor sowie ein Programm, mit dem man 
HTTP-PUT/POST-Requests absetzen kann (z.B. lwp-request).
1. Fragliche Relation in einer Datei speichern (Annahme: 1000 Members).
2. Dummy-Relation mit 1 Member neu anlegen, nur damit man eine gültige 
Relation-ID zum Spielen bekommt.
3. Datei aus 1. auf die neue Relation-ID anpassen und hochladen - es 
sollte ein Fehler kommen.
4. Mit <!-- und --> die untere Haelfte (501-1000) der Members 
auskommentieren, wieder hochladen.
5. Wenn es geht, den auskommentieren Bereich verkleinern (auf 750-1000, 
wenn es immer noch geht, auf 875-1000 usw.); sobald es mal nicht geht, 
wieder einen Schritt zurueck und am anderen Ende verkleinern.
6. Mit dieser binaeren Suche kommt man mit relativ wenigen Versuchen 
(rund 10) dahin, dass man den einen Way identifiziert, an dem es liegt 
(manchmal sind es auch mehrere Ways, dann ist die Suche etwas 
vertrackter, aber das Prinzip bleibt).
7. Je nachdem, wie gruendlich man sein will, entweder die 
Originalrelation ohne diesen Way wieder hochladen und die Sache ruhen 
lassen, oder aber den Way genau untersuchen. Er wird vermutlich in einem 
Zustand sein, bei dem ein normaler Request etwas anderes zurueckgibt als 
die aktuelle Version der History. Way in irgendeiner korrekten Form 
hochladen, danach wird auch die Relation wieder gehen.

Ich habe diese Arbeit in der Vergangenheit öfters gemacht, um Leuten zu 
helfen, und mache das auch in Zukunft gern auf Zuruf - aber nicht für 
eine Relation, deren Sinn sich mir nicht erschließt und mit der man sich 
  ständig Ärger aller Art einbrockt.

Ich sehe überhaupt keinen Grund dafuer, so eine Relation zu pflegen. Wer 
das Radwegenetz NRW will, soll sich das mit einem OSMXAPI-Query 
runterladen und fertig. Relationen sind für Dinge, die in engem 
Zusammenhang stehen. Relation sind keine beliebigen Sammelbehälter - am 
Ende ist jeder Radweg in Deutschland in 15 Relationen drin ("Radwege, 
die 1950 gebaut wurden", "Radwege im Hochsauerlandkreis mit 
Benutzungspflicht", "rot angemalte Radwege"). Was bitte soll das 
bringen, außer unendlich viel mehr Arbeit fuer jeden, der Radwege 
erfassen will?

Derzeit warte ich seit 5 Minuten darauf, dass die API mir die Historie 
dieser Relation herausgibt. Ah, jetzt, schlappe 40 MB Download. Ich 
schreibe mal den Erfinder an, ob es ihm recht ist, wenn wir die einfach 
löschen.

Bye
Frederik

-- 
Frederik Ramm  ##  eMail frederik at remote.org  ##  N49°00'09" E008°23'33"




Mehr Informationen über die Mailingliste Talk-de