Hi Tirkon,

> Hat jemand einen besseren Ansatz?

Es ist derselbe Ansatz, nur etwas ausformulierter:

> "TK" ist Abkürzung für "Transportmittelklasse". "TKn" ist deren
> Plural. "TK(n)" lässt ein oder mehrere durch Komma getrennte TK zu.

Zunaechst muss der Algorithmus den access-Baum kennen. Wurzelknoten ist
access, Tiefe eines Knotens gibt an, wieweit er von access weg ist
(motorcar -> motor_vehicle -> vehicle -> access, also Tiefe 3).

> (X) key(k) = value(v) # mögliche Anzahl

> (1) access = no|TK(n)  (yes ist verboten) # 1x 
> (2) TK(n) = yes|no
> (3) TK(n) = designated
> (4) TK(n) = official
> (5) TK = TK (nur Unterklasse)
> (6) highway = cycleway|footway|pedestrian|bridleway|path # 1x

Bei (2)-(4) auch nur TK=* statt TK(n)=*. Jedenfalls hab ich noch nie
foot;bicycle=yes gesehen.

Durch die Baumstruktur kann (1)-(5) zusammengefasst werden. Ausserdem
wuerde ich die weiteren Werte noch einbauen

(1-5) TK = 
yes|no|designated|official|private|permissive|destination|agricultural|forestry|delivery|psv|...|TK(n)

> Wie oft darf jede einzelne Form (1) bis (6) an einem Objekt hängen?
> einmal?, beliebig häufig? 
> Welche Form darf nicht zusammen mit anderen Formen an einem Objekt
> hängen?

Ich wuerde beim Algorithmus davon ausgehen, dass es keine durchsetzbaren
Tagging-Beschraenkungen gibt. Er muss etwas errechnen koennen, egal wie
unsinnig das Tagging ist. Deshalb auch kein Verbot fuer
access=yes|designated|official. Kommt ja oft genug in den Daten vor.

> Fehlen Formen?

Das waere auch sinnvoll fuer Barrieren:

(7) barrier = *

Das, zusammen mit (6), ergibt, dass der Algorithmus irgendeine
Grundannahme von unseren Default-Werten hat.

> Wie sieht die Beschreibung/der Algorithmus einer konsistenten
> Auswertung aus?

> Schritte im Algorithmus könnten beispielsweise sein: 

Start:

Setze access-Baum auf Default-Wert fuer angetroffenen Highway oder
Barriere. Etwa einfach alles auf yes.

Wenn es eine Regel (TK)=designated|official gibt:
    Fueg eine Regeln access=no hinzu.

Iterativ:

Suche den naechsten Ausdruck der Form (1-5) mit der geringsten Tiefe.
 Bei yes|no|destination|permissive|private|...:
    Setze den gesamten Unterbaum auf den Wert.

 Bei designated|official:
    Setze den gesamten Unterbaum auf yes.

 Bei TK(n):
    Setze den gesamten Unterbaum auf no, behandle die einzelnen Werte
    wie TK=yes.
    Sofort oder verzoegert ist moeglich, koennte unterschiedliche
    Ergebnisse liefern.


Beispiel fuer Sofort vs. Verzoegert:
 access=motorcycle
 vehicle=no
Dann kann motorcycle=yes (verzoegert) oder =no (sofort) rauskommen.


Etwas einfacher wird es, wenn man sich nur fuer einen bestimmten Wert im
Access-Baum interessiert, motorcar oder bicycle vielleicht. Als Uebung
fuer den Leser bieten sich die Zusaetze TK:forward und TK:backward an
oder die Regeln agricultural|forestry=yes|no|... ;-)

Viel Spass beim Weiterbasteln,
 stw1701
-- 
Wer sind wir? Was machen wir hier eigentlich? - Amnesy International

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

Antwort per Email an