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