15 nov 2012

Servicio de nomenclátor en la provincia de Lugo utilizando el motor de búsqueda Solr.

De acuerdo a las recomendaciones del Consejo Superior Geográfico, cualquier Infraestructura de Datos Espaciales (IDE) debe implementar como mínimo los siguientes servicios: Web Map Service (WMS), Web Feature Service (WFS) y nomenclátor. Entendemos por servicio de nomenclátor uno que admite como entrada el nombre de un fenómeno y devuelve su ubicación geográfica mediante unas coordenadas.

En el ámbito de España, el Consejo Superior Geográfico ha creado el Modelo de Nomenclátor de España (MNE) en el que se propone la utilización de un perfil del servicio WFS denominado 'Gazetteer Service - Application Profile of the Web Feature Service Best Practice' (WFS-G), creado por el Open Geospatial Consortium. Cabe destacar que aunque este perfil no es, a día de hoy, un estándar del OGC, el documento refleja la posición oficial de esta organización acerca de este particular.

Por desgracia, no existe a día de hoy, que nosotros sepamos, una implementación de referencia de WFS-G, al contrario de lo que sí ocurre con los estándars WMS y WFS. En nuestra opinión, la falta de dicha implementación de referencia de WFS-G está frenando la puesta en marcha de servicios de nomenclátor.

Si un servicio de nomenclátor es siempre necesario, en el caso de Galicia lo es, si cabe, todavía más. Una característica distintiva de Galicia es la elevada dispersión poblacional, lo que hace que el número de entidades singulares sea muy elevado en comparación con otras regiones de España. De acuerdo a los datos del Instituto Nacional de Estadística, en Galicia se asientan el 49% de las entidades singulares existentes en España, pese a que cuenta con el 5,8% y el 5,9%, respectivamente, de la superficie y población nacionales. En el caso de la provincia de Lugo, los anteriores porcentajes ascienden al 15%, 1,95% y 0,75%, respectivamente, de las entidades singulares, superficie y población totales de España.

Desde el año 2000 la Diputación Provincial de Lugo y Laboratorio del Territorio (LaboraTe), G.I.-1934-TB de la Universidad de Santiago de Compostela, se han encargado de la actualización de la Encuesta de Infraestructura y Equipamientos Locales de la provincia de Lugo. A lo largo de estos años se han introducido gradualmente numerosas mejoras, siendo un hito importante la creación, en el año 2009, de una IDE que suministra, mediante servicios WMS y WFS, información geo-referenciada de los equipamientos e infraestructuras encuestados. Esta IDE está disponible al público en general y de forma gratuita.

Otro hito, a nuestro juicio importante, es la puesta en marcha de un servicio de nomenclátor que, en su primera andadura, sirve para buscar y ubicar geográficamente las entidades singulares de la provincia de Lugo. Desde el punto de vista de la tecnología utilizada, nos hemos decantado por el motor de búsqueda Solr como plataforma sobre la que implementar el servicio, en vez de la solución tradicional, una base de datos relacional con capacidades de búsquedas espaciales. La novedad introducida, pues, no está en el 'qué', sino en el 'cómo'.

Un motor de búsqueda es un sistema de recuperación de información especializado en la hacer búsquedas en el texto completo de documentos - formatos como PDF, HTML, OpenOffice, MS Word, CSV, XML, etc. - en general. Este paradigma supone una ruptura con las bases de datos relacionales, sistemas en los que la información se halla muy estructurada.

Durante los últimos años, los sistemas de bases relacionales han ido añadiendo a su catálogo de funcionalidades las búsquedas en texto completo. En paralelo, al motor de búsqueda Solr de la han añadido capacidades de búsqueda espacial, si bien son mucho más limitadas que las ofrecidas por una base de datos relacional con extensiones espaciales, como son los casos de PostGIS u Oracle Spatial.

Cabe preguntarse por qué hemos elegido Solr. Si bien, como se señaló antes, las capacidades de búsquedas espaciales que ofrece Solr son mucho menores, éstas son suficientes para implementar las funcionalidades recomendadas en el MNE. Además, comparado con los sistemas de bases de datos relacionales MySQL y PostgreSQL, el motor de búsqueda Solr da resultados de mayor calidad que los anteriores, siendo, además, los tiempos de búsqueda sensiblemente menores.

Por otra parte, el motor de búsqueda Solr es una tecnología madura, escalable y que a día de hoy se está utilizando en producción en entornos con altas cargas de trabajo. Cabe destacar también las facilidades que da Solr a la internacionalización, de interés en aquellas regiones de España que cuentan con una lengua co-oficial junto con el castellano.

En lo referente al tipo de documentos sobre los que el motor hace las búsquedas, en nuestro caso particular la solución ha sido sencilla: hemos introducido los datos de las entidades singulares - nombre en gallego, castellano, municipio, parroquia, coordenadas, etc -, en un fichero en formato XML de estructura simple - no mucho más complejo que una hoja de cálculo - creado ad doc.

Así, hemos implementado un servicio de noménclator que se puede utilizar mediante dos interfaces. Una de ellas, dirigida al usuario final, consiste en un formulario insertado en una página web que permite buscar por nombre una entidad singular y opcionalmente limitar la búsqueda a un municipio. La otra, dirigida a programadores, consiste en una Application Programming Interface (API) a través de la cual se pueden hacer consultas al servicio, especificando los parámetros mediante los métodos GET o POST del protocolo HTTP. La API ofrece más opciones de refinamiento de las búsquedas que el formulario en página web: además de filtrar por municipio, es posible restringir las búsquedas a un área rectangular o hacer transformaciones de coordenadas.

Como futuras líneas de trabajo, esperamos extender las búsquedas a fenómenos geográficos en general y hacer que el servicio se adhiera a la especificación WFS-G.

Para más información podéis acceder a la comunicación presentada en las III JIIDE. Publicado por Diego Alberto Arias Prado

No hay comentarios: