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

22

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

Page 1: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...
Page 2: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

Orador:15 de noviembre, 2017

Iván Moya Honduvilla

Miguel Ángel Manso Callejo

Javier Moya Honduvilla

Page 3: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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

Page 4: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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

Page 5: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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

Page 6: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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

Page 7: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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).

Page 8: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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

Page 9: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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

Page 10: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

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.

Page 11: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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

Page 12: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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

Page 13: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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

Page 14: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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

Page 15: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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

Page 16: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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

Page 17: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

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

execute()

XML

HTTP

3. Interfaz de servicio WPS

Page 18: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

execute()

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

Geoportal web

HTTP

3. Interfaz de servicio WPS

Page 19: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

4. Integración de GeoCoder en un geoportal

Page 20: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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

Page 21: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

¤ 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

Page 22: Orador - DGTerritório · ¤Silabasededatosnoseactualizaentiemporeal,ysuactualizacióncomportaun procesodereconstruccióncompleto,sepuedeaprovechardichoproceso,para ...

Iván Moya Honduvilla

Miguel Ángel Manso Callejo

Javier Moya Honduvilla