Change Detection in hierarchisch strukturierten Daten

Werbung
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
Herunterladen