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

Rispondere a