x

Re: Automatische Reparaturen: Ersatz für xybot


Geschrieben von slhh (Gast) am 09. Dezember 2012 22:42:58: [flux]

Als Antwort auf: Automatische Reparaturen: Ersatz für xybot geschrieben von Oli-Wan (Gast) am 28. November 2012 23:01:

Oli-Wan wrote:

doppelte Knoten mit identischen Tags, die nicht Mitglied irgendwelcher Wege oder Relationen sind

Exakte Übereinstimmung der Position hatte ich ohnehin vorausgesetzt

So ist die Bedingung hinreichend, um einen Knoten löschen zu dürfen. Jedoch kann die Bedingung noch erheblich ausgeweitet werden:

1. Wenn nur einer der beiden Knoten in keiner Relation und in keinem Weg enthalten ist, kann dieser gelöscht werden.

2. Wenn einer der beiden Knoten in keiner Relation und in keinem Weg enthalten ist, in denen der zweite Knoten nicht in im wesentlichen identischer Form enthalten ist, kann der erste Knoten gelöscht werden.
Die im wesentlichen identische Form liegt vor, wenn beide Knoten jeweils unmittelbar hintereinander enthalten sind und bei Relationen zudem die gleiche Rolle haben.

3. Bei abweichenden Tags kann es eine Positiv-Liste für Keys und Tags geben, die doch gemerged werden dürfen.
Die Liste müßte dazu die Möglichkeit enthalten, die Tags in beiden Nodes (einschließlich des Nichtvorhandenseins), das resultierende Tag und eine zusätzliche Bedingung auf Basis anderer Tags anzugeben. Auch die Möglichkeit, eine zusätzliche Aktion wie das Setzen eines fixme Tags etc. auszulösen, sollte von der Liste unterstützt werden.

Diese Liste sollte im Wiki abgelegt sein. Der Bot sollte sie aber nicht direkt dort auslesen. Vielmehr müssen Änderungen noch diskutiert werden, bevor sie vom Bot übernommen werden, falls dies nicht bereits vorher geschehen ist.

In der Regel werden Tags, die Zusatzeigenschaften von Objekten beschreiben, in die Positiv-Liste aufgenommen werden können für den Fall, dass der Key nur in einem Weg vorhanden ist (z.B. ein surface Tag).

Bei den Tags, die der grundlegenden Differenzierung von Objekten dienen, wird dies in der Regel jedoch nicht möglich sein. Wenn zum Beispiel amenity=* nur in einem der Knoten vorhanden ist, ist ein automatisches zusammenfassen nicht möglich.

In einigen Fällen sind aber auch unterschiedliche Tags mit gleichem Schlüssel kombinierbar, wenn eines der Tags nur die Verfeinerung enthält. Beispielsweise kann aus surface=paved und surface=asphalt zu surface=asphalt werden.
Wenn man beispielsweise nicht sicher ist, ob dies für alle Arten von Objekten richtig ist, möchte man vielleicht noch eine Bedingung einführen, dass es nur bei highway=* gilt.

Im allgemeinen wird der Bot unterschiedliche Tags mit gleichem Schlüssel natürlich nicht korrekt kombinieren können.
Für gewisse untergeordnete Keys wäre es aber eventuell sinnvoll, dies dennoch provisorisch zu machen. Nehmen wir das bereits genannte Beispiel mit tracktype=grade1 und tracktype=grade3. Wäre es hier nicht eventuell besser, wenn der Bot hier das Duplikat beseitigt und tracktype=grade1;grade3 ggf. kombiniert mit einem fixme Tag zurückläßt. Eine sinnvolle Aussage macht dieses Tag natürlich genausowenig wie die ursprüngliche Situation. Vermutlich ist der verbleibende Restfehler aber für den normalen User (insbesondere wenn er Potlatch verwendet) besser erkennbar und behebbar als das ursprüngliche Duplikat. Man müsste allerdings eine Möglichkeit finden, dem User die History des gelöschen Objektes zugänglich zu machen, da man ihm sonst möglicherweise die Aufklärung erschwert.

4. Bei Tags, die auf der Slippy Map gerendert werden, könnte man bei wiedersprüchlichen Tags ggf. auch dasjenige auswählen, das auf der Slippy Map (oder im Editor) dominant gerendert wird. Diese Entscheidung würde auf der Annahme beruhen, das die User ihre Arbeit im wesentlichen Anhand der Slippy Map kontrollieren.

5. Wenn einzelne widersprüchliche Tags vorliegen, könnte der Bot anhand der History prüfen, ob eines der Objekte nachträglich geändert wurde und dann das neuere Tag verwenden. Aber auch hirzu sollte es eine Positivliste von Keys geben, für die dieses Vorgehen zulässig ist. Ansonsten ist das Risiko vermutlich zu groß.

6. In Abhängigkeit von der Art des Objektes könnte man eine gewisse räumliche Unschärfe zulassen. Ich würde allerdings davor warnen, dies mit den Ausweitungen 2. bis 5. bei einem einzelnen Duplikat zu kombinieren.