Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun...

Post on 15-Oct-2018

214 views 0 download

Transcript of Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun...

Orador:15 de noviembre, 2017

Iván Moya Honduvilla

Miguel Ángel Manso Callejo

Javier Moya Honduvilla

¤ La geocodificación es el proceso que convierte direcciones en coordenadasgeográficas. Un GeoCoder es una aplicación para geocodificar.

¤ CartoCiudad es una Base de Datos Oficial de la red viaria, con estructura topológica deSIG, que permite la navegación continua por todo el territorio español. Además,contiene la división administrativa censal y postal en polígonos.

1. Introducción

¤ Este trabajo consiste en adaptar para CartoCiudad la aplicación Geocoder‐TIGER, ungeocodificador para la Base de Datos TIGER de la Oficina del Censo de los Estados Unidos,desarrollado en PL/pgSQL para PostGIS.

¤ Para ello, se requerirá de un proceso de reingeniería de software que adapte

el código de dicha aplicación, a la base de datos CartoCiudad

1. Introducción

¤ La reingeniería de software se subdivide en un proceso de ingeniería inversa, donde seidentifican las diferencias entre ambas bases de datos, a partir de sus correspondientestablas y atributos implicados en las consultas SQL.

¤ Se identifican las equivalencias y las diferencias.

2.1. Metodología: Ingeniería de Software

¤ Una vez identificadaslas diferencias se realizaingeniería directa, dondelas diferencias se plasmanmodificando las consultasSQL originales paraGeocoder‐TIGER, y sereestructura el códigoPL/pgSQL original paraCartoCiudad.

2.1. Metodología: Ingeniería de Software

¤ Las bases de datos relacionales están normalizadas, generalmente en FormaNormal Boyce‐Codd (FNBC), para preservar la integridad y consistencia de sus datos.

Geocoder‐TIGER no cumple FNBC, ¿es un inconveniente?

2.2. Metodología: Normalización FNBC / Desnormalización

¤ Cabe la posibilidad de desnormalizar la base de datos, para mejorar el rendimientode la geocodificación, siempre que se asuman los inconvenientes de no respetar lanormalización (anomalías).

¤ Si la base de datos no se actualiza en tiempo real, y su actualización comporta unproceso de reconstrucción completo, se puede aprovechar dicho proceso, paracomplementar algunas relaciones no incluidas en el modelo de datos y que enalgunos casos comportan la desnormalización de la misma.

Se puede filtrar directamente una dirección por su código postal

Si una dirección (alguno de sus portales asociados) cambia de código postal, habría una anomalía de actualización

2.2. Metodología: Normalización FNBC / Desnormalización

¤ La tarea de normalización consiste en transformar las direcciones de lenguaje natural quelas personas usan para describir lugares, en una estructura de datos bien definidacompuesta por los elementos clave necesarios para la geocodificación.

Avda de la Libertad número 10 Escalera 6 Piso 2ºC Alcalá de Henares

2.3. Metodología: Normalización de Direcciones

2.3. Metodología: Normalización de Direcciones: LIBPOSTAL

¤ Para la normalización se utiliza se utiliza la biblioteca libpostal basada en elProcesamiento de Lenguaje Natural (PLN). Con ello se obtiene una dirección másestructurada, más fácil de procesar por un algoritmo.

¤ Para la búsqueda difusa (fuzzy search) se utiliza el algoritmo fonético Soundex, quepermite identificar palabras con similar pronunciación. Así se dota de tolerancia a errorestipográficos a la búsqueda.

Calle Monsalupe 3 C/ monzalupe nº3

Soundex(normaliza(‘C/ monzalupe nº3’))Soundex(normaliza(‘Calle Monsalupe 3’))

2.4. Metodología: Búsqueda difusa

¤ Una vez normalizada la dirección, ésta se geocodifica, haciendo consultas SQL contra labase de datos.

¤ Se realizan diversas tentativas, empezando por la división administrativa más pequeña.En caso se no encontrar nada, se van probando divisiones mayores:

¤ En el caso de municipio, se realiza primero una búsqueda exacta, y alternativamente, unabúsqueda difusa.¤ Primero se consulta contra la tabla “portal_pk”, y alternativamente, contra la tabla“tramo_vial” usando una función de interpolación.

Código Postal

Municipio

Provincia

2.5. Metodología: Geocodificación

¤ En cualquier técnica de geocodificación conocida, nunca se llega a la tasa óptima (100% )de aciertos o respuestas válidas. Algunas de las razones, son por ejemplo:

Direcciones recientemente creadas.

“Calle de Alan Turing s/n, Madrid”

Ruido en la dirección introducida

“Escuela de Idiomas Omega, Calle Paz 14, Almería”

Direcciones ambiguas o imprecisas.

“Plaza de Portugal 14 Arroyomolinos Badajoz 28921 ”

Errores/incongruencias en la propia base de datos CartoCiudad

2.5. Metodología: Geocodificación - fallos conocidos

¤ Para elegir qué índices crear, se ha de identificar los atributos que contienen lainformación que se utiliza directamente en la búsqueda.

¤ Se incluirán además funciones anidadas si se utilizan en la consulta.

¤ Si se accede simultáneamente a varios atributos, se creará un índice compuesto

soundex(normaliza())

2.6. Metodología: Optimización e indexado

¤ Para poder interoperar de un modo estándar con el servicio, se utiliza una capade aplicación basada en WPS de OGC. Las aplicaciones que quieran utilizar elservicio de geocodificación, utilizarán la operación execute del estándar WPS.

2.5. Interfaz de servicio WPS

¤ El servicio WPS tiene tres métodos o operaciones diferentes, que el cliente puedeinvocar a través del protocolo HTTP GET, HTTP POST ó SOAP.¤ El cliente envía parámetros según el estándar WPS, el servidor procesa la petición yreenvía una respuesta.

getCapabilities() Descripción del servicio y enumeración de procesos

describeProcess() Información acerca de un proceso  concreto

execute() Ejecución de un proceso

3. Interfaz de servicio WPS

¤ Ejemplo de petición execute(), para geocodificar la dirección “C/Princesa 27 Madrid”

execute()

XML

HTTP

3. Interfaz de servicio WPS

execute()

¤ Ejemplo de petición execute(), igual que antes, pero en formato JSON

Geoportal web

HTTP

3. Interfaz de servicio WPS

4. Integración de GeoCoder en un geoportal

¤ Mediante reingeniería e ingeniería inversa, se pueden reutilizar aplicaciones OpenSource para escribir nuevas aplicaciones.

¤ Se debe normalizar los valores de entrada para minimizar los errores degeocodificación. Para ello se utiliza se propone el uso de la biblioteca libpostal, unnormalizador de direcciones especializado en dicha tarea.

¤ Para las búsquedas difusas en la geocodificación, se pueden usar algoritmos fonéticosde tal modo que se pueden encontrar direcciones que concuerdan con la pronunciación,dotando al Geocoder de tolerancia a errores tipográficos.

5. Conclusiones

¤ Es importante optimizar el uso de índices y el código SQL de consulta. Además, sepuede relajar la normalización FNBC, siempre que se analicen y se asuman lasconsecuencias negativas relativas a consistencia de los datos.

¤ Para favorecer la interoperabilidad del Geocoder a nivel de servicio, es fundamentalincluir una capa de aplicación que soporte un estándar bien conocido, como es el caso deWPS definido por OGC.

¤ Gracias a la utilización de estándares, es muy sencilla la integración del geocodificadoren el geoportal GET SDI Portal, pudiendo geocodificar direcciones de manera fácil eintuitiva para los usuarios finales.

5. Conclusiones

Iván Moya Honduvilla

Miguel Ángel Manso Callejo

Javier Moya Honduvilla