Ciao, tutte le discussioni sul tag "giusto" per la gelateria mi hanno fatto riflettere...
1. nessuna persona "normale", cioè al di fuori di una mailing list di OSM, capirebbe il problema. Una gelateria è una gelateria, punto e basta. Non è uno shop, né una "amenity" (come si traduce in italiano? Se si dice con più di una parola, allora l'italiano non ha quel concetto...) né un caffè, né un fastfood ecc. Semplicemente una gelateria. C'è la parola, è "universalmente" nota (per lo meno in Italia), non genera confusione, è abbastanza traducibile all'estero: tutti capiscono. Perché nasce difficoltà quando dobbiamo inventare un tag? 2. il fatto che una gelateria sia ANCHE uno shop, o una amenity, o un caffè ecc. è il risultato di un processo mentale decisamente più complesso. Suppongo che un bambino di pochi anni possa riconoscere una gelateria, ma non sia in grado di fare il ragionamento "una gelateria è anche una amenity" o uno "shop" o altro ancora. Questo ragionamento, che noi adulti sappiamo fare, è meno naturale ed è molto dipendente dalla cultura in cui siamo immersi. Probabilmente per un americano una gelateria è chiaramente un fast food. Per noi italiani proprio no. 3. usare un tag del tipo "amenity=ice_cream" oppure "shop=ice_cream" è in gran parte inutile, nel senso che non vi è alcuna utilità (da parte dei software OSM) nel sapere che ice_cream sta sotto amenity oppure shop. C'è forse un "rendering di default" delle amenity? O degli shop? Cioè il fatto che abbiamo accomunato un ice_cream ad un biergarten, usando lo stesso prefisso amenity=, aiuta qualche software? Oppure comunque questo nuovo tag deve essere insegnato ad ogni software, che, anche se sa gestire i biergarten, non è detto che sappia gestire gli ice_cream? 4. una volta appurato che l'aggiunta del prefisso "amenity=" oppure "shop=" è del tutto inutile per i software, rimane la teoria che sia utile per gli utenti dei dati. Ad esempio potrei chiedermi: "estrai tutti gli shop=... di quest'area". Ma che senso ha questa query? Mi starei basando su una catalogazione degli enti (una "ontologia"?) pensata da altri e che a priori non condivido. Ad esempio un tedesco vuole distinguere i pub dai biergarten, ma magari per un abitante della Polinesia sono indistinguibili. Insomma se l'ontologia sta nella mente dell'utente dei dati, che senso ha metterla nei tag? Potrei forse metterla sul wiki, ad esempio fare una paginetta che dice "ice_cream e biergarten sono in qualche modo simili", ma comunque questa ontologia deve stare fuori dal database (così come il rendering). 5. chiamare il prefisso "amenity=" un "namespace" è davvero forzarne la definizione. Un namespace, in programmazione, serve per rendere univoci due nomi uguali ma con significato diverso. Ad esempio una "pila" elettrica è diversa dalla "pila" dei piatti da lavare. Ma il fatto che ci chiediamo se ice_cream debba andare sotto amenity oppure sotto shop mi fa capire che non siamo davanti ad un vero e proprio namespace. Se può andare solo da una delle due parti, allora è lo stesso oggetto e non c'è bisogno di distinguerlo! 6. se, per fare i pignoli, diciamo che c'è una differenza tra shop=ice_cream (non ci sono posti a sedere) e amenity=ice_cream (ci sono posti a sedere), cioè diciamo che i due oggetti sono diversi e devono essere distinti, comunque stiamo usando il concetto di namespace nel modo sbagliato. Un namespace serve per distinguere due oggetti molto diversi che per caso si chiamano nello stesso modo, non per distinguere due oggetti simili all'interno della stessa area semantica. Nessuna persona, neppure un programmatore, può sostenere che un cacciavite con punta a stella e uno con punta diritta si chiamino entrambi "cacciavite" e si possano distinguere con un namespace! Al massimo sarebbe "cacciavite" il namespace, e avremmo cacciavite:punta_a_stella oppure cacciavite:punta_diritta 7. il mio cavallo di battaglia: quelli di OSM sono "tag", usiamoli come tag! Chi conosce flickr o qualsiasi altro sito simile, sa che i tag sono delle parole semplici, non sono organizzate in strutture. Una gelateria deve avere il tag "gelateria", o al più "gelateria=yes". 8. si può obiettare che c'è il bisogno di distinguere tra gelateria e gelateria: quelle con posti a sedere piuttosto che solo in piedi ecc... Ribatto: la lingua naturale non prevede tutte le parole all'inizio, ma si evolve con parole nuove, perifrasi ecc. per descrivere concetti a cui nessuno prima aveva pensato. Se si vogliono distinguere le gelaterie senza sedie da quelle con le sedie, si può affiancare al tag "gelateria=yes" (che andrebbe comunque applicato ad ogni gelateria) nuovi tag ad esempio "posti_a_sedere=yes" 9. un altro motivo per cui i namespace sono un concetto sbagliato per OSM è che in programmazione si usano per distinguere due (o più) set di nomi provenienti da fonti diverse che - a priori - potrebbero collidere. Ad esempio i namespace hanno senso per le librerie di programmazione (chi programma la libreria non è il programmatore del programma principale), oppure nell'XML (vorrei fondere due documenti XML prodotti da autori diversi). Tornerebbero quindi utili, in OSM, solo nel caso di import massivi: ad esempio se importassimo un "clone di OSM" e volessimo distinguere quelle che sono le gelaterie su OSM "OSM:gelateria" da quelle del suo ipotetico clone "OSM2:gelateria". Ma sappiamo tutti che non si lavora così su OSM! 10. sempre tornando ai linguaggi di programmazione, le collisioni di nome possono succedere perché spesso i nomi sono un po' "stiracchiati" per descrivere degli oggetti che vivono solo all'interno di un programma. Ad esempio posso chiamare una classe Executor ma in effetti siamo alla metafora; è possibile che la stessa metafora sia usata da un'altra persona per un oggetto diverso. Su OSM questo problema non c'è: gli oggetti che chiamiamo gelaterie sono a tutti gli effetti gelaterie, e un'ipotetica collisione di nomi dentro OSM deriverebbe da una collisione di nomi nella lingua naturale. Insomma sarebbe ben nota in anticipo, e con il processo veramente laborioso che usiamo per approvare i tag, il problema verrebbe risolto. In conclusione: è un po' tardi per ribattezzare "amenity=ice_cream" in "ice_cream_parlour=yes", ma mi sarebbe molto piaciuto :-) (temo che però nessuno l'avrebbe approvato...) Ciao, Federico _______________________________________________ Talk-it mailing list Talk-it@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-it