On Fri, Feb 20, 2009 at 1:29 PM, Federico Cozzi <f.co...@gmail.com> wrote:
> Ad esempio: highway=cycleway; access=destination; vehicle=no; moped=yes
> Sintatticamente è corretto - che vuol dire? Come si comporta per
> bicycle (=designated), motorcycle (=no), emergency (=?)?
> Qual è l'algoritmo con cui ho calcolato questi risultati? Siamo tutti
> d'accordo sui risultati? E sull'algoritmo?

Io propongo questo algoritmo, vediamo se siamo d'accordo qui in ML (se
sì, provo a documentarlo sul wiki):
Le tipologie di accesso (access, vehicle, motorcar, bicycle ecc.)
devono essere organizzate in un albero (speriamo che non sia
necessario un DAG!) così fatto:
Radice: access
Ecco gli altri nodi con i relativi genitori:
vehicle->access
motor_vehicle->vehicle
bicycle,horse->vehicle
foot->access
motorcar,motorcycle,moped,...->motor_vehicle
ecc.

L'assegnazione di un tag (es. access=no) deve essere fatta al nodo
corrispondente.
Una volta trasportati tutti i tag sull'albero, l'accedibilità con un
determinato mezzo si ottiene guardando il relativo nodo e
eventualmente risalendo l'albero fino a incontrare il primo tag (se è
un DAG, siamo nei casini).

Esempio: access=yes, vehicle=permissive, motor_vehicle=private, motorcar=no
Con l'algoritmo calcolo:
foot=yes (discende da access)
bicycle=permissive (discende da vehicle)
moped=private (discende da motor_vehicle)
motorcar=no (discende da motorcar)

Siamo tutti d'accordo su questo algoritmo e su questo calcolo? So che
può sembrare ovvio, ma (per deformazione accademica) le questioni di
semantica, sebbene ovvie, a volte mettono in luce nuovi aspetti.

Ad esempio ora ho capito che se l'albero dei veicoli non è un albero
ma un DAG (cioè ad esempio taxi discende da due nodi diversi che non
sono uno discendente dell'altro) l'algoritmo deve essere complicato
con una mescolanza (max o min?) dei valori.
Ad esempio, supponiamo che qualche pazzo decida che taxi discende sia
da motorcar che da psv (brutto esempio, ma potrebbero capitare casi
meno ovvi), e che motorcar=yes e psv=no: cosa si applica a taxi?

Ora inoltre ho anche capito come si devono mescolare i default con i
tag specifici: i default devono essere trasformati nella loro versione
generica (es. cycleway: access=no, bicycle=designated), poi quando si
incontra una cycleway con specificazioni addizionali bisogna
trasportare sull'albero prima i valori del default, poi quelli
specifici e infine si legge il risultato con l'algoritmo di sopra.

Ciao

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

Rispondere a