Detecting DUPLICATE OBJECTS IN XML DOCUMENTS Mauricio Clausen – Nicolás García Grupo 14
Agenda Introducción Objetivo Duplicación Conceptos Filtros Objetos duplicados Enfoque propuesto Experimentos Conclusiones y trabajo a futuro Crítica
Autores Melanie Weis Felix Naumann Expuesto en Paris, Francia - 2004 Areas de investigación Sistemas de Información XML Data Cleaning Calidad de Datos Expuesto en Paris, Francia - 2004
Introducción Motivación Popularidad de los docs XML Representación de datos Integración/Intercambio de datos de distintas fuentes Heterogéneas Distribuidas Existen alternativas para BDs pero no para XML
Objetivo Presentar una solución al problema de detectar elementos repetidos en documentos XML Estructuras pueden ser distintas No hay información del dominio Eficiente
Duplicación Técnica: Datacleansing Aspectos a considerar: Detectar y corregir los registros corruptos o inexactos de un conjunto, tabla o base de datos. Aspectos a considerar: Alcance de elementos Diversidad de Estructura <pais> <nombre>Estados Unidos</nombre> <ciudades>New York, Los Angeles</ciudades> <ciudad>Paris</ciudad> </pais> Estados Unidos de América <ciudad>New York</ciudad> <ciudad>Los Angeles</ciudad> <pais> Francia <ciudad>Paris</ciudad> </pais> Estados Unidos
Duplicación Tipos de errores de duplicación Tipográficos Equivalencia Información faltante
Conceptos Definición de duplicados Estructura Datos El nombre distingue la entidad Ancestros distinguen la entidad Similaridad de los descendientes Datos 2 formas de almacenar datos en XML: Valor de un atributo Texto en el nodo del elemento Formados por: Datos del nodo texto Valores de atributos Datos de los nodos texto de sus hijos
Conceptos Definición de duplicados Dos elementos XML e y e´ son candidatos a duplicados si: Sus ancestros son iguales o similares e y e´ tienen el mismo nombre Los datos de e y e´ son similares Los hijos de e y e´ tienen datos y estructura similares
Conceptos Funciones de similaridad Motivaciones para la medida Similitud entre multiconjuntos Influencia según el objeto Factor IDF (inverse document frequency): donde fs(o) es la frecuencia de un objeto IDF para un conjunto Medida de similaridad:
Conceptos Funciones de similaridad Distancia de edición dedit(s,s´): menor cantidad de op. de inserción, borrado y reemplazo para transformar s en s´ s y s´ similares si dedit(s,s´)/máx{l(s),l(s´)} < tedit Se divide por el máx. ya que más errores deberían ser permitidos en cadenas más largas. Elementos Strings Tokens
Conceptos Funciones de similaridad E conjunto de elementos a comparar TS(e) tokens que componen datos de CS(e) tokens que componen los datos de los hijos de e
Filtros Identificando datos similares Para reducir cálculos, se aplican filtros al dedit elemento1 elemento2 datos hijos datos hijos stringDatos stringHijos dedit stringDatos stringHijos
Filtros Filtro de longitud de distancia Agrupar strings por largo y descartar grupos completos de pares que no califican para ser similares. Sean dos strings s y s´ de long. l(s) y l(s´): Sean L y L´ grupos de strings de largo l y l´, si: ninguna s de L es duplicada de una s´ de L´ Recordar: 2 cadenas son duplicadas si dedit(s,s´) < tedit
Filtros Filtro usando desigualdad triangular Sean x, y, z strings se puede demostrar: Rango min, max para dedit(x,z) x y z son similares x y z no son similares
Filtros Filtro distancia de bolsa Sea un string x en un alfabeto A ms(x) el multiconjunto de símbolos en x Ej: ms(“casa”) = a, a, c, s Se define distancia de bolsa: Semántica de la operación diferencia: {a,a,a,b} – {a,a,b,c,c} = {a} Se puede demostrar: y usarse como un filtro para dedit
Objetos duplicados Detectando pares de objetos duplicados tdup valor referencia duplicados isDup(e,e´) V si s(e,e´) > tdup F sino
Objetos duplicados Filtro de objetos E elemento XML S(e) = TS(e) U CS(e) G conjunto de strings de todos los elementos Se compara f(e) con tdup, si es menor, e no tiene duplicados
Enfoque propuesto Comparación de elementos con mismo nombre Top-Down Duplicados en elementos padres son detectados antes que en elementos hijos Detección de duplicados en 6 pasos
Enfoque propuesto Extracción de objetos Generación de grafo Detección de tokens e hijos similares Filtrado de objetos Comparación objetos Agupación de duplicados
Enfoque propuesto Extracción de objetos XML contiene elementos de diferentes nombres en varios niveles Es posible buscar duplicados en un dominio menor Se genera XML objeto utilizando XQuery Esquema predefinido, facilita siguiente paso Pierde información del esquema pero mantiene datos Potencialmente menor que el original
Enfoque propuesto XML Original XML Objeto
Enfoque propuesto Generación del Grafo Internamente el XML se representa con un Grafo G(V,E) V conjunto de vértices: elementos, tokens e hijos E conjunto aristas: correspondencia de un elemento con sus tokens e hijos Construido a partir del XML Objeto utlizando el parser SAX (Simple API for XML) de Java
Enfoque propuesto Se crea un vértice por cada tag element Por cada token entre element y children un nuevo vértice, unido por una nueva arista al vértice del tag element Un vértice por cada elemento de los hijos, y una nueva arista que lo una al vértice del element
Enfoque propuesto Detección de tokens e hijos similares Determina similitud entre objetos comparando sus tokens y datos de sus hijos (dedit) Se aplican los filtros para disminuir las comparaciones de distancia de edición Longitud de distancia Desigualdad triangular Distancia de bolsa Filtros con alta selectividad
Enfoque propuesto Si dos tokens duplicados pertenecen a distintos elementos, se agregan 2 aristas, de cada elemento al token duplicado en el otro elemento
Enfoque propuesto Filtrado de objetos Se aplica la función de filtro a cada vértice correspondiente a un element Unión y diferencia en forma eficiente, considerando el grado de los vecinos Cuando se filtra un vértice Elimina el vértice y sus aristas del grafo Aplica nuevamente el filtro a cada vértice que pertenecía a la intersección del eliminado
Enfoque propuesto Detección de duplicados Se aplica la función de similitud (s) Únicamente es necesario comparar vértices adyacentes Una nueva arista por cada par de vértices duplicados
Enfoque propuesto Se calcula la clausura transitiva del Grafo Como resultado se obtienen agrupaciones de elementos Todos los elementos de una misma agrupación representan el mismo objeto del mundo real
Enfoque propuesto Top-Down Traversal Una vez detectados los duplicados en un nivel, se desciende al siguiente nivel en la jerarquía Para cada agrupación se repiten los pasos anteriores En cada iteración se consideran los elementos con el mismo nombre y cuyos padres pertenecen a la misma agrupación
Experimentos Se evalúa la efectividad de la propuesta ¿Qué tan efectivos son los filtros antes descritos? ¿Qué tan efectiva es la propuesta en la identificación de elementos duplicados en un XML?
Experimentos Se generó un documento XML con errores a partir de uno correcto 100% de duplicados Introducción de 3 tipos de errores: Errores tipográficos: 20% Errores de equivalencia: 8% Datos faltantes: 10% Los errores fueron generados con la herramienta DirtyXMLGenerator
Experimentos Selectividad de los filtros Distancia de edición Datos de prueba contienen con 711 tokens, requerirían 252405 cálculos, que se reducen un 99% (1027) aplicando los filtros: Longitud de distancia: 83% Desigualdad triangular: 23% Distancia de bolsa: 97%
Experimentos
Experimentos Filtro de objetos Depende altamente de la cantidad de objetos duplicados Si todos los elementes contienen duplicados, va a tener una selectividad del 100% En caso que no hayan elementos duplicados, la selectividad va a ser del 0%
Experimentos Efectividad en la medida de similitud Se logró una precisión superior al 80% para valores de recall de hasta 80% La co-ocurrencia mejoró la precisión/recall global, aunque para valores entre 30% y 70% fue peor que sin co-ocurrencia
Experimentos
Experimentos Bajo nivel global de falsos positivos y negativos considerando co-ocurrencia Indica que s es una buena medida
Conclusiones y trabajo a futuro Se plantea el problema de duplicados en XML Analogía dimensión unicidad, factor duplicidad Se distinguen 2 problemas fundamentales: Alcance de los elementos Libertad de estructura de XML Se proponen técnicas de filtrado Se visualizan mejoras a incluir Considerar consumo de memoria en cálculos Tener en cuenta info del esquema (si se dispone)
Crítica Puntos fuertes Puntos débiles Uso creciente de XML Independiente del contexto Claro y autocontenido Buenos ejemplos Considera detalles a mejorar y resultados a comprobar Puntos débiles Varios conceptos explicados únicamente en referencias No define criterios para elegir valores de tedit y tdup
Preguntas
Mauricio Clausen – Nicolás García Grupo 14 Muchas Gracias !!! Mauricio Clausen – Nicolás García Grupo 14