Change Detection in hierarchisch strukturierten Daten Seminar „Data Warehousing und Mining“ Kurt Städler 20. Januar 2000 Gliederung des Vortrags • Einleitung • Grundlagen Change Detection • Auffinden von Übereinstimmungen („Good Matching“ Problem) • Generieren des Editier-Skripts • Implementation • Zusammenfassung • Literaturangabe 20.1.00 Change Detection in hierarchisch strukturierten Daten 2 Change Detection bei Daten Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Change Detection = Differenz- od. DeltaBildung zwischen versch. Datenversionen • Problem: Effiziente Erkennung und Präsentation von Änderungen innerhalb hierarchisch strukturierter Daten • Grundlegende Funktionen für: – Data Warehousing – View-Überwachung – Versions- und Konfigurationsmanagement 20.1.00 Change Detection in hierarchisch strukturierten Daten 3 Hierarchische Daten Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Hierarchisch strukturierte Daten geordnete Bäume: jeder Knoten hat Label mit best. Wert und möglicher ID Baum 1 A 1 A 2 D D: Dokument A 3 4 A: Abschnitte/Absätze S: Sätze 5 6 7 8 9 10 S(a) S(b) S(c) S(d) S(e) S(f) 20.1.00 Bsp: XML-Dokument Change Detection in hierarchisch strukturierten Daten 4 Ziel der Arbeit Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Möglichst „billige“ Transformation von Baum 1 zu Baum 2 ermitteln Baum 1 A 1 A 2 D D A 3 4 A A 12 11 Baum 2 A 13 14 5 6 7 8 9 10 15 16 17 18 19 S(a) S(b) S(c) S(d) S(e) S(f) S(a) S(c) S(f) S(d) S(e) S(b) 20.1.00 Change Detection in hierarchisch strukturierten Daten 20 5 Bildung der Differenz Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Problem der Transformation resp. Differenzfindung wird in zwei Unterprobleme aufgeteilt: 1. Suche nach Übereinstimmungen zwischen Objekten der beiden Baumversionen („Good matching“ Problem) Das Ergebnis dient als Input für: 2. Berechnung eines Editier-Skripts 20.1.00 Change Detection in hierarchisch strukturierten Daten 6 Abgrenzung Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Keine Betrachtung von „flachen“ Dateien und relationalen Daten, da einfache Identifikation der Änderungen möglich • Nicht vergleichbar mit (UNIX) diff-Utility Mangel: Erkennt Move-Operation von Knoten resp. Teilbäumen nicht (wird als Delete und Insert angezeigt) 20.1.00 Change Detection in hierarchisch strukturierten Daten 7 Begriffe Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Partielle Übereinstimmung – nur ein Teil der Knoten/Blätter in beiden Bäumen stimmt miteinander überein (gilt in diesem Kontext) • Totale Übereinstimmung – sämtliche Knoten/Blätter in beiden Bäumen stimmen miteinander überein • Isomorphe Bäume – zwei Bäume sind isomorph, wenn sie bis auf die Knoten-IDs miteinander übereinstimmen 20.1.00 Change Detection in hierarchisch strukturierten Daten 8 Vorgehen Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss Bestimme Ähnlichkeitsmass und markiere Blätter resp. Knoten, welche dem Ähnlichkeitsmass genügen! Baum 1 A 1 A 2 D D A 3 4 A A 12 11 Baum 2 A 13 14 5 6 7 8 9 10 15 16 17 18 19 S(a) S(b) S(c) S(d) S(e) S(f) S(a) S(c) S(f) S(d) S(e) S(b) 20.1.00 Change Detection in hierarchisch strukturierten Daten 20 9 Editier-Skripte Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Editier-Skript mit minimalen Kosten Sequenz E von Editier-Operationen e1 ... em • Editier-Operationen: – Knoten/Blatt einfügen (Insert) – Blatt löschen (Delete) – Knoten/Blatt überschreiben (Update) – Teilbaum verschieben (Move) Erzeuge ein Skript mit minimalen Kosten, welches den Baum 1 in einen zu Baum 2 isomorphen Baum transferiert! 20.1.00 Change Detection in hierarchisch strukturierten Daten 10 Beispiel Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss D 1 S(1) Sec 2 P 8 3 S(x) P 4 S(a) S(m) 5 6 D INS((11,Sec,h),1,4) 9 7 S(n) 10 DEL(2) 1 S(1) Sec 2 P 8 3 S(x) S(b) P 4 S(a) S(m) 5 6 9 7 D MOV(5,11,1) S(n) 10 1 Sec(h) 11 Sec P 8 3 S(x) S(b) S(m) 4 9 Sec(h) 11 S(n) 10 P 5 S(a) 6 7 Ineffizientes Editier-Skript: INS((11,Sec,h)1,4), DEL(6), DEL(7), DEL(5), INS((5,P,““),11,1), INS((6,S,a),5,1), INS((7,S,b),5,2), DEL(2) 20.1.00 Change Detection in hierarchisch strukturierten Daten 11 S(b) Kostenmodell 1 Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Es gibt mehrere Möglichkeiten, einen Baum in einen anderen zu transformieren, sogar dann, wenn gewisse Übereinstimmungen gefordert werden! • Bsp.: Letzte Folie Man sieht schnell, dass das Skript mehr Operationen umfasst als notwendig. Es ist somit eine nicht erwünschte Repräsentation einer Differenzbildung. • Abhilfe: Einführung eines Kostenmodells für Editier-Operationen 20.1.00 Change Detection in hierarchisch strukturierten Daten 12 Kostenmodell 2 Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Kosten einer Edit-Operation abhängig von - der Operation selbst den Knoten, welche von der Operation betroffen sind dem Wert eines Knotens/Blattes von der Position eines Knotens im Baum • Hier: vereinfachtes Kostenmodell mit einheitlichen Kosten für alle Operationen: cINS = cDEL = cMOV = 1 20.1.00 Change Detection in hierarchisch strukturierten Daten 13 Übereinstimmungen finden Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Ziel: Suche nach Übereinstimmungen zw. Knoten von B1 und B2 Dienen als Input für Edit-Skript-Generierung • Versch. Möglichkeiten, um Übereinstimmungen zw. Daten ohne OID zu finden, z.B: – Zahl/Reihenfolge der Kinder eines Knotens – Wort-/Satzlänge in den Blättern – Häufigkeit von best. Schlüsselwörtern in den Blättern 20.1.00 Change Detection in hierarchisch strukturierten Daten 14 Annahme 1 Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss Für ein bestimmtes Blatt s im alten Dokument gibt es bestimmt ein Blatt im neuen Dokument, welches sehr ähnlich ist zu s und umgekehrt. Bsp.: Sammlung sämtlicher Filmtitel als Blätter. Sehr restriktive und somit heikle Annahme Bsp.: Gesetzesartikel sind einander in der Wortwahl z.Teil sehr ähnlich, nicht aber in der inhaltlichen Bedeutung 20.1.00 Change Detection in hierarchisch strukturierten Daten 15 Annahme 2 Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss Es gibt eine Ordnung <l bezügl. der Labels, sodass ein Knoten mit der Bezeichnung l2 als absteigender Knoten eines Knotens l1 nur dann auftreten kann, wenn gilt: l1 <l l2. Bsp.: Hierarchische Darstellung der Adresse 20.1.00 Change Detection in hierarchisch strukturierten Daten 16 Bsp. zu Annahme 2 Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss 1 Adresse 4 2 5 3 6 Anrede Name Ort 20.1.00 Person 1 XY Name 7 8 Z Bla 4 2 5 3 6 Anrede Adresse Ort Change Detection in hierarchisch strukturierten Daten Person XY 7 8 Z Bla 17 „Matching“ Kriterium 1 Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss Blätter, welche zu verschieden sind, dürfen nicht in Übereinstimmung gebracht werden. • Mass für Verschiedenheit: Funktion compare Berücksichtigt Label und Wert von zwei einander potentiell entsprechenden Blättern Bestimmt die Kosten, welche für das Überschreiben eines Blattes mit Wert des anderen Blattes aufgewendet werden müssen 20.1.00 Change Detection in hierarchisch strukturierten Daten 18 „Matching“ Kriterium 2 Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss Teilbäume, welche zu verschieden sind, dürfen ebenfalls nicht miteinander in Übereinstimmung gebracht werden. • Mass für Verschiedenheit: Funktion common Bestimmt die Anzahl gemeinsamer Kinder sowie die Gesamtzahl der Kinder von zwei einander potentiell entsprechenden Teilbäumen Das Verhältnis von gemeinsamen Kindern zur Gesamtzahl der Kinder darf einen zuvor festgelegten Schwellwert nicht unterschreiten, um das Kriterium zu erfüllen 20.1.00 Change Detection in hierarchisch strukturierten Daten 19 „Matching“ Algorithmus 1 Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Die Annahmen sowie die Kriterien 1 und 2 führen zu folgendem Theorem der maximalen Übereinstimmung: Falls die Bäume B1 und B2 den Annahmen sowie den Kriterien 1 und 2 genügen, so gibt es eine einzige maximale Übereinstimmung der Knoten von B1 und B2. 20.1.00 Change Detection in hierarchisch strukturierten Daten 20 „Matching“ Algorithmus 2 Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Algorithmus FastMatch: basiert auf Theorem der maximalen Übereinstimmung beinhaltet Funktion equal um Knoten zu vergleichen • Für Blätter: Equal liefert wahr, falls die Label der beiden untersuchten Blätter gleich und die Kosten für das Überschreiben nicht grösser als 1 sind. • Für Teilbäume: Equal liefert wahr, falls die Label der gemeinsamen Kinder der beiden Teilbäume gleich sind und der Schwellwert grösser als 0.5 ist. 20.1.00 Change Detection in hierarchisch strukturierten Daten 21 Erzeugung eines Edit-Skripts Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Erinnerung: B1 soll in B2 überführt werden unter Berücksichtigung der gefundenen Übereinstimmungen • 4 Phasen: - Alinier Phase - Insert Phase - Move Phase - Delete Phase • Start mit leerem Skript E • Jeder Schritt fügt eine Operation zu E hinzu 20.1.00 Change Detection in hierarchisch strukturierten Daten 22 Alinier Phase Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Alinieren = gematchte Knoten in dieselbe Reihenfolge bringen Im Bsp.: Kinder 3 und 4 des Knotens 1 resp. Kinder 13 und 14 des Knotens 11 sind nicht aliniert, da die Reihenfolge nicht übereinstimmt • Lösung: Move Operationen für alle nicht alinierten Knoten zum Edit-Skript hinzufügen Im Bsp.: MOV(4,1,2) zu E hinzufügen 20.1.00 Change Detection in hierarchisch strukturierten Daten 23 Nach Alinier Phase Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss B1 A 1 A 2 4 D D A A 3 A 12 11 B2 A 13 14 5 6 7 10 8 9 15 16 17 18 19 S(a) S(b) S(c) S(f) S(d) S(e) S(a) S(c) S(f) S(d) S(e) S(g) 20.1.00 Change Detection in hierarchisch strukturierten Daten 20 24 Insert Phase Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Beobachtung: Es gibt Blätter in B2, welche nicht mit einem Blatt in B1 gematcht sind Anmerkung: Die Elternknoten dieser Blätter müssen aber gematcht sein! Im Bsp.: Blatt 20, Eltern-Knoten 14 mit Knoten 3 • Lösung: Insert Operationen für alle in B1 fehlenden Blätter zum Edit-Skript hinzufügen Im Bsp.: INS((21,S,g),3,3) zu E hinzufügen 20.1.00 Change Detection in hierarchisch strukturierten Daten 25 Nach Insert Phase Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss Nach der Insert Phase haben alle Knoten von B2 einen Partner in B1, aber nicht umgekehrt! B1 A 1 A 2 4 D D A 5 6 7 10 8 S(a) S(b) S(c) S(f) S(d) 20.1.00 A 3 A 12 11 B2 A 13 14 21 15 16 17 18 19 S(e) S(g) S(a) S(c) S(f) S(d) S(e) S(g) 9 Change Detection in hierarchisch strukturierten Daten 20 26 Move Phase 1 Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Beobachtung: Es gibt gematchte Knoten- oder Blätterpaare, deren Eltern aber nicht gematcht sind Separates Beispiel, da dieser Zustand im laufenden Beispiel nicht vorkommt: B1 1 B2 A 20.1.00 B 2 B 3 12 6 7 8 9 15 16 S(f) S(g) S(d) S(c) S(g) S(c) Change Detection in hierarchisch strukturierten Daten 27 Move Phase 2 Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Lösung: Move Operationen für betroffene Knoten oder Blätter in B1 zum Edit-Skript hinzufügen Beispiel: B1 1 B2 A 20.1.00 B 2 B 3 12 6 7 8 9 15 16 S(f) S(g) S(d) S(c) S(g) S(c) Change Detection in hierarchisch strukturierten Daten 28 Delete Phase Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Beobachtung: Es gibt immer noch Blätter in B1, welche keinen Partner in B2 haben Im Bsp.: Blatt 6 • Lösung: Für jedes partnerlose Blatt eine delete Operation zum Editier-Skript hinzufügen Im Bsp.: DEL(6) zu E hinzufügen 20.1.00 Change Detection in hierarchisch strukturierten Daten 29 Nach Delete Phase Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss Am Ende der delete Phase ist B1 isomorph zu B2, und wir erhalten das vollständige Editier-Skript E. B1 A 1 A 2 4 D D A 5 7 10 8 S(a) S(c) S(f) S(d) 20.1.00 A 3 A 12 11 B2 A 13 14 21 15 16 17 18 19 S(e) S(g) S(a) S(c) S(f) S(d) S(e) S(g) 9 Change Detection in hierarchisch strukturierten Daten 20 30 Implementation Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Programm LaDiff Berechnet und stellt die Differenzen zwischen zwei verschiedenen Latex-Dokumenten dar • Parser bearbeitet Sätze, Absätze, Unterabschnitte, Abschnitte, Listen und Elemente der Dokumente • Mit LaDiff lassen sich ebenfalls andere strukturierte Dokumente wie HTML, XML oder SGML bearbeiten 20.1.00 Change Detection in hierarchisch strukturierten Daten 31 Qualität von FastMatch Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • FastMatch führt nur zu optimalen Resultaten, falls die Annahme 1 zutrifft • Fehlergrössen in Abhängigkeit vom Schwellwert Schwellwert: % mismatched : 0.5 0.6 0.7 0.8 0.9 1.0 0.4 1 3 7 9 10 Nicht optimale Resultate beziehen sich nur auf die Qualität des Edit-Skripts (nicht minimale Kosten) und nicht auf die Korrektheit des Schlussresultates! 20.1.00 Change Detection in hierarchisch strukturierten Daten 32 Zusammenfassung / Ausblick Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Bestimmung der Deltas in 2 Phasen aufgeteilt: – Finden von Übereinstimmungen (FastMatch) – Editier-Skript mit minimalen Kosten • Entsprechende Algorithmen implementiert für Latex- und andere strukturierte Dokumente • Verbesserung des Verhältnisses Qualität zu Performance wird angestrebt • Aber: Wo Erweiterung für Data Warehouses? 20.1.00 Change Detection in hierarchisch strukturierten Daten 33 Literaturangaben Einleitung Grundlagen „Good Matching“ Problem Generierung Editier-Skript Implementation Schluss • Sudarshan S. Chawathe, A. Rajaraman, H. Garcia-Molina and J. Widom. Change Detection in hierarchically structured information. SIGMOD Conf. 1996: 493-504 • Sudarshan S. Chawathe, A. Rajaraman, H. Garcia-Molina and J. Widom. Change Detection in hierarchically structured information. (1995) • Sudarshan S. Chawathe and H. Garcia-Molina. Meaningful Change Detection in structured data. (1997) 20.1.00 Change Detection in hierarchisch strukturierten Daten 34 Herzlichen Dank für die Aufmerksamkeit! Ausgangslage bei der Erzeugung des Editier-Skripts B1 A 1 A 2 D D A 3 4 A A 12 B2 11 A 13 14 5 6 7 8 9 10 15 16 17 18 19 S(a) S(b) S(c) S(d) S(e) S(f) S(a) S(c) S(f) S(d) S(e) S(b) 20.1.00 Change Detection in hierarchisch strukturierten Daten 20