Ad verba per numeros
Aquí va la primera hoja de ruta para el proyecto de obtención de información turística semiestructurada.Uno de los aspectos que debe contemplar el proyecto es disponer de información geolocalizada para puntos de interés dentro de una entidad geográfica (p.ej. una ciudad, una comarca, etc.) Dicha información podría introducirse manualmente o tratar de obtenerse de manera automática. Mi idea va en esta última línea y lo que pretende es obtener parte de la información de la Wikipedia y cruzarla con los datos disponibles en flickr. Dependiendo de la importancia del lugar se dispondrá de una cantidad de información mayor o menor pero eso no es lo realmente importante, sino la posibilidad de obtenerla de un modo semiautomático y cruzarla con éxito.En esta primera fase se deben realizar varios prototipos que, eventualmente, se fusionarían en un solo software que obtendría para un input simple como el nombre de un lugar (p.ej.
Next
Paris
) un listado de elementos de interés turístico, geolocalizados, etiquetados y ponderados. Inicialmente habría que centrarse en la obtención de los nombres y coordenadas de los lugares y esto se tratará de hacer por dos vías: (1) Wikipedia en inglés y (2) flickr. En esta entrada tan sólo describiré los aspectos relativos al uso de la Wikipedia.Para el prototipo se explotará la Wikipedia de manera online (algo que no está permitido) a fin de determinar las posibilidades que ofrece, para una versión de producción sería necesario descargar los volcados de la base de datos y atacar dicha base de datos local; de todos modos, la organización de la información y el modo de obtener lo que nos interesa será similar. Como sabréis los artículos de la Wikipedia tienden a organizarse en categorías de tal modo que es posible presuponer la existencia de páginas como las siguientes:http://en.wikipedia.org/wiki/Category:OviedoAl explorar algunas de esas categorías nos percatamos de la existencia, en muchas ocasiones, de subcategorías, entre ellas algunas muy interesantes como
http://en.wikipedia.org/wiki/Category:Lausanne
http://en.wikipedia.org/wiki/Category:New_York
Buildings_and_structures_in_*
, Squares_in_*
, Museums_in_*
, etc. Así, algunos enlaces disponibles en la Wikipedia serían:http://en.wikipedia.org/wiki/Category:B ... _in_PragueUn punto importante sería la construcción de un listado de "patrones" susceptibles de ser explorados para localizar artículos que, probablemente, tuviesen información susceptible de estar geolocalizada en la Wikipedia o en otro lugar.De hecho, algunos artículos de la Wikipedia disponen de información geográfica que se muestra en algún punto del propio artículo; por ejemplo, los siguientes artículos ofrecen la latitud y la longitud del lugar:
http://en.wikipedia.org/wiki/Category:Squares_in_Berlin
http://en.wikipedia.org/wiki/Category:Streets_in_Madrid
http://en.wikipedia.org/wiki/Category:C ... _in_London
http://en.wikipedia.org/wiki/Category:Museums_in_Rome
http://en.wikipedia.org/wiki/Category:G ... _of_London
http://en.wikipedia.org/wiki/Category:V ... ns_in_Rome
http://en.wikipedia.org/wiki/Category:Lists_of_places
http://en.wikipedia.org/wiki/Capitoline_MuseumsAsí, podría obtenerse una lista con la siguiente información:
http://en.wikipedia.org/wiki/Esposizion ... rsale_Roma
http://en.wikipedia.org/wiki/Vatican_Museums
Capitoline Museums Coordinates: 41°53'35"N 12°28'57"EObservad cómo usan notaciones diferentes y que la información aparece en distintos lugares para cada artículo.Un punto a favor del uso de la Wikipedia es que al mismo tiempo que se localizan lugares de interés (y tal vez coordenadas) nos estamos haciendo con información textual y gráfica de la cual se puede disponer libremente siempre y cuando se respete la licencia, o lo que es lo mismo, que la información producida se distribuya bajo la GFDL.¿Cuál sería el trabajo ahora?En primer lugar elaborar manualmente una lista de patrones de categorías lo más extensa posible y, después elaborar una lista de ciudades.Ambas listas serían utilizadas con un primer prototipo que las combinaría, exploraría y localizaría nuevos patrones candidatos. Por ejemplo, si un patrón fuese
Esposizione Universale Roma Coordinates: 41.834947º 12.471436º
Vatican Museums Coordinates: 41º54'23"N 12º27'16"E
Category:Geography_of_
y las ciudades son London
, Rome
, Paris
y Lisbon
deberían explorarse las categorías Geography_of_London
, Geography_of_Rome
, ..., Geography_of_Lisbon
y eso daría lugar a patrones como los siguientes extraídos del nombre de las subcategorías pertenecientes a las categorías anteriores.*_postcode_districts
Arrondissements_of_*
Districts_of_*
Hills_of_
Parks_and_open_spaces_in_*
Rioni_of_
Topography_of_ancient_
Villages_in_*
Cuando dicho prototipo finalizase habría que filtrar los patrones propuestos, quedarte con los más adecuados y, sólo para los nuevos descubrimientos, volver a iterar. Tras unos días de iteraciones, filtrados y repeticiones se tendría una lista tremendamente completa de categorías (esto es etiquetas) que identificarían artículos relativos a lugares físicos.El siguiente prototipo a realizar emplearía esta lista final de etiquetas, recibiría como input el nombre de una entidad geográfica (p.ej. Asturias, Oviedo, Berlin, Prague, etc.), la cruzaría con todas las categorías disponibles, las exploraría, descubriría categorías nuevas y específicas para dicho lugar y procedería a anotar las URLs de todos los artículos pertenecientes a cualquiera de las categorías personalizadas para el lugar en cuestión.Y hasta aquí puedo leer ¿Qué lenguaje utilizar?En realidad eso es irrelevante; no obstante, si se desea avanzar de forma rápida recomendaría un lenguaje de scripting (p.ej. PHP) y la utilización de la biblioteca cURL (en PHP está disponible). De este modo se pueden completar fases muy rápidamente y aunque en la fase de paso a producción no se utilicen los scripts sí se emplearán los datos elaborados y lo que hayamos aprendido resultará tremendamente valioso.Next