Vergleich von Methoden zum Graph Matching bei der Integration

Transcription

Vergleich von Methoden zum Graph Matching bei der Integration
Leibniz Universität Hannover
Institut für Praktische Informatik
Fachgebiet Datenbanken und Informationssysteme
Vergleich von Methoden
zum Graph Matching bei der
Integration von Datenbanken
von
Dennis Jaschniok
Masterarbeit
Erstprüfer: Prof. Dr. Udo Lipeck
Zweitprüfer: Dr. Hans Hermann Brüggemann
Abgabedatum: 30.09.2011
Erklärung der Selbstständigkeit
Hiermit versichere ich, dass ich die vorliegende Masterarbeit selbständig und ohne
fremde Hilfe verfasst und keine anderen als die in der Arbeit angegebenen Quellen und
Hilfsmittel verwendet habe. Die Arbeit hat in gleicher oder ähnlicher Form noch keinem
anderen Prüfungsamt vorgelegen.
Hannover, den 30. September 2011
Dennis Jaschniok
2
Inhaltsverzeichnis
1. Einleitung
1.1. Motivation und Schwerpunkte dieser Arbeit . . . . . . . . . . . . . . . . .
1.2. Gliederung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
5
2. Grundlagen
2.1. Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Mapping und Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
8
3. Matching-Verfahren
3.1. Geschichte . . . . . . . . . . . . . . . . . . . .
3.2. Klassifizierung von Matching-Verfahren . . .
3.3. Graph Matching . . . . . . . . . . . . . . . .
3.3.1. Besonderheiten des Graph Matchings
3.3.2. Graph Matching bei räumlichen Daten
4. Der
4.1.
4.2.
4.3.
4.4.
Similarity Flooding Algorithmus
Grundidee . . . . . . . . . . . . . . . . .
Vorbereitung . . . . . . . . . . . . . . .
Iteratives Berechnung der Ähnlichkeiten
Umgang mit den Ergebnissen . . . . . .
4.4.1. Constraints . . . . . . . . . . . .
4.4.2. Auswahl von 1-zu-1-Mappings . .
4.4.3. Auswahl von n-zu-m-Mappings .
5. Vergleich mit anderen
5.1. Cupid . . . . . .
5.2. Rondo . . . . . .
5.3. SASMINT . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
10
11
13
13
14
.
.
.
.
.
.
.
15
15
16
22
25
26
26
30
Verfahren
31
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6. Implementierung der Testumgebung
6.1. Anforderungen an die Testumgebung . . . . . .
6.2. Funktionen und Bedienung des Programmes . .
6.3. Paketstruktur . . . . . . . . . . . . . . . . . . .
6.4. Umgang mit Graphen . . . . . . . . . . . . . .
6.5. Umgang mit Relationalen Datenbankschemata
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
37
37
41
42
43
7. Empirische Befunde und Experimente zum Similarity Flooding
7.1. Befunde in der Literatur . . . . . . . . . . . . . . . . . . . . .
7.2. Experimente an Graphen . . . . . . . . . . . . . . . . . . . .
7.2.1. Experimentdurchführung . . . . . . . . . . . . . . . .
7.2.2. Anfangsähnlichkeiten . . . . . . . . . . . . . . . . . . .
7.2.3. Verwendung einer anderen Fixpunktformel . . . . . .
7.2.4. Zusammenfassung . . . . . . . . . . . . . . . . . . . .
7.3. Experimente an Relationalen Datenbankschemata . . . . . . .
7.3.1. Experimentaufbau . . . . . . . . . . . . . . . . . . . .
7.3.2. Ergebnisse ohne Vorverarbeitung . . . . . . . . . . . .
7.3.3. Ergebnisse unter Ausnutzung von Namensgleichheiten
tionen und Attributen . . . . . . . . . . . . . . . . . .
7.3.4. Ergebnisse unter Ausnutzung von Namensgleichheiten
tionen und Attributen mit manuellen Anpassungen . .
7.3.5. Ergebnisse einer iterierten Anwendung . . . . . . . . .
7.4. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
von Rela. . . . . .
von Rela. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
44
44
45
45
47
57
62
63
63
67
. 68
. 70
. 72
. 72
8. Fazit und Ausblick
74
A. Anhang – Für Experimente
A.1. Graph 1 . . . . . . . .
A.2. Graph 2 . . . . . . . .
A.3. Graph 3 . . . . . . . .
A.4. Graph 4 . . . . . . . .
A.5. Graph 5 . . . . . . . .
A.6. Graph 6 . . . . . . . .
A.7. Graph 7 . . . . . . . .
verwendete Graphen
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
B. Anhang – Für Experimente
B.1. Musiksammlung . . .
B.2. Bustouren . . . . . . .
B.3. Verlag . . . . . . . . .
B.4. Filmdatenbank . . . .
verwendete Schemata
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
C. Tabellen zu Kapitel 7.3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
79
80
81
83
84
86
88
90
.
.
.
.
92
92
95
98
101
104
4
1. Einleitung
1.1. Motivation und Schwerpunkte dieser Arbeit
Die Datenmengen, die heutzutage erhoben, gespeichert und verwaltet werden, sind enorm.
In vielen Bereichen sieht man sich dabei mit dem Problem konfrontiert, wie man mit unterschiedlichen Datenbestände umzugehen hat. Sei es in Data Warehouses, im Gebiet des
Semantic Webs, im E-Commerce oder bei der Integration von Schemata oder Ontologien,
häufig stehen Experten vor der Frage, wie Daten aus mehreren Quellen zusammengefügt
oder gemeinsam verwendet werden können.
Der Begriff der Integration nimmt hier eine große Bedeutung ein. Mit diesem Thema
befassen sich zum Beispiel die Autoren von [LN07]. Sie sprechen sogar davon, dass die
Hälfte aller IT-Kosten auf die Integration bestehender Systeme aufgewendet werden.
In dem Zusammenhang spielt der Begriff des Matchings eine wichtige Rolle. MatchingVerfahren dienen dazu, Gemeinsamkeiten zwischen den unterschiedlichen Datenbeständen zu finden und dadurch deren Handhabung zu unterstützen. Dieses Thema ist neben
den oben genannten Anwendungsgebieten unter anderem auch in der Biologie, wo man es
mit großen Gen-Datenbanken zu tun hat, und im Umfeld geographischer Datenbestände
von Bedeutung, wo man zum Beispiel verschiedene Straßenverzeichnisse zusammenfügen
muss.
Die Zahl von Verfahren für solche Matchings ist groß, die Unterschiede in der Funktionsweise ebenfalls.
Das Graph Matching stellt in diesem Zusammenhang einen Teilbereich des Matchings
dar, der im Rahmen dieser Arbeit näher betrachtet werden soll.
Ziel dieser Arbeit ist es, zunächst einen Überblick über das Graph Matching und
einige Verfahren zu liefern, bevor anschließend anhand von Experimenten bestimmte
Aspekte eines ausgewählten Verfahrens, des Similarity Flooding, analysiert und daraus
Empfehlungen entwickelt werden sollen, wie man es bei der Integration von Datenbanken verwenden kann. Außerdem wird ein Programm entwickelt, das als Umgebung für
Experimente im Rahmen dieser Arbeit und auch darüber hinaus verwendet werden kann.
Da der Bereich des Matchings sehr weit gefächert ist, soll der Schwerpunkt dieser
Arbeit dabei insbesondere auf dem Schema-Matching liegen.
1.2. Gliederung
Zu Beginn der Arbeit werden in Kapitel 2 grundlegende Begriffe erläutert, die für das
Verständnis der späteren Kapitel von Bedeutung sind. Kapitel 3 liefert die geschichtliche
5
Einordnung von Matching-Verfahren, klassifiziert sie nach bestimmten Kriterien und
geht auf die Besonderheiten des Graph Matchings ein.
Kapitel 4 befasst sich mit dem Similarity Flooding Algorithmus, der den Schwerpunkt
dieser Arbeit darstellt und als Grundlage für die späteren Experimente (in Kapitel 7)
dient. Hier wird insbesondere auf die Funktionsweise eingegangen, und es werden einige Aspekte erläutert, die in den Experimenten detaillierter betrachtet und analysiert
werden.
Kapitel 5 stellt drei weitere Graph Matching Verfahren vor und befasst sich mit
den Unterschieden zwischen ihnen und dem Similarity Flooding. In Kapitel 6 wird die
Testumgebung beschrieben, die im Rahmen der Arbeit entwickelt wurde.
Kapitel 7 befasst sich mit Experimenten und Befunden, die zum Similarity Flooding
durchgeführt bzw. ermittelt wurden. Dabei wird zunächst auf Ergebnisse aus der Literatur eingegangen, bevor in eigenen Experimenten bestimmte Aspekte des Algorithmus
überprüft und eigene Befunde ermittelt und dokumentiert werden.
In Kapitel 8 wird abschließend das Fazit gezogen und ein Ausblick auf zukünftige
Entwicklungen geliefert.
Anhang A enthält die in Kapitel 7 verwendeten Graphen. Anhang B zeigt die ebenfalls
in diesem Kapitel verwendeten Schemata, Anhang C die Tabellen mit den Ergebnissen
aus den Experimenten mit den Schemata in Kapitel 7.3.
6
2. Grundlagen
In diesem Kapitel sollen einige Begriffe definiert werden und damit Grundlagen für das
Verständnis dieser Arbeit gelegt werden.
2.1. Graphen
In der Graphentheorie unterscheidet man zwischen zwei Arten von Graphen:
Definition 2.1 Ein ungerichteter Graph G = (V, E) ist eine Datenstruktur bestehend
aus einer Menge von KnotenV und einer Menge von KantenE, die die Knoten verbinden.
Die Kantenmenge E ist eine Relation über V × V . Jede Kante von einem Knoten a zu
einem Knoten b wird dabei durch ein ungeordnetes Paar (a, b) bzw. eine Menge {a, b}
dargestellt.
In der Darstellung eines ungerichteten Graphen werden Knoten als Kreise mit Bezeichnern darin dargestellt, Kanten durch einfache Verbindungslinien zwischen den Knoten.
Definition 2.2 Ein gerichteter Graph G = (V, E) unterscheidet sich von einem ungerichteten dadurch, dass die Kanten durch geordnete Paare repräsentiert werden, also
zwischen (a, b) und (b, a) unterschieden wird.
In der Darstellung eines gerichteten Graphen werden Kanten durch Pfeile repräsentiert, wobei ein Pfeil von einem Knoten a zu einem Knoten b eine gerichtete Kante (a, b)
darstellt.
Beide Definitionen schließen aus, dass es in den Graphen zwei oder mehr Kanten von
einem Knoten a zu einem Knoten b geben kann.
Abbildung 2.1.: Ungerichteter (links) und gerichteter Graph (rechts)
7
Sowohl bei gerichteten als auch bei ungerichteten Graphen können in der Darstellung Markierungen an den Kanten eingetragen werden. In diesem Fall spricht man von
(kanten-) markierten gerichteten bzw. ungerichteten Graphen.
Die folgende Definition fasst einige weitere Begriffe aus der Graphentheorie zusammen:
Definition 2.3
i) Ein Pfad bezeichnet eine Folge von Knoten v1 , v2 , . . . , vk mit k ≥ 2, wobei zwei
aufeinanderfolgende Knoten vi , vi+1 durch eine Kante im Graphen verbunden sind.
ii) Ein Zyklus ist ein Pfad mit paarweise verschiedenen Knoten; nur der erste Knoten
muss mit dem letzten übereinstimmen. In ungerichteten Graphen wird k ≥ 4 für
Zyklen verlangt.
iii) Ein Teilgraph ist ein Graph, dessen Knoten und Kanten eine Teilmenge der ursprünglichen Knoten- bzw. Kanten-Menge bilden.
iv) Ein ungerichteter Baum ist ein ungerichteter Graph, bei dem alle Knoten durch
Pfade verbunden sind und keine Zyklen existieren.
v) Ein gerichteter Baum ist ein gerichteter Graph, in dem es ein v ∈ V gibt, sodass
für jedes w ∈ V genau ein Pfad von v nach w existiert. v wird als die Wurzel des
Baumes bezeichnet.
Abbildung 2.1 zeigt beispielhaft einen ungerichteten und einen gerichteten Graphen.
In beiden Graphen wäre (a, c, e) ein gültiger Pfad, während (d, c) nur in GA ein gültiger
Pfad wäre, nicht in GB . (c, d, e, c) stellt einen Zyklus in GA dar, während GB zyklenfrei
(oder azyklisch) ist. Da in GB außerdem alle Knoten durch Pfade vom Knoten a erreicht
werden können, handelt es sich dabei um einen Baum mit Wurzel a.
2.2. Mapping und Matching
Unter dem Begriff Mapping werden allgemein Korrespondenzen zwischen zwei Elementen
– also zum Beispiel zwei Attributen in einem Relationalen Datenbankschema – verstanden, die in irgendeiner Weise in Beziehung zueinander stehen. Im Kontext der Integration von Datenbanken sind hier insbesondere semantische Korrespondenzen gemeint,
das heißt Zusammenhänge, die aufgrund semantischer Gemeinsamkeiten zwischen den
Elementen der Schemata gefunden werden können. Zum Beispiel sind zwei Relationen
semantisch ähnlich, wenn sie Daten über dieselben oder ähnliche Objekte der Realwelt
enthalten.
Aus Mappings können Transformationen bzw. Transformationsanfragen abgeleitet
werden, mit denen sich die Daten eines Quellschemas in ein Zielschema überführen
lassen. Wie genau solche Transformationen aussehen können, wird in [LN07] ausführlich
anhand eines Beispiels erläutert, soll allerdings im Rahmen dieser Arbeit nicht weiter
vertieft werden. Ebenso werden dort ausführlich verschiedene Mapping-Situationen und
8
Möglichkeiten erläutert, wie Mappings zu interpretieren sind. Auch darauf soll hier nicht
vertiefend eingegangen werden.
Matching bezeichnet den Prozess des Auffindens von semantischen Korrespondenzen
zwischen Elementen, also des Ermittelns von Mappings. Speziell handelt es sich dabei
häufig um eine Operation, die genau zwei Schemata (oder zwei Ontologien) als Eingabe
bekommt und ein Mapping zwischen semantisch ähnlichen Elementen zurückliefert. Diese
Operation wird häufig als Match bezeichnet (vgl. [RB01]).
Matchings spielen in einer Vielzahl von Anwendungen eine Rolle, wie etwa bei der
Daten-Migration oder Schema-Integration. Ein Beispiel für eine typische Anwendung ist
die Fusion zweier Unternehmen aus derselben Branche, die beide gewisse Datenmengen
zur Verfügung haben, die allerdings unterschiedlich vollständig und auf verschiedene
Weise abgespeichert sind. Um sie in einer Datenbank zusammenzufügen, ist hier ein
Matching notwendig, das Mappings zwischen den Schemata der beiden Datenbestände
ermittelt.
Durch Matching-Verfahren wird heutzutage versucht, den Prozess des Matchings in
Teilen zu automatisieren, um mit großen Datenmengen umgehen zu können. Die Idee
dabei ist es, dass ein Matcher Schemata, Struktur und Daten analysiert und daraus Vorschläge für Korrespondenzen liefert, die von Domänenexperten akzeptiert oder abgelehnt
werden können (vgl. [LN07]).
9
3. Matching-Verfahren
3.1. Geschichte
Matching-Verfahren existieren schon seit vielen Jahren. Bereits in den frühen 80er Jahren
befasste man sich mit dem Problem, eine Menge unabhängiger Schemata zu integrieren.
Ziel ist es, Zusammenhänge zwischen den oft sehr unterschiedlichen Schemata zu finden
und zu nutzen.
In den frühen 90er Jahren ging es bei solchen Matchings hauptsächlich darum, spezifische Programme zu entwickeln, um Daten umzuwandeln. Hintergrund davon war
die immer stärkere Bedeutung des Web, sodass in diesem Zusammenhang etwa der
LATEX2HTML-Übersetzer entstanden ist, um Daten aus LATEX in webkompatibles HTML
umzuwandeln [Dra93]. Außerdem wurde die Integration von Daten in ein Data Warehouse populär, d.h. man versuchte verstärkt, Methoden zu finden, um Quelldaten in Form
von Relationalen Schemata in ein Format umzuwandeln, in dem es mit dem Format des
Data Warehouse kompatibel war ([RB01]).
Das Ziel von Verfahren wie dem LATEX2HTML-Übersetzer war es im Wesentlichen,
die zeitaufwändige und fehleranfällige manuelle Integrationsarbeit zu automatisieren
([RB01]). Da die Verfahren zunächst sehr spezifisch für eine Aufgabe waren, musste hier
viel Aufwand in die Programmierung investiert werden und für jedes Problem umfangreiches domänenspezifisches Wissen angeeignet werden ([MZ98]). Ab den späten 90er
Jahren ging es deswegen vermehrt darum, generischere Verfahren zu entwickeln, um verschiedene Arten von Eingabedaten – wie XML-Dateien, Realtionale Schemata o.ä. – mit
weniger Programmieraufwand matchen zu können.
[MZ98] stellt mit TranScm ein solches Verfahren vor, dass gleichzeitig auch eines
der ersten ist, welches Schemata graph-basiert matcht. Die Idee dabei ist, Quelldaten
mit Hilfe eines regel-basierten Systems mit Zieldaten zu matchen, um anschließend die
gematchten Quell- in die Zieldaten transformieren zu können. Dabei werden die Eingabedaten jeweils als Graphen dargestellt und anschließend Matches zwischen den Quellund Zieldaten gesucht, was durch eine Menge von Regeln geschieht, die auf die Graphen
angewandt werden.
Um die Jahrtausendwende herum entstanden eine ganze Reihe von Matching-Verfahren
mit teils sehr unterschiedlichen Ansätzen. Beispiel für solche Verfahren sind etwa SKAT,
LSD, ARTEMIS, CUPID und Similarity Flooding ([RB01]). Enorm wachsende Datenmengen im Web und im immer bedeutender werdenden E-Commerce-Bereich waren der
Antrieb dafür, dass sich Autoren sehr stark mit der Entwicklung von Matching-Verfahren
auseinandersetzten.
Obwohl auch in den Jahren nach der Jahrtausendwende eine Reihe neuer Verfahren
10
(etwa OLA oder Microsoft BizTalk Mapper) oder Varianten bestehender Verfahren (z.B.
NOM ) entstanden ([SE05]), stellte [Gal06] 2006 fest, dass sich trotz intensiver Forschung
bislang keines der entwickelten Schema-Matching-Verfahren durchgesetzt hat. Stattdessen würden immer noch ad-hoc-Lösungen eingesetzt, obwohl das Ziel der MatchingVerfahren eigentlich ja genau die Vermeidung solcher Lösungen sein sollte.
Neben den „klassischen“ Verfahren zum Matching von Schemata wurden vor allem
in den letzten knapp 12 Jahren vermehrt Verfahren zum Matchen von Ontologien verwendet. [Rah11] nennt hier unter anderem Falcon und Rimom aus dem Jahr 2006 und
Harmony, erstmals vorgestellt 2008.
Trotz vieler Fortschritte, die bei der Entwicklung von Schema-Matching-Verfahren in
den vorangegangenen Jahren gemacht wurden, bescheinigte [Rah11] diesen 2011 immer
noch Schwierigkeiten bei large-scale-Matchings, also Matchings in großem Umfang und
mit großen Datenmengen. So würden nach wie vor näherungsweise Mappings ermittelt
werden können, Anpassungen durch menschliche Experten wären nach wie vor nötig und
das Problem, gute Effektivität bei gleichzeitig guter Effizienz zu erreichen, wäre immer
noch nicht gelöst.
3.2. Klassifizierung von Matching-Verfahren
Da die Zahl von Matching-Verfahren stetig wächst, ist es sinnvoll, diese in bestimmte
Kategorien einzuteilen, um den Überblick behalten zu können. In der Literatur wurde
in [RB01] eine solche Klassifizierung vorgenommen, die in [SE05] in Teilen verändert
und erweitert wurde. Diese Klassifizierungen sollen in diesem Abschnitt kurz erläutert
werden. Da der Fokus dieser Arbeit auf dem Graph-Matching liegt, soll dabei insbesondere darauf eingegangen werden, an welcher Stelle sich dieses in den Kontext der
Schema-Matching-Verfahren einordnen lässt.
In [RB01] wird zunächst zwischen individuellen und kombinierten Matching-Ansätzen
(auch als Matcher bezeichnet) unterschieden. Individuelle Ansätze verwenden ein einzelnes Kriterium für das Matching. Sie können entweder ausschließlich schema-basiert
oder instanz-/inhalts-basiert sein. Kombinierte Matcher können entweder mehrere Ansätze zusammenfassen und anhand mehrerer Kriterien ihr Matching durchführen (hybride Matcher) oder die Ergebnisse mehrerer verschiedener Ansätze zusammenfassen
(Komposition).
Graph-Matching-Verfahren werden dabei den individuellen Matchern und dort den
ausschließlich schema-basierten zugeordnet. Im Normalfall werden keinerlei Daten für
das Matching benötigt, sondern lediglich Informationen aus den Schemata. Das Similarity Flooding, das in dieser Arbeit besonders intensiv betrachtet werden soll, kann
dabei in gewissem Sinne als Ausnahme betrachtet werden, denn dabei wird für das Matching selbst zwar ausschließlich die Struktur der Schemata herangezogen, in der Vorverarbeitungsphase sind aber auch weitere Kriterien möglich, die eventuell andere Daten
benötigen (wie zum Beispiel Wörterbücher oder Thesauri).
Auf der nächst-niedrigeren, detaillierteren Ebene unterscheidet man bei den ausschließlich schema-basierten Matchern zwischen Element-Ebene und Struktur-Ebene. Auf
11
Abbildung 3.1.: Klassifizierung von Matching-Verfahren nach [RB01]
der Element-Ebene sind Verfahren zu finden, deren Matching-Kriterien jeweils einzelne
Elemente der Schemata auf der niedrigsten (atomaren) Ebene betrachten, also zum Beispiel Attribute. Im Gegensatz dazu werden auf der Struktur-Ebene Zusammenhänge
zwischen einzelnen Elementen berücksichtigt. Graph-Matching-Verfahren fallen somit in
letztere Kategorie.
Abbildung 3.1 zeigt die Klassifizierungen, wie sie in [RB01] gemacht werden. Die
Stelle, an der die Graph-Matching-Verfahren eingeordnet werden, ist dabei hervorgehoben. Unterhalb der letzten Ebene sind noch weitere Kriterien denkbar, nach denen die
Verfahren eingeteilt werden können, auf die allerdings nicht näher eingegangen werden
soll.
Während [RB01] allgemein Matching-Verfahren klassifiziert, beschränkt sich [SE05]
auf schema-basierte Verfahren, betrachtet also nur einen Teilbaum der Klassifizierung in
Abbildung 3.1. Dafür wird hier eine detailliertere Klassifizierung vorgenommen, welche in
zwei Bereiche eingeteilt ist, die jeweils baumartig strukturiert sind (vgl. Abbildung 3.2).
Der obere Bereich klassifiziert nach der Granularität der Matches und anschließend
danach, wie die jeweilige Technik Informationen aus der Eingabe interpretiert. Die Einteilung nach der Granularität wird dabei wie schon in [RB01] nach Element- und StrukturEbene vorgenommen. Unterhalb dieser Ebenen wird zwischen syntaktisch (nur die Struktur ist für die Interpretation der Eingabe relevant), extern (zusätzliche Hilfsinformationen werden verwendet) und semantisch (formale Semantik als Basis für Interpretation)
unterschieden. Nach dieser Klassifizierung befindet sich das Graph-Matching-Verfahren
– wie in Abbildung 3.2 hervorgehoben – unterhalb der Struktur-Ebene und bei den
syntaktischen Verfahren.
Die zweite Klassifizierung im unteren Baum geschieht anhand der Art der Eingabe.
Hier wird zunächst zwischen terminologischen, strukturellen und semantischen Eingaben unterschieden. Bei terminologischen handelt es sich um Zeichenketten, die entweder
String-basiert sind, das heißt die Eingabe als Zeichenkette betrachten, oder die Ter-
12
Abbildung 3.2.: Klassifizierung von Matching-Verfahren nach [SE05]
me als linguistische Objekte auffassen, in denen bestimmte Teile wie etwa Wortstämme
identifiziert werden können. Bei strukturellen Verfahren wird weiter nach internen und
relationalen unterschieden. Interne betrachten die interne Struktur der Elemente, während relationale die Beziehungen zwischen mehreren Elementen betrachten. Von dieser
Klassifizierung aus gesehen befinden sich Graph-Matching-Verfahren also bei den relationalen strukturellen Verfahren.
3.3. Graph Matching
Nachdem der vorherige Abschnitt einen Überblick darüber geliefert hat, wo man seine
Verfahren einordnen kann, soll hier speziell auf das Thema Graph Matching und seine
Besonderheiten eingegangen werden sowie ein Überblick über Forschungen an der Leibniz
Universität Hannover in Bezug auf Graph Matching von räumlichen Daten geliefert
werden.
3.3.1. Besonderheiten des Graph Matchings
Die Idee, Graphen zu verwenden, um damit Matchings zu ermitteln, ist vermutlich auf
zwei Aspekte zurückzuführen. In der Graphentheorie beschäftigt man sich schon sehr
lange mit der Frage, wie man Ähnlichkeiten zwischen zwei Graphen finden kann. So
wurde zum Beispiel im Jahr 1976 in [Ull76] ein Verfahren vorgestellt, das Isomorphismen
zwischen zwei Graphen ermittelt – Jahre bevor die Suche nach Matching-Verfahren für
Schemata begann. Das Verfahren von Ullman kann ausschließlich auf zwei Graphen G1
und G2 angewandt werden, bei denen der eine im anderen enthalten ist, und arbeitet in
13
einer Laufzeit von O(n2 ).
Da in der Graphentheorie somit schon eine Reihe von Verfahren und Überlegungen
vorhanden waren, lag der Versuch nahe, diese auch auf Schemata bzw. allgemein auf
andere Datenstrukturen zu übertragen.
Hinzu kommt, dass die Verwendung von Graphen in Matching-Verfahren sehr viel
mehr Möglichkeiten von Eingabewerten bietet als andere Verfahren. Theoretisch können
als Eingabe alle Datenstrukturen verwendet werden, die sich in geeigneter Form als
Graphen darstellen lassen. Dadurch sind Graph-Matching-Verfahren weitaus generischer
und können in mehr Bereichen eingesetzt werden als Verfahren, die zum Beispiel nur auf
Basis von XML arbeiten und deshalb nur XML-Dateien als Eingaben akzeptieren.
Das erste Graph-Matching-Verfahren ist – wie bereits in Kapitel 3.1 erwähnt – TranScm aus dem Jahr 1998, vorgestellt in [MZ98]. Dabei wurde genau die grundsätzliche
Idee hinter Graph-Matching-Verfahren verfolgt, nämlich ein Verfahren zu entwickeln,
um mit verschiedenen Formaten von Daten umgehen und daraus Matchings bestimmen
zu können. Seit diesem ersten Verfahren entstanden noch eine Reihe weiterer, wie zum
Beispiel Cupid, Rondo, SASMINT und das Similarity Flooding, von denen im Rahmen
dieser Arbeit besonders das Similarity Flooding aus dem Jahr 2001 im Fokus steht.
3.3.2. Graph Matching bei räumlichen Daten
Ein Forschungsgebiet an der Leibniz Universität Hannover, in dem Graph Matching
Verfahren eine wichtige Bedeutung spielen, ist das Matching von räumlichen Daten.
Ziel dabei ist es, geographische Datenbestände wie etwa Straßenkarten zu matchen,
die verschiedene Detaillierungsgrade aufweisen und unterschiedliche Erfassungskriterien
verwenden.
Im Rahmen dieses Themas wurde in [Tie03] zunächst ein Modell entwickelt, das räumliche Datenbanken um topologische Informationen erweitert und es ermöglicht, bestimmte topologische Integritätsbedingungen zu erstellen. Dieses Modell stellt die Grundlage
für eine Reihe weiterer Arbeiten dar. So wird zum Beispiel in [Rip04] mit dem BFSMatching-Verfahren ein Graph Matching Verfahren vorgestellt, das auf räumlichen Datenbeständen arbeiten kann. Ebenso wird der Algorithmus von Ullman (vgl. [Ull76]) in
einer modifizierten Version darauf angewandt. [Sch09] stellt mit dem GeoFoed-Matching
ein Verfahren dar, das an der Leibniz Universität zum Matching geographischer Daten
entwickelt wurde.
Auch wenn also bereits einige Verfahren existieren, um räumliche Daten zu matchen,
ist die Suche nach weiteren und eventuell besseren Verfahren noch nicht abgeschlossen. Obwohl der Schwerpunkt dieser Arbeit wie anfangs erwähnt eher auf dem SchemaMatching und nicht auf dem Matching räumlicher Daten liegt, stellt sich natürlich die
Frage, ob sich Verfahren wie das Similarity Flooding unter Umständen ebenso für ein
solches Matching von räumlichen Datenbeständen eignen.
14
4. Der Similarity Flooding Algorithmus
In diesem Kapitel soll der in [MGMR01] vorgestellte Similarity Flooding Algorithmus
ausgearbeitet werden. Dazu wird zunächst der Grundgedanke vorgestellt, bevor im Verlauf des Kapitels näher in die Details des eigentlichen Ablaufs des Algorithmus eingegangen und zum Schluss dargestellt wird, wie mit den Ergebnissen aus dem Algorithmus
umzugehen ist.
4.1. Grundidee
Der Similarity Flooding Algorithmus entstand aus der Idee heraus, einen „einfachen
strukturellen Algorithmus“ zu entwickeln, der in der Lage ist, unterschiedliche Datenstrukturen zu „matchen“ und so ein „breites Spektrum verschiedener Szenarien“ abzudecken (vgl. [MGMR01]). Dabei sollte es nicht das Ziel sein, einen vollautomatischen
Algorithmus zu entwickeln, der komplett ohne manuelle Nachbearbeitung das Matching
durchführt. Vielmehr gibt der Similarity Flooding Algorithmus angewandt auf zwei Datenstrukturen (im Folgenden auch als Modelle bezeichnet) Vorschläge über potenzielle
Matching-Kandidaten zurück, aus denen anschließend von Menschen die korrekten Kombinationen von Matches herausgesucht werden müssen.
Der Grundgedanke hinter dem Algorithmus ist es, die zu matchenden Modelle zunächst in gerichtete, markierte Graphen umzuwandeln, um in diesen Graphen anschließend iterativ Ähnlichkeiten zwischen Knoten zu berechnen. Auf diese Weise wird es
ermöglicht, dass das Verfahren trotz verschiedenartiger Modelle (z.B. ein XML- und ein
relationales Schema) mögliche Matching-Kandidaten findet. Näheres zu den Umwandlungen der Modelle in Graphen wird in Kapitel 4.2 erläutert.
Die Berechnung der Ähnlichkeiten basiert auf der Idee, dass die Elemente von zwei unterschiedlichen Modellen genau dann ähnlich sind, wenn angrenzende Elemente ähnlich
sind. Auf Graphen zurückgeführt bedeutet das, dass die Ähnlichkeiten von Knoten abhängig von den Ähnlichkeiten der angrenzenden Knoten sind, die wiederum ebenfalls von
ihren angrenzenden Knoten abhängig sind und so weiter. Auf diese Weise „fließen“ Ähnlichkeiten durch den Graphen, woraus auch der Name „Similarity Flooding“ entstanden
ist. Kapitel 4.3 stellt die näheren Details des Ablaufs des Algorithmus dar.
Als Ergebnis dieses „Flusses“ erzeugt der Algorithmus eine Menge von Zuordnungen
von Ähnlichkeitswerten zu Paaren von Knoten, die als Mapping bezeichnet wird. Diese
Mappings stellen noch nicht die Ergebnisse dar, die als Ausgabe aus dem Algorithmus
geliefert werden und anschließend von Menschen weiter verarbeitet werden sollen. Stattdessen werden sie intern – und je nach Anwendungsgebiet unterschiedlich – gefiltert,
um so eine besser überschaubare Menge an Ergebnissen zu bekommen. Näheres zu den
15
Abbildung 4.1.: Zwei zu matchende Modelle
Filtern und dem Umgang mit den Ergebnissen wird in Kapitel 4.4 beschrieben.
4.2. Vorbereitung
Für den Ablauf des Similarity Flooding Algorithmus ist es – wie bereits in Kapitel
4.1 erwähnt – notwendig, die zu matchenden Modelle zunächst in gerichtete, markierte
Graphen zu transformieren. Da es sich bei den Modellen um sehr unterschiedliche Datenstrukturen handeln kann, soll hier zunächst nicht näher darauf eingegangen werden,
wie für jede einzelne Struktur ein entsprechender Graph erzeugt werden kann. Vielmehr
wird vorausgesetzt, dass es eine entsprechende Prozedur oder Methode gibt, durch die
ein gerichteter, markierter Graph aus einem Modell erzeugt wird. Kapitel 7.3 stellt im
Rahmen der Experimente eine Methode vor, wie man Relationale Datenbankschemata
transformieren kann.
In den durch die Transformation erstellten Graphen für die zu matchenden Modelle
kann jede Kante durch ein Tripel (s, p, o) dargestellt werden. Dabei ist s der Quellknoten,
o der Zielknoten und p das Label, das die Kante beschriftet (oder die Markierung).
Aufgrund dieser Voraussetzung, dass alle Modelle in Graphen überführt werden können, wird im Folgenden nicht immer streng zwischen den Begriffen Modell und Graph
für ein Modell unterschieden. Der Begriff Knoten wird dabei sowohl für die Elemente
des Graphen als auch für die des Modells verwendet, um unnötige Verdopplungen bei
den Begrifflichkeiten zu vermeiden. Ebenso soll der Begriff der Kante für Modelle und
Graphen analog verwendet werden, wobei hier stets von gerichteten Kanten die Rede
ist.
Abbildung 4.1 zeigt zwei Modelle A und B, an denen beispielhaft der Ablauf des
Similarity Flooding Algorithmus näher erläutert werden soll.
Um die Ähnlichkeiten zwischen den Knoten der Modelle berechnen zu können, werden
die beiden Modelle zunächst in einen Pairwise Connectivity Graph (PCG) und anschließend in einen sogenannten Similarity Propagation Graph (SPG) überführt.
16
Definition 4.1 Seien A und B zwei Modelle, x, x0 Knoten in A, y, y 0 Knoten in B.
Ferner sei (x, p, x0 ) ∈ A eine mit p beschriftete Kante in A, (y, p, y 0 ) ∈ B eine mit
demselben p beschriftete Kante in B. Dann gilt für alle Kanten des Pairwise Connectivity
Graph (PCG) zu A und B:
((x, y), p, (x0 , y 0 )) ∈ P CG(A, B) ⇔ (x, p, x0 ) ∈ A und (y, p, y 0 ) ∈ B
Ein Knoten (a, b) eines PCG stellt dabei ein Element aus A × B dar und wird als Map
Pair bezeichnet.
Definition 4.1 setzt voraus, dass es in den beiden Modellen A und B gleich beschriftete
Kanten gibt. Andernfalls würde es im PCG weder Knoten noch Kanten geben und der
Algorithmus würde nicht mehr funktionieren.
Um zu gewährleisten, dass der Algorithmus funktioniert, wird – auch wenn es von
den Entwicklern des Algorithmus nicht explizit erwähnt wird – davon ausgegangen, dass
nach der Umwandlung der Modelle in Graphen der Durchschnitt der beiden Markierungsmengen nichtleer ist, es also mindestens eine gleich beschriftete Kante in beiden
Graphen gibt. Da – unabhängig von der Art der zu matchenden Modelle – immer gewisse strukturelle Gemeinsamkeiten zwischen zwei Modellen entdeckt werden können,
kann davon ausgegangen werden, dass diese Bedingung für jede Art von betrachteten
Modellen erfüllt werden kann.
Um einen PCG aus den beiden Graphen (bzw. Modellen) für A und B zu bekommen,
geht man, der Definition 4.1 folgend, so vor: Wenn es eine Kante zwischen zwei Knoten
x und x0 in A gibt, die mit einem Label p beschriftet ist, und es eine ebenso beschriftete
Kante zwischen zwei Knoten y und y 0 in B gibt, fügt man die Knoten (bzw. Map Pairs)
(x, y) und (x0 , y 0 ) – sofern sie noch nicht vorhanden sind – sowie eine Kante zwischen
ihnen im PCG ein.
Die Idee hinter dieser Konstruktion ist, dass für den Fall, dass zwei Knoten x und
x0 in A ähnlich sind, wahrscheinlich auch die zwei Knoten y und y 0 in B, die über
eine gleich beschriftete Kante verbunden sind, ähnlich sind. Daraus resultiert die Kante
zwischen den beiden Map Pairs (x, y) und (x0 , y 0 ) im PCG. Das gemeinsame Label p aus
den beiden Modellgraphen wird dabei auch in den PCG übernommen, um Rückschlüsse
darauf liefern zu können, woraus die Map Pairs und der PCG entstanden sind. (x, y)
und (x0 , y 0 ) werden auch als Nachbarn bezeichnet.
Die Konstruktion eines Pairwise Connectivity Graph aus zwei Modellen A und B
kann durch die Methode erzeugePCG erfolgen, die im Pseudocode 4.1 dargestellt ist. Sei
n die Anzahl der Kanten in Modell A, m die Anzahl der Kanten in Modell B. Dann hat
der Algorithmus zur Konstruktion des PCG eine Komplexität von O(n ∗ m).
17
Abbildung 4.2.: Pairwise Connectivity Graph zu A und B
Pseudocode 4.1: erzeugePCG(Modell A, Modell B)
pcg ← 0;
for each Kante (a1 , a2 ) aus A mit Label la do
for each Kante (b1 , b2 ) aus B mit Label lb do
if (la = lb ) then
if (a1 , b1 ) ∈
/ pcg then
füge (a1 , b1 ) zu pcg hinzu;
if (a2 , b2 ) ∈
/ pcg then
füge (a2 , b2 ) zu pcg hinzu;
füge Kante ((a1 , b1 ), la , (a2 , b2 )) zu pcg hinzu;
return pcg;
Abbildung 4.2 zeigt den PCG, der aus den Modellen A und B aus Abbildung 4.1
entsteht. Dabei wurde z.B. der Knoten (a4 , b2 ) erzeugt, weil sowohl vom Knoten a4 in A
als auch vom Knoten b2 in B eine Kante mit dem Label l2 ausgeht. Der Knoten (a2 , b3 )
und die l2 -Verbindung zwischen (a4 , b2 ) und (a2 , b3 ) resultiert daraus, dass es in A eine
l2 -Kante von a4 nach a2 und in B eine l2 -Kante von b2 nach b3 gibt.
Definition 4.2 Seien A und B zwei Modelle und pcg der Pairwise Connectivity Graph
zu A und B. Dann kann der zugehörige Similarity Propagation Graph (SPG) spg durch
die folgenden beiden Modifikationen aus pcg erzeugt werden:
1. Füge für jede Kante von pcg eine neue Kante (eine sogenannte Rückkante) in spg
ein (sofern sie nicht bereits existiert), die in die entgegengesetzte Richtung weist
wie die Kante in pcg
2. Gewichte jede Kante von pcg mit einem Wert im Intervall von 0 und 1
Die Kantengewichte im SPG werden dabei als Propagation-Koeffizienten bezeichnet.
18
Gemäß der Definition wird also zunächst für jede Kante im PCG eine zweite Kante eingefügt, die in die entgegengesetzte Richtung führt, es sei denn, diese ist bereits
vorhanden. Zudem werden alle Kanten gewichtet, um auszudrücken, wie gut die Ähnlichkeiten zwischen zwei Map Pairs an ihre Nachbarn weitergegeben werden können.
Diese Propagation-Koeffizienten werden durch eine Funktion ω((a, b), (x, y)) beschrieben, welche der Kante zwischen den Map Pairs (a, b) und (x, y) im SPG einen Wert aus
[0, 1] zuweist.
Pseudocode 4.2 zeigt die Methode erzeugeSPG, die einen Similarity Propagation
Graph aus einem gegebenen PCG und zwei Modellen erzeugt. Die Komplexität dieser
Methode ist dabei linear bezogen auf die Anzahl der Kanten im PCG.
Pseudocode 4.2: erzeugeSPG(PCG pcg)
spg ← 0;
for each Kante ((a1 , a2 ), p, (b1 , b2 )) ∈ pcg do
if Kante ((b1 , b2 ), q, (a1 , a2 )) ∈
/ pcg then
füge Kante ((b1 , b2 ), null, (a1 , a2 )) zu spg hinzu;
for each Kante ((a1 , a2 ), p, (b1 , b2 )) ∈ spg do
gewichte Kante ((a1 , a2 ), p, (b1 , b2 )) mit ω((a1 , a2 ), (b1 , b2 ));
return spg;
Die Autoren von [MGMR01] stellen für die Berechnung der Propagation-Koeffizienten
sieben verschiedene Formeln vor, deren Qualität sie in Experimenten verglichen haben.
Beispielhaft sollen im Rahmen dieser Arbeit zwei der Formeln vorgestellt werden, von
denen die eine Verwendung in den Beispielen im weiteren Verlauf dieses Kapitels findet, während die andere sich laut Autoren als die beste der Formeln für das Similarity
Flooding herausgestellt hat.
Der Vollständigkeit halber sind alle sieben Formeln in Tabelle 4.1 aufgeführt. Dort
wird für die Notation der Propagation-Koeffizienten eine etwas andere Schreibweise verwendet, als es mit der Funktion ω der Fall ist. Während ω das Gewicht zwischen zwei
Map Pairs bezogen auf den PCG angibt, wird in Tabelle 4.1 eine Schreibweise verwendet,
die ausschließlich Bezug auf die Modelle nimmt. Dabei berechnet πl (hx, p, Ai, hy, q, Bi)
den Propagation-Koeffizienten der ausgehenden Kante bzw. Kanten des Map Pairs (x, y)
und πr (hx, p, Ai, hy, q, Bi) den der eingehenden Kante bzw. Kanten des Map Pairs (x, y).
Für die Berechnung der Ähnlichkeit eines Map Pairs (a, b) wird also für die eingehenden
Kanten vom Map Pair (x, y) der Wert πl (hx, p, Ai, hy, q, Bi) berechnet, der dem Wert
ω((a, b), (x, y)) entspricht.
Es sei an dieser Stelle darauf hingewiesen, dass die Schreibweise, die in der Tabelle
verwendet wird, lediglich zur Verdeutlichung der Unterschiede der beiden hier vorgestellten Formeln dienen soll. Darüber hinaus soll sie zeigen, dass die Berechnung der
Propagation-Koeffizienten auch allgemeiner (also ohne den PCG) erfolgen kann. Für die
Beispiele im weiteren Verlauf dieses Kapitels soll dann allerdings wieder die etwas kürzere und anschaulichere Schreibweise mit ω verwendet werden, die die Berechnung der
19
p=q
p 6= q
Inverser Durchschnitt
2
card{l,r} (x,p,A)+card{l,r} (y,q,B)
0
Inverses Produkt
1
card{l,r} (x,p,A)·card{l,r} (y,q,B)
0
Inverser
Gesamtdurchschnitt
2
card{l,r} (x,p)+card{l,r} (y,q)
0
Inverses
produkt
1
card{l,r} (x,p)·card{l,r} (y,q)
0
4
(card{l,r} (p,A)+card{l,r} (q,B))·(card{l,r} (c,p,A)+card{l,r} (y,q,B))
0
Ansatz
Gesamt-
Kombinierter inverser
Durchschnitt
Stochastisch
P
∀p0
1
(card{l,r} (x,p0 ,A)·card{l,r} (y,p0 ,B))
Konstant
1.0
Tabelle 4.1.: Berechnungsformeln für die Propagation-Koeffizienten
20
0
0
Abbildung 4.3.: Similarity Propagation Graph zu A und B
Propagation-Koeffizienten bezogen auf zwei Map Pairs im PCG berechnet.
Die beiden hier vorgestellten Formeln für π berechnen die Propagation-Koeffizienten
in Abhängigkeit der Anzahl eingehender und ausgehender Kanten in den Modellen A
und B. Die inverse Produktformel berechnet zum Beispiel π dabei wie folgt:
π{l,r} (hx, p, Ai, hy, q, Bi) =


1
card{l,r} (x,p,A)·card{l,r} (y,q,B) ,
wenn p = q
wenn p 6= q
0,
Da die Formel π für die ausgehenden (πl ) und eingehenden (πr ) Kanten gleichermaßen
berechnet wird, wird hier abkürzend die Schreibweise π{l,r} verwendet. cardl (x, p, M ) =
|{(x, p, t)|∃t : (x, p, t) ∈ M }| bezeichnet die Anzahl der ausgehenden Kanten eines Knotens x mit dem Label p in M und cardr (x, p, M ) = |{(t, p, x)|∃t : (t, p, x) ∈ M }| die
Anzahl der eingehenden, mit p beschrifteten Kanten. card{l,r} ist ebenfalls eine abkürzende Schreibweise, wobei gilt:
(
card{l,r} (x, p, A) =
cardl (x, p, A),
cardr (x, p, A),
wenn πl berechnet wird
wenn πr berechnet wird
Um nach der inversen Produktformel zum Beispiel den Propagation-Koeffizienten der
ausgehenden Kanten eines Map Pairs (a, b) für zwei Modelle A und B mit a ∈ A und
b ∈ B zu berechnen, wird die Anzahl der ausgehenden Kanten des Knotens a in Modell
A mit der Anzahl der ausgehenden Kanten des Knotens b in Modell B multipliziert und
das Ergebnis invertiert. Voraussetzung ist wie bei der Konstruktion des PCG, dass es
überhaupt gleich beschriftete Kanten gibt, die von a und b ausgehen. Ansonsten wird
als Wert für den Propagation-Koeffizienten 0 zurückgegeben, der darauf hinweist, dass
es im PCG der Modelle A und B keine ausgehende Kante des Map Pairs (a, b) gibt.
Abbildung 4.3 zeigt den zu A und B gehörenden SPG. Für die Berechnung des
Propagation-Koeffizienten einer Kante ((x1 , y1 ), p, (x2 , y2 )) wurde hier die inverse Pro-
21
duktformel verwendet. Der Propagation-Koeffizient ω((a4 , b2 ), (a2 , b3 )) = 0.5 der Kante
zwischen (a4 , b2 ) und (a2 , b3 ) kommt demnach dadurch zustande, dass es vom Knoten
(a4 , b2 ) genau zwei ausgehende l2 -Kanten gibt, sodass sich der Wert als ω((a4 , b2 ), (a2 , b3 )) =
1
2 = 0.5 ergibt.
Der Propagation-Koeffizient ω((a2 , b2 ), (a1 , b1 )) = 1.0 ergibt sich deshalb, weil nur
eine einzige mit l1 beschriftete Kante aus a2 b2 ausgeht bzw. in a1 b1 eingeht.
Die zweite hier vorgestellte Möglichkeit für die Berechnung der Propagation-Koeffizienten
ist die Verwendung der inversen Durchschnittsfunktion. Diese berechnet π wie folgt:
π{l,r} (hx, p, Ai, hy, q, Bi) =


2
card{l,r} (x,p,A)+card{l,r} (y,q,B) ,
wenn p = q
wenn p 6= q
0,
Hier wird also statt einer Produktbildung der Kardinalitäten wie in der inversen Produktformel auf die Durchschnittsbildung zurückgegriffen. Der Propagation-Koeffizient
ω((a4 , b2 ), (a2 , b3 )) des Graphen aus Abbildung 4.3 würde in diesem Fall den Wert 0.6
ergeben, weil es in Modell A zwei ausgehende l2 -Kanten von a4 sowie eine von b2 gibt,
2
sodass sich der Wert als 2+1
= 32 = 0.6 ergibt.
Die Autoren bescheinigen dabei der inversen Durchschnittsfunktion eine bessere Performanz und verweisen diesbezüglich auf von ihnen durchgeführte empirische Studien,
die das belegen.
4.3. Iteratives Berechnung der Ähnlichkeiten
Nachdem die Modelle nun in einen Similarity Propagation Graph überführt vorliegen,
beginnt der eigentliche Ablauf des Algorithmus.
Definition 4.3 Seien A und B zwei Modelle. Dann bezeichnet σ(x, y) ≥ 0 die Ähnlichkeit zweier Knoten x ∈ A und y ∈ B, definiert als totale Funktion über A × B.
σ wird dabei als Mapping bezeichnet und seine Werte iterativ berechnet. σ i gibt das
Mapping zwischen A und B nach der i-ten Iteration an, σ 0 die anfängliche Ähnlichkeit
(oder Anfangsähnlichkeit) zwischen den Knoten von A und B. Diese Anfangsähnlichkeit kann dabei zum Beispiel mit Hilfe von Zeichenketten-Vergleichen der Knoten-Label
berechnet werden.
Ist zu Beginn keine Ähnlichkeit zwischen Knoten verfügbar (wie es im Beispiel in
Kapitel 4.2 der Fall ist), kann hier ein Wert von σ 0 (x, y) = 1.0 für alle (x, y) ∈ A × B
angenommen werden. Wie der Ablauf des Algorithmus durch die Wahl der Anfangsähnlichkeiten beeinflusst wird, wird in Kapitel 7 genauer untersucht. Zur Veranschaulichung
des Verfahrens soll hier die Vereinfachung mit gleichen Werten 1.0 reichen.
Im i-ten Iterationsschritt des Similarity Flooding wird der Wert von σ i+1 eines Map
Pairs (x, y) aus dem alten Wert σ i von (x, y), den σ-Werten der Nachbarknoten und den
Propagation-Koeffizienten der Kanten, die von den Nachbarknoten zu (x, y) bzw. von
(x, y) zu den Nachbarknoten führen, neu berechnet. Formell lässt sich diese Berechnung
22
durch die Formel
σ i+1 (x, y) = σ i (x, y) + ϕ(σ i )(x, y)
darstellen, wobei gilt:
ϕ(σ i (x, y)) =
X
σ i (au , bu ) · ω((au , bu ), (x, y))
(au ,p,x)∈A,(bu ,p,y)∈B
+
X
σ i (av , bb ) · ω((av , bv ), (x, y))
(x,p,av )∈A,(y,p,bv )∈B
Aufgrund der Berechnung des neuen σ-Wertes als Summe würden die Ähnlichkeitswerte im Verlauf der Iterationen monoton wachsen, weshalb eine Normalisierung der
σ-Werte nach jeder Iteration nötig ist. Das bedeutet, dass alle Werte am Ende einer
Iteration durch den maximalen σ-Wert, der in der Iteration berechnet wurde, dividiert
werden. Anschließend hat man somit nur Ähnlichkeitswerte im Bereich von 0 bis 1 für
die nächste Iteration.
Pseudocode 4.3 stellt die Funktion berechneÄhnlichkeiten dar, die die iterativen Berechnungen der σ-Werte für jeden Knoten eines gegebenen SPG durchführt. Dabei führt
die normalisieren-Funktion die oben genannte Normalisierung durch. Die Komplexität
der Methode ist dabei O(nKnoten ∗ nKanten ), wobei nKnoten und nKanten die Anzahl der
Knoten bzw. Kanten im SPG sind.
Pseudocode 4.3: berechneÄhnlichkeiten(SPG spg)
for each Knoten (a1 , b1 ) ∈ spg do
σneu (a1 , b1 ) ← σ(a1 , b1 )
for each Kante ((a1 , b1 ), l, (a2 , b2 )) ∈ spg do // ausgehende Kanten
σneu (a1 , b1 ) = σneu (a1 , b1 ) + σ(a2 , b2 ) · ω((a1 , b1 ), (a2 , b2 ));
for each Kante ((a2 , b2 ), l, (a1 , b1 )) ∈ spg do // eingehende Kanten
σneu (a1 , b1 ) = σneu (a1 , b1 ) + σ(a2 , b2 ) · ω((a2 , b2 ), (a1 , b1 ));
for each Knoten (a1 , b1 ) ∈ spg do
σ(a1 , b1 ) = normalisieren(σneu (a1 , b1 ))
Tabelle 4.2 stellt den Verlauf der normalisierten Ähnlichkeitswerte des SPG aus Abbildung 4.3 über mehrere Iterationen dar. Als Anfangsähnlichkeiten wurde hier σ 0 = 1.0 für
alle Map Pairs angenommen. Gemäß der Formel berechnet sich zum Beispiel der Wert für
σ 1 (a1 , b3 ) als σ 1 (a1 , b3 ) = σ 0 (a1 , b3 )+σ 0 (a1 , b3 )·ω((a1 , b3 ), (a2 , b1 )) = 1.0+1.0·1.0 = 2.0,
aufgrund der Normalisierung mit dem maximal erreichten Wert in der Iteration (in diesem Fall der Wert 3.0) ergibt sich daraus σ 0 (a1 , b3 ) = 23 = 0.6.
Schon nach den dargestellen fünf Iterationen kann man erkennen, dass der Ähnlichkeitswert für (a1 , b1 ) konstant bei 1.0 bleibt, die Werte für (a2 , b2 ) und (a3 , b4 ) gegen 0.71
konvergieren und die Ähnlichkeiten der restlichen Map Pairs immer weiter gegen 0 konvergieren. Würde man noch weitere Iterationen durchführen, könnte man beobachten,
dass die Ähnlichkeitswerte für (a1 , b3 ), (a2 , b1 ), (a2 , b3 ), (a3 , b3 ) und (a4 , b2 ) tatsächlich
23
σi
Map Pair
(a1 , b1 )
(a1 , b3 )
(a2 , b1 )
(a2 , b2 )
(a2 , b3 )
(a3 , b3 )
(a3 , b4 )
(a4 , b2 )
0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1
1.0
0.6
0.6
0.6
0.5
0.5
0.6
1.0
2
1.0
0.57
0.57
0.71
0.43
0.43
0.71
0.86
3
1.0
0.47
0.47
0.71
0.35
0.35
0.71
0.71
4
1.0
0.39
0.39
0.71
0.29
0.29
0.71
0.59
5
1.0
0.32
0.32
0.71
0.24
0.24
0.71
0.48
Tabelle 4.2.: Ähnlichkeitswerte der Map Pairs über mehrere Iterationen
Bezeichner
Basis
A
B
C
Fixpunkt-Formel
σ i+1 = normalize(σ i + ϕ(σ i ))
σ i+1 = normalize(σ 0 + ϕ(σ i ))
σ i+1 = normalize(ϕ(σ 0 + σ i ))
σ i+1 = normalize(σ 0 + σ i + ϕ(σ 0 + σ i ))
Tabelle 4.3.: Verschiedene Berechnungsmöglichkeiten für Fixpunkte mit ϕ wie oben (vgl.
Tabelle 3 in [MGMR01])
immer stärker gegen 0 konvergieren. Was das bezüglich der Aussagekraft der Ergebnisse
des Similarity Flooding Algorithmus zu bedeuten hat, wird im weiteren Verlauf dieser
Arbeit noch näher beleuchtet.
Als Bedingung für das Abbrechen der Iterationen wird die Änderung der Ähnlichkeitswerte im Interationsschritt n im Verhältnis zum Iterationsschritt n − 1 berechnet.
Dazu kann zum Beispiel die Euklidische Länge des Vektors 4(σ n , σ n−1 ) betrachtet werden. Wird diese kleiner als ein vorgegebener Wert für ein n > 0, kann der Algorithmus
beendet werden. Man spricht in diesem Fall davon, dass sich ein Fixpunkt eingestellt
hat.
Der Begriff des Fixpunktes wird von den Autoren in [MGMR01] sowie auch im Rahmen dieser Arbeit immer wieder aufgegriffen. In jedem Schritt des Algorithmus werden
neue Ähnlichkeitswerte σ aus den bisher errechneten Werten berechnet. Anschließend
wird überprüft, ob sich ein Fixpunkt eingestellt hat. Auch wenn die Berechnung der
neuen Werte als solche nicht dasselbe ist wie die Überprüfung eines Fixpunktes, wird
für die Berechnungsformel σ für die Ähnlichkeitswerte der Knoten trotzdem analog der
Begriff Fixpunkt-Formel verwendet.
Formal lässt sich diese Fixpunkt-Formel als σ i+1 = normalize(σ i +ϕ(σ i )) beschreiben,
wobei normalize(x) den Wert von x wie oben beschrieben normalisiert. Ein Fixpunkt
wird dabei erreicht, wenn 4(σ i+1 , σ i ) < gilt.
Neben dieser Berechnungsformel für den Fixpunkt sind noch andere denkbar. Die
Entwickler des Similarity Flooding Algorithmus stellen drei weitere Formeln vor, die in
24
Tabelle 4.3 dargestellt sind. Während die Basis-Formel, die der Formel aus dem vorherigen Absatz entspricht, lediglich die σ-Werte aus dem vorangegangenen Iterationsschritt
betrachtet, schließen die Formeln A-C auch die Anfangswerte für σ in die Berechnung
mit ein. Die Autoren berichten, dass in empirischen Untersuchungen die Formel C für die
schnellste Konvergenz gesorgt hat. Für die folgenden Beispiele soll stets die Basis-Formel
als Berechnungsgrundlage für die Fixpunkte dienen.
Unter Umständen kann es passieren, dass der Algorithmus nicht konvergiert, d.h. die
Bedingung 4(σ n , σ n−1 ) < nicht erfüllt wird. Für diesen Fall wird eine maximale Anzahl
von Iterationen – also ein maximaler Wert für n – festgelegt, nach dem die Berechnungen
mit dem Algorithmus auf jeden Fall abgebrochen werden.
Pseudocode 4.4: Ablauf des Algorithmus für Modelle A und B
pcg ← erzeugeP CG(A, B);
spg ← erzeugeSP G(pcg);
berechneAnfangsähnlichkeiten; // berechnet die anfänglichen Werte für σ
repeat
berechneÄhnlichkeiten(spg);
until Abbruchbedingung erfüllt;
Pseudocode 4.4 zeigt den Gesamtablauf des Algorithmus unter Verwendung der zuvor
vorgestellten Funktionen. Die Anfangsähnlichkeiten für die Knoten werden dabei mit
einer Funktion berechneAnfangsähnlichkeiten berechnet, die unterschiedlichste Kriterien
wie z.B. die erwähnten Zeichenketten-Vergleiche berücksichtigen kann.
4.4. Umgang mit den Ergebnissen
Nach Abschluss der Berechnungen liefert der Similarity Flooding Algorithmus zunächst
das sogenannte Multimapping, d.h. eine Liste von Map Pairs mit den dazugehörigen
Ähnlichkeitswerten. Diese Liste enthält zwar alle vorgeschlagenen potenziellen MatchKandidaten, sie kann aber sehr schnell sehr groß werden und somit für menschliche
Benutzer sehr schwer zu handhaben sein.
Dieses Problem wird bereits an kleinen Datenmengen deutlich. Hat man etwa vier
verschiedene Map Pairs im Multimapping, können daraus bereits 24 = 16 verschiedene Teilmengen gebildet werden, welche alle potenzielle Ergebnisse darstellen, die dem
Benutzer präsentiert werden könnten.
Die Idee besteht nun darin, durch geeignete Filter die Anzahl der Ergebnisse, die
der Algorithmus zurückliefert, so weit einzuschränken, dass der Benutzer eine für ihn
überschaubare Liste mit Match-Kandidaten geliefert bekommt.
Die Auswahl solcher Filter ist schwierig, da es keine allgemein gültigen Kriterien gibt,
nach denen man bestimmte Ergebnisse unter allen Umständen aus der Ergebnisliste
herausfiltern kann. Für dieses Problem werden in den folgenden Unterkapiteln Vorschläge
für mögliche Filter diskutiert und empirische Befunde dazu erläutert.
25
4.4.1. Constraints
Eine häufige Methode, um die Größe eines Multimappings zu reduzieren, ist die Berücksichtigung von anwendungsspezifischen Constraints. Die Autoren stellen in diesem
Zusammenhang zwei Arten von Constraints vor: Typ-Constraints und KardinalitätsConstraints.
Typ-Constraints können dann hilfreich sein, wenn man weiß, welche Typen von Daten
in der Ergebnismenge relevant sind und welche nicht. Zum Beispiel könnte man in einem
relationalen Schema, das Tabellen, Spalten, Schlüssel und Datentypen enthält, Matches
zwischen Schlüsseln und Datentypen ignorieren, wenn man nur an Tabellen und Spalten
interessiert ist.
Vieles, was durch Typ-Constraints in der Ergebnismenge erreicht werden kann, kann
auch bereits durch den Aufbau bzw. die Struktur der verwendeten Modelle erreicht
werden. Transformiert man etwa ein relationales Schema in ein Modell, in dem es für
Schlüssel, Datentypen, Tabellen und Spalten jeweils Knoten gibt, die durch eindeutig
beschriftete Kanten – das heißt, etwa „has_keyvalue“ zwischen Tabellen und Schlüsseln, „has_datatype“ zwischen Spalten und Datentypen – verbunden sind, kann es im
Ergebnis keine Vorschläge für Matchings zwischen Schlüsseln und Datentypen geben. In
diesem Fall wären Typ-Constraints überflüssig, im Falle anderer Transformationen aber
durchaus nützlich.
Weiß man von vornherein, dass etwa bei zwei Tabellen A und B im Ergebnis die
Tabelle A lediglich durch Werte aus der Tabelle B angereichert werden soll, kann man
Kardinalitäts-Constraints verwenden. In dem Fall könnte man etwa festlegen, dass die
Ergebnismenge die Bedingung erfüllen muss, dass jedem Element aus Tabelle A – sofern
überhaupt – nur genau ein Element aus Tabelle B zugeordnet werden darf, während
jedem Element aus Tabelle B beliebig viele Elemente aus Tabelle A zugeordnet werden
können.
Durch Constraints allein kann die Ergebnismenge jedoch in den seltensten Fällen weit
genug eingeschränkt werden, um eindeutige Match-Kandidaten zu bekommen. Selbst bei
sehr strengen Kardinalitäts-Constraint (z.B. einem 1-zu-1-Mapping) werden auf diese
Weise noch mehr als ein Ergebniskandidat geliefert, sodass weitere Methoden benötigt
werden, um aus den verbleibenden Alternativen die „besten“ auszuwählen.
4.4.2. Auswahl von 1-zu-1-Mappings
Um das Problem der geeigneten Auswahl aus einer Menge von Alternativen zu lösen, macht man sich die enge Verwandtschaft des Problems zu bekannten MatchingProblemen in bipartiten Graphen zunutze. Ein Matching wird dort als ein Mapping
definiert, bei dem keine zwei Kanten eingehende Kanten desselben Knotens sind (es
handelt sich somit um ein 1-zu-1-Mapping). Ein bipartiter Graph ist eine Einteilung
einer Menge von Knoten in zwei Teilmengen derart, dass es nur Kanten zwischen den
beiden Teilmengen, nicht aber innerhalb der Teilmengen, geben darf. Ein Mapping kann
dann als ein ungerichteter, gewichteter, bipartiter Graph betrachtet werden.
26
Abbildung 4.4.: Bipartiter Graph (links) und mögliches Matching (rechts)
Abbildung 4.4 stellt zum einen den bipartiten Graphen zu den Beispielen aus Kapitel
4.2 dar, der sich aus den Knoten des SPG bzw. PCG ergibt. Die eingetragenen Kantengewichte entsprechen den Gewichten nach der 5. Iteration des Algorithmus, die auch in
Tabelle 4.2 zu finden sind. Daneben ist ein mögliches Matching dargestellt, das man aus
dem Graphen ermitteln könnte.
Im Folgenden werden einige in der Theorie bekannte Matching-Verfahren sowie Auswahlkriterien vorgestellt, die bei der Filterung der Ergebnisse beim Similarity Flooding
Algorithmus Verwendung finden können.
Das Stable-Marriage-Verfahren
Für die Auswahl aus dem Multimapping kann das Stable-Marriage-Verfahren herangezogen werden, das in [GS62] beschrieben wird. Dabei geht es darum, zwischen einer Menge
von n Frauen und n Männern eine „Stable Marriage“ (also eine stabile Hochzeit) zu
ermöglichen. Dazu hat jede der n Frauen und jeder der n Männer eine Liste mit den
Personen des anderen Geschlechts in der Reihenfolge, in der sie von der jeweiligen Person
für eine Hochzeit präferiert werden. Gesucht ist die beste Kombination der Männer und
Frauen.
Diese Stable Marriage soll ein vollständiges Matching der Männer und Frauen (d.h.
jeder Mann und jede Frau hat einen Partner des anderen Geschlechts zugewiesen bekommen) mit der Eigenschaft sein, dass es keine Paare (x, y) und (x0 , y 0 ) gibt, bei denen x
y 0 gegenüber y und y 0 x gegenüber x0 bevorzugt. Eine solche Situation würde als instabil
bezeichnet werden.
Algorithmisch lässt sich das Stable Marriage wie folgt ermitteln: Man bildet zwei
Mengen M (für die Männer) und W (für die Frauen) und ordnet jedem m ∈ M und
jedem w ∈ W die Liste mit Präferenzen (proposal) der anderen Menge zu. Der eigentliche
Algorithmus läuft dann wie nachfolgend in Pseudocode 4.5 dargestellt ab.
27
m1
m2
m3
m4
:
:
:
:
w2 (0.8), w3 (0.7), w1 (0.3), w4 (0.1)
w2 (0.9), w3 (0.3), w1 (0.2), w4 (0.2)
w1 (0.7), w4 (0.6), w2 (0.1), w3 (0)
w4 (0.7), w2 (0.5), w3 (0.4), w1 (0.3)
Schritt
Schritt
Schritt
Schritt
Schritt
Schritt
0:
1:
2:
3:
4:
5:
w1
w2
w3
w4
:
:
:
:
m3 (0.7), m1 (0.3), m4 (0.3), m2 (0.2)
m2 (0.9), m1 (0.8), m4 (0.5), m3 (0.1)
m1 (0.7), m4 (0.4), m2 (0.3), m3 (0)
m4 (0.7), m3 (0.6), m2 (0.2), m1 (0.1)
f ree = {m1 , m2 , m3 , m4 , w1 , w2 , w3 , w4 }, married = ∅
f ree = {m2 , m3 , m4 , w1 , w3 , w4 }, married = {(m1 , w2 )}
f ree = {m1 , m3 , m4 , w1 , w3 , w4 }, married = {(m2 , w2 )}
f ree = {m3 , m4 , w1 , w4 }, married = {(m2 , w2 ), (m1 , w3 )}
f ree = {m4 , w4 }, married = {(m2 , w2 ), (m1 , w3 ), (m3 , w1 )}
f ree = ∅, married = {(m2 , w2 ), (m1 , w3 ), (m3 , w1 ), (m4 , w4 )}
⇒ M1 = {(m2 , w2 ), (m1 , w3 ), (m3 , w1 ), (m4 , w4 )}
Abbildung 4.5.: Beispielhafter Ablauf des Stable Marriage Algorithmus
Pseudocode 4.5: Ermittlung einer Stable Marriage für M und W
Füge alle m ∈ M und w ∈ W der Menge free hinzu;
while es gibt ein m ∈ M mit m ∈ f ree und proposal(m) 6= ∅
w ← erstes noch nicht betrachtetes Element aus proposal(m);
if w ∈ f ree
füge (m, w) der Menge married hinzu and entferne m und w aus f ree;
else if ∃(m0 , w) ∈ married
if w bevorzugt m gegenüber m0
füge (m, w) der Menge married hinzu;
entferne (m0 , w) aus der Menge married;
füge m0 der Menge free hinzu;
else
(m0 , w) bleibt in married;
Beispielhaft ist der Ablauf für zwei Mengen M = {m1 , m2 , m3 , m4 } und W = {w1 , w2 ,
w3 , w4 } in Abbildung 4.5 dargestellt. Die Listen proposal für die einzelnen Elemente sind
oben dargestellt, wobei die Zahlen in Klammern angeben, wie stark die Präferenz zu dem
jeweiligen Element der anderen Menge ist. Bei gleichen Präferenzen wurden die Elemente
der Liste alphabetisch sortiert.
Betrachtet man die Menge married, stellt man fest, dass die darin enthaltenen Paare
tatsächlich die Bedingungen einer Stable Marriage erfüllen. Das Matching, das auf diese
Weise erreicht wurde, wird im Beispiel und im Folgenden mit M1 bezeichnet. Der Algorithmus liefert dabei immer nur eine Stable Marriage, auch wenn bei anderen Mengen
durchaus mehrere verschiedene denkbar sind.
Das Stable-Marriage-Problem lässt sich ohne Probleme auf die Multimappings übertragen (näheres zu Multimappings siehe Kapitel 4.4.3).
28
Das Zuordnungsproblem
Beim Zuordnungsproblem wird versucht, ein Matching Mi in einem gewichteten, biparP
titen Graphen M zu finden, das das totale Gewicht (x,y)∈Mi σ(x, y) maximiert. Verglichen mit dem Stable-Marriage-Problem bedeutet das, dass beim Zuordnungsproblem
das Matching gesucht wird, bei dem die Gesamtzufriedenheit der Männer und Frauen
am größten ist, was nicht heißen muss, dass ein solches Matching stabil im Sinne einer
Stable Marriage wäre.
Das Matching bzw. die Stable Marriage M1 , die sich im Beispiel in Abbildung 4.5 erP
gibt, ist auch im Sinne des Zuordnungsproblems optimal. Hierbei ist (x,y)∈M1 σ(x, y) =
0.9 + 0.7 + 0.7 + 0.7 = 3.0, was dem maximalen Wert entspricht, den eine Zuordnung für die Mengen liefern kann. Zum Vergleich wäre etwa eine Zuordnung M2 =
P
{(m1 , w1 ), (m2 , w2 ), (m3 , w3 ), (m4 , w4 )} mit (x,y)∈M2 σ(x, y) = 0.3 + 0.9 + 0 + 0.7 = 1.9
im Sinne des Zuordnungsproblems nicht optimal.
Ein Algorithmus, der das Zuordnungsproblem löst, ist die Hungarian method, die in
[Kuh55] im Jahr 1955 vorgestellt wurde. Dabei wird eine Matrix erzeugt, in der die
zuzuordnenden Paare mit den jeweiligen Gewichten eingetragen werden. Anschließend
werden in 4 Schritten bestimmte Zeilen- und Spaltenoperationen ausgeführt, bis in der
Matrix in jeder Zeile und Spalte mindestens eine 0 steht. Daraus lässt sich dann die
optimale Zuordnung ablesen. Bei dem Verfahren wird zwar eigentlich eine minimale
Lösung (also eine Zuordnung, bei der die Summe der Gewichte minimal ist) gesucht,
es lässt sich aber ohne Probleme auch für maximale Lösungen anwenden, sodass das
Ergebnis, das am Beispiel in Abbildung 4.5 errechnet wurde, auch mit der Hungarian
method ermittelt werden könnte.
Maximale, Maximum- und perfekte Matchings
Unter einem maximalen Matching versteht man ein Matching, das in keinem anderen
Matching enthalten ist. Ein Maximum-Matching ist ein Matching mit maximaler Kardinalität, d.h. bezogen auf das Hochzeitsbeispiel mit der größten Anzahl verheirateter
Paare. Ein perfektes (oder vollständiges) Matching ist das Matching, bei dem jeder Mann
und jede Frau verheiratet wäre.
Das Matching M1 aus dem Beispiel in Abbildung 4.5 ist maximal, da es in keinem
anderen möglichen Matching, das sich aus den beiden Mengen bilden lässt, enthalten
sein kann. Es ist ein Maximum-Mapping, da es die maximal mögliche Zahl von 4 Paaren
enthält, und perfekt, weil jedes Element aus M und jedes Element aus W zugeordnet
wurden.
Ein Matching M3 = {(m1 , w3 ), (m2 , w2 ), (m3 , w1 )} wäre dagegen weder maximal noch
ein Maximum-Matching oder perfekt, weil es in M1 enthalten ist, nicht die maximale
Anzahl möglicher Paare enthält und nicht alle Elemente der Mengen zuordnet.
29
4.4.3. Auswahl von n-zu-m-Mappings
Polygamie
Bei den bisher vorgestellten Metriken handelt es sich nur um solche, die ein Element
der einen Menge auf maximal ein Element der anderen Menge matchen. Das bezeichnet
man als Monogamie. Nun kann es aber sein, dass auch Mappings erwünscht sind, die
mehrere Elemente der einen Menge auf mehrere der anderen matchen können. In diesem
Fall spricht man von Polygamie.
Die polygame Variante des perfekten Matchings stellt das Outer Match dar. Dabei
handelt es sich um ein minimales Matching, bei dem jedes Element von jedem Modell
mindestens einen Partner hat.
Bei Polygamie könnte zum
P Beispiel eine Teilmenge Mi aus dem Multimapping gesucht
σ(x,y)
Mi
werden, die die Funktion k(x,?)k·k(?,y)k
maximiert, wobei k(x, ?) und k(?, y)k die Anzahl
der Partner von einer Frau x und einem Mann y in Mi darstellen.
Absolute und relative Ähnlichkeiten
Absolute Ähnlichkeit liegt dann vor, wenn für ein Map Pair nur genau ein Ähnlichkeitswert zurückgegeben wird, wie es im Similarity Flooding Algorithmus der Fall ist. Sie ist
symmetrisch, d.h. x ist genauso ähnlich zu y wie y zu x. Im Falle der Hochzeiten heißt
das, dass Partner sich genau gleich mögen.
Betrachtet man die Möglichkeit, dass die Ähnlichkeiten nicht symmetrisch sein müssen, es also durchaus vorkommen kann, dass in einem Hochzeitspaar der Mann die Frau
lieber mag als umgekehrt, kommt man zu relativen Ähnlichkeiten. Relative Ähnlichkeiten sind asymmetrisch und werden berechnet, indem man das Verhältnis der absoluten
Ähnlichkeitswerte der besten Match-Kandidaten berechnet.
Verwendet man statt der absoluten Ähnlichkeitswerte relative, lässt sich das Multimapping als ein gerichteter, gewichteter, bipartiter Graph auffassen.
Edit-Operationen
Für einige Probleme bietet es sich an, die Zahl der Edit-Operationen, mit denen ein Teilgraph in einen anderen überführt werden kann, in die Auswahl-Metrik mit einzubeziehen.
Edit-Operationen sind elementare Einfüge-, Lösch- oder Ersetzungs-Operationen. Durch
Sequenzen solcher Operationen lassen sich zum Beispiel Wörter oder Graphen ineinander
überführen.
Ähnlichkeits-Thresholds
Zur Auswahl geeigneter Wertpaare aus einer Menge von Ergebnispaaren (Multimapping) können als weiteres Kriterium Ähnlichkeits-Thresholds (Schwellwerte) verwendet
werden. Legt man etwa einen Threshold von tabs = 0.5 fest, würden aus dem Multimapping nur noch die Map Pairs herausgefiltert werden, deren Ähnlichkeitswert größer bzw.
größer oder gleich 0.5 ist. Ein solcher Threshold kann sowohl für absolute als auch für
relative Ähnlichkeiten verwendet werden.
30
5. Vergleich mit anderen Verfahren
Nachdem in Kapitel 4 der Similarity Flooding Algorithmus vorgestellt wurde, soll dieses
Kapitel Vergleiche mit und zwischen anderen Graph Matching Verfahren anstellen. Dazu
werden hier beispielhaft die drei in der Literatur bekanntesten Verfahren vorgestellt und
deren Besonderheiten erläutert.
5.1. Cupid
Mit Cupid stellen die Autoren von [MBR01] einen Ansatz vor, in dem eine Reihe anderer
Ansätze mit einfließen. Die Idee dahinter ist, dass nach eigenen Angaben ein einzelner
Ansatz keine ausreichende Lösung für das Problem des Auffinden eines Matchings liefert.
Cupid geht beim Matching dabei in drei Phasen vor. In der ersten Phase erfolgt ein
linguistisches Matching. Hierbei werden mehrere Schritte durchgeführt, um schließlich
Ähnlichkeitswerte lsim(m1 , m2 ) für alle Elemente m1 und m2 der Schemata zu bekommen. Dazu gehört eine Normalisierung der Namen – durch Tokanization, Erweitern von
Abkürzungen, Elimination von Artikel u.ä. sowie Tagging von Elementen, die zu einem gemeinsamen Konzept, wie etwa zum Oberbegriff „Geld“, gehören –, Einteilen von
Elementen in Kategorien anhand ihrer Datentypen und Tags sowie Berechnung von Namensähnlichkeiten.
In dieser ersten Phase, die im Wesentlichen mit der Vorverarbeitungsphase des Similarity Flooding verglichen werden kann, zeigen sich erste Unterschiede der beiden
Verfahren. Während beim Similarity Flooding die Anfangsähnlichkeiten aller Map Pairs
berechnet werden, die aus den beiden Eingabemodellen gebildet werden können, berechnet Cupid nur Ähnlichkeiten zwischen Elementen, die in die gleiche Kategorie fallen.
Elementen aus unterschiedlichen Kategorien wird – unabhängig davon, wie ähnlich die
Namen sind – ein Ähnlichkeitswert von 0 zugewiesen.
In der zweiten Phase von Cupid erfolgt das strukturelle Matching. Hierbei wird zunächst davon ausgegangen, dass es sich bei den Schemata um hierarchische Schemata
handelt, die sich mithilfe zweier Bäume – einer pro Schema – darstellen lassen. Im TreeMatch-Algorithmus wird schrittweise die Ähnlichkeit zwischen den Paaren von Elementen, die aus den beiden Schemata gebildet wurden, berechnet. Dabei gibt es keinerlei Beschränkungen mehr auf Elemente, die derselben Kategorie angehören. Es werden schlicht
alle Knoten der beiden Bäume paarweise kombiniert und die Ähnlichkeiten berechnet.
Die Berechnung selbst läuft dabei folgendermaßen ab: Gegeben seinen zwei Bäume S
und T , die hierarchische Schemata repräsentieren. Für alle Knotenpaare (s, t) mit s ∈ S,
t ∈ T und s, t Blätter wird basierend auf der Kompatibilität ihrer Datentypen eine
Anfangsähnlichkeit ssim(s, t) als Wert im Intervall [0, 0.5] berechnet, wobei ein Wert
31
von 0.5 eine maximale Kompatibilität ausdrückt. In einer Schleife wird anschließend für
alle Paare von Elementen (s, t) mit s ∈ S, t ∈ T die Ähnlichkeit ssim(s, t) berechnet,
wobei hier zwei Fälle unterschieden werden:
1. Sind s und t Blätter, ist der Wert für ssim gleich dem oben berechneten Anfangswert.
2. Ist s oder t kein Blatt, sondern ein interner Knoten, werden für die Berechnung
von ssim die Mengen von Blättern leaves(s) bzw. leaves(t) betrachtet, die zu den
Teilbäumen gehören, deren Wurzel s bzw. t ist. ssim berechnet sich dann wie folgt:
ssim(s, t) =
slinkout ∪ slinkin
|leaves(s) ∪ leaves(t)|
Dabei gilt slinkout = {x|x ∈ leaves(s) ∧ ∃y ∈ leaves(t), stronglink(x, y)} und
slinkin = {x|x ∈ leaves(t) ∧ ∃y ∈ leaves(s), stronglink(y, x)}. stronglink(x, y)
bedeutet, dass die gewichtete Ähnlichkeit von x und y wsim(x, y) größer als ein
bestimmter Grenzwert thaccept ist.
Bei der Berechnung von ssim im zweiten Schritt muss sichergestellt werden, dass zuvor
die Ähnlichkeitswerte wsim für alle Blätter berechnet wurden. Aus diesem Grund werden
in der Schleife die beiden Bäume in Post-Order durchlaufen, was genau das sicherstellt.
Post-Order bedeutet im Zusammenhang mit Bäumen, dass ausgehend von der Wurzel
zunächst der linke Teilbaum, dann der rechte Teilbaum und zuletzt die Wurzel betrachtet
wird.
Nachdem ssim(s, t) für jedes Knotenpaar (s, t) berechnet wurde, wird die gewichtete
Ähnlichkeit wsim(s, t) für dieses Knotenpaar wie folgt berechnet:
wsim(s, t) = wstruct · ssim(s, t) + (1 − wstruct ) · lsim(s, t)
Hierbei ist wstruct eine Konstante im Intervall [0, 1] und dient dazu, eine unterschiedliche Gewichtung von linguistischer und struktureller Ähnlichkeit zu ermöglichen.
Nach Berechnung der gewichteten Ähnlichkeit für ein Knotenpaar (s, t) überprüft
TreeMatch, ob der Ähnlichkeitswert von wsim oberhalb eines Grenzwertes thhigh liegt.
Ist das der Fall, werden die Ähnlichkeitswerte ssim aller Paare von Blättern in den beiden
Teilbäumen zu s und t um einen Faktor cinc erhöht, wobei darauf geachtet wird, dass die
maximalen Werte von ssim nie größer als 1 werden. Diese Erhöhung der Werte geschieht
deshalb, weil die Entwickler von Cupid annehmen, dass Blätter, deren Vorfahren sehr
ähnlich sind, ebenfalls eine höhere Ähnlichkeit aufweisen. Ist der Wert für wsim kleiner
als thlow , werden die Ähnlichkeitswerte ssim der Blätter aus demselben Grund um einen
Wert cdec verringert.
Diese Veränderung der strukturellen Ähnlichkeiten führt bei Teilbäumen mit einer
sehr unterschiedlichen Anzahl an Knoten dazu, dass es sehr viele Ähnlichkeitswerte gibt,
die unterhalb des Grenzwertes liegen. Um dem entgegenzuwirken schlagen die Entwickler
vor, nur Elemente zu vergleichen, deren Teilbäume eine ähnliche Anzahl an Blättern
32
(vorgeschlagen ist ein Unterschied von maximal Faktor 2) haben. Das führt dazu, dass
der Algorithmus weitaus weniger Paare zum Vergleich hat.
Vergleicht man den Ablauf des strukturellen Matchings von Cupid mit dem Ablauf
des Algorithmus beim Similarity Flooding, können hier wesentliche Unterschiede festgestellt werden. Zunächst unterscheiden sich die beiden Verfahren darin, dass Cupid in
der vorgestellten Form nur Bäume als graphische Strukturen unterstützt, während beim
Similarity Flooding gerichtete Graphen verwendet werden. Das bedeutet also, dass das
Similarity Flooding hier mehr Varianten von Eingaben unterstützt als nur hierarchische Schemata. In [MBR01] wird allerdings auch eine Möglichkeit vorgestellt, wie anders
strukturierte Eingabegraphen in Bäume umgewandelt werden können, die dann wiederum mit Cupid verarbeitet werden können. Die näheren Details dazu sollen hier aufgrund
des Umfangs nicht weiter betrachtet werden.
Bei der Berechnung der Ähnlichkeitswerte werden in beiden Verfahren sehr unterschiedliche Ideen zugrunde gelegt. Während das Similarity Flooding alle mit einem
Knoten verbundenen Knoten in die Berechnung mit einbezieht, werden bei Cupid ausschließlich die Blätter für die Berechnungen herangezogen. Das bedeutet, dass in einem
Teilbaum mit hoher Tiefe trotzdem nicht die direkten Nachfolgeknoten zur Berechnung
der Ähnlichkeiten verwendet werden, sondern nur die Blätter, die in diesem Fall erst sehr
viel tiefer im Baum stehen. Ein wenig kompensiert wird das zwar dadurch, dass die Ähnlichkeiten der Blätter aufgrund des Post-Order-Durchlaufs bis dahin unter Umständen
schon mehrfach erhöht oder verringert worden sein können, dennoch wird im Similarity
Flooding zumindest die Gesamtheit der Strukturen im Graphen mehr berücksichtigt.
Ein weiterer wesentlicher Unterschied zwischen den beiden Verfahren ist, dass Cupid
bei der Berechnung der Ähnlichkeiten zweier Elemente sehr stark auf die anfänglich berechneten linguistischen Ähnlichkeiten setzt. Diese fließen in die gewichtete Ähnlichkeit
wsim ein und werden während des gesamten Ablaufs des Algorithmus nicht verändert. Je
nachdem, wie die Konstante wstruct gewählt ist und wie sich die Ähnlichkeitswerte ssim
im Laufe des Algorithmus verändern, könnten diese linguistischen Werte einen starken
Einfluss auf die endgültige Ähnlichkeit zweier Knoten haben. Beim Similarity Flooding
tritt dieses Phänomen weitaus weniger stark auf, da zwar die lingustischen Ähnlichkeiten als Anfangsähnlichkeiten im ersten Schritt des Algorithmus relevant sind, aufgrund
des „Flusses“ der Werte aber im weiteren Verlauf immer stärker angeglichen werden,
was laut [MGMR01] letztendlich auch dafür sorgt, dass selbst mit „schlecht“ gewählten
Anfangsähnlichkeiten noch gute Ergebnisse mit dem Similarity Flooding erzielt werden
können. Fraglich ist, ob das in diesem Fall auch bei Cupid möglich ist.
5.2. Rondo
In [MRB03] entwickeln die Autoren ein Verfahren, mit dem generisch Modelle gematcht
werden können, und implementieren einen Prototyp mit Namen Rondo. Während es beim
in Kapitel 4 vorgestellten Similarity Flooding im Wesentlichen darum geht, geeignete
Mappings zwischen Elementen herzustellen, gehen die Autoren hier noch einen Schritt
weiter, indem sie auch ein automatisiertes Verfahren einführen, mit dem die Modelle
33
gemerged werden können. Im Rahmen dieser Arbeit soll dieses Merging nicht näher
betrachtet werden, sondern vielmehr die Schritte vorher – nämlich das Auffinden eines
Mappings der Elemente der Modelle – in den Fokus treten.
Wie beim Similarity Flooding werden bei Rondo zunächst intern die Modelle als
Graphen – genauer gesagt gerichtete, azyklische und markierte Graphen – gespeichert.
Knoten enthalten dabei die Informationen über die Elemente der Modelle – also etwa
Relationen, Attribute, SQL-Anweisungen etc. – die durch Kanten in Beziehung gesetzt
werden. Im Unterschied zum Similarity Flooding ist es hier zusätzlich möglich, zu den
Kanten eine Sortierung zu speichern, sodass man zum Beispiel bei einer Tabelle mit
zwei Spalten diese Spalten ordnen könnte. Außerdem erhält hier jeder Knoten einen
eindeutigen Identifizierer.
Zur Repräsentation von Mappings innerhalb der Modelle oder zwischen den Modellen werden Morphismen verwendet, d.h. binäre Relationen zwischen zwei Mengen von
Objekten aus den Modellen. Diese Morphismen können weitere Informationen bekommen, wenn es etwa um Ähnlichkeitswerte zwischen den Mengen geht, die durch den
Morphismus verbunden werden.
Neben den Morphismen stellen die Autoren sogenannte Selector vor, die dazu dienen,
eine Menge von Identifizierern von Knoten darzustellen. Zudem werden eine Reihe Operationen definiert, um bestimmte Bereiche der Graphen auswählen oder modifizieren zu
können.
Für die Berechnung eines Matchings innerhalb der Methode Match wird in der konkreten Implementierung das Similarity Flooding ohne wesentliche Änderungen an der in
Kapitel 4 vorgestellten Variante übernommen. Für das abschließende Filtern der Ergebnisse wird hier der Filter verwendet, der das Stable-Marriage-Verfahren instrumentalisiert.
Zusammenfassend lässt sich festhalten, dass die Autoren mit Rondo ein Verfahren
entwickelt und implementiert haben, deren Fokus ganz klar auf der generischen Beschreibung und auf dem automatischen Merging der Eingabemodelle liegt. Da hier das
Similarity Flooding ohne Modifikationen verwendet wird, eignet sich Rondo in dieser
Form nicht für einen Vergleich mit anderen Verfahren, sondern kann eher als ein „Rahmen“ angesehen werden, in dem verschiedene Verfahren implementiert sein könnten.
5.3. SASMINT
Ähnlich wie bei Rondo handelt es sich bei dem Ansatz von Semi Automatic Schema
Matching and INTegration (SASMINT ) nicht um ein eigenständiges Verfahren, das sich
ad-hoc mit dem Similarity Flooding vergleichen ließe. Stattdessen stellen die Autoren
von [UA10] mit SASMINT eine Möglichkeit dar, verschiedenste Verfahren und Metriken
zu kombinieren, um so bessere Ergebnisse beim Schema-Matching und der Integration
erzielen zu können als mit einem einzelnen Verfahren.
Obwohl der Fokus von [UA10] stark auf der Integration und weniger auf dem Matching liegt, soll im Rahmen dieser Arbeit nicht weiter auf das Matching im Sinne von
SASMINT eingegangen werden. Stattdessen sollen die Schritte beschrieben werden, die
34
durchgeführt werden müssen, um ein endgültiges Matching zu erhalten, und näher erläutert werden, an welcher Stelle und in welcher Form das Similarity Flooding bei SASMINT
verwendet wird.
Bevor in SASMINT Eingabedaten verarbeitet (also z.B. Schemata geladen) werden,
werden Gewichte für alle Metriken und Algorithmen, die verwendet werden sollen, berechnet und entsprechend zugewiesen. Das geschieht standardmäßig durch Berechnung
einer gewichteten Summer aller Metriken und Verfahren. Falls Bedarf besteht, kann hier
auch ein Benutzer manuell Gewichte festlegen. Danach werden die Auswahlkriterien für
die Ergebnisse des Matchings festgelegt. Hierbei sind Eingaben der Benutzer nötig, um
Grenzwerte (Thresholds) festzulegen und zu bestimmen, ob alle Werte oberhalb dieser
Grenzwerte ausgegeben werden sollen oder nur der jeweils größte.
Nach diesen beiden Schritten werden die Schemata geladen und direkt dabei in gerichtete, azyklische Graphen überführt. In der anschließenden Vorverarbeitungsphase
werden nacheinander die folgenden Operationen durchgeführt, ohne dass hier weiter
darauf eingegangen werden soll:
1. Eliminierung von stop words und Sonderzeichen
2. Tokenization und Trennung von Wörtern
3. Erweiterung von Abkürzungen
4. Normalisierung von Termen in ihre Grundform mit Lemmatisierung
Nun folgt in SASMINT das eigentliche Matching, das in zwei Schritte eingeteilt ist.
Zuerst werden die Schemata linguistisch verglichen, anschließend strukturell.
Beim linguistischen Vergleich werden die Elemente der Schemata zunächst syntaktisch
vergleichen, wozu verschiedenste Metriken herangezogen werden können (etwa Levenshtein Distanz, tf-idf-Werte oder Jaccard-Koeffizienten). Anschließend werden semantische Ähnlichkeiten berechnet, wobei auch hier diverse Methoden vorstellbar sind.
Beim strukturellen Vergleich werden die Ähnlichkeiten der Schemata basierend auf
ihrer Struktur berechnet. Hierbei werden die Ergebnisse des linguistischen Vergleichs
als Eingabewerte verwendet. In dieser Phase findet auch das Similarity Flooding Verwendung, es sind aber auch weitere Verfahren denkbar. Werden hier mehrere Verfahren
zusammen verwendet, wird als Ergebnis die gewichtete Summe der Ergebnisse aller Verfahren verwendet.
Obwohl in der Matching-Phase das Similarity Flooding in unveränderter Form verwendet werden kann und auch wird, gibt es einen bedeutsamen Unterschied zwischen
den Ähnlichkeitswerten, die bei SASMINT berechnet werden, und denen, die das Similarity Flooding liefert. Während beim Similarity Flooding linguistische Ähnlichkeiten –
sofern sie überhaupt berechnet werden – lediglich als Anfangsähnlichkeiten in den Algorithmus einfließen, im Nachhinein aber die Ähnlichkeitswerte nicht weiter beeinflussen,
geht SASMINT eine Stufe weiter. Hier werden die Ähnlichkeitswerte sim(a, b) zweier
Elemente a und b in der Matching-Phase durch folgende Formel berechnet:
sim(a, b) = wlinguistisch · smlinguistisch (a, b) + wstrukturell · smstrukturell (a, b)
35
Dabei ist smlinguistisch (a, b) die linguistische Ähnlichkeit von (a, b), wlinguistisch das Gewicht vom linguistischen Matching, smstrukturell (a, b) die strukturelle Ähnlichkeit von
(a, b) und wstrukturell das Gewicht des strukturellen Matchings.
Man kann hierbei also, wenn Bedarf besteht, die Ähnlichkeiten, die durch das linguistische Matching entstanden sind, direkt mit in die endgültige Berechnung der Ähnlichkeiten einbeziehen, auch wenn sie zusätzlich noch als Eingabewerte für Anfangsähnlichkeiten in strukturellen Verfahren verwendet werden können. Durch geeignete Wahl der
Gewichtungen für die beiden Matching-Arten können zudem auch je nach Anwendung
Struktur oder linguistische Ähnlichkeiten unterschiedlich stark berücksichtigt werden.
Zusammenfassend kann festgehalten werden, dass SASMINT durch die diversen Variationsmöglichkeiten bei den Algorithmen, Metriken und Gewichtungen eine deutlich
mächtigere Form für das Matching von Schemata darstellt als das Similarity Flooding.
Dass der Similarity Flooding Algorithmus trotzdem als Bestandteil von SASMINT in
[UA10] erwähnt wird, deutet darauf hin, dass die Anzahl der alternativen Verfahren, die
Matchings aufgrund von strukturellen Ähnlichkeiten berechnen, auch acht Jahre nach
Entwicklung des Similarity Flooding noch schwindend gering ist.
36
6. Implementierung der Testumgebung
Für die Experimente, die im folgenden Kapitel durchgeführt werden sollen, wurde im
Rahmen dieser Arbeit eine Testumgebung entwickelt, die in diesem Kapitel beschrieben
werden soll. Im Java-Code finden sich ausführliche Kommentare als Javadoc, sodass
hier nur ein Überblick geliefert und einige Besonderheiten hervorgehoben werden. Dabei
wird zunächst auf die Anforderungen eingegangen, die an die Testumgebung gestellt
werden, bevor ihre Funktionen, die Bedienung und schließlich die wichtigsten Funktionen
detaillierter beschrieben werden.
6.1. Anforderungen an die Testumgebung
Die Testumgebung soll dazu dienen, den Similarity Flooding Algorithmus mit verschiedenen Eingaben und Parametern auszuführen und anhand der Ergebnisse Vergleiche
anstellen zu können. Die Experimente sollen dabei sowohl mit Schemata als auch mit
Graphen möglich sein. Für die Schemata soll eine Eingabe-Schnittstelle vorhanden sein,
die relationale Schemata aus einer Textdatei einlesen kann, bei den Graphen soll aus
einer festen Menge gewählt werden können.
Für den Similarity Flooding Algorithmus soll die Möglichkeit bestehen, (teil-)automatisiert und manuell Anfangsähnlichkeiten festlegen zu können. Bei den Ähnlichkeitsberechnungen in den einzelnen Iterationen des Verfahrens soll im Voraus zwischen mehreren Fixpunktformeln gewählt werden können, außerdem soll die maximale Anzahl an
Iterationen gewählt werden können, nach der das Verfahren abbricht.
Die Ergebnisse des Similarity Flooding sollen in Tabellenform dargestellt werden, in
der eine Sortierung nach Werten und Knotennamen möglich sein soll. Dadurch soll später
eine bessere Vergleichbarkeit der Ergebniswerte erreicht werden können. Die Ergebnisse
sollen gemäß des Stable Marriage Algorithmus gefiltert werden können, außerdem soll
eine Speicherfunktion die Werte in Form einer Textdatei auf der Festplatte sichern.
Um die Bedienung der Testumgebung zu erleichtern, soll eine graphische Oberfläche
zur Verfügung stehen, die alle Funktionen gestattet.
6.2. Funktionen und Bedienung des Programmes
Das Hauptprogramm bietet die Möglichkeit, Experimente an Graphen und Schemata
unterstützt durch ein graphisches Interface durchzuführen. Bei den Graphen kann als
Eingabe zwischen den sieben verschiedenen Beispielen gewählt werden, die in Kapitel
7.2.1 näher beschrieben werden. Eine Eingabeschnittstelle für weitere Graphen ist hier
nicht vorgesehen.
37
Abbildung 6.1.: Das Hauptmenü der Testumgebung
Abbildung 6.2.: Das Graphen-Menü
Abbildung 6.3.: Das Schema-Menü
38
Abbildung 6.4.: Menü mit den Anfangsähnlichkeiten
Abbildung 6.5.: Fenster für die Vorverarbeitung
Bei den Schemata können über eine Eingabeschnittstelle Relationale Datenbankschemata in Form von Textdateien eingelesen und in ihre graphischen Repräsentationen
umgewandelt werden. Näheres dazu ist in Kapitel 6.5 nachzulesen.
Abbildung 6.1 zeigt das Hauptmenü der Testumgebung. Abbildung 6.2 stellt das
Graphen-Menü dar, Abbildung 6.3 das Schema-Menü.
Unabhängig davon, ob Graphen oder Schemata für die Experimente verwendet werden, wird nach deren Auswahl das Fenster Anfangsähnlichkeiten (siehe Abbildung 6.4)
angezeigt, dass verschiedene Einstellungen ermöglicht, die für den Ablauf des Similarity
Flooding notwendig sind. Die Eingabe einer Anzahl von Iterationen sorgt dafür, dass das
Verfahren spätestens nach dieser Iteration abbricht, auch wenn sich noch kein Fixpunkt
eingestellt hat. Bei der Fixpunktformel kann zwischen zwei der Formeln gewählt werden,
die in Tabelle 4.3 in Kapitel 4.3 dargestellt sind.
39
Abbildung 6.6.: Fenster mit den Ergebnissen
Die Anfangsähnlichkeiten der Knoten können manuell für jeden Knoten eingegeben
oder geändert – wobei 1.0 als Standardwert für alle Knoten vorgegeben ist –, alle auf
den Wert 0, 1 oder Zufallswerte oder in einer Vorverarbeitung basierend auf gleichen
(Teil-)Namen gesetzt werden. Das Fenster für die Vorverarbeitung ist in Abbildung 6.5
zu sehen.
Nach dem Ausführen des Verfahrens über den entsprechenden Button wird das Fenster Ergebnisse (siehe Abbildung 6.6) angezeigt, das die berechneten Ähnlichkeitswerte
absteigend sortiert anzeigt. Darunter wird die Anzahl der Iterationen ausgegeben, die
nötig war, bis sich ein Fixpunkt eingestellt hat.
Knoten im Ergebnis, denen zuvor eine Anfangsähnlichkeit ungleich 0 zugewiesen wurde, werden dabei als ausgewählt markiert, können aber auch manuell abgewählt werden.
Genauso ist die Markierung weiterer Knoten möglich. Gewählten Knoten wird für eine
Wiederholung bzw. Iteration des Verfahrens eine Anfangsähnlichkeit von 1 zugewiesen,
nicht gewählten eine 0. Über das Eingabefeld kann festgelegt werden, dass automatisch
alle Knoten gewählt werden, die gleich diesem Wert sind oder oberhalb davon liegen,
während alle anderen abgewählt werden.
Die Ergebnisse können mit Hilfe einer Stable Marriage gefiltert werden, deren Resultate in einem neuen Fenster angezeigt werden (siehe Abbildung 6.7). Hier besteht auch
40
Abbildung 6.7.: Filterung der Ergebnisse mit Stable Marriage
die Möglichkeit, die Knoten der Stable Marriage automatisch markieren zu lassen. Außerdem lassen sich die berechneten Werte über alle Iterationen hinweg in einer Textdatei
speichern.
6.3. Paketstruktur
Die Testumgebung ist in sechs Pakete (packages) unterteilt, deren Inhalt hier kurz vorgestellt wird. Einige der Klassen werden in den folgenden Abschnitten noch näher erläutert,
alle weiteren Details sind in der Javadoc zu finden.
• similarityflooding.main enthält mit SimilarityFlooding das Hauptprogramm,
das unter anderem die visuelle Darstellung der Menüs erzeugt und die anderen
Klassen verknüpft.
• similarityflooding.misc beinhaltet die in den Experimenten verwendeten Beispielgraphen in ExampleGraph und einige Hilfsklassen. MGtoSPGTransformation
dient zum Umwandeln eines Modell-Graphen in einen Similarity Propagation Graph,
ResultTableModel dient zur Darstellung der Ergebnisse des Similarity Flooding,
TextOutput ermöglicht das Speichern der Ergebnisse in einer Textdatei.
• similarityflooding.mgraph stellt mit MGEdge, MGNode und ModelGraph Klassen
bereit, um einen Modell-Graphen darzustellen.
41
• similarityflooding.relationalschema enthält in RelationalSchema die Darstellung eines Relationalen Datenbankschemas, bestehend aus Relationen (RSRelation)
und Attributen (RSAttribute). Die Klasse SchemaReader ermöglicht das Einlesen
eines Schemas aus einer Textdatei.
• similarityflooding.resultfilters implementiert die Stable Marriage zum Filtern der Ergebnisse des Similarity Flooding. SMNode stellt dabei einen Knoten bereit, zu dem in StableMarriage der entsprechende „Partner“ gesucht wird.
• similarityflooding.spgraph dient zur Darstellung eines Similarity Propagation Graph (in der Klasse SPGraph), bestehend aus Kanten (SPEdge) und Knoten
(SPNode)
6.4. Umgang mit Graphen
Da das Similarity Flooding graph-basiert arbeitet, werden intern Graphen für die Darstellung der Daten verwendet. Dabei werden hier zwei verschiedene graphische Strukturen verwendet. Die Klasse ModelGraph dient zur Darstellung eines Modell-Graphen,
also einer graphischen Repräsentation eines Modells. Knoten des Modell-Graphen – dargestellt in der Klasse MGNode – haben einen Namen, ansonsten keine weiteren Informationen. Gerichtete Kanten – dargestellt in MGEdge – verbinden jeweils zwei Knoten und
haben eine Kantenmarkierung in Form eines Strings.
Um zwei Modell-Graphen zusammenzuführen, stellt die Klasse MGtoSPGTranformation
die Methode transform bereit. Diese wandelt zwei Objekte der Klasse ModelGraph in
ein SPGraph-Objekt um.
SPGraph ist die Darstellung eines Similarity Propagation Graph, wie er in Kapitel
4 beschrieben wurde. Jeder Knoten (SPGNode) enthält dabei die zwei Namen der korrespondierenden Knoten der beiden Modelle, den Ähnlichkeitswert und eine einfache
Markierung, die für die Wiederholungen des Verfahrens benötigt wird. Gerichtete Kanten (SPGEdge) verbinden jeweils zwei Knoten und speichern die Kantenmarkierung sowie
den Propagation-Koeffizienten.
In der Methode calculateSimilarity der Klasse SPGraph ist das eigentliche Similarity Flooding implementiert. Über die zwei Parameter number und normalizationFormula
wird die Anzahl der Iterationen, nach der das Verfahren spätestens abbricht, und die
verwendete Fixpunktformel festgelegt. Das Verfahren an sich wurde wie in Kapitel 4 beschrieben umgesetzt. Um zusätzliche Funktionen – wie etwa das Speichern der Ergebnisse
jeder Iteration in einer Textdatei – zu ermöglichen, wurden zwar einige Codezeilen hinzugefügt, die Berechnungen der Ähnlichkeitswerte mit dem Similarity Flooding werden
dadurch jedoch nicht beeinflusst.
42
AUTOR(Name (PK), Geburtsdatum);
BUCH(ISBN (PK), Autor (FK) -> AUTOR, Titel);
AUTOR(Name, Geburtsdatum)
BUCH(ISBN, Autor → AUTOR, Titel)
Abbildung 6.8.: Beispiel für ein gültiges Schema als Input (oben) und äquivalente Darstellung des Schemas (unten)
6.5. Umgang mit Relationalen Datenbankschemata
Relationale Datenbankschemata können mit Hilfe der Klasse SchemaReader aus Textdateien eingelesen werden. Damit aus den Texten gültige Dateien erzeugt werden können,
müssen sie folgendermaßen aufgebaut sein:
• Jede Relation hat die Form Relationenname(Attribut1, Attribut2, ...);
• Primärschlüsselattribute sind durch „Attributname (PK)“ zu kennzeichnen
• Fremdschlüssel sind durch „Attributname (FK) -> Relationenname“ zu kennzeichnen
• primäre Fremdschlüssel sind durch „Attributname (FPK) -> Relationenname“ zu
kennzeichnen
• normale Attribute sind durch „Attributname“ zu kennzeichnen
• Primärschlüsselattribute (PK) stehen hinter den primären Fremdschlüsselattribute
(FPK)
Abbildung 6.8 stellt ein einfaches Schema dar, das als gültige Eingabe erkannt und
eingelesen werden kann. Darunter ist die gewohnte Darstellung des Schemas abgebildet.
Haben sie diese Struktur, erzeugt die Methode read der Klasse SchemaReader daraus
ein RelationalSchema-Objekt mit einer Menge von Relationen (RSRelation) und zugehörigen Attributen (RSAttribute). Im Programm geschieht das Umwandeln automatisch
nach Auswahl gültiger Textdateien mit Schemata im Schema-Menü und Drücken des umwandeln-Buttons. Die Methode transform der Klasse RelationalSchema wandelt das
jeweilige Schema in einen Modell-Graphen um. Dabei sind zwei verschiedene Verfahren
(transform_1 und transform_2) implementiert, die zwei unterschiedliche graphische
Darstellungen erzeugen und durch Angabe von 1 oder 2 als Parameterwert für method
beim Aufruf von transform ausgewählt werden können. transform_2 erzeugt dabei die
Darstellung, die für die Experimente in Kapitel 7.3 verwendet und dort näher beschrieben wird. transform_1 diente für frühere Experimente, die im Rahmen der Arbeit nicht
weiter beschrieben werden.
43
7. Empirische Befunde und Experimente
zum Similarity Flooding
Kapitel 4 befasste sich damit, wie der Similarity Flooding Algorithmus funktioniert und
wie mit Ergebnissen umgegangen werden kann. Das folgende Kapitel befasst sich nun
mit der Frage, ob bzw. wie gut das Similarity Flooding dafür geeignet ist, Matchings zu
finden, und ob bzw. wie man die Qualität der Ergebnisse verbessern kann. Dazu wird im
Folgenden zunächst darauf eingegangen, wie das Thema in der Literatur behandelt wird
und welche Ergebnisse es dort gibt, bevor anschließend eine Reihe eigener Experimente
durchgeführt und beschrieben werden.
7.1. Befunde in der Literatur
Um die Qualität des Similarity Flooding feststellen zu können, beschäftigen sich die
Autoren von [MGMR01] mit der Frage, ob es überhaupt eine geeignete Metrik gibt, um
diese zu ermitteln. Sie stellen schließlich eine solche Metrik vor, die im Wesentlichen auf
dem Benutzeraufwand basiert, der benötigt wird, um die Ergebnisse, die automatisch von
einem Algorithmus geliefert werden, in die gewünschten Ergebnisse zu transformieren.
Ihre Wahl begründen sie damit, dass in vielen Anwendungsgebieten eines Matchings
dessen Ziel stark von der Intention des Benutzers abhängt und man sich aus diesem
Grund nicht einfach einer vorhandenen Metrik bedienen kann.
Die Autoren stellen – basierend auf ihrer Metrik – in Studien mit acht Benutzern,
die mit Hilfe des Verfahrens Schemata matchen sollen, Folgendes fest: Auch wenn der
Algorithmus nicht in jedem Fall sehr gute Ergebnisse liefert, können im Schnitt 52% des
manuellen Aufwands durch ihn eingespart werden. In typischen Anwendungsfällen bescheinigen sie dem Algorithmus sogar eine noch weitaus größere Aufwandsersparnis. Bezüglich der Filter der Ergebnisse stellen sie fest, dass solche, welche die Stable-MarriageEigenschaft aufrechterhalten, besser geeignet sind als andere. Als Fixpunktformel empfehlen sie nach den Ergebnissen ihrer Studien die Formel C (vgl. Tabelle 4.3), welche
am schnellsten konvergiert und von der Qualität her annähernd gleiche Ergebnisse liefert wie die anderen Formeln. Als Formel zur Errechnung der Propagation-Koeffizienten
empfehlen sie – wie in Kapitel 4.2 erwähnt – den inversen Durchschnitt (vgl. Tabelle 4.1).
Außerdem stellen sie fest, dass der Algorithmus „Fehlern“ bei den Anfangsähnlichkeiten
gegenüber relativ tolerant ist, sich die Ergebnisse also kaum bzw. gar nicht ändern, selbst
wenn Anfangsähnlichkeiten „falsch“ bestimmt wurden.
Obwohl das Similarity Flooding in einer Reihe von weiteren Verfahren wie etwa SemInt verwendet wird, gibt es ansonsten in der Literatur relativ wenige Befunde, die
44
sich allein mit der Qualität des Verfahrens befassen. Hauptsächlich wird das Verfahren
einfach als funktional hingenommen und anschließend nur noch die Qualität des neu
vorgestellten Verfahrens bewertet, sodass keinerlei Rückschlüsse auf die Qualität des
Similarity Flooding möglich sind.
In [DMR02] werden einige unterschiedliche Verfahren in Experimenten verglichen,
unter ihnen auch das Similarity Flooding. Die Experimente und Ergebnisse bezüglich
des Similarity Floodings sind dabei allerdings keine anderen als in [MGMR01], was
vermutlich daran liegt, dass zwei der drei Autoren in beiden Werken identisch sind.
Auch hier sind also keine neueren Befunde festzuhalten.
7.2. Experimente an Graphen
In den folgenden Abschnitten sollen einige der Ergebnisse, die von den Autoren in
[MGMR01] festgestellt wurden, in eigenen Experimenten überprüft sowie weitere Untersuchungen zum Similarity Flooding angestellt werden. Da es im Rahmen dieser Arbeit
nicht möglich ist, jedes Detail des Algorithmus und jede Beobachtung, die in Experimenten in der Literatur gemacht wurde, zu überprüfen, werden hier exemplarisch zwei
Aspekte des Similarity Flooding näher beleuchtet.
Zuerst sollen die Auswirkungen der Anfangsähnlichkeiten auf die Ergebnisse betrachtet werden. Die These der Entwickler des Algorithmus, dass dieser gegenüber Fehlern
bei den Anfangsähnlichkeiten tolerant ist, bedarf einer weiteren Überprüfung. Hier stellt
sich die Frage, ob man sich für den Fall, dass die Beobachtung der Autoren zutrifft, die
Berechnung von Anfangsähnlichkeiten in der Vorverarbeitungsphase nicht vollständig
sparen könnte.
Als zweites soll überprüft werden, wie sich die Verwendung einer anderen Fixpunktformel auf das Similarity Flooding auswirkt. Die Autoren von [MGMR01] bescheinigen allen
Formeln, dass sie zu sehr ähnlichen Ergebnisse führen. An dieser Stelle ist zu überprüfen,
ob das tatsächlich der Fall ist oder ob durch die Wahl einer anderen Fixpunktformel die
Ergebnisse doch beeinflusst werden können.
7.2.1. Experimentdurchführung
Bevor auf die Ergebnisse der Experimente eingegangen werden kann, soll in diesem Abschnitt zunächst darauf eingegangen werden, wie die Experimente durchgeführt wurden
und was für Graphen als Grundlage für die Tests dienten. Für alle Experimente in diesem
Kapitel wurde das in Kapitel 6 vorgestellte Programm verwendet.
Grundsätzlicher Ablauf der Experimente
Um die späteren Ergebnisse gut auswerten und vergleichen zu können, wurden die Experimente nach einem festen Schema durchgeführt. Für alle Tests wurde der Similarity
Flooding Algorithmus bis zum Erreichen eines Fixpunktes durchgeführt. Dabei wurde
als Abbruchbedingung für die Berechnungen ein konstanter Wert von = 0.001 verwendet. Eine Abbruchbedingung nach einer bestimmten Anzahl von Iterationen wurde
45
nicht verwendet, um die Anzahl der Iterationen, die bis zum Fixpunkt bei den einzelnen
Testdurchläufen benötigt wurden, besser vergleichen zu können.
Für die beiden zu überprüfenden Aspekte – die Auswirkung der Anfangsähnlichkeiten
und die Verwendung einer anderen Fixpunktformel – wurden verschiedene Einstellungen
(im Folgenden auch als „Fälle“ bezeichnet) festgelegt. Der Similarity Flooding Algorithmus wurde für jeden Graphen nacheinander mit diesen Fällen durchgeführt, sodass die
Ergebnisse der einzelnen Fälle vergleichbar für mehrere Graphen sind. Eine genaue Beschreibung der jeweiligen Fälle ist zu Beginn der jeweiligen Kapitel (Kapitel 7.2.2 und
Kapitel 7.2.3) zu finden.
Zu den jeweiligen Fällen wurde die Anzahl der Iterationen, bis ein Fixpunkt erreicht
wurde, und die Ergebnisse der Ähnlichkeitsberechnungen nach jeder Iteration (einschließlich der Ähnlichkeitswerte im Fixpunkt nach der letzten Iteration) festgehalten. Dadurch
lässt sich die Entwicklung der (normierten) Werte über die Iterationen hinweg analysieren und vergleichen.
Nach Einstellen des Fixpunktes wurde die Ergebnismenge für jeden Fall außerdem
mit Hilfe eines Stable Marriage Algorithmus (vgl. Kapitel 4.4.2) gefiltert. Dadurch ist
insbesondere bei den größeren Graphen eine bessere Vergleichbarkeit der Ergebnisse
gewährleistet und es lässt sich leichter ablesen, ob das Filtern der Ergebnisse sinnvolle
Matching-Kandidaten liefert oder nicht.
Verwendete Graphen
Für die Experimente in diesem Kapitel wurden zunächst eine Reihe von Graphen erzeugt, auf deren strukturelles Aussehen und den Hintergrund, aus dem sie in den Tests
verwendet werden, hier kurz eingegangen werden soll. Die Graphen bestehen dabei jeweils aus zwei Modellen, deren Abbildungen in Anhang A zu finden sind. Dort sind auch
die Pairwise Connectivity Graphs (PCG) zu den Modellen abgebildet.
Die Modelle von Graph 1 entsprechen denen, die im Beispiel in [MGMR01] verwendet
wurden. Der PCG ist entsprechend ebenfalls dort zu finden. Für die hier durchgeführten
Experimente wurde der Graph gewählt, um zum einen die in der Literatur ermittelten Fixpunkt-Werte nachzuvollziehen, und zum anderen, weil aufgrund der ähnlichen
Strukturen der Modelle bestimmte Matching-Kandidaten wahrscheinlicher erscheinen
als andere (z.B. erscheint (a, b) aufgrund der Anzahl ein- und ausgehender Kanten in
den Modellen als Kandidat wahrscheinlicher als (a1 , b)). Hier ist in den Experimenten
insbesondere interessant zu überprüfen, ob trotzdem Fixpunkte mit unterschiedlichen
Top-Kandidaten für Matchings erreicht werden können oder nicht.
Graph 2 wurde ebenfalls aus [MGMR01] entnommen. Beide Modelle stellen dabei
Bäume dar. Modell B ist dabei aus Modell A entstanden, indem die Knoten neu markiert
wurden, zwei Teilbäume kopiert bzw. verschoben und ein neuer Knoten (60) eingefügt
wurde. Der Graph ist für die Experimente interessant, weil bekannt ist, welche Knoten
im Modell A welchen Knoten in Modell B entsprechen, sodass auch hier bestimmte Erwartungen vorhanden sind, welche Matching-Kandidaten der Algorithmus liefern sollte
(z.B. (4, 55)) und welche nicht (z.B. (1, 57)). Die erwarteten Matching-Kandidaten sind
im PCG in Anhang A grau markiert.
46
Die Graphen 3, 4 und 5 sind jeweils aus Modellen entstanden, die keine eindeutigen
strukturellen Ähnlichkeiten aufweisen. Graph 3 ist dabei mit 4 Knoten pro Modell am
kleinsten, Graph 4 mit 6 Knoten in Modell A und 5 Knoten in Modell B ein wenig größer
und Graph 5 mit 10 Knoten in Modell A und 12 in Modell B der größte der Graphen.
Für die Experimente wurden die drei Graphen gewählt, um zu ermitteln, was für Ergebnisse der Algorithmus liefert, wenn für einen Betrachter keine eindeutigen MatchingKandidaten in den Modellen erkannt werden können, und ob sich die Ergebnisse durch
Änderungen von Anfangsähnlichkeiten oder Verwendung einer anderen Fixpunktformel
leichter beeinflussen lassen als etwa bei den Graphen 1 und 2. Außerdem kann aufgrund
der unterschiedlichen Größen der Graphen hier der Frage nachgegangen werden, ob und
wie Veränderungen am Algorithmus die Anzahl der Iterationen beeinflussen, die bis zum
Erreichen des Fixpunktes benötigt werden.
Graph 6 besteht aus zwei strukturell identischen Modellen. Für die Experimente ist der
Graph deshalb besonders interessant, weil zu erwarten ist, dass der Algorithmus jeweils
die sich in den Modellen entsprechenden Knotenpaare als Matching-Kandidaten zurück
liefert, also Paare (ai , bi ) mit i ∈ {1, . . . , 10}. Diese Paare sind im PCG in Anhang A
grau hervorgehoben. Außerdem stellt sich die Frage, ob hier überhaupt unterschiedliche
Fixpunkte erreicht werden können oder sich nur die – für einen Betrachter der Modelle
eindeutigen – oben genannten Matching-Kandidaten ergeben.
Die Modelle von Graph 7 wurden so konstruiert, dass Modell A aus zwei Zusammenhangskomponenten besteht, die jeweils strukturell identisch zu Modell B sind. Kantenmarkierungen wurden in den Modellen dabei weggelassen, was für den Algorithmus
bedeutet, dass für jede Kante dieselbe Markierung angenommen wird. Wie in Graph 6
gibt es hier somit von vornherein Matching-Kandidaten, die vom Algorithmus als Ergebnisse erwartet werden (im PCG in Anhang A grau hervorgehoben). Dadurch, dass es für
jeden Knoten des Modells B erwartungsgemäß zwei Matching-Kandidaten mit gleichen
Ähnlichkeitswerten – nämlich einen mit einem Knoten aus der einen Zusammenhangskomponente von Modell A und einen aus der anderen – im Ergebnis geben müsste, ist
hier zu prüfen, ob der Algorithmus in den Experimenten so beeinflusst werden kann, dass
er nur noch Matching-Kandidaten aus einer Zusammenhangskomponente von Modell A
vorschlägt oder nicht.
7.2.2. Anfangsähnlichkeiten
Die Anfangsähnlichkeiten σ 0 sind die Ähnlichkeiten zwischen den Knoten a und b eines
Map Pairs (a, b), die vor dem ersten Iterationsschritt festgelegt oder ermittelt wurden. In
dem Beispiel des Algorithmus in Kapitel 4 wurde für alle Knoten die Anfangsähnlichkeit
1 angenommen und von [MGMR01] behauptet, dass die Änderung der Ähnlichkeiten
wenig bis keinen Einfluss auf die Ergebnisse hat, die der Algorithmus liefert.
Zur Überprüfung der Behauptung wurden die Experimente wie in Kapitel 7.2.1 beschrieben durchgeführt. Insgesamt wurden hier fünf verschiedene Einstellungen in Form
von fünf Fällen vorgenommen, deren Ergebnisse sowie deren Intention nachfolgend dargestellt sind. Bei den absoluten Zahlenwerten der Ähnlichkeiten wurde in den dargestellten
Tabellen der Übersichtlichkeit halber auf drei Nachkommastellen gerundet.
47
Knoten
(a, b)
(a1 , b)
(a1 , b1 )
(a1 , b2 )
(a2 , b1 )
(a2 , b2 )
1
1
1
1
1
1
1
Fall
3
0
1
0
0
0
1
2
1
0
0
0
0
0
4
0
1
1
0
0
1
5
0.224
0.066
0.035
0.093
0.984
0.724
Tabelle 7.1.: Anfangsähnlichkeiten für die jeweiligen Fälle (Graph 1)
Im Verlauf dieses Kapitels werden für die jeweiligen Fälle beispielhaft Ähnlichkeitswerte tabellarisch dargestellt, in denen die an der jeweiligen Stelle erläuterten Beobachtungen ersichtlich sind. Als Beispielgraph dient hierbei der Graph 1. Die Anfangsähnlichkeiten, die für die jeweiligen Fälle eingestellt wurden, sind in Tabelle 7.1 dargestellt.
Fall 1 (Referenzfall)
Im 1. Fall wurden die Anfangsähnlichkeiten aller Knoten auf einen Wert von 1 gesetzt und
das Testprogramm damit für alle Graphen durchlaufen. Aufgrund der gleichen Werte war
hier zu erwarten, dass sich jeweils ein Fixpunkt einstellt, in dem die Ähnlichkeitswerte
der Knoten nur von der Struktur der Graphen abhängen. Die Ergebnisse aus diesem Fall
sollen für die weiteren Fälle als Referenzwerte dienen.
Die Experimente zeigen, dass sich wie erwartet bei jedem Beispielgraphen ein Fixpunkt einstellt. In den Ergebnismengen fällt auf, dass man die Knoten anhand ihrer
Ähnlichkeitswerte in zwei Gruppen einteilen kann: Die eine Gruppe – im Folgenden N1
genannt – beinhaltet eine Anzahl Knoten, deren Ähnlichkeitswerte im Bereich zwischen
einem Wert smin und 1 liegen. smin ist dabei der niedrigste Wert, den die Ähnlichkeiten
der Knoten von N1 annehmen, und liegt um die 0.1, kann bei einzelnen Graphen aber
durchaus nach oben oder unten schwanken. Es ist jedoch immer ein deutlicher Sprung
zwischen smin und dem größten Wert zu beobachten, den die Ähnlichkeiten der Knoten
in N2 annehmen können. Die zweite Gruppe (N2 ), in die sich die Knoten im Ergebnis
einteilen lassen, beinhaltet die restlichen Knoten, deren Ähnlichkeitswerte alle zwischen
0 und smin (exklusiv) liegen, wobei die Mehrzahl der Werte bei oder sehr nah an 0 liegt.
In den Abbildungen der Graphen in Anhang A wurden die Knoten im PCG, die der
Menge N1 zugeordnet werden können, durch doppelte Umrandungen hervorgehoben.
Tabelle 7.2 zeigt für die Testgraphen, wie sich die Knoten in die beiden Mengen N1
und N2 aufteilen. Der Übersicht halber ist die Gesamtanzahl der Knoten im Fixpunkt
ebenfalls aufgeführt.
Betrachtet man die Entwicklung der normierten Werte über die einzelnen Iterationen
des Algorithmus, ist zu beobachten, dass die Ähnlichkeitswerte der Knoten aus N1 schon
mehrere Schritte vor Erreichen des Fixpunktes und demnach Abbruch des Algorithmus
nahezu feste Werte angenommen haben. Änderungen der Zahlenwerte sind im Bereich
48
|Knoten|
|N1 |
|N2 |
1
6
4
2
2
15
6
9
3
8
3
5
Graph
4
5
20 73
6
7
14 66
6
60
16
44
7
32
12
20
Tabelle 7.2.: Verteilung der Knoten in N1 und N2 im Fixpunkt
Knoten
(a, b)
(a1 , b)
(a1 , b1 )
(a1 , b2 )
(a2 , b1 )
(a2 , b2 )
1
1
0.667
0.5
0.667
0.833
0.667
2
1
0.571
0.429
0.643
0.857
0.571
3
1
0.5
0.406
0.656
0.875
0.5
10
1
0.191
0.384
0.704
0.921
0.191
Iteration
15
20
1
1
0.094 0.046
0.383 0.383
0.707 0.707
0.923 0.924
0.094 0.046
30
1
0.011
0.383
0.707
0.924
0.011
35
1
0.005
0.383
0.707
0.924
0.005
36
1
0.005
0.383
0.707
0.924
0.005
37
1
0.004
0.383
0.707
0.924
0.004
Tabelle 7.3.: Entwicklung der Ähnlichkeitswerte über mehrere Iterationen (Graph 1) für
Fall 1
von drei Nachkommastellen nicht mehr zu beobachten. Bei den Knoten aus N2 fällt
auf, dass diese in den ersten Iterationen der Ähnlichkeitsberechnung noch sehr stark
schwankende Werte annehmen, nach einigen Iterationen aber zu beobachten ist, dass die
Ähnlichkeitswerte bis zum Erreichen des Fixpunktes monoton fallen. Verringert man den
Wert , der das Abbruchkriterium für das Erreichen des Fixpunktes darstellt, hat das
auf die Ähnlichkeitswerte der Knoten aus N1 im Fixpunkt keinerlei Auswirkungen mehr,
während die Werte der Knoten aus N2 weiter monoton fallen und sich immer mehr der
0 annähern.
Um diese Beobachtungen zu verdeutlichen, sind in Tabelle 7.3 beispielhaft die Ähnlichkeitswerte der Knoten des Graphen 1 nach mehreren Iterationen dargestellt. Die
Knoten, die im Fixpunkt der Menge N1 zugeordnet werden können, sind hierbei fett
hervorgehoben, ebenso wie die Ähnlichkeitswerte, die im Fixpunkt, der sich nach 37
Iterationen eingestellt hat, errechnet wurden.
Betrachtet man die zugehörigen PCGs zu den Graphen, fällt auf, dass alle Knoten,
die im Ergebnis der Menge N1 zugeordnet werden konnten, bei den Graphen 1-6 in einer
Zusammenhangskomponente (ZHK) des PCGs liegen. Nur beim Graphen 7 befinden
sie sich in zwei ZHK, die aber aufgrund der strukturell identischen ZHK im Modell A
ebenfalls strukturell identisch sind.
Das Similarity Flooding scheint also aus den Zusammenhangskomponenten, die sich
für den PCG ergeben, jeweils bestimmte auszuwählen, die für die Ergebnismenge relevant
sind. Alle anderen ZHK werden im Laufe der Iterationen immer weniger relevant, was
sich dadurch zeigt, dass die Ähnlichkeitswerte der Knoten daraus immer stärker gegen 0
konvergieren. Die Anfangsähnlichkeiten der Knoten aus N2 scheinen also im Laufe der
49
Graph
1
2
3
4
5
6
7
1
37
109
32
130
308
37
424
2
18
17
6
35
21
29
10
Fall
3
1
5
2
28
114
41
9
4
50
164
39
209
586
61
752
5
36
110
34
127
359
37
382
Tabelle 7.4.: Anzahl der Iterationen bis zum Fixpunkt (Basis-Fixpunktformel)
Iterationen immer mehr „verloren“ zu gehen, wobei zu vermuten ist, dass sie, lässt man
das Similarity Flooding mit = 0 laufen, sogar vollständig verloren gehen.
Bezüglich der Qualität der Ergebnisse lässt sich in Fall 1 Folgendes feststellen: Bei
Graph 2 sind genau die Knoten, die als Matching-Kandidaten erwartet wurden, in der
Menge N1 im Ergebnis zu finden. Ebenso verhält es sich bei den Graphen 6 und 7. In der
Stable Marriage zu Graph 2 und 6 sind alle erwarteten Matching-Kandidaten wiederzufinden. Bei Graph 6 werden dabei die 6 Knoten, die in der Menge N1 sind, aber nicht
zu den erwarteten Matching-Kandidaten gehören, herausgefiltert, bei Graph 2 werden
zusätzlich weitere Knoten aus der Menge N2 mit in die Stable Marriage aufgenommen,
auch wenn deren Ähnlichkeitswerte nur sehr geringe absolute Werte annehmen.
Bei Graph 7 liefert das Stable Marriage nur die Matching-Kandidaten aus der ZHK
mit den Knoten ai, bj, ck und dl zurück. Da die Ähnlichkeitswerte der Knoten in der
zweiten ZHK mit den Knoten ei, f j, gk und hl dieselben sind, ist das hier nur auf die
Implementierung des Stable Marriage Algorithmus zurückzuführen.
Bei den Graphen 1, 3, 4 und 5 lässt sich an dieser Stelle über die Qualität der Ergebnisse noch nicht viel aussagen, da erwartete Matching-Kandidaten nicht vorhanden
sind. Die Ergebnisse werden erst in den folgenden Fällen relevant für Vergleiche werden.
Bezüglich der Zahl der Iterationen, die benötigt werden, bis ein Fixpunkt erreicht wird,
kann festgestellt werden, dass diese bei den einzelnen Graphen deutlich schwankt. Die
an dieser Stelle nahe liegende Vermutung, dass die Anzahl der Iterationen von der Größe
der Graphen abhängig ist, also mit zunehmender Knotenzahl auch mehr Iterationen bis
zum Fixpunkt benötigt werden, kann hier widerlegt werden, denn Graph 6 benötigt bis
zum Erreichen genauso wie Graph 1 37 Iterationen, obwohl seine Knotenzahl mit 60 (im
Vergleich zu 6) deutlich größer ist.
Die Anzahl der Iterationen pro Graph bis zum Erreichen des Fixpunktes für die
einzelnen Fälle ist in Tabelle 7.4 dargestellt.
Fall 2
Mit dem 2. Fall soll überprüft werden, ob sich derselbe Fixpunkt wie in Fall 1 auch dann
einstellt, wenn man nur noch einen Knoten mit einer Anfangsähnlichkeit versieht, und
50
wie sich das allgemein auf das Similarity Flooding auswirkt. Zu diesem Zweck wurde
der Knoten (bzw. die Knoten, wenn es wie im Graphen 7 mehrere solcher Knoten gibt)
mit dem höchsten Ähnlichkeitswert im Fixpunkt in Fall 1 ermittelt und dessen Anfangsähnlichkeit auf 1 gesetzt. Alle anderen Knoten bekamen eine Anfangsähnlichkeit von 0
zugewiesen.
Die mit diesen Einstellungen durchgeführten Experimente zeigen zunächst, dass sich
bei allen Graphen der Fixpunkt nach – in einigen Fällen deutlich – weniger Iterationen
einstellt als in Fall 1 (vgl. Tabelle 7.4). Die Knoten, die in Fall 1 in der Menge N1
waren, sind auch in Fall 2 in dieser Menge vorhanden. Die absoluten Werte weichen im
Vergleich um maximal 0.003 ab, sodass man davon sprechen kann, dass sich in Fall 2
derselbe Fixpunkt einstellt wie in Fall 1. Für die Knoten in der Menge N2 fällt auf, dass
im 2. Fall keiner dieser Knoten einen Ähnlichkeitswert ungleich 0 aufweist, während es
in Fall 1 durchaus noch solche Werte gab.
Betrachtet man die Entwicklung der Ähnlichkeitswerte über die Iterationen, ist festzustellen, dass sich die Ähnlichkeitswerte der N2 -Knoten während des gesamten Ablaufs
des Algorithmus nicht verändern, sondern konstant bei 0 bleiben.
Zieht man hier die Beobachtung aus Fall 1 hinzu, dass das Similarity Flooding nur
bestimmte Zusammenhangskomponenten auswählt, die im Fixpunkt relevante MatchingKandidaten liefern, lassen sich die Ergebnisse wie folgt erklären: Dadurch, dass der einzige Anfangsähnlichkeitswert (bzw. die beiden Werte bei Graph 7) ungleich 0 in der bzw.
den ZHK liegen, die in Fall 1 für die Ermittlung des Fixpunktes ausgewählt wurden,
fließen in Fall 2 innerhalb dieser ZHK die Ähnlichkeitswerte solange, bis sie sich auf
demselben Fixpunkt einpendeln wie in Fall 1. Da in den anderen ZHK alle Ähnlichkeitswerte zu Anfang auf 0 gesetzt wurden, können hier keine Ähnlichkeitswerte ungleich 0
berechnet werden, weil keine Verbindung zu der bzw. den ZHK mit der Anfangsähnlichkeit von 1 existiert.
Dass sich der Fixpunkt in Fall 2 nach weniger Iterationen als in Fall 1 einstellt, kann
unter Berücksichtigung der Beobachtung, dass sich in Fall 1 die Werte der N1 -Knoten
während der letzten Iterationen vor Erreichen des Fixpunktes nicht bzw. kaum noch
verändert haben, damit erklärt werden, dass durch das Wegfallen der positiven N2 Werte in Fall 2 keine „unnötigen“ Iterationen nötig sind, um diese auf nahezu konstante
Werte zu bekommen. Führt man das auf PCGs zurück, bedeutet das, dass nur noch
die Änderungen der Ähnlichkeitswerte in einer ZHK (bzw. 2 in Graph 7) dafür relevant
sind, wann der Fixpunkt erreicht ist, und alle anderen ZHK nicht zu berücksichtigen
sind. Dadurch werden besonders bei den Graphen, die viele Knoten besitzen, die der
Menge N2 zugeordnet werden, sehr viele Iterationen eingespart.
Tabelle 7.5 stellt die Ähnlichkeitswerte analog zu Tabelle 7.3 für Fall 2 für den Graphen 1 über mehrere Iterationen dar. Die Knoten, die der Menge N1 zugeordnet werden
können, sowie deren Ähnlichkeitswerte im Fixpunkt nach 18 Iterationen sind auch hier
fett hervorgehoben.
51
Knoten
(a, b)
(a1 , b)
(a1 , b1 )
(a1 , b2 )
(a2 , b1 )
(a2 , b2 )
1
1
0
0.5
0
0.5
0
2
1
0
0.5
0.25
0.5
0
3
1
0
0.5
0.375
0.625
0
4
1
0
0.471
0.471
0.706
0
Iteration
5
10
1
1
0
0
0.446 0.392
0.541 0.682
0.77 0.901
0
0
15
1
0
0.384
0.704
0.921
0
16
1
0
0.384
0.705
0.922
0
17
1
0
0.383
0.706
0.923
0
18
1
0
0.383
0.706
0.923
0
Tabelle 7.5.: Entwicklung der Ähnlichkeitswerte über mehrere Iterationen (Graph 1) für
Fall 2
Fall 3
Im 3. Fall der Experimente zu den Anfangsähnlichkeiten soll die in den bisherigen Fällen
gemachte Beobachtung, dass beim Similarity Flooding bestimmte Zusammenhangskomponenten der PCGs für die Ähnlichkeitswerte im Fixpunkt relevant sind und andere
nicht, genauer überprüft werden. Dazu wurden hierfür die Anfangsähnlichkeiten aller
Knoten, die in Fall 1 und 2 nicht in der Menge N1 waren, auf 1 gesetzt, die der restlichen Knoten (also der N1 -Knoten aus Fall 1 und 2) auf 0. Dadurch wird erreicht, dass
in den Graphen die ZHK, denen in den vorherigen Fällen die N1 -Knoten entstammten,
komplett „ausgeblendet“ werden, wodurch zu erwarten ist, dass sich in Fall 3 deutlich
andere Fixpunkte einstellen müssten.
Die Experimente bestätigen diese Vermutung. Es fällt unmittelbar auf, dass wie erwartet keiner der Knoten, die in Fall 1 und 2 in der Menge N1 waren, in Fall 3 noch
dieser Menge zugeordnet werden können. Die Ähnlichkeitswerte aller dieser Knoten sind
hier im Fixpunkt 0, und betrachtet man die Entwicklung der Werte über die Iterationen,
ist festzustellen, dass wie erwartet auch keine anderen Werte als 0 angenommen werden.
Die Knoten, die in Fall 3 im Fixpunkt überhaupt von 0 verschiedene Ähnlichkeitswerte
haben, sind solche, die in Fall 1 und 2 in der Menge N2 vorhanden waren. Betrachtet man
die PCGs zu den Graphen, stellt man fest, dass bei Graph 1, 2, 3 und 7 alle Knoten aus
der Ergebnismenge in den ZHK liegen, die in Fall 1 und 2 nicht berücksichtigt wurden.
Die Menge N1 in Fall 3 entspricht hier also genau der Menge N2 aus Fall 1, die Menge
N2 der Menge N1 aus Fall 1. Bei den Graphen 4, 5 und 6 sind nicht alle N2 -Knoten aus
Fall 1 und 2 in Fall 3 in der Menge N1 , sondern nur eine Teilmenge davon. Interessant ist
hierbei wieder, dass der Menge N1 immer alle Knoten von bestimmten ZHK zugeordnet
werden können. Es kommt niemals vor, dass einzelne Knoten einer ZHK der Menge N1
zugeordnet werden, andere derselben ZHK dagegen nicht.
Zur Anzahl der Iterationen bis zum Fixpunkt (vgl. Tabelle 7.4) ist festzustellen, dass
der Algorithmus in Fall 3 nur für Graph 5 und 6 mehr Iterationen benötigt als in Fall
1, bei allen anderen Graphen weniger. Der Grund dafür ist, dass die Graphen 5 und 6
viele ZHK haben, die im Fixpunkt keine relevanten Ergebnisse liefern und deren Knoten
somit der Menge N2 zugeordnet werden können. Wie auch schon in Fall 1 beobachtet,
52
Knoten
(a, b)
(a1 , b)
(a1 , b1 )
(a1 , b2 )
(a2 , b1 )
(a2 , b2 )
Iteration
1
0
1
0
0
0
1
Tabelle 7.6.: Ähnlichkeitswerte (Graph 1) für Fall 3
stellen sich in Fall 3 für die Knoten aus N1 schon nach wenigen Iterationen nahezu
konstante Werte ein. In den folgenden Iterationen müssen die Ähnlichkeitswerte der N2 Knoten allerdings „neutralisiert“ werden, was die höhere Anzahl Iterationen im Vergleich
zu beispielsweise Graph 1 erklärt, bei dem es neben der gezielt auf 0 gesetzten ZHK –
welche die N1 -Knoten in Fall 1 enthalten hat – keine weiteren ZHK mehr gibt, deren
Knoten der Menge N2 zugeordnet werden können und die demnach neutralisiert werden
müssen.
Bezüglich der Qualität der Testergebnisse in Fall 3 ist zu sagen, dass die im Fixpunkt
gelieferten Matching-Kandidaten verglichen mit denen aus Fall 1 und 2 sehr schlecht sind.
Allein bei Betrachtung des Graphen 6 stellt man fest, dass dort Matching-Kandidaten
vorgeschlagen werden, die in den Modellen des Graphen objektiv gesehen quasi keine
strukturellen Ähnlichkeiten aufweisen. Dieses Resultat ist nicht weiter verwunderlich,
denn dadurch, dass für die Experimente in Fall 3 die ZHK „ausgeblendet“ wurden,
welche die „guten“ Matching-Kandidaten enthalten, kann der Algorithmus hier nur vergleichsweise schlechte Ergebnisse liefern.
Tabelle 7.6 stellt der Vollständigkeit halber die Ähnlichkeitswerte im Fixpunkt für
den Graphen 1 in Fall 3 dar. Da sich der Fixpunkt hier bereits nach der 1. Iteration
einstellt, ist keine Entwicklung der Ähnlichkeitswerte wie in Tabelle 7.3 oder Tabelle 7.5
erkennbar. Analog zu diesen beiden Tabellen sind die Knoten aus der Menge N1 und die
Werte im Fixpunkt auch hier fett hervorgehoben.
Fall 4
In Fall 3 wurde nachgewiesen, dass sich durch gezieltes „Ausblenden“ von ganzen Zusammenhangskomponenten der PCGs der Graphen andere Fixpunkte erreichen lassen.
Fall 4 stellt eine leichte Variation von Fall 3 dar und soll prüfen, ob und wie das Similarity Flooding größere „Störungen“ bei den Anfangsähnlichkeiten kompensieren kann.
Dazu wurden in Fall 4 analog zu Fall 3 die Anfangsähnlichkeiten der Knoten, die in Fall
1 und 2 in der Menge N1 waren, auf 0 gesetzt, alle anderen auf 1. Im Unterschied zu
Fall 3 wurde dann die Anfangsähnlichkeit des Knotens, der in Fall 1 den niedrigsten
Wert (smin ) in der Menge N1 aufwies, auf 1 gesetzt. Waren mehreren solcher Knoten
vorhanden, wurde der genommen, der lexikographisch an letzter Stelle stand.
53
Durch diese Einstellungen werden nicht wie in Fall 3 alle ZHK „ausgeblendet“, die
in Fall 1 und 2 Knoten für N1 geliefert haben. Da es zumindest in einer dieser ZHK
noch einen Wert ungleich 0 gibt, hat der Similarity Flooding Algorithmus die Möglichkeit, auch für diese Ähnlichkeitswerte zu berechnen. Dabei stellt sich die Frage, ob sich
derselbe Fixpunkt wie in Fall 1 und 2 einstellt, was dafür sprechen würde, dass das Similarity Flooding robust gegenüber „Störungen“ bei den Anfangsähnlichkeiten ist, oder ob
sich derselbe Fixpunkt wie in Fall 3 einstellt, was für eine Störungsanfälligkeit sprechen
würde.
Die Experimente zeigen, dass sich bei den Graphen 1-6 in Fall 4 derselbe Fixpunkt wie
in Fall 1 einstellt. Die absoluten Ähnlichkeitswerte der Knoten weichen lediglich minimal
(im Bereich von 0.001) von denen in Fall 1 ab.
Bei Graph 7 stellt sich dagegen ein auf den ersten Blick völlig anderer Fixpunkt als
in allen bisherigen Fällen ein. Betrachtet man die Ergebnisse allerdings genauer, stellt
man fest, dass der einzige Unterschied zu dem in Fall 1 erreichten Fixpunkt darin liegt,
dass die Knoten der Zusammenhangskomponente {(ai), (bj), (bk), (cj), (ck), (dl)} in Fall
4 alle Ähnlichkeitswerte von 0 aufweisen. Alle anderen Knoten im Graphen erreichen
dieselben Ähnlichkeitswerte wie in Fall 1.
Die Gründe für diesen Unterschied sind die Einstellungen der Anfangsähnlichkeiten
für Fall 4 in Kombination mit der besonderen Struktur von Graph 7. Da im Vergleich
zu Fall 3 bei Fall 4 nur einem weiteren Knoten ein Wert ungleich 0 zugewiesen wurde
– in diesem Fall dem Knoten (gk) –, es in Graph 7 aber zwei ZHK gibt, die vorher
„ausgeblendet“ wurden, gibt in Fall 4 nach wie vor eine ZHK, die nur Knoten mit
Anfangsähnlichkeiten von 0 aufweist. Diese ZHK ist genau die oben genannte, bei der
alle Knoten im Fixpunkt Ähnlichkeitswerte von 0 aufweisen.
Setzt man in Fall 4 die Anfangsähnlichkeit des Knotens (ck), der in Fall 1 im Fixpunkt
denselben Ähnlichkeitswert smin wie der Knoten (gk) aufwies, statt der von (gk) auf 1,
stellt sich mit Ausnahme der ZHK {(ei), (f j), (f k), (gj), (gk), (hl)} derselbe Fixpunkt
wie in Fall 1 ein. Setzt man die Anfangsähnlichkeiten von (ck) und (gk) auf 1, erreicht
man, dass keine der beiden ZHK „ausgeblendet“ wird und man erhält exakt denselben
Fixpunkt wie in Fall 1 – wie bei den Graphen 1-6 mit Unterschieden der absoluten Werte
im Bereich von maximal 0.001.
Allgemein lässt sich also feststellen, dass ein einziger positiver Wert in den ZHK, die
in Fall 1 Knoten für N1 geliefert haben, ausreicht, um in Fall 4 denselben Fixpunkt zu
erreichen wie dort.
Bezüglich der Anzahl der Iterationen (vgl. Tabelle 7.4) stellt man fest, dass das Similarity Flooding bei jedem getesteten Graphen in Fall 4 mehr Schritte bis zum Erreichen
des Fixpunktes benötigt als in Fall 1. Das kann darauf zurückgeführt werden, dass es
einige Schritte länger dauert, bis sich die Ähnlichkeitswerte der Knoten aus N1 auf ihren
festen Werten „eingependelt“ haben, und es anschließend wieder eine hohe Anzahl von
Iterationen benötigt, bis die Werte der Knoten aus N2 so weit neutralisiert wurden, dass
gemäß dem Algorithmus das Erreichen eines Fixpunktes festgestellt werden kann.
Tabelle 7.7 stellt die Entwicklung der Ähnlichkeitswerte über mehrere Iterationen
am Beispiel von Graph 1 dar. Analog zu den Tabellen in den vorherigen Abschnitten
sind die Knoten der Menge N1 und deren Werte im Fixpunkt nach 50 Iterationen fett
hervorgehoben.
54
Knoten
(a, b)
(a1 , b)
(a1 , b1 )
(a1 , b2 )
(a2 , b1 )
(a2 , b2 )
1
0.5
1
0.5
0
0
1
2
0.5
1
0.375
0
0.125
1
3
0.5
1
0.313
0.063
0.188
1
10
0.831
1
0.336
0.539
0.723
1
Iteration
20
30
1
1
0.301 0.072
0.383 0.383
0.706 0.707
0.923 0.924
0.301 0.072
40
1
0.017
0.383
0.707
0.924
0.017
48
1
0.006
0.383
0.707
0.924
0.006
49
1
0.005
0.383
0.707
0.924
0.005
50
1
0.004
0.383
0.707
0.924
0.004
Tabelle 7.7.: Entwicklung der Ähnlichkeitswerte über mehrere Iterationen (Graph 1) für
Fall 4
Fall 5
In Fall 5 wurden die Anfangsähnlichkeiten aller Knoten auf zufällige Werte im Intervall
(0, 1] gesetzt. Dabei wurde dieser Fall als einziger mehrfach mit jeweils neuen Zufallswerten für die Anfangsähnlichkeiten durchgeführt, um allgemein über die Ergebnisse
aussagen zu können.
Nachdem in den bisherigen Fällen festgestellt wurde, dass das Similarity Flooding
sehr robust gegenüber Störungen bei den Anfangsähnlichkeiten ist, ist anzunehmen, dass
sich Zufallswerte nicht wesentlich auf den Fixpunkt auswirken, der erreicht wird. Nur
bei Graph 7 könnte man aufgrund der Struktur vermuten, dass es hier zu Änderungen
kommen könnte.
Die Experimente bestätigen die Vermutung, dass bei den Graphen 1 bis 6 trotz Zufallswerten derselbe Fixpunkt erreicht wird wie in Fall 1. Lediglich die Anzahl der Iterationen
(vgl. Tabelle 7.4) unterscheidet sich, wobei die Unterschiede in Fall 5 verglichen mit Fall
1 wesentlich geringer ausfallen als etwa in Fall 4 verglichen mit Fall 1.
Wie vermutet zeigen die Ergebnisse der Experimente auch, dass Graph 7 eine Ausnahme darstellt. Hier stellt sich, je nachdem, wie die Zufallswerte ausfallen, entweder
ein Fixpunkt ein, der die Zusammenhangskomponente {(ai), (bj), (bk), (cj), (ck), (dl)}
begünstigt – das heißt deren Knoten höhere absolute Ähnlichkeitswerte ausweisen –
oder einer, der die ZHK {(ei), (f j), (f k), (gj), (gk), (hl)} begünstigt. Die Ähnlichkeitswerte der Knoten der begünstigten ZHK sind dieselben wie im Fixpunkt von Fall 1, alle
anderen Werte unterscheiden sich von den dort ermittelten.
Tabelle 7.8 stellt der Vollständigkeit halber die Entwicklung der Ähnlichkeitswerte
über mehrere Iterationen am Beispiel von Graph 1 für Fall 5 dar.
Zusammenfassung und Zwischenfazit
Die in diesem Abschnitt durchgeführten Experimente haben einige interessante Eigenschaften des Similarity Flooding gezeigt. Es konnte ein Zusammenhang der Ergebnisse,
die der Algorithmus liefert, mit den Zusammenhangskomponenten der PCGs der Testgraphen festgestellt werden. Offenbar sind nur bestimmte ZHK für die „relevanten“ Werte
im Fixpunkt verantwortlich, während die Ähnlichkeitswerte der Knoten von allen an-
55
Knoten
(a, b)
(a1 , b)
(a1 , b1 )
(a1 , b2 )
(a2 , b1 )
(a2 , b2 )
1
1
0.636
0.118
0.867
0.957
0.636
2
0.93
0.547
0.266
0.785
1
0.547
3
0.968
0.49
0.319
0.8
1
0.49
10
1
0.173
0.38
0.714
0.93
0.173
Iteration
15
20
1
1
0.085 0.041
0.382 0.383
0.708 0.707
0.925 0.924
0.085 0.041
30
1
0.01
0.383
0.707
0.924
0.01
34
1
0.006
0.383
0.707
0.924
0.006
35
1
0.005
0.383
0.707
0.924
0.005
36
1
0.004
0.383
0.707
0.924
0.004
Tabelle 7.8.: Entwicklung der Ähnlichkeitswerte über mehrere Iterationen (Graph 1) für
Fall 5
deren ZHK über die Iterationen hinweg immer stärker gegen 0 konvergieren und im
Fixpunkt wenig aussagekräftige Matching-Kandidaten liefern.
Außerdem konnte festgestellt werden, dass das Similarity Flooding relativ robust gegenüber veränderten Anfangsähnlichkeiten ist. Nur in Fall 3 konnte durch gezieltes „Ausblenden“ kompletter ZHK des PCGs erreicht werden, dass sich ein anderer Fixpunkt
einstellt. Der Fixpunkt, der sich dort eingestellt hat, liefert jedoch keine zufriedenstellenden Matching-Kandidaten. Nur in dem speziell konstruierten Beispiel von Graph 7
konnte in Fall 4 und Fall 5 das Ergebnis durch die Anfangsähnlichkeiten so beeinflusst
werden, dass von den zwei dort möglichen, gleich „guten“ Zuordnungen eine bevorzugt
wurde.
Abschließend lässt sich bezüglich der Anfangsähnlichkeiten festhalten, dass diese wie
von den Autoren in [MGMR01] dargestellt die Ergebnisse des Similarity Flooding nicht
wesentlich beeinflussen. Egal, ob nun gezielt potentiell gute Matching-Kandidaten mit
hohen Anfangsähnlichkeiten belegt, Zufallswerte verwendet oder nur ein einziger Kandidat mit einem Wert belegt wurde, hatte auf die Ergebnisse keinerlei Einfluss, sondern
lediglich auf die Anzahl der Iterationen, die bis zum Erreichen dieses Ergebnisses notwendig waren. Die Beeinflussungen, die in Fall 3 festgestellt werden konnten, können in
realen Anwendungen als irrelevant angesehen werden, denn sie würden bedeuten, dass
in einer Vorverarbeitungsphase des Algorithmus komplett falsche Anfangsähnlichkeiten
(und vor allem Werte von 0 für eigentlich gute Matching-Kandidaten) berechnet werden
müssten, was extrem unwahrscheinlich erscheint. Ebenso sind die Beeinflussungen, die
an den Testergebnissen bei Graph 7 festgestellt werden konnten, vermutlich eher theoretisch relevant als in der Praxis. Dass es dort Fälle gibt, in denen zwei Modelle so gestaltet
sind, dass eines der Modelle mit gleicher Wahrscheinlichkeit zu einem oder dem anderen
Teil des zweiten Modells passt, scheint doch eher unwahrscheinlich.
Bezogen auf die zu Beginn des Kapitels angesprochene Berechnung von Anfangsähnlichkeiten in der Vorverarbeitungsphase kann man sagen, dass die Ergebnisse der hier
durchgeführten Experimente deren Nutzen in Frage stellen. Ob nun in einer Vorverarbeitungsphase Ähnlichkeiten berechnet und als Anfangsähnlichkeiten in den Algorithmus
einbezogen werden oder ob direkt Zufallswerte oder konstante Werte ungleich 0 für die
Ähnlichkeiten verwendet werden, wirkt sich offenbar nur darauf aus, wie lange der Al-
56
gorithmus arbeiten muss, um zu einem Ergebnis zu kommen. Hier ist es sicherlich abzuwägen, ob der Aufwand einer Vorverarbeitung notwendig ist, die – mit etwas Glück – zu
einer kürzeren Laufzeit des Algorithmus führt, oder ob gleich darauf verzichtet werden
und die längere Laufzeit in Kauf genommen werden sollte. Zu besseren Ergebnisse führt
die Vorverarbeitung – jedenfalls in den hier getesteten Beispielen – nicht.
7.2.3. Verwendung einer anderen Fixpunktformel
Die Fixpunktformel bestimmt, wie in jedem Schritt des Algorithmus die neuen Ähnlichkeitswerte bestimmt werden. In den Experimenten in Kapitel 7.2.2 wurde die Formel
verwendet, die als Basis-Formel in Tabelle 4.3 in Kapitel 4.3 zu finden ist. Wie dort
erwähnt sind daneben auch weitere Formeln für die Berechnungen der Ähnlichkeitswerte
denkbar. In diesem Abschnitt soll statt der Basis-Formel die Formel A aus Tabelle 4.3
verwendet werden. Danach gilt σ i+1 = normalize(σ 0 + ϕ(σ i )), das heißt im Schritt i+1
berechnet sich die Ähnlichkeit zweier Knoten nicht wie in der Basis-Formel aus den
Ähnlichkeitswerten des vorherigen Durchgangs (σ i ) und den neu berechneten Ähnlichkeitswerten (ϕ(σ i )), sondern aus den Anfangsähnlichkeiten (σ 0 ) und den neu berechneten
Ähnlichkeitswerten. Hier soll nun die Frage geklärt werden, ob durch diese Berechnungsformel andere und unter Umständen bessere Ergebnisse erzielt werden können und ob
mit der Formel eine gezielte Beeinflussung der Ergebnisse durch Ändern der Anfangsähnlichkeiten möglich ist, was in den Tests mit der Basis-Formel nicht möglich gewesen
ist.
Wie in Kapitel 7.2.2 wurden für die Experimente auch hier fünf verschiedenen Einstellungen in Form von fünf Fällen gewählt, deren Ergebnisse und Intentionen nachfolgend
dargestellt werden.
Fall 1 (Referenzfall)
In Fall 1 wurden die Anfangsähnlichkeiten aller Knoten auf einen Wert von 1 gesetzt
und das Testprogramm für jeden Graphen damit durchlaufen. Analog zu Fall 1 in Kapitel 7.2.2 war hier zu erwarten, dass sich ein Fixpunkt in Abhängigkeit der Struktur der
Graphen einstellt, auch wenn dieser aufgrund der anderen verwendeten Fixpunktformel
unter Umständen anders aussieht als in Kapitel 7.2.2. Fall 1 soll auch hier als Referenzfall
für die nachfolgenden Fälle dienen.
Die Experimente zeigen zunächst, dass sich ein Fixpunkt bei allen Graphen schneller
einstellt als mit der Basis-Fixpunktformel. Während zum Beispiel bei Graph 7 mit der
Basis-Fixpunktformel 424 Iterationen benötigt wurden (vgl. Tabelle 7.4), benötigt die
Fixpunktformel A nur 16 Iterationen. Die Anzahl der Iterationen bis zum Fixpunkt ist
für die jeweiligen Fälle, die in diesem Kapitel relevant sind, in Tabelle 7.9 dargestellt.
Bei den Ähnlichkeitswerten im Fixpunkt fällt auf, dass man hier nicht wie bei den
Experimenten mit der Basis-Fixpunktformel Knoten nach ihren Werten in zwei Mengen
einteilen kann. Vielmehr liegen die Werte alle deutlich näher zusammen und im Bereich
von 0.3 und 1. Zur Verdeutlichung dieser Beobachtung und als Vergleich zu den in
57
Graph
1
2
3
4
5
6
7
1
10
17
14
18
18
11
16
2
44
72
79
75
69
20
35
Fall
3
10
17
14
12
14
11
15
4
15
15
16
17
18
12
10
5
14
21
17
21
15
13
10
Tabelle 7.9.: Anzahl der Iterationen bis zum Fixpunkt (Fixpunktformel A)
Knoten
(a, b)
(a1 , b)
(a1 , b1 )
(a1 , b2 )
(a2 , b1 )
(a2 , b2 )
1
1
0.67
0.5
0.67
0.83
0.67
2
1
0.714
0.643
0.786
0.929
0.714
3
1
0.667
0.583
0.75
0.889
0.667
4
1
0.674
0.607
0.764
0.91
0.674
Iteration
5
6
1
1
0.665 0.667
0.596 0.601
0.759 0.761
0.9
0.905
0.665 0.667
7
1
0.665
0.599
0.76
0.902
0.665
8
1
0.666
0.6
0.761
0.904
0.666
9
1
0.665
0.599
0.76
0.903
0.665
10
1
0.666
0.6
0.761
0.903
0.666
Tabelle 7.10.: Entwicklung der Ähnlichkeitswerte über mehrere Iterationen (Graph 1)
für Fall 1
Kapitel 7.2.2 ermittelten Werten sind in Tabelle 7.10 die Ähnlichkeitswerte der Knoten
des Graphen 1 über mehreren Iterationen dargestellt.
Die Ursache dafür, dass die Ähnlichkeitswerte im Fixpunkt sich nicht mehr so stark
voneinander unterscheiden wie mit der Basis-Fixpunktformel, liegt darin, dass die hohe
Anfangsähnlichkeit von 1 bei jeder Neuberechnung der Ähnlichkeitswerte mit einbezogen wird. Die Werte vor der Normalisierung sind in jeder Iteration aus diesem Grund
größer als 1. Da die Maximalwerte der nicht normalisierten Ähnlichkeiten – mit wenigen
Ausnahmen – bei Werten nicht größer als 3 liegen, sind hier nach der Normalisierung
keine so kleinen Werte wie mit der Basis-Fixpunktformel möglich, wodurch auch der
Wertebereich zusammenschrumpft und die Ähnlichkeitswerte näher zusammen liegen.
Bezüglich der Qualität der Ergebnisse ist Folgendes festzustellen. Dadurch, dass die
Werte so eng beieinander liegen, ist es besonders bei den größeren Graphen als Betrachter schwieriger, „gute“ Matching-Kandidaten aus der Ergebnismenge zu ermitteln.
Deshalb ist das Stable Marriage als Filter sehr nützlich, um die Qualität der Ergebnisse
besser analysieren zu können. Es fällt auf, dass sich die Matching-Kandidaten, die das
Stable Marriage hier liefert, teilweise stark von denen unterscheiden, die mit der BasisFixpunktformel in Fall 1 geliefert wurden. So ist zum Beispiel bei Graph 7 im Stable
Marriage mit Fixpunktformel A der Knoten (e, l) vorhanden, der bei Betrachtung der
zugehörigen Modelle eher nicht als Matching-Kandidat zu erwarten gewesen wäre.
58
Die Beobachtung, dass sich die Kandidaten in der Stable Marriage stark voneinander unterscheiden, kann aber nicht bei allen Graphen gemacht werden. Bei Graph 1
und Graph 6 etwa sind die vorgeschlagenen Kandidaten dieselben, bei Graph 2 unterscheiden sie sich nur dadurch, dass statt der Knoten (7, 61) und (8, 62) wie mit der
Basis-Fixpunktformel mit Fixpunktformel A die Knoten (7, 52) und (8, 53) im Ergebnis gewählt werden (vgl. dazu auch Abbildung A.6 in Anhang A). Bei Betrachtung
der Modelle sind das durchaus potenzielle Kandidaten, auch wenn die mit der BasisFixpunktformel gewählten als „besser“ erscheinen.
Fall 2
In Fall 1 wurde festgestellt, dass die Ähnlichkeitswerte durch die hohe Anfangsähnlichkeit
stark beeinflusst wurden. Für den 2. Fall wurden die Anfangsähnlichkeiten aus diesem
Grund zwar auch alle auf denselben Wert gesetzt, allerdings nicht auf 1, sondern auf
0.1. Es ist zu vermuten, dass sich dadurch ein anderer Fixpunkt einstellt, weil die Anfangsähnlichkeiten die berechneten Ähnlichkeitswerte pro Iteration nicht mehr so stark
beeinflussen wie in Fall 1 und somit die Struktur der Graphen und die Ähnlichkeiten
der Nachbarknoten wieder mehr an Bedeutung gewinnen. Zu überprüfen ist hier auch,
ob sich durch das Herabsenken der Anfangswerte ein Fixpunkt erreichen lässt, dessen
Stable Marriage dieselben Ergebnisse liefert wie in Fall 1 mit der Basis-Fixpunktformel.
Bei den Ergebnissen dieses Testdurchlaufs ist zunächst zu erkennen, dass die Anzahl
der Iterationen in Fall 2 im Vergleich zu Fall 1 deutlich gestiegen ist (vgl. Tabelle 7.9).
Die Ähnlichkeitswerte im Fixpunkt liegen nicht mehr so nah beieinander wie in Fall 1,
die niedrigsten Werte liegen hier bei Graph 6 sogar unter 0.1.
Zu den Ergebniswerten ist festzustellen, dass sich die Stable Marriages in Fall 2 bei
den Graphen 2, 3, 4, 5 und 7 von denen in Fall 1 unterscheiden. Bei den Graphen 1 und
6 sind sie identisch. Vergleicht man die Kandidaten in den Stable Marriages mit denen,
die in Fall 1 mit der Basis-Fixpunktformel erreicht wurden, erkennt man, dass bis auf in
Graph 5 und 7 dieselben Stable Marriages erreicht wurden.
Die gleichen vorgeschlagenen Matching-Kandidaten für die Graphen 1-4 und 6 deuten darauf hin, dass man durch Verringern des Einflusses der Anfangsähnlichkeiten
mit Fixpunktformel A genau dieselben Ergebnisse erhalten kann wie mit der BasisFixpunktformel. Als Grund dafür ist zu vermuten, dass, sobald sich die Anfangsähnlichkeiten nicht mehr so stark wie in Fall 1 auf die Berechnung der Ähnlichkeitswerte
pro Iteration auswirken, die Struktur der Graphen bzw. die Ähnlichkeitswerte der Nachbarknoten die Ergebnisse wieder stärker beeinflusst und dadurch die Ergebnisse beider
Fixpunktformeln wieder „ähnlicher“ werden.
Diese Vermutung lässt sich erhärten, wenn man bei Graph 7, in dem mit Anfangsähnlichkeiten von 0.1 noch ein anderes Stable Marriage als in Fall 1 mit der BasisFixpunktformel geliefert wurde, die Werte weiter verringert. Setzt man beispielsweise
die Anfangsähnlichkeiten auf 0.01 statt 0.1, stellt sich mit Fixpunktformel A dieselbe
Stable Marriage wie dort ein. Kleine Anfangsähnlichkeiten scheinen also verglichen mit
der Basis-Fixpunktformel ähnlichere Ergebnisse zu liefern als große.
Bei Graph 5, in dem andere Matching-Kandidaten als mit der Basis-Fixpunktformel
59
Knoten
(a, b)
(a1 , b)
(a1 , b1 )
(a1 , b2 )
(a2 , b1 )
(a2 , b2 )
1
0.3
0.2
0.15
0.2
0.25
0.2
2
0.5
0.3
0.25
0.35
0.45
0.3
3
0.8
0.4
0.35
0.55
0.7
0.4
10
1
0.257
0.423
0.708
0.921
0.257
Iteration
20
30
1
1
0.233 0.232
0.421 0.42
0.708 0.707
0.916 0.914
0.233 0.232
40
1
0.232
0.419
0.707
0.914
0.232
42
1
0.232
0.419
0.707
0.913
0.232
43
1
0.231
0.419
0.707
0.913
0.231
44
1
0.232
0.419
0.707
0.913
0.232
Tabelle 7.11.: Entwicklung der Ähnlichkeitswerte über mehrere Iterationen (Graph 1)
für Fall 2
vorgeschlagen werden, ist der Unterschied darauf zurückzuführen, dass in der Ergebnismenge dort viele Knoten mit Ähnlichkeitswerten von 0 aufgetreten sind, während mit
Fixpunktformel A in Fall 2 alle Werte größer als 0 waren. Die vielen gleichen Werte
führen zu einer anderen Stable Marriage als die sich unterscheidenden Werte mit Fixpunktformel A.
Tabelle 7.11 stellt die Ähnlichkeitswerte des Graphen 1 für Fall 2 nach mehrere Iterationen dar. Hier ist im Vergleich zu Tabelle 7.10 der Unterschied in den Werten im
Fixpunkt erkennbar.
Fall 3
Nachdem für Fall 1 und Fall 2 gleiche Anfangsähnlichkeiten verwendet wurden und nur
die Auswirkungen unterschiedlicher Beträge untersucht wurde, soll mit Fall 3 geprüft
werden, wie sich unterschiedliche Werte bei den Anfangsähnlichkeiten auf die Ergebnisse
auswirken. Für diesen Fall wurden die Anfangsähnlichkeiten der Knoten, die in Fall 1
mit der Basis-Fixpunktformel in Kapitel 7.2.2 der Menge N1 zugeordnet werden konnten
– die also dort die höchsten Werte angenommen haben – auf 1 gesetzt, alle anderen auf
0.
Die Idee dahinter ist es, zu versuchen, denselben Fixpunkt wie mit der Basis-Fixpunktformel zu erreichen. Da sich, wie in Fall 1 und 2 festgestellt, die Anfangsähnlichkeiten mit
Fixpunktformel A wesentlich stärker auf die Ergebnisse auswirken, soll durch gezieltes
Setzen von hohen Werten für die erwünschten Matching-Kandidaten erreicht werden,
dass diese vom Algorithmus zurückgeliefert werden.
Die Ergebnisse zeigen, dass die Zahl der Iterationen bis zum Fixpunkt verglichen mit
Fall 2 bei Fall 3 wieder deutlich geringer ist (vgl. Tabelle 7.9). Die Ähnlichkeitswerte der
Knoten im Fixpunkt lassen sich – analog zu den Werten mit der Basis-Fixpunktformel
– anhand ihres Betrages in Mengen N1 und N2 aufteilen, wobei sich die auf diese Weise
eingeteilten Mengen nicht von denen unterscheiden, die etwa in Fall 2 mit der BasisFixpunktformel erreicht wurden. Wie dort werden mit Fixpunktformel A in Fall 3 einige
hohe Werte erreicht, deren Knoten alle in bestimmten Zusammenhangskomponenten des
PCG liegen, während alle anderen Knoten Werte von 0 aufweisen.
60
Knoten
(a, b)
(a1 , b)
(a1 , b1 )
(a1 , b2 )
(a2 , b1 )
(a2 , b2 )
1
1
0
0.5
0.667
0.833
0
2
1
0
0.643
0.786
0.929
0
3
1
0
0.583
0.75
0.889
0
4
1
0
0.607
0.764
0.91
0
Iteration
5
6
1
1
0
0
0.596 0.601
0.759 0.761
0.9
0.905
0
0
7
1
0
0.599
0.76
0.902
0
8
1
0
0.6
0.761
0.904
0
9
1
0
0.599
0.76
0.903
0
10
1
0
0.6
0.761
0.903
0
Tabelle 7.12.: Entwicklung der Ähnlichkeitswerte über mehrere Iterationen (Graph 1)
für Fall 3
Auch wenn die absoluten Werte der Knoten im Fixpunkt nicht dieselben sind wie
mit der Basis-Fixpunktformel, lässt sich sagen, dass sich durch gezieltes Einstellen von
Anfangsähnlichkeiten mit Fixpunktformel A derselbe Fixpunkt erreichen lässt. Tabelle 7.12 stellt die Entwicklung der Ähnlichkeitswerte für Graph 1 für den Fall 3 bis zum
Erreichen des Fixpunktes nach 10 Iterationen dar.
Fall 4
In Fall 3 wurde gezeigt, dass sich durch Einstellen von unterschiedlichen Anfangsähnlichkeiten der Fixpunkt aus Fall 1 aus Kapitel 7.2.2 erreichen lässt. In Fall 4 wurden dieselben
Anfangsähnlichkeiten gewählt wie in Fall 4 mit der Basis-Fixpunktformel. Während sich
dort derselbe Fixpunkt wie in Fall 3 einstellte, soll hier überprüft werden, ob das mit
den Einstellungen auch mit Fixpunktformel A der Fall ist.
Die Experimente führen zu dem Ergebnis, dass sich bei allen Graphen ein anderer
Fixpunkt einstellt als in den Fällen 1 bis 3. Die Anzahl der Iterationen liegt dabei
ähnlich wie bei Fall 1 und 3 zwischen 10 und 20 (vgl. Tabelle 7.9).
Aus diesen Beobachtungen lässt sich folgern, dass der Einfluss der Anfangsähnlichkeiten auf die Ergebnisse, die das Similarity Flooding liefert, mit Fixpunktformel A deutlich
größer ist als mit der Basis-Fixpunktformel. Während dort die Einstellungen in Fall 4
nur zu demselben Fixpunkt geführt haben wie auch mit identischen Anfangsähnlichkeiten (wie in Fall 1), berechnet Fixpunktformel A in Fall 4 einen neuen Fixpunkt, der die
Anfangsähnlichkeiten stärker berücksichtigt.
Tabelle 7.13 stellt die Entwicklung der Ähnlichkeitswerte über die Iterationen für
Graph 1 dar.
Fall 5
Im letzten hier durchgeführten Testdurchgang soll überprüft werden, wie sich das Similarity Flooding mit Fixpunktformel A bei zufälligen Anfangsähnlichkeiten verhält.
Dazu wurden wie in Fall 5 in Kapitel 7.2.2 zufällige Werte im Intervall (0, 1] für die
Anfangsähnlichkeiten festgelegt und der Fall mehrfach mit verschiedenen solcher Werte
ausgeführt.
61
Knoten
(a, b)
(a1 , b)
(a1 , b1 )
(a1 , b2 )
(a2 , b1 )
(a2 , b2 )
1
0.5
1
0.5
0
0
1
2
0.25
1
0.625
0
0.125
1
3
0.375
1
0.563
0.063
0.063
1
4
0.313
1
0.594
0.031
0.125
1
Iteration
5
10
0.359 0.35
1
1
0.578 0.589
0.063 0.057
0.094 0.118
1
1
12
0.352
1
0.588
0.058
0.118
1
13
0.353
1
0.588
0.059
0.117
1
14
0.352
1
0.588
0.058
0.118
1
15
0.353
1
0.588
0.059
0.117
1
Tabelle 7.13.: Entwicklung der Ähnlichkeitswerte über mehrere Iterationen (Graph 1)
für Fall 4
Wie anhand der bisherigen Testfälle zu erwarten war, stellen sich mit zufälligen Anfangsähnlichkeiten auch jeweils sehr unterschiedliche Fixpunkte ein. An dieser Stelle
zeigt sich erneut, wie stark der Einfluss der Anfangsähnlichkeiten mit Fixpunktformel A
auf die Ergebnisse ist.
Zusammenfassung und Zwischenfazit
Durch die in diesem Abschnitt durchgeführten Experimente konnten bedeutende Eigenschaften der Fixpunktformel A festgestellt werden. Die Anfangsähnlichkeiten haben hier
starke Auswirkungen auf die Ergebnisse und sind somit essenziell wichtig für deren Qualität. Hohe Beträge bei den Anfangsähnlichkeiten lassen das Similarity Flooding schnell
einen Fixpunkt erreichen, niedrige Beträge (wie in Fall 2) führen dazu, dass deutlich
mehr Iterationen benötigt werden.
Abschließend kann bezüglich der Fixpunktformel festgehalten werden, dass die Verwendung von Fixpunktformel A nur in Kombination mit einer Vorverarbeitung sinnvoll
ist, in der Anfangsähnlichkeiten berechnet werden. Hier trifft die These der Autoren in
[MGMR01], dass Anfangsähnlichkeiten die Ergebnisse wenig beeinflussen, nicht zu.
7.2.4. Zusammenfassung
In diesem Kapitel konnten zwei zentrale Aspekte des Similarity Floodings näher beleuchtet werden. Abschließend ist festzuhalten, dass die richtige Wahl der Fixpunktformel
entscheidend sein kann, wenn es darum geht, die gewünschten Ergebnisse zu bekommen.
Bei den Experimenten mit der Basis-Fixpunktformel führte alleine die Struktur der
Graphen, die für die Tests verwendet wurden, dazu, dass sich bestimmte Fixpunkte eingestellt haben. Dabei waren Anfangsähnlichkeiten nahezu irrelevant, weil das Similarity
Flooding diese im Laufe der Iterationen „ausgeglichen“ hat. Im konkreten Anwendungsfall bedeutet das, dass es mit der Formel wenig Möglichkeiten gibt, um Ähnlichkeiten, die
nicht strukturell bedingt sind, in das Verfahren einfließen zu lassen. Möchte man etwa ein
Knotenpaar, das strukturell sehr ähnlich ist, trotzdem nicht als Matching-Kandidat im
Ergebnis erhalten, lässt sich das unter Verwendung der Basis-Fixpunktformel nicht durch
62
Einstellen niedriger Anfangsähnlichkeiten für dieses Paar erreichen, sondern höchstens
durch anschließendes Filtern der Ergebnisse.
Anders verhält es sich mit Fixpunktformel A. Hier ist der Einfluss der Anfangsähnlichkeiten deutlich größer, der Einfluss der Struktur auf die Ergebnismenge deutlich
geringer. Während man mit der Basis-Fixpunktformel auf eine Vorverarbeitung gänzlich
verzichten kann, ist sie bei Fixpunktformel A notwendiger und nützlicher Bestandteil.
Das eröffnet im Anwendungsfall deutlich mehr Möglichkeiten, denn im Gegensatz zur
Basis-Fixpunktformel lassen sich die Fixpunkte durch die Anfangsähnlichkeiten beeinflussen.
Das Similarity Flooding ist mit Fixpunktformel A somit wesentlich flexibler und praktikabler einsetzbar als mit der Basis-Fixpunktformel. Möchte man bestimmte Knotenpaare im Ergebnis „begünstigen“, kann man das durch Einstellungen an den Anfangsähnlichkeiten erreichen. Auch wenn man hier strukturell sehr unähnliche Knotenpaare
durch hohe Anfangswerte begünstigt, schafft es der Algorithmus, einen Fixpunkt zu
erreichen, der in Abhängigkeit davon andere Matching-Kandidaten vorschlägt.
Über die Qualität der Fixpunkte, die sich mit der Fixpunktformel A und veränderten Anfangsähnlichkeiten einstellen, kann anhand der in diesem Kapitel verwendeten
Graphen wenig gesagt werden. Auch wenn es – wie etwa bei Graph 6 – Erwartungen gegeben hat, welche Knotenpaare bezüglich ihrer Struktur mit hohen Ähnlichkeitswerten
im Ergebnis auftreten müssten, reicht das nicht aus, um allgemein von „schlechten“ Ergebnissen zu sprechen, wenn durch Ändern der Anfangsähnlichkeiten andere MatchingKandidaten vorgeschlagen werden. Schließlich möchte man durch diese Änderung das
Ergebnis beeinflussen, sodass es durchaus denkbar ist, dass die Matching-Kandidaten,
die sich daraus ergeben, im konkreten Anwendungsfall bessere Kandidaten sind als die,
die sich rein von der Struktur ergeben hätte.
Um die Qualität besser beurteilen zu können, sind Tests an konkreten Anwendungsfällen nötig, wie sie im folgenden Abschnitt durchgeführt werden sollen.
7.3. Experimente an Relationalen Datenbankschemata
Nachdem es in Kapitel 7.2 im Wesentlichen darum ging, die Arbeitsweise des Similarity
Flooding und die Auswirkungen, die die Wahl der Fixpunktformel und die Festlegung
der Anfangsähnlichkeiten auf das Verfahren haben, näher zu beleuchten, soll in diesem
Kapitel die Qualität der Ergebnisse, die das Similarity Flooding liefert, im Vordergrund
stehen. Wie bereits angedeutet, lassen sich anhand von Graphen nur bedingt Aussagen
über die Qualität des Verfahrens treffen. Aus diesem Grund soll das Similarity Flooding
in den folgenden Abschnitten auf konkrete Relationale Datenbankschemata angewandt
werden, um dazu Aussagen treffen zu können.
7.3.1. Experimentaufbau
Auch wenn die Experimente in diesem Kapitel ähnlich ablaufen wie in Kapitel 7.2, gibt es
einige wesentliche Unterschiede, auf die in den folgenden Abschnitten näher eingegangen
werden soll.
63
Abbildung 7.1.: 4 Fälle bei der Schema-Transformation
Umwandlung von Schemata in Graphen
Das Programm, mit dem die Tests durchgeführt wurden, entspricht wie in Kapitel 7.2
dem in Kapitel 6 vorgestellten. Da hier statt Graphen Relationale Datenbankschemata
als Eingabe dienen sollen, war es notwendig, eine Methode zu entwickeln, um diese Schemata in geeignete Graphen-Strukturen zu überführen. Für eine solche Transformation
sind eine Reihe von Möglichkeiten denkbar, sie zu realisieren, die sich dadurch unterscheiden, welche Informationen der Schemata in welcher Form dargestellt werden.
In [MGMR01] stellen die Autoren eine Methode dar, um eine solche Transformation
durchzuführen, und führen sie anhand zweier Beispielschemata durch. Dabei werden
sämtliche Informationen der Schemata in Form eigener Knoten und Kanten repräsentiert,
was dazu führt, dass die auf diese Weise erzeugten Graphen vergleichsweise sehr groß
sind. Für das eine der in [MGMR01] im Kapitel 2 verwendeten Beispielschemata mit einer
Relation und vier Attributen wurden im Graphen auf diese Weise 31 Knoten benötigt,
um es darzustellen, der Similarity Propagation Graph enthält sogar 211 Knoten.
Im Rahmen dieser Arbeit sollen Experimente an größeren Schemata durchgeführt
werden. Für die Transformation soll aus diesem Grund eine andere Methode zur Transformation verwendet werden, die im Vergleich kleinere Graphen erzeugt, dabei aber
trotzdem wesentliche Aspekte der Schemata berücksichtigt.
Die Transformation der Schemata in Graphen geschieht dabei folgendermaßen: Für
jede Relation wird ein Knoten mit ihrem Namen erzeugt. Attribute bekommen ebenfalls
Knoten, die der besseren Übersichtlichkeit halber in der Form „Relationsname.Attributname“ benannt werden. Relationsknoten werden durch Kanten mit den Attributknoten
verbunden, wobei bei der Kantenmarkierung zwischen Fremdschlüsseln und sonstigen
Attributen unterschieden wird. Kanten zu Fremdschlüsseln werden mit „has_foreign_key“ markiert, die übrigen mit „has_attribute“. Fremdschlüsselknoten werden ihrerseits über eine Kante „references“ mit dem Relationsknoten verbunden, auf der der
Fremdschlüssel verweist. Alle Attributknoten können außerdem noch Teil des Primärschlüssels sein, was durch eine Kante zu einem Spezialknoten „Primary Key“ dargestellt
wird, die mit „constraints“ beschriftet ist.
Abbildung 7.1 zeigt beispielhaft die vier möglichen Fälle a) - d) bei der Umwandlung
64
eines Schemas in einen Graphen. Im Quellcode des Testprogramms ist die Transformation
wie in Kapitel 6 angedeutet in der Methoden transform_2 realisiert.
Für die Vorverarbeitung zur Berechnung der Anfangsähnlichkeiten, wie sie in Kapitel 7.3.3 - Kapitel 7.3.4 durchgeführt wird, werden Namensvergleiche von Knoten als
Grundlage verwendet. Für Attribute wird dabei nur der Attributname verglichen, auch
wenn der Knoten mit „Relationsname.Attributname“ benannt ist.
Bei der Transformation in [MGMR01] wurden neben der Art der Attribute auch deren
Datentyp berücksichtigt. Datentypen können beim Matching eine wichtige Rolle spielen,
da sie zusätzliche Informationen liefern können, welche Attribute zweier Relationen zu
matchen sind.
Im Rahmen dieser Arbeit wurde darauf verzichtet, Datentypen bei der Transformation
zu berücksichtigen. Der Grund für diese Entscheidung ist, dass bei den hier verwendeten
Schemata die Datentypen kaum neue Informationen liefern, die beim Matching helfen
könnten. Stattdessen würden dadurch die Graphen nur wieder umfangreicher werden,
worunter die Übersichtlichkeit im Rahmen der Experimente leiden würde.
Was bei den hier verwendeten Beispielen sinnvoller als die Berücksichtigung von Datentypen ist, ist das Berücksichtigen von Domänenwissen. Damit sind Informationen
gemeint, die in der Domäne, der die zu matchenden Schemata zugeordnet sind, bekannt
sind. Zum Beispiel kann für eine Domäne bekannt sein, dass zwei Begriffe synonym verwendet werden, wodurch Informationen für das Matching zugänglich werden, die sonst
nicht vorhanden sind. Domänenwissen ist somit noch mächtiger als die Berücksichtigung
von Datentypen, kann allerdings nicht so einfach automatisch mit berücksichtigt werden.
Bei den hier durchgeführten Experimenten wird Domänenwissen in Kapitel 7.3.4 und Kapitel 7.3.5 in Form von Korrekturen berücksichtigt, die vor bzw. nach einem Durchlauf
des Algorithmus an den automatisch berechneten Anfangsähnlichkeiten vorgenommen
werden.
Im Rahmen der Experimente wurde neben der hier geschilderten Variante zur Transformation der Schemata auch noch mit einer weiteren experimentiert. Im Testprogramm
kann diese Variante ausgewählt werden. Die Ergebnisse damit fielen alle schlechter aus
als mit der hier verwendeten Variante, sodass nicht weiter darauf eingegangen werden
soll.
Verwendete Fixpunktformel
In Kapitel 7.2 konnte festgestellt werden, dass sich die Ergebnisse, die das Similarity
Flooding mit der Basis-Fixpunktformel liefert, durch Setzen der Anfangsähnlichkeiten
kaum beeinflussen lässt, dieses aber mit der Fixpunktformel A möglich ist. Deshalb
sollen die Tests in diesem Abschnitt mit Fixpunktformel A durchgeführt werden, um
Hintergrundinformationen der Schemata in Form von Anfangsähnlichkeiten mit in die
Experimente einfließen lassen zu können.
65
Verwendete Schemata
Für die Experimente in diesem Kapitel wurden acht verschiedene Schemata verwendet,
von denen jeweils zwei zu einem Themenbereich gehören und entsprechend gematcht
werden sollen. Diese sollen hier kurz erläutert werden. Die Schemata sowie ihre graphische Repräsentationen sind in Anhang B zu finden. Wie erwähnt wurden Datentypen
hier weggelassen.
1. Die ersten beiden zu matchenden Schemata sind unterschiedliche Darstellungen
einer Musiksammlung. Schema 1 enthält dabei Informationen über CDs, Musikstücke und Interpreten sowie darüber. Schema 2 enthält zusätzlich Informationen
über Produzenten und unterscheidet zwischen Alben und Samplern.
Da es bei beiden Schemata um das Speichern einer Musiksammlung geht, gibt
es hier eine Reihe von offensichtlichen Gemeinsamkeiten – etwa die Geburtsdaten in beiden INTERPRET-Relationen – und Unterschieden – etwa die Primärschlüssel der INTERPRET-Relationen der Schemata. Für die Experimente wesentlich interessanter sind allerdings die nicht-eindeutigen Punkte. So ließe sich
die ENTHÄLT-Relation aus Schema 1 sowohl der ALBUMSONG- als auch der
SAMPLERSONG-Relation aus Schema 2 sinnvoll zuordnen. Schema 1 ist also in
Teilen eine Generalisierung von Schema 2, woraus sich für die Experimente die Frage ergibt, ob und wie das Similarity Flooding diese Generalisierung durch sinnvolle
Matching-Kandidaten „ausdrücken“ kann.
2. Die nächsten zu matchenden Schemata sind unterschiedliche Möglichkeiten, um Informationen über Reisen mit Bussen darzustellen. Die Schemata wurden dabei aus
[IntDB10] entnommen. Schema 1 enthält Informationen über Städte, Busse, Tagestouren und darüber, wann welche Tour mit welchem Bus welche Stadt besucht.
Schema 2 enthält zusätzlich weitere Informationen über die Fahrer der Busse, gibt
aber keine Auskünfte darüber, welche Städte befahren werden, sondern nur, welche
Länder.
Schema 1 stellt extensional im Wesentlichen eine Teilmenge von Schema 2 dar,
sodass in den Experimenten zu überprüfen ist, wie das Similarity Flooding damit umgeht und ob Matching-Kandidaten geliefert werden, die diese TeilmengenBeziehung sinnvoll zum Ausdruck bringen.
3. Bei den nächsten beiden Schemata handelt es sich um Informationen über Verlage.
Schema 1 enthält Informationen über Autoren, Fotografen, Verlage, Artikel und
Zeitschriften sowie darüber, welche Artikel von welchem Autoren verfasst werden,
welcher Fotograf Fotos dazu liefert und in welcher Zeitschrift welcher Artikel erscheint. Schema 2 enthält Informationen über Redakteure, freie Mitarbeiter und
Artikel und zusätzlich darüber, welche Gage ein Mitarbeiter für einen Artikel bekommt.
Ähnlich wie bei den Musiksammlungs-Schemata sind hier Strukturen vorhanden,
die bei einer Integration durch Generalisierungen gelöst werden müssten. FREI-
66
ER_MITARBEITER aus Schema 2 kann zum Beispiel als Generalisierung zu AUTOR und FOTOGRAF aus Schema 1 aufgefasst werden. Auch hier stellt sich
also die Frage, wie das Similarity Flooding das in den Ergebnissen zum Ausdruck
bringt. Zusätzlich gibt es weitere strukturelle Unterschiede – wie etwa die Relation
VERLAG in Schema 1 im Vergleich zum Attribut Verlag in Schema 2 –, die der
Algorithmus sinnvoll lösen sollte.
4. Die letzten beiden Schemata gehören zum Bereich Filmdatenbank. Sie wurden
beide [IntDB10] entnommen und stellen zwei Möglichkeiten dar, um Filminformationen zu speichern.
Beide Schemata sind verglichen mit den anderen Schemata für die Experimente
wesentlich komplexer. Außerdem weisen sie viele gleichartige Strukturen auf, die
durch das Similarity Flooding gefunden werden sollten. Besonders hervorzuheben
ist hier die Bedeutung von MOVIE in Schema 1 und PRODUCTION in Schema 2.
Während MOVIE in Schema 1 die „zentrale“ Relation darstellt, auf die von nahezu
jeder anderen Relation Fremdschlüssel verweisen, ist das in Schema 2 die Relation
PRODUCTION.
In den Experimenten ist zu erwarten, dass das Similarity Flooding aufgrund der
vielen gemeinsamen Strukturen besonders gute Matching-Kandidaten liefert und
speziell auch die Korrespondenz zwischen MOVIE und PRODUCTION korrekt
erkennt. Außerdem ist davon auszugehen, dass eine Filterung mit Hilfe der Stable
Marriage hier als sinnvolle Eingrenzung der Ergebnisse möglich ist.
7.3.2. Ergebnisse ohne Vorverarbeitung
In dieser ersten Testreihe soll überprüft werden, welche Qualität die Ergebnisse des Similarity Flooding haben, wenn keinerlei Vorverarbeitung durchgeführt wird, sondern
konstant gleiche Ähnlichkeitswerte verwendet werden. Dazu werden alle Anfangsähnlichkeitswerte auf 0.5 gesetzt. Dieser Wert wurde dabei gewählt, weil er dem mittleren
Wert des möglichen Wertebereichs ist.
Die Tabellen mit den Ergebniswerten zu den einzelnen Schemata sind in Tabelle C.1,
Tabelle C.5, Tabelle C.1 und Tabelle C.13 in Anhang C abgedruckt.
Bei den Ergebnissen fällt auf, dass die Ähnlichkeitswerte bis auf den Wert für (PRIMARY KEY, PRIMARY KEY) in allen Beispielschemata relativ gering (zwischen 0.309
und 0) sind. Qualitativ liefert das Similarity Flooding bei keinem der Schemata zufriedenstellende Ergebnisse. Zwar steht etwa das Map Pair (MOVIE, PRODUCTION) bei
der Filmdatenbank mit 0.165 an zweiter Stelle bei den nach Ähnlichkeitswerten geordneten Ergebnissen, die übrigen Map Pairs stellen allerdings kaum sinnvolle Matchings dar.
Das bestätigt die Beobachtung aus Kapitel 7.2.2, dass mit der gewählten Fixpunktformel
nur mit Hilfe einer Vorverarbeitungsphase gute Ergebnisse erzielt werden können.
67
7.3.3. Ergebnisse unter Ausnutzung von Namensgleichheiten von
Relationen und Attributen
In diesem Abschnitt soll die Qualität des Similarity Flooding bei Relationalen Datenbankschemata unter Ausnutzung von Namensgleichheiten in der Vorverarbeitungsphase
ermittelt werden. Dabei wird die Anfangsähnlichkeit σ 0 eines Map Pairs (ni , nj ) nach
folgender Formel festgelegt:
(
σ 0 (ni , nj ) =
α, wenn s(ni , nj ) = 1
0, sonst
s(ni , nj ) überprüft dabei, ob der Name von ni als Teilwort im Namen von nj enthalten ist oder umgekehrt und liefert in diesem Fall den Wert 1 zurück, ansonsten
den Wert 0. Groß- und Kleinschreibung wird dabei nicht berücksichtigt. Für die Knoten (N ame, V ornamen) und (N achname, N ame) liefert s beispielsweise den Wert 1,
was zu σ 0 (N ame, V orname) = σ 0 (N achname, N ame) = α führt. Für den Knoten
(V orname, N achname) ergibt sich so s(V orname, N achname) = 0 und entsprechend
σ 0 (V orname, N achname) = 0.
Da die Ermittlung von Namensgleichheiten auch automatisch realisierbar ist, dient
diese erste Testreihe dazu, zu überprüfen, wie ohne menschliches Einwirken die Ergebnisse bei den verschiedenen Schemata ausfallen. Ausschnitte der Tabellen mit den Ergebniswerten sind in Anhang C abgedruckt.
Zunächst wird α = 1 gesetzt. Bei den Ergebnisse der Musiksammlungs-Schemata
(vgl. Tabelle C.2) ist zu erkennen, dass das Similarity Flooding zwar einige recht gute,
aber auch sehr viele schlechte Matching-Kandidaten vorschlägt. Die Kandidaten mit den
größten Ähnlichkeitswerten sind ausschließlich die, die in der Vorverarbeitung Anfangsähnlichkeiten von 1 zugewiesen bekommen haben, was bedeutet, dass die Struktur der
Graphen die Ergebnisse kaum beeinflusst, sondern eher die Anfangsähnlichkeiten. Dadurch lässt sich erklären, wieso zum Beispiel die ID von INTERPRET in Schema 1 als
Matching-Kandidat mit der ID von PRODUZENT in Schema 2 mit hohem Ähnlichkeitswert vorgeschlagen wird, obwohl beide Relationen strukturell wenig Gemeinsamkeiten
haben.
Betrachtet man die ENTHÄLT-Relation aus Schema 1, die wie oben angesprochen
bei einer Integration beider Schemata durch eine Generalisierung von ALBUMSONG
und SAMPLERSONG aus Schema 2 umgesetzt werden müsste, ist schwer zu beurteilen, ob das Similarity Flooding hier Hinweise auf eine solche Generalisierung liefert oder
nicht. Zwar werden die Attribute der ENTHÄLT-Relation mit nahezu identischen Ähnlichkeitswerten sowohl denen von ALBUMSONG als auch denen von SAMPLERSONG
zugeordnet, da die absoluten Werte aber mit Beträgen um die 0.25 nahe bei den Werten
der anderen Matching-Kandidaten liegen, die in der Vorverarbeitung einen Wert von 1
zugewiesen bekommen haben, wird hier vermutlich eher die Vorverarbeitung und nicht
die strukturelle Ähnlichkeit der Relationen für die Ergebnisse verantwortlich sein.
Betrachtet man die Ergebnisse der Experimente der anderen Beispielschemata (vgl.
Tabelle C.6, Tabelle C.10 und Tabelle C.14), wird schnell klar, dass die Wahl des Wertes
68
1 für α in der Vorverarbeitung dazu führt, dass die Anfangsähnlichkeiten zu stark auf
die Ergebnisse einwirken und die strukturellen Ähnlichkeiten nicht mehr ausreichend
berücksichtigt werden können. Qualitativ gute Ergebnisse sind deshalb kaum möglich.
Aus diesem Grund wird im zweiten Teil dieses Abschnitts α = 0.25 gesetzt. Durch
diese Veränderung ist zu erwarten, dass die Ähnlichkeitswerte relativ zu denen mit α = 1
größer werden und der zu starke Einfluss der Anfangsähnlichkeiten abgeschwächt wird.
Die Ergebnisse dazu werden in den folgenden Unterabschnitten behandelt, die Tabellen
dazu sind in Anhang C zu finden.
Musiksammlung
Bei den Musiksammlung-Schemata (vgl. Tabelle C.3) zeigt sich, dass das Similarity
Flooding mit α = 0.25 im Vergleich zu α = 1 nun nicht mehr ausschließlich Knoten,
die Namensgleichheiten aufweisen, mit hohen Ähnlichkeitswerten liefert. Dennoch ist
die Qualität der Ergebnisse bei Weitem nicht so gut wie erhofft. Die Zuordnung der
INTERPRET-Relation aus Schema 1 zu der aus Schema 2 mit einem Ähnlichkeitswert
von 0.373 ist zum Beispiel noch sinnvoll, die Zuordnung zu PRODUZENT bzw. ALBUM
aus Schema 2 mit Ähnlichkeitswerten von 0.174 bzw. 0.173 dagegen nicht.
Betrachtet man erneut die ENTHÄLT-Relation aus Schema 1, so wird diese nun immerhin mit vergleichsweise hohen Ähnlichkeitswerten als Matching-Kandidat für SAMPLERSONG (0.283) und ALBUMSONG (0.23) vorgeschlagen. Auch wenn das eher als
Hinweis auf eine mögliche Generalisierung bei der Integration der Schemata angesehen
werden kann als mit α = 1, hätte man hier noch deutlichere Ergebnisse erwartet, die
darauf hindeuten.
Bustouren
Das Similarity Flooding liefert auch hier keine qualitativ guten Werte (vgl. Tabelle C.7).
Die höchsten Ähnlichkeitswerte erreichen die Knoten, die Namensgleichheiten aufweisen,
wobei die Werte allgemein recht gering ausfallen. Der erste Ähnlichkeitswert bei einem
Map Pair ohne Namensähnlichkeit fällt mit 0.098 bei BESUCHT und ZUGETEILT
sehr niedrig aus, der Knoten ist außerdem kein anhand der Schemata zu erwartender
Matching-Kandidat.
Auf die Teilmengen-Beziehung, die zwischen den beiden Schemata existiert, liefert das
Similarity Flooding keinerlei Hinweise.
Verlag
Bei den Verlag-Schemata (vgl. Tabelle C.11) ist positiv hervorzuheben, dass die AUTORund FOTOGRAF-Relationen aus Schema 1 mit relativ hohen Ähnlichkeitswerten der
FREIER_MITARBEITER-Relation aus Schema 2 zugeordnet werden, obwohl keinerlei Namensgleichheiten zwischen den Schemata gefunden wurden. Aus den Ergebnissen
lassen sich hier also Hinweise auf die Generalisierung erkennen, die bei der Integration
nötig wäre.
69
Ansonsten sind die Ergebnisse, die das Similarity Flooding liefert, zwar besser als in
den anderen bisher getesteten Schemata, aber noch nicht optimal. Zuordnungen wie etwa
vom Attribut Name der VERLAG-Relation aus Schema 1 zu Name der REDAKTEURRelation aus Schema 2 erscheinen mit vergleichsweise hoher Ähnlichkeit, von der Semantik der Schemata her sind sie jedoch kein sinnvoller Matching-Kandidat. Dagegen
verstärken die gleichen Ähnlichkeiten bei der ID von LIEFERT_BILDER_FÜR und
SCHREIBT aus Schema 1 zu der ID von VERDIENT aus Schema 2 die Hinweise auf
die Notwendigkeit der Generalisierung bei der Integration.
Filmdatenbank
Schaut man sich die Ergebnisse bei den Filmdatenbank-Schemata (vgl. Tabelle C.14) an,
sind zunächst die sinnvollen Zuordnungen von LOCATION zu LOCATION, PERSON
zu PERSON und MOVIE zu PRODUCTION mit hohen Ähnlichkeitswerten auffällig.
Zwar sind auch Zuordnungen wie LOCATION aus Schema 1 zu PERSON aus Schema 2,
PERSON zu LOCATION und MOVIE zu MOVIE mit relativ hohen Ähnlichkeitswerten
aufgeführt, alle diese Relationen sind aber vorher schon mit höheren Ähnlichkeitswerten
als Matching-Kandidaten für andere Relationen ausgegeben worden, was die Ergebnisse
relativiert.
Ermittelt man zu den Ähnlichkeitswerten die Stable Marriage, bekommt man relativ
gute Ergebnisse. MOVIE aus Schema 1 wird korrekterweise PRODUCTION aus Schema
2 zugeordnet, die Fremdschlüssel movie aus den Relationen in Schema 1, die auf MOVIE verweisen, werden ebenfalls korrekt den entsprechenden production-Fremdschlüssel
zugeordnet. Lediglich den Relationen, die ausschließlich in Schema 1 oder Schema 2 vorhanden sind, werden hier nicht sinnvolle Matching-Partner zugeordnet, abgesehen vom
Attribut person der PART-Relation aus Schema 1 zu person der PARENTS-Relation
aus Schema 2 sind die Ähnlichkeitswerte dabei allerdings nur sehr gering.
7.3.4. Ergebnisse unter Ausnutzung von Namensgleichheiten von
Relationen und Attributen mit manuellen Anpassungen
In diesem Abschnitt soll überprüft werden, ob sich die Ergebnisse aus dem vorherigen
Abschnitt mit α = 0.25 durch manuelle Anpassungen der Anfangsähnlichkeiten verbessern lassen. Dazu wurde die Testumgebung so entwickelt, dass nach der automatischen
Vorverarbeitung, die identisch zu der in Kapitel 7.3.3 abläuft, der Benutzer die Möglichkeit hat, die vorberechneten Anfangsähnlichkeiten anzupassen und zu verändern.
Da es sich bei den Anpassungen, die der Benutzer an den Berechnungen der Vorverarbeitung vornehmen wird, je nach Schema um individuelle handelt, wird in den nächsten
Abschnitten auf die jeweils sinnvolle Anpassungen je Themenbereich der Schemata und
auf die Ergebnisse des Verfahrens mit diesen Anpassungen eingegangen. Grundlage für
die Auswahl der Knoten, deren Anfangsähnlichkeiten nach der Vorverarbeitung geändert
werden, bildet dabei das Domänenwissen, über das ein Benutzer verfügt. Tabellen mit
den Ergebnissen sind in Anhang C zu finden.
70
Musiksammlung
Bei den Musiksammlung-Schemata ist anzunehmen, dass ein Benutzer, auch wenn er
wenig Kenntnisse über die Schemata besitzt, nur anhand der Bezeichner der Relationen und Attribute auf Basis des Wissens, das er über die Domäne besitzt, mehrere
Anfangsähnlichkeiten, die in der Vorverarbeitung berechnet wurden, korrigieren würde. Für die Experimente wurden deshalb die Anfangsähnlichkeiten der Map Pairs (INTERPRET.ID, PRODUZENT.ID), (INTERPRET.Name, ALBUM.Albumname) sowie
(INTERPRET.Name, PRODUZENT.Name) von 0.25 auf 0 gesetzt, da diese für einen
Benutzer mit entsprechenden Kenntnissen über die Domäne keine geeigneten MatchingKandidaten darstellen.
Durch diese Anpassungen verbessert sich die Qualität der Ergebnisse, die das Similarity Flooding liefert, verglichen zum vorherigen Abschnitt (vgl. Tabelle C.4). So wird
beispielsweise das Map Pair (INTERPRET, PRODUZENT), das offensichtlich kein guter
Matching-Kandidat ist, nicht mehr mit relativ hoher Ähnlichkeit von 0.174 zurückgeliefert, sondern nur noch mit 0.015.
Bustouren
Bei den Bustouren wurden unter der Annahme, dass ein Benutzer anhand der Namen
der Relationen und Attribute Korrekturen auf Basis seines Domänenwissens vornimmt,
die Anfangsähnlichkeiten der Map Pairs (BESUCHT.Name, FAHRER.FName), (BESUCHT.Name, GEFAHREN_VON.FName), und (STADT.Name, FAHRER.FName) von
0.25 auf 0 gesetzt. Diese Anpassungen erscheinen auch ohne weitere Kenntnisse der Schemata plausibel, weil die Relationen, deren Attribute hier als ähnlich erkannt werden,
allein von den Namen her nichts miteinander zu tun zu haben scheinen.
Diese Anpassungen führen dazu, dass die Ergebnisse minimal besser sind als vorher
(vgl. Tabelle C.8). (BESUCHT.Name, FAHRER.FName) ist im Ergebnis beispielsweise mit einem Ähnlichkeitswert von 0 im Vergleich zu 0.091 nicht mehr als MatchingKandidat in Betracht zu ziehen. Allgemein verbessern sich die Ergebnisse aber verglichen
zu denen bei der Musiksammlung wesentlich weniger.
Verlag
Bei den Verlag-Schemata wurden nach demselben Schema wie zuvor drei Änderungen vorgenommen: Die Anfangsähnlichkeitswerte Map Pairs (VERLAG.Name, FREIER_MITARBEITER.MName), (VERLAG.Name, REDAKTEUR.Name) und (ZEITSCHRIFT.Titel, ARTIKEL.Titel) wurden von 0.25 auf 0 gesetzt.
Auch hier führen die Anpassungen dazu, dass sich die Ergebnisse verbessern (vgl. Tabelle C.12). So wird zum Beispiel dem Map Pair (VERLAG, REDAKTEUR) jetzt nur
noch ein Ähnlichkeitswert von 0 zugeordnet, obwohl er zuvor mit 0.099 noch vergleichsweise hoch war.
71
Filmdatenbank
Bei den Schemata zur Filmdatenbank lassen sich ohne nähere Kenntnisse über die Domäne bzw. die Schemata für einen Benutzer keinerlei sinnvolle Anpassungen vornehmen.
Die Namen der Relationen und Attribute, die übereinstimmen, sind im Wesentlichen
schon identisch, weitere Veränderungen der vorberechneten Anfangsähnlichkeitswerte
erscheinen daher nicht sinnvoll.
7.3.5. Ergebnisse einer iterierten Anwendung
In diesem Abschnitt sollen die Ergebnisse, die das Similarity Flooding in Kapitel 7.3.4
geliefert hat, als Grundlage für die iterative Wiederholung dienen. Die Testumgebung
bietet die Möglichkeit, nach Berechnung der Ergebnisse das Verfahren erneut zu starten,
wobei vorher Knoten gewählt werden können, deren Anfangsähnlichkeiten für die Wiederholung gesetzt werden sollen. Dem Benutzer wird es damit ermöglicht, bestimmte
Matching-Vorschläge auszuwählen und andere abzuwählen, um im nächsten Durchlauf
des Verfahrens noch bessere Ergebnisse bekommen zu können.
Basierend auf dem Domänenwissen wurden für die Experimente scheinbar geeignete
Knoten für die nächste Iteration gewählt, offensichtlich ungeeignete abgewählt. Bei der
Filmdatenbank wurden so zum Beispiel die Zuordnungen von LOCATION zu PERSON
und PERSON zu LOCATION abgewählt.
In allen vier getesteten Schemata ließen sich durch diese Anpassungen in der nächsten
Iteration noch einmal bessere Ergebnisse erzielen als in Kapitel 7.3.4. Die Ähnlichkeitswerte der gewählten – also in den Augen des Benutzers relevanten – Knoten waren
verglichen zu Kapitel 7.3.4 teilweise wesentlich höher, der Unterschied zwischen deren
Ähnlichkeitswerten und denen der nicht gewählten Knoten deutlich ausgeprägter.
Zu erwähnen ist allerdings, dass die Qualität der Ergebnisse für die Iterationen des
Verfahrens hierbei viel stärker von der Auswahl durch den Benutzer und somit von
seinem Wissen über die Domäne abhängig ist. Durch schlechte Wahl der Knoten für die
nächste Iteration kann die Qualität hier stark leiden.
Tabelle C.16 in Anhang C stellt beispielhaft die Ergebnisse der Filmdatenbank dar,
wie sie nach der Iteration des Verfahrens aussehen. Die Ergebnisse des ersten Durchgangs
wurden dabei mittels Stable Marriage gefiltert und die danach zugeordneten Knoten für
die nächste Iteration als relevant ausgewählt. Manuell wurden zusätzlich die Knoten
(PART, PARENTS) und (REMARK, PLAYS) auf Basis des Domänenwissens abgewählt.
7.4. Zusammenfassung
Wie die Experimente in diesem Kapitel gezeigt haben, ist das Similarity Flooding grundsätzlich in der Lage, Matching-Kandidaten für zwei zu matchende Modelle zu ermitteln.
An den Graphen in Kapitel 7.2 konnte festgestellt werden, dass die Wahl der Fixpunktformel bereits im Vorfeld den Einfluss der Anfangsähnlichkeiten auf die Ergebnisse mitbestimmt. Während bei der Basis-Fixpunktformel die Möglichkeit, Ergebnisse gezielt
72
durch Festlegen von Anfangsähnlichkeiten zu beeinflussen, verloren geht, ist das mit der
Fixpunktformel A möglich.
Um die Qualität der Ergebnisse, die das Similarity Flooding liefert, an realen Beispielen zu überprüfen, wurden in Kapitel 7.3 Relationale Datenbankschemata als Eingabe für
weitere Experimente verwendet. Hier hat sich gezeigt, dass ohne eine Vorverarbeitungsphase bei Verwendung der Fixpunktformel A keine guten Ergebnisse geliefert werden
(vgl. Kapitel 7.3.2). Durch eine automatisierte Vorverarbeitung konnten in Kapitel 7.3.3
bessere, wenn auch nach wie vor nicht optimale, Ergebnisse erzielt werden. Manuelle Anpassungen der vorberechneten Anfangsähnlichkeitswerte, wie sie in Kapitel 7.3.4
vorgenommen wurden, konnten die Ergebnisse meist noch weiter verbessern, erfordern
aber Kenntnisse über die Schemata bzw. die Domäne, in der sie angesiedelt sind, die
nicht in jedem Fall wie in den hier verwendeten Beispielen allein anhand der Namen von
Relationen und Attributen erkennbar sind.
Die besten Resultate konnten in Kapitel 7.3.5 dadurch erzielt werden, dass aus den
Ergebnissen des Ablauf des Similarity Flooding bestimmte Matching-Kandidaten gewählt und das Verfahren erneut ausgeführt wurde. Die Auswahl der Kandidaten muss
dabei allerdings wie in Kapitel 7.3.4 manuell passieren, was Kenntnisse über die Domäne
voraussetzt.
73
8. Fazit und Ausblick
Die Integration von Datenbanken und damit verbunden die Suche nach Matchings und
Matching-Verfahren sind Themen, die in Zukunft weiter an Bedeutung gewinnen werden.
Graph-Matching-Verfahren haben dabei ein großes Potenzial, weil sie flexible Eingaben
ermöglichen.
Mit dem Similarity Flooding Algorithmus existiert ein interessantes Verfahren zum
Graph Matching. Im Rahmen von Experimenten konnte in dieser Arbeit gezeigt werden,
welche Möglichkeiten er bietet. Sie machen deutlich, dass ein Matching mit dem Similarity Flooding prinzipiell möglich ist und mit geeigneten Konfigurationen auch recht gute
Ergebnisse liefert.
Ebenso wird klar, dass hier noch eine Menge Potenzial für weitere Experimente und
Untersuchungen vorhanden ist, um das Verfahren zu einem allgemein geeigneten Werkzeug für Matchings zu machen. Im Folgenden soll ein Ausblick geliefert werden, welche
Aspekte in welcher Form weiter zu untersuchen sind, bevor das abschließende Fazit gezogen wird.
Ausblick auf zukünftige Untersuchungen
Fixpunktformel
Der erste im Rahmen weiterer Untersuchungen zu überprüfende Aspekt beim Similarity
Flooding ist die Fixpunktformel. In den Experimenten in dieser Arbeit konnten zwei
unterschiedliche Formeln verglichen werden, wie bereits erwähnt sind hier jedoch noch
eine Reihe weiterer denkbar. Hier ist zu überprüfen, ob andere Formeln unter Umständen
zu besseren Ergebnissen – vor allem beim Schema-Matching – führen. Ziel dabei sollte
es sein, die Fixpunktformel zu ermitteln, die allgemein zu den besten Ergebnissen führt,
wenn es eine solche Formel gibt, oder Bedingungen festzuhalten, unter denen eine Formel
bessere Resultate produziert als eine andere.
Vorverarbeitungsphase
Hat man die geeignetste Formel gefunden, muss untersucht werden, ob sie die Ergebnisse
durch Abwandlung der Vorverarbeitungsphase verbessern lassen. Hierbei ist – vor allem
wenn man das Ziel einer Anwendung auf großen Datenmengen berücksichtigt – besonders
die Frage nach der Automatisierbarkeit relevant. Wie die Experimente gezeigt haben,
ist eine Automatisierung zumindest teilweise möglich, was dem Benutzer viel Aufwand
ersparen kann. In dem Zusammenhang ist die Frage zu klären, ob sich Domänenwissen,
wie es in der Vorverarbeitung in Kapitel 7.3.5 als manuell eingegebene Information durch
74
den Benutzer berücksichtigt wurde, auch automatisch berücksichtigen lässt. Denkbar
wären hier zum Beispiel eine Vorverarbeitung, die zum Teil auf domänenspezifischen
Lexika und Thesauri basiert und daraus Anfangsähnlichkeiten ermittelt.
Filterung der Ergebnisse
Anschließend wäre die Filterung der Ergebnismenge näher zu untersuchen. Mit der Stable
Marriage wurde im Rahmen dieser Arbeit ein möglicher Filter betrachtet, der aber nicht
in jedem Fall geeignet ist. Ideal wäre es in diese Zusammenhang, wenn bereits anhand
der Eingabewerte erkannt werden könnte, ob ein Filter geeignet ist oder nicht. Ob das
möglich ist, wäre in Experimenten zu überprüfen.
Ebenso stellt sich die Frage, welche Filter überhaupt geeignet sind, um die Ergebnismengen zu verkleinern. In Kapitel 4.4 wurden eine Reihe von Filtern vorgestellt. Diese
müssten in weiteren Experimenten auf verschiedene Ergebnismengen des Similarity Flooding angewandt und verglichen werden, damit Aussagen darüber möglich sind, inwiefern
ein Filter besser oder schlechter geeignet ist als ein anderer. Zusätzlich wäre auch hier
interessant zu prüfen, ob bei bestimmten Eingaben bestimmte Filter besser geeignet sind
als andere und ob das bereits an den Eingaben erkannt werden kann.
Datenbankschemata als Eingabe
Um das Similarity Flooding für Relationale Datenbankschemata einzusetzen, müssen
auch hier noch einige Aspekte näher betrachtet werden. Zunächst ist die Transformation
der Schemata in Graphen zu untersuchen. Zu überprüfen ist, ob andere Darstellungen
der Schemata als Graphen zu allgemein besseren Ergebnisse führen als mit der im Rahmen dieser Arbeit verwendeten. Denkbar wäre es zum Beispiel, mehr Knoten für die
Darstellung zu verwenden und so weniger Informationen in den Kantenmarkierungen zu
speichern. Hier müssten also verschiedene Darstellungsweisen derselben Schemata experimentell verglichen werden, um so die optimale Transformation bzw. Darstellung der
Schemata zu finden, sofern es eine solche gibt.
Als nächstes wäre zu untersuchen, ob und wie Besonderheiten, die beim Matching der
Schemata und deren Integration relevant sind, im Similarity Flooding zum Ausdruck
gebracht werden können. Dazu gehören zum Beispiel Generalisierungen und TeilmengenBeziehungen. Diese wurden in den Ergebnissen der Experimente bisher lediglich in Form
von hohen Ähnlichkeitswerten erkannt. Hier ist zu überprüfen, ob es Möglichkeiten gibt,
dass das Similarity Flooding solche Besonderheiten erkennt und entsprechend im Ergebnis kenntlich macht. Um das zu prüfen könnten etwa – wie bei der Vorverarbeitungsphase
– domänenspezifische Lexika und Thesauri verwendet werden, um Ober- und Teilmengen
zu ermitteln. Alternativ wäre zu klären, ob solche Beziehungen schon aus den EingabeSchemata zu erkennen sind.
75
Fazit
Abschließend ist zu sagen, dass sich gezeigt hat, dass Graph-Matching-Verfahren und
speziell das Similarity Flooding ein sehr komplexes Themengebiet sind, das sich nicht in
allen Details im Rahmen dieser Arbeit thematisieren ließ. Dass das Similarity Flooding
in einer Reihe anderer Verfahren – wie etwa SASMINT und COMA – Verwendung
findet, zeigt nicht zuletzt, dass ihm eine gewissen Bedeutung bei der Integration von
Datenbanken geschenkt wird. Die hier betrachteten Aspekte sowie die entwickelte Testumgebung können als Grundlage für weitere Betrachtungen und Experimente mit dem
Verfahren bei dem Versuch verstanden werden, es hin zu einem noch universelleren und
noch besser einsetzbaren Instrument zu entwickeln und dadurch Matchings in Zukunft
weiter vereinfachen zu können.
Ob sich das Similarity Flooding für das Matching kartographischer bzw. räumlicher
Daten eignet, wird sich wohl erst in Zukunft zeigen, wenn weitere Untersuchungen dazu
angestellt wurden. Grundsätzlich dürften räumliche Daten als Eingabe zwar kein Problem darstellen, fraglich ist aber, ob sich Speicherbedarf und Laufzeit des Verfahrens bei
großen Datenmengen in den Griff bekommen lassen und ob die Qualität der Ergebnisse
zufriedenstellend ausfällt.
76
Literaturverzeichnis
[DMR02]
Do, Hong hai, Melnik, Sergey und Rahm, Erhard: Comparison of Schema
Matching Evaluations. In: In Proceedings of the 2nd Int. Workshop on Web
Databases (German Informatics Society), Seiten 221–237, 2002.
[Dra93]
Drakos, Nikos: Text to Hypertext conversion with LATEX2HTML. Baskerville,
3(2):12–15, 1993.
[Gal06]
Gal, Avigdor: Why is Schema Matching Tough and What Can We Do About
It? SIGMOD Record, 35(4):2–5, 2006.
[GS62]
Gale, David und Shapley, Lloyd S.: College admissions and the stability of
marriage. The American Mathematical Monthly, 69(1):9–15, 1962.
[IntDB10]
Praktische Informatik, FG Datenbanken und Informationssysteme Institut für: Übungen zu Integration von Datenbanken im WS 10/11. 2010.
[Kuh55]
Kuhn, Harold W.: The Hungarian method for the assignment problem. Naval
Research Logistics Quarterly, 2(1-2):83–97, 1955.
[LN07]
Leser, Ulf und Naumann, Felix: Informationsintegration - Architekturen
und Methoden zur Integration verteilter und heterogener Datenquellen.
dpunkt.verlag, 2007.
[MBR01]
Madhavan, Jayant, Bernstein, Philip A. und Rahm, Erhard: Generic Schema Matching with Cupid. In: Proceedings of the 27th International Conference on Very Large Data Bases, VLDB ’01, Seiten 49–58, San Francisco,
CA, USA, 2001. Morgan Kaufmann Pulishers Inc.
[MGMR01] Melnik, Sergey, Garcia-Molina, Hector und Rahm, Erhard: Similarity Flooding: A Versatile Graph Matching Algorithm (Extended Technical Report).
Technischer Bericht, Stanford University, 2001.
[MRB03]
Melnik, Sergey, Rahm, Erhard und Bernstein, Philip A.: Rondo: a programming platform for generic model management. In: Proceedings of the 2003
ACM SIGMOD international conference on Management of data, SIGMOD
’03, Seiten 192–204, New York, NY, USA, 2003. ACM.
[MZ98]
Milo, Tova und Zohar, Sagit: Using Schema Matching to Simplify Heterogeneous Data Translation. In: VLDB’98, Proceedings of 24rd International
Conference on Very Large Data Bases, Seiten 122–133, 1998.
77
[Rah11]
Rahm, Erhard: Towards Large-Scale Schema and Ontology Matching. In:
Bellahsene, Zohra, Bonifati, Angela und Rahm, Erhard (Herausgeber): Schema Matching and Mapping, Data-Centric Systems and Applications, Seiten
3–27. Springer Berlin Heidelberg, 2011, ISBN 978-3-642-16518-4.
[RB01]
Rahm, Erhard und Bernstein, Philip A.: A survey of approaches to automatic schema matching. The VLDB Journal, 10:334–350, Dezember 2001.
[Rip04]
Ripperda, Nora: Graphbasiertes Matching in räumlichen Datenbanken. Diplomarbeit, Institut für Informationssysteme, Leibniz Universität Hannover,
2004.
[Sch09]
Schäfers, Michael: Entwicklung eines ähnlichkeitsbasierten Frameworks für
das Matching von Datenbankobjekten. Diplomarbeit, Institut für Informationssysteme, Leibniz Universität Hannover, 2009.
[SE05]
Shvaiko, Pavel und Euzenat, Jérôme: A Survey of Schema-Based Matching
Approaches. Journal of Data Semantics, 3730(4):146–171, 2005.
[Tie03]
Tiedge, Michael: Entwicklung und Implementierung einer topologischen Erweiterung für objektbasierte räumliche Datenbanken. Diplomarbeit, Institut
für Informationssysteme, Leibniz Universität Hannover, 2003.
[UA10]
Unal, Ozgul und Afsarmanesh, Hamideh: Semi-automated schema integration with SASMINT. Knowledge and Information Systems, 23:99–128, 2010.
[Ull76]
Ullmann, J. R.: An Algorithm for Subgraph Isomorphism. J. ACM, 23:31–42,
January 1976, ISSN 0004-5411.
78
A. Anhang – Für Experimente verwendete
Graphen
Anhang A enthält die in Kapitel 5 für die Experimente verwendeten Graphen. Näheres
zu deren Struktur ist im entsprechenden Kapitel zu finden. Zur Verdeutlichung wurden
bei den Graphen Knoten verschiedenartig dargestellt. Eine Erläuterung der Knotenarten
ist in der folgenden Legende zu finden.
Abbildung A.1.: Die unterschiedlichen Knoten der dargestellten Graphen
79
A.1. Graph 1
Abbildung A.2.: Graph 1: Modelle A (links) und B
Abbildung A.3.: Graph 1: Pairwise Connectivity Graph
80
A.2. Graph 2
Abbildung A.4.: Graph 2: Modell A
Abbildung A.5.: Graph 2: Modell B
81
Abbildung A.6.: Graph 2: Pairwise Connectivity Graph
82
A.3. Graph 3
Abbildung A.7.: Graph 3: Modelle A (links) und B
Abbildung A.8.: Graph 3: Pairwise Connectivity Graph
83
A.4. Graph 4
Abbildung A.9.: Graph 4: Modelle A (links) und B
84
Abbildung A.10.: Graph 4: Pairwise Connectivity Graph
85
A.5. Graph 5
Abbildung A.11.: Graph 5: Modelle A (oben) und B
86
Abbildung A.12.: Graph 5: Pairwise Connectivity Graph
87
A.6. Graph 6
Abbildung A.13.: Graph 6: Modelle A (oben) und B
88
Abbildung A.14.: Graph 6: Pairwise Connectivity Graph
89
A.7. Graph 7
Abbildung A.15.: Graph 7: Modelle A (oben) und B
90
Abbildung A.16.: Graph 7: Pairwise Connectivity Graph
91
B. Anhang – Für Experimente verwendete
Schemata
B.1. Musiksammlung
CD (Titel, Jahr, Länge, Typ)
INTERPRET (ID, Name, Geburtsdatum)
MUSIKSTÜCK (Interpret → INTERPRET, Titel, Genre, Länge)
ENTHÄLT ((Titel, Jahr) → CD, (Interpret, Stück) → MUSIKSTÜCK)
Abbildung B.1.: Schema 1
INTERPRET (Künstlername, Geburtsdatum, Realname)
PRODUZENT (ID, Name)
TITEL (Künstlername → INTERPRET, Name, Sprache)
ALBUM (Künstlername → INTERPRET, Albumname, Produzent → PRODUZENT, Genre)
ALBUMSONG ((Künstlername, Titel) → TITEL, (Albuminterpret, Album) → ALBUM,
TrackNr)
SAMPLER (Name, Jahr, Volume, Produzent → PRODUZENT)
SAMPLERSONG ((SName, SJahr, SVolume) → SAMPLER, (Interpret, Titel) → TITEL)
Abbildung B.2.: Schema 2
92
Abbildung B.3.: Graph zu Schema 1
93
Abbildung B.4.: Graph zu Schema 2
94
B.2. Bustouren
STADT (Name, Highlight, Staat)
TAGESTOUR (Tournr, Plätze, Preis, Datum, Fahrer)
BUS (Busnr, Modell)
BESUCHT (Name → STADT, Tournr → TAGESTOUR, Reihenfolge)
MIT (Tournr → TAGESTOUR, Busnr → BUS)
Abbildung B.5.: Schema 1
STAAT (SName, Einreisedoktyp)
TOUR (Tournr)
BUS (Busnr, Plätze, Hersteller, Serie)
FAHRER (FName, Alter)
DATUM (Tag, Monat, Jahr)
FÄHRT_DURCH (SName → STAAT, Tournr → TOUR)
MIT (Tournr → TOUR, Busnr → BUS)
GEFAHREN_VON (Busnr → BUS, FName → FAHRER)
ZUGETEILT (Tournr → TOUR, FName → FAHRER, (Tag, Monat, Jahr) → DATUM)
Abbildung B.6.: Schema 2
95
Abbildung B.7.: Graph zu Schema 1
96
Abbildung B.8.: Graph zu Schema 2
97
B.3. Verlag
AUTOR (ID, Name, Adresse)
FOTOGRAF (ID, Name, Adresse, Ausrüstung)
VERLAG (Name, Anschrift)
ARTIKEL (Titel, Länge, Thema)
ZEITSCHRIFT (Titel, Auflage, Preis, hrsg_von → VERLAG)
SCHREIBT (ID → AUTOR, Titel → ARTIKEL)
LIEFERT_BILDER_FÜR(ID → FOTOGRAF, Titel → ARTIKEL)
ERSCHIENEN_IN (Titel → Artikel, Titel → ZEITSCHRIFT)
Abbildung B.9.: Schema 1
FREIER_MITARBEITER (PersonID, MName, Adresse, KontoNr)
REDAKTEUR (Name, Verlag, Gehalt)
ARTIKEL (Titel, Zeitschrift, Länge, Thema, verantw. → REDAKTEUR)
VERDIENT (fM → FREIER_MITARBEITER, für → ARTIKEL, Gage)
Abbildung B.10.: Schema 2
98
Abbildung B.11.: Graph zu Schema 1
99
Abbildung B.12.: Graph zu Schema 2
100
B.4. Filmdatenbank
MOVIE (movie, title, type, year, runningtime)
PERSON (person, name, real name, sex, height, birth_date, birth_country, birth_location, death_date,
death_country, death_location)
PART (part, movie → MOVIE, person → PERSON, mentioned, creditpos)
CHARACTER (part → PART, character)
REMARK (part → PART, remark)
LINK (movie1 → MOVIE, movie2 → MOVIE, link)
LANGUAGE (movie → MOVIE, language)
GENRE (movie → MOVIE, genre)
KEYWORD (movie → MOVIE, keyword)
COUNTRY (movie → MOVIE, country)
LOCATION (movie → MOVIE, location, country)
AKA (movie → MOVIE, country, aka)
RELEASE (movie → MOVIE, country, release)
RATING (movie → MOVIE, rating, votes)
BUDGET (movie → MOVIE, budget, currency)
QUOTE (movie → MOVIE, dialog, line, quote)
Abbildung B.13.: MovieDB Schema 1
PRODUCTION (production, title, runtime, year)
MOVIE (production → PRODUCTION, type)
SERIES (series, title, year)
EPISODE (production → PRODUCTION, series → SERIES, season, episode, air_date)
GENRE (production → PRODUCTION, genre)
KEYWORD (production → PRODUCTION, keyword)
COUNTRY (production → PRODUCTION, country)
LOCATION (production → PRODUCTION, location, country)
LANGUAGE (production → PRODUCTION, language)
RELEASE (production → PRODUCTION, country, year, month, day)
AKA (production → PRODUCTION, country, aka)
QUOTE (production → PRODUCTION, dialog, line, quote)
BUDGET (production → PRODUCTION, budget, currency)
RATING (production → PRODUCTION, rating, votes)
LINK (production1 → PRODUCTION, production2 → PRODUCTION, link)
PERSON (person, name, real name, sex, height, birth_date, birth_country, birth_location, death_date,
death_country, death_location)
PARENTS (person → PERSON, mother → PERSON, father → PERSON)
WORKS (person → PERSON, production → PRODUCTION, job, credit_pos)
PLAYS (person → PERSON, production → PRODUCTION, role)
Abbildung B.14.: MovieDB Schema 2
101
Abbildung B.15.: Graph zu MovieDB Schema 1
102
Abbildung B.16.: Graph zur Schema 2
103
C. Tabellen zu Kapitel 7.3
Schema 1
Primary Key
ENTHÄLT
ENTHÄLT
CD
CD
MUSIKSTÜCK
MUSIKSTÜCK
CD
CD
CD
MUSIKSTÜCK
MUSIKSTÜCK
INTERPRET
MUSIKSTÜCK
INTERPRET
ENTHÄLT
INTERPRET
INTERPRET
INTERPRET
MUSIKSTÜCK
MUSIKSTÜCK
ENTHÄLT
ENTHÄLT
CD
INTERPRET
MUSIKSTÜCK.Interpret
MUSIKSTÜCK.Interpret
MUSIKSTÜCK.Interpret
MUSIKSTÜCK.Interpret
MUSIKSTÜCK.Interpret
MUSIKSTÜCK.Interpret
ENTHÄLT.Jahr
ENTHÄLT.Titel
...
Schema 2
Primary Key
SAMPLERSONG
ALBUMSONG
SAMPLER
INTERPRET
SAMPLER
ALBUM
ALBUM
PRODUZENT
TITEL
TITEL
INTERPRET
SAMPLER
PRODUZENT
INTERPRET
ALBUM
ALBUM
PRODUZENT
TITEL
ALBUMSONG
SAMPLERSONG
TITEL
SAMPLER
ALBUMSONG
ALBUMSONG
ALBUM.Künstlername
TITEL.Künstlername
ALBUM.Produzent
ALBUMSONG.Album
ALBUMSONG.Albuminterpret
SAMPLER.Produzent
TITEL.Künstlername
TITEL.Künstlername
...
Ähnlichkeitswert
1.0
0.223
0.191
0.178
0.17
0.163
0.158
0.156
0.156
0.155
0.148
0.147
0.143
0.141
0.139
0.127
0.125
0.125
0.124
0.118
0.103
0.095
0.094
0.092
0.085
0.073
0.073
0.071
0.071
0.071
0.071
0.07
0.07
...
Tabelle C.1.: Musiksammlung ohne Vorverarbeitung (0.5)
104
Schema 1
Primary Key
INTERPRET
MUSIKSTÜCK.Interpret
INTERPRET.Geburtsdatum
INTERPRET.Name
INTERPRET.Name
ENTHÄLT.Interpret
MUSIKSTÜCK.Interpret
ENTHÄLT.Jahr
ENTHÄLT.Titel
INTERPRET.ID
ENTHÄLT.Interpret
ENTHÄLT.Titel
INTERPRET.Name
INTERPRET.Name
MUSIKSTÜCK.Genre
CD.Jahr
INTERPRET.Name
CD.Jahr
CD.Titel
CD.Titel
ENTHÄLT.Jahr
INTERPRET.Name
MUSIKSTÜCK.Titel
MUSIKSTÜCK.Titel
ENTHÄLT
MUSIKSTÜCK
ENTHÄLT
INTERPRET
INTERPRET
CD
INTERPRET
MUSIKSTÜCK
MUSIKSTÜCK
CD
INTERPRET
MUSIKSTÜCK.Interpret
MUSIKSTÜCK.Interpret
MUSIKSTÜCK
MUSIKSTÜCK.Interpret
...
Schema 2
Primary Key
INTERPRET
ALBUMSONG.Albuminterpret
INTERPRET.Geburtsdatum
INTERPRET.Künstlername
INTERPRET.Realname
ALBUMSONG.Albuminterpret
SAMPLERSONG.Interpret
SAMPLERSONG.SJahr
SAMPLERSONG.Titel
PRODUZENT.ID
SAMPLERSONG.Interpret
ALBUMSONG.Titel
ALBUM.Albumname
PRODUZENT.Name
ALBUM.Genre
SAMPLER.Jahr
TITEL.Name
SAMPLERSONG.SJahr
ALBUMSONG.Titel
SAMPLERSONG.Titel
SAMPLER.Jahr
SAMPLER.Name
ALBUMSONG.Titel
SAMPLERSONG.Titel
SAMPLERSONG
ALBUM
ALBUMSONG
ALBUM
PRODUZENT
SAMPLER
TITEL
ALBUMSONG
SAMPLERSONG
TITEL
SAMPLER
ALBUM.Künstlername
TITEL.Künstlername
TITEL
ALBUM.Produzent
...
Ähnlichkeitswert
1.0
0.478
0.268
0.261
0.261
0.261
0.26
0.26
0.257
0.255
0.255
0.254
0.254
0.254
0.254
0.253
0.252
0.252
0.25
0.25
0.25
0.25
0.25
0.25
0.25
0.217
0.165
0.15
0.142
0.142
0.108
0.105
0.079
0.076
0.073
0.071
0.066
0.063
0.056
0.023
...
Tabelle C.2.: Musiksammlung mit Vorverarbeitung (1.0)
105
Schema 1
Primary Key
INTERPRET
ENTHÄLT
MUSIKSTÜCK
ENTHÄLT
INTERPRET
INTERPRET
MUSIKSTÜCK.Interpret
ENTHÄLT.Interpret
MUSIKSTÜCK.Interpret
CD
ENTHÄLT.Jahr
INTERPRET.Geburtsdatum
INTERPRET.Name
INTERPRET.Name
ENTHÄLT.Interpret
INTERPRET.ID
ENTHÄLT.Titel
ENTHÄLT.Titel
MUSIKSTÜCK.Genre
INTERPRET.Name
INTERPRET.Name
MUSIKSTÜCK
INTERPRET
INTERPRET.Name
CD.Jahr
INTERPRET.Name
CD.Jahr
CD.Titel
CD.Titel
ENTHÄLT.Jahr
MUSIKSTÜCK
MUSIKSTÜCK.Titel
MUSIKSTÜCK.Titel
MUSIKSTÜCK
MUSIKSTÜCK.Interpret
CD
MUSIKSTÜCK.Interpret
INTERPRET
MUSIKSTÜCK.Interpret
...
Schema 2
Primary Key
INTERPRET
SAMPLERSONG
ALBUM
ALBUMSONG
PRODUZENT
ALBUM
ALBUMSONG.Albuminterpret
ALBUMSONG.Albuminterpret
SAMPLERSONG.Interpret
SAMPLER
SAMPLERSONG.SJahr
INTERPRET.Geburtsdatum
INTERPRET.Künstlername
INTERPRET.Realname
SAMPLERSONG.Interpret
PRODUZENT.ID
ALBUMSONG.Titel
SAMPLERSONG.Titel
ALBUM.Genre
ALBUM.Albumname
PRODUZENT.Name
ALBUMSONG
TITEL
TITEL.Name
SAMPLER.Jahr
SAMPLER.Name
SAMPLERSONG.SJahr
ALBUMSONG.Titel
SAMPLERSONG.Titel
SAMPLER.Jahr
TITEL
ALBUMSONG.Titel
SAMPLERSONG.Titel
SAMPLERSONG
ALBUM.Künstlername
TITEL
TITEL.Künstlername
SAMPLER
ALBUM.Produzent
...
Ähnlichkeitswert
1.0
0.373
0.283
0.269
0.23
0.174
0.173
0.156
0.146
0.136
0.132
0.129
0.129
0.129
0.129
0.126
0.126
0.125
0.125
0.125
0.123
0.123
0.12
0.119
0.119
0.118
0.115
0.113
0.113
0.113
0.113
0.113
0.113
0.113
0.104
0.1
0.096
0.092
0.086
0.053
...
Tabelle C.3.: Musiksammlung mit Vorverarbeitung (0.25)
106
Schema 1
Primary Key
INTERPRET
ENTHÄLT
MUSIKSTÜCK
ENTHÄLT
ENTHÄLT.Interpret
MUSIKSTÜCK.Interpret
CD
MUSIKSTÜCK.Interpret
ENTHÄLT.Jahr
INTERPRET.Geburtsdatum
INTERPRET.Name
INTERPRET.Name
ENTHÄLT.Interpret
ENTHÄLT.Titel
ENTHÄLT.Titel
INTERPRET
MUSIKSTÜCK.Genre
MUSIKSTÜCK
INTERPRET.Name
CD.Jahr
INTERPRET.Name
CD.Jahr
CD.Titel
CD.Titel
ENTHÄLT.Jahr
MUSIKSTÜCK.Titel
MUSIKSTÜCK.Titel
MUSIKSTÜCK
MUSIKSTÜCK
MUSIKSTÜCK.Interpret
CD
MUSIKSTÜCK.Interpret
INTERPRET
INTERPRET
ENTHÄLT.Interpret
ENTHÄLT.Stück
ENTHÄLT.Stück
MUSIKSTÜCK.Interpret
MUSIKSTÜCK
...
Schema 2
Primary Key
INTERPRET
SAMPLERSONG
ALBUM
ALBUMSONG
ALBUMSONG.Albuminterpret
ALBUMSONG.Albuminterpret
SAMPLER
SAMPLERSONG.Interpret
SAMPLERSONG.SJahr
INTERPRET.Geburtsdatum
INTERPRET.Künstlername
INTERPRET.Realname
SAMPLERSONG.Interpret
ALBUMSONG.Titel
SAMPLERSONG.Titel
TITEL
ALBUM.Genre
TITEL
TITEL.Name
SAMPLER.Jahr
SAMPLER.Name
SAMPLERSONG.SJahr
ALBUMSONG.Titel
SAMPLERSONG.Titel
SAMPLER.Jahr
ALBUMSONG.Titel
SAMPLERSONG.Titel
SAMPLERSONG
ALBUMSONG
ALBUM.Künstlername
TITEL
TITEL.Künstlername
ALBUM
SAMPLER
ALBUMSONG.Album
ALBUMSONG.Album
ALBUMSONG.Albuminterpret
ALBUMSONG.Album
SAMPLER
...
Ähnlichkeitswert
1.0
0.396
0.302
0.27
0.249
0.151
0.143
0.142
0.141
0.134
0.133
0.133
0.133
0.13
0.129
0.129
0.128
0.128
0.126
0.123
0.122
0.118
0.116
0.116
0.116
0.116
0.116
0.116
0.114
0.11
0.108
0.104
0.101
0.1
0.093
0.038
0.038
0.038
0.03
0.028
...
Tabelle C.4.: Musiksammlung mit Vorverarbeitung (0.25) und manuellen Anpassungen
107
Schema 1
Primary Key
TAGESTOUR
TAGESTOUR
STADT
TAGESTOUR
TAGESTOUR
BESUCHT
MIT
STADT
BUS
TAGESTOUR
BUS
STADT
STADT
BUS
BUS
STADT
BESUCHT
BESUCHT
MIT
MIT
BESUCHT
MIT
BESUCHT
BUS
BESUCHT
BESUCHT.Name
BESUCHT
BESUCHT
MIT.Busnr
BESUCHT.Name
BESUCHT.Name
BESUCHT.Tournr
MIT.Tournr
MIT.Busnr
MIT.Busnr
BESUCHT.Name
BESUCHT.Tournr
BESUCHT.Tournr
MIT.Tournr
...
Schema 2
Primary Key
BUS
DATUM
BUS
FAHRER
STAAT
ZUGETEILT
ZUGETEILT
DATUM
BUS
TOUR
DATUM
FAHRER
STAAT
FAHRER
STAAT
TOUR
FÄHRT_DURCH
GEFAHREN_VON
FÄHRT_DURCH
GEFAHREN_VON
MIT
MIT
BUS
TOUR
DATUM
FÄHRT_DURCH.SName
FAHRER
STAAT
FÄHRT_DURCH.SName
GEFAHREN_VON.Busnr
MIT.Busnr
FÄHRT_DURCH.SName
FÄHRT_DURCH.SName
GEFAHREN_VON.Busnr
MIT.Busnr
GEFAHREN_VON.FName
GEFAHREN_VON.Busnr
MIT.Busnr
GEFAHREN_VON.Busnr
...
Ähnlichkeitswert
1.0
0.261
0.226
0.181
0.173
0.164
0.162
0.161
0.16
0.146
0.139
0.134
0.129
0.124
0.111
0.107
0.107
0.106
0.106
0.106
0.106
0.105
0.105
0.101
0.099
0.092
0.086
0.084
0.084
0.084
0.082
0.082
0.08
0.08
0.079
0.079
0.078
0.078
0.078
0.078
...
Tabelle C.5.: Bustouren ohne Vorverarbeitung (0.5)
108
Schema 1
Primary Key
TAGESTOUR
MIT
BUS
MIT.Busnr
MIT.Busnr
MIT.Tournr
BESUCHT.Name
BESUCHT.Tournr
BESUCHT.Tournr
MIT.Tournr
TAGESTOUR.Tournr
BESUCHT.Tournr
MIT.Tournr
BESUCHT.Name
BESUCHT.Name
BUS.Busnr
STADT.Name
STADT.Name
BESUCHT.Name
BESUCHT.Name
BESUCHT.Tournr
BUS.Busnr
BUS.Busnr
MIT.Busnr
MIT.Tournr
STADT.Name
STADT.Name
STADT.Name
TAGESTOUR.Tournr
TAGESTOUR.Tournr
TAGESTOUR.Tournr
TAGESTOUR.Plätze
BESUCHT
BESUCHT
STADT
STADT
MIT
MIT
BESUCHT
...
Schema 2
Primary Key
TOUR
MIT
BUS
MIT.Busnr
GEFAHREN_VON.Busnr
MIT.Tournr
FÄHRT_DURCH.SName
FÄHRT_DURCH.Tournr
MIT.Tournr
FÄHRT_DURCH.Tournr
TOUR.Tournr
ZUGETEILT.Tournr
ZUGETEILT.Tournr
GEFAHREN_VON.FName
ZUGETEILT.FName
BUS.Busnr
FAHRER.FName
STAAT.SName
FAHRER.FName
STAAT.SName
TOUR.Tournr
GEFAHREN_VON.Busnr
MIT.Busnr
BUS.Busnr
TOUR.Tournr
FÄHRT_DURCH.SName
GEFAHREN_VON.FName
ZUGETEILT.FName
FÄHRT_DURCH.Tournr
MIT.Tournr
ZUGETEILT.Tournr
BUS.Plätze
ZUGETEILT
FÄHRT_DURCH
FAHRER
STAAT
GEFAHREN_VON
ZUGETEILT
GEFAHREN_VON
...
Ähnlichkeitswert
1.0
0.339
0.268
0.267
0.222
0.212
0.208
0.199
0.199
0.198
0.198
0.198
0.197
0.196
0.194
0.193
0.191
0.188
0.187
0.185
0.185
0.185
0.185
0.185
0.185
0.185
0.185
0.185
0.185
0.185
0.185
0.185
0.184
0.076
0.075
0.072
0.054
0.041
0.04
0.038
...
Tabelle C.6.: Bustouren mit Vorverarbeitung (1.0)
109
Schema 1
Primary Key
TAGESTOUR
MIT
BUS
MIT.Busnr
MIT.Busnr
MIT.Tournr
BESUCHT.Name
BESUCHT.Tournr
BESUCHT.Tournr
MIT.Tournr
BESUCHT.Tournr
TAGESTOUR.Tournr
BESUCHT.Name
MIT.Tournr
BESUCHT.Name
BUS.Busnr
BESUCHT
STADT.Name
STADT.Name
BESUCHT
BESUCHT.Name
BESUCHT.Name
BESUCHT.Tournr
BUS.Busnr
BUS.Busnr
MIT.Busnr
MIT.Tournr
STADT.Name
STADT.Name
STADT.Name
TAGESTOUR.Tournr
TAGESTOUR.Tournr
TAGESTOUR.Tournr
TAGESTOUR.Plätze
STADT
STADT
MIT
MIT
BESUCHT
...
Schema 2
Primary Key
TOUR
MIT
BUS
MIT.Busnr
GEFAHREN_VON.Busnr
MIT.Tournr
FÄHRT_DURCH.SName
FÄHRT_DURCH.Tournr
MIT.Tournr
FÄHRT_DURCH.Tournr
ZUGETEILT.Tournr
TOUR.Tournr
GEFAHREN_VON.FName
ZUGETEILT.Tournr
ZUGETEILT.FName
BUS.Busnr
ZUGETEILT
FAHRER.FName
STAAT.SName
FÄHRT_DURCH
FAHRER.FName
STAAT.SName
TOUR.Tournr
GEFAHREN_VON.Busnr
MIT.Busnr
BUS.Busnr
TOUR.Tournr
FÄHRT_DURCH.SName
GEFAHREN_VON.FName
ZUGETEILT.FName
FÄHRT_DURCH.Tournr
MIT.Tournr
ZUGETEILT.Tournr
BUS.Plätze
FAHRER
STAAT
GEFAHREN_VON
ZUGETEILT
GEFAHREN_VON
...
Ähnlichkeitswert
1.0
0.277
0.2
0.194
0.143
0.131
0.125
0.121
0.116
0.112
0.112
0.111
0.111
0.11
0.11
0.109
0.1
0.098
0.096
0.095
0.092
0.091
0.091
0.091
0.091
0.091
0.091
0.091
0.091
0.091
0.091
0.091
0.091
0.091
0.089
0.081
0.062
0.057
0.057
0.049
...
Tabelle C.7.: Bustouren mit Vorverarbeitung (0.25)
110
Schema 1
Primary Key
TAGESTOUR
MIT
BUS
MIT.Busnr
MIT.Busnr
MIT.Tournr
BESUCHT.Name
BESUCHT.Tournr
BESUCHT.Tournr
MIT.Tournr
BESUCHT.Tournr
TAGESTOUR.Tournr
MIT.Tournr
BESUCHT
BUS.Busnr
BESUCHT
BESUCHT.Name
STADT.Name
BESUCHT.Name
BESUCHT.Tournr
BUS.Busnr
BUS.Busnr
MIT.Busnr
MIT.Tournr
STADT.Name
STADT.Name
STADT.Name
TAGESTOUR.Tournr
TAGESTOUR.Tournr
TAGESTOUR.Tournr
TAGESTOUR.Plätze
STADT
MIT
MIT
BESUCHT
MIT
TAGESTOUR
MIT.Tournr
STADT
...
Schema 2
Primary Key
TOUR
MIT
BUS
MIT.Busnr
GEFAHREN_VON.Busnr
MIT.Tournr
FÄHRT_DURCH.SName
FÄHRT_DURCH.Tournr
MIT.Tournr
FÄHRT_DURCH.Tournr
ZUGETEILT.Tournr
TOUR.Tournr
ZUGETEILT.Tournr
ZUGETEILT
BUS.Busnr
FÄHRT_DURCH
ZUGETEILT.FName
STAAT.SName
STAAT.SName
TOUR.Tournr
GEFAHREN_VON.Busnr
MIT.Busnr
BUS.Busnr
TOUR.Tournr
FÄHRT_DURCH.SName
GEFAHREN_VON.FName
ZUGETEILT.FName
FÄHRT_DURCH.Tournr
MIT.Tournr
ZUGETEILT.Tournr
BUS.Plätze
STAAT
GEFAHREN_VON
ZUGETEILT
MIT
FÄHRT_DURCH
BUS
MIT.Busnr
FAHRER
...
Ähnlichkeitswert
1.0
0.304
0.218
0.211
0.154
0.14
0.134
0.13
0.123
0.119
0.119
0.118
0.118
0.116
0.105
0.105
0.104
0.104
0.099
0.095
0.095
0.095
0.095
0.095
0.095
0.095
0.095
0.095
0.095
0.095
0.095
0.093
0.069
0.064
0.063
0.055
0.054
0.054
0.028
0.025
...
Tabelle C.8.: Bustouren mit Vorverarbeitung (0.25) und manuellen Anpassungen
111
Schema 1
Primary Key
FOTOGRAF
FOTOGRAF
ZEITSCHRIFT
ARTIKEL
ARTIKEL
FOTOGRAF
AUTOR
AUTOR
ARTIKEL
ZEITSCHRIFT
AUTOR
ZEITSCHRIFT
VERLAG
VERLAG
VERLAG
ZEITSCHRIFT
LIEFERT_BILDER_FÜR
SCHREIBT
ERSCHIENEN_IN.Titel
ERSCHIENEN_IN.Titel
ERSCHIENEN_IN.Titel
LIEFERT_BILDER_FÜR.ID
LIEFERT_BILDER_FÜR.ID
FOTOGRAF
LIEFERT_BILDER_FÜR.ID
ERSCHIENEN_IN
SCHREIBT.ID
SCHREIBT.ID
SCHREIBT.ID
ARTIKEL
AUTOR
ZEITSCHRIFT.hrsg_von
ZEITSCHRIFT.hrsg_von
LIEFERT_BILDER_FÜR
SCHREIBT
ZEITSCHRIFT.hrsg_von
VERLAG
ERSCHIENEN_IN
LIEFERT_BILDER_FÜR.Titel
...
Schema 2
Primary Key
ARTIKEL
FREIER_MITARBEITER
ARTIKEL
ARTIKEL
FREIER_MITARBEITER
REDAKTEUR
ARTIKEL
FREIER_MITARBEITER
REDAKTEUR
FREIER_MITARBEITER
REDAKTEUR
REDAKTEUR
ARTIKEL
FREIER_MITARBEITER
REDAKTEUR
VERDIENT
VERDIENT
VERDIENT
VERDIENT.für
VERDIENT.fM
ARTIKEL.verantw.
VERDIENT.fM
VERDIENT.für
VERDIENT
ARTIKEL.verantw.
VERDIENT
VERDIENT.fM
VERDIENT.für
ARTIKEL.verantw.
VERDIENT
VERDIENT
VERDIENT.fM
VERDIENT.für
ARTIKEL
ARTIKEL
ARTIKEL.verantw.
VERDIENT
ARTIKEL
ARTIKEL.verantw.
...
Tabelle C.9.: Verlag ohne Vorverarbeitung (0.5)
112
Ähnlichkeitswert
1.0
0.309
0.308
0.268
0.267
0.267
0.266
0.255
0.254
0.25
0.25
0.225
0.216
0.21
0.21
0.182
0.161
0.159
0.156
0.153
0.15
0.146
0.139
0.139
0.136
0.133
0.13
0.13
0.13
0.126
0.123
0.123
0.12
0.12
0.119
0.118
0.113
0.11
0.104
0.104
...
Schema 1
Primary Key
ARTIKEL
ARTIKEL.Titel
ARTIKEL.Länge
ARTIKEL.Thema
AUTOR.ID
ERSCHIENEN_IN.Titel
FOTOGRAF.ID
VERLAG.Name
AUTOR.Adresse
AUTOR.Name
ZEITSCHRIFT.Titel
FOTOGRAF.Adresse
FOTOGRAF.Name
LIEFERT_BILDER_FÜR.ID
LIEFERT_BILDER_FÜR.Titel
SCHREIBT.ID
SCHREIBT.Titel
VERLAG.Name
AUTOR.Name
FOTOGRAF.Name
AUTOR
FOTOGRAF
ZEITSCHRIFT
AUTOR
FOTOGRAF
VERLAG
VERLAG
ERSCHIENEN_IN.Titel
LIEFERT_BILDER_FÜR.ID
SCHREIBT.ID
LIEFERT_BILDER_FÜR.Titel
SCHREIBT.Titel
LIEFERT_BILDER_FÜR
SCHREIBT
ERSCHIENEN_IN
ZEITSCHRIFT.hrsg_von
LIEFERT_BILDER_FÜR.ID
SCHREIBT.ID
ZEITSCHRIFT.hrsg_von
...
Schema 2
Primary Key
ARTIKEL
ARTIKEL.Titel
ARTIKEL.Länge
ARTIKEL.Thema
FREIER_MITARBEITER.PersonID
ARTIKEL.Titel
FREIER_MITARBEITER.PersonID
REDAKTEUR.Name
FREIER_MITARBEITER.Adresse
FREIER_MITARBEITER.MName
ARTIKEL.Titel
FREIER_MITARBEITER.Adresse
FREIER_MITARBEITER.MName
FREIER_MITARBEITER.PersonID
ARTIKEL.Titel
FREIER_MITARBEITER.PersonID
ARTIKEL.Titel
FREIER_MITARBEITER.MName
REDAKTEUR.Name
REDAKTEUR.Name
FREIER_MITARBEITER
FREIER_MITARBEITER
ARTIKEL
REDAKTEUR
REDAKTEUR
REDAKTEUR
FREIER_MITARBEITER
VERDIENT.für
VERDIENT.fM
VERDIENT.fM
VERDIENT.für
VERDIENT.für
VERDIENT
VERDIENT
VERDIENT
ARTIKEL.verantw.
ARTIKEL.verantw.
ARTIKEL.verantw.
VERDIENT.fM
...
Tabelle C.10.: Verlag mit Vorverarbeitung (1.0)
113
Ähnlichkeitswert
1.0
0.495
0.267
0.264
0.264
0.261
0.26
0.26
0.26
0.258
0.258
0.258
0.257
0.257
0.256
0.256
0.256
0.256
0.256
0.255
0.255
0.214
0.214
0.08
0.076
0.076
0.076
0.074
0.071
0.059
0.059
0.047
0.047
0.03
0.03
0.021
0.021
0.02
0.02
0.019
...
Schema 1
Primary Key
ARTIKEL
AUTOR
FOTOGRAF
ERSCHIENEN_IN.Titel
ARTIKEL.Titel
ARTIKEL.Länge
ARTIKEL.Thema
AUTOR.ID
VERLAG.Name
FOTOGRAF.ID
ERSCHIENEN_IN.Titel
LIEFERT_BILDER_FÜR.ID
SCHREIBT.ID
ZEITSCHRIFT.Titel
AUTOR.Adresse
AUTOR.Name
FOTOGRAF.Adresse
FOTOGRAF.Name
LIEFERT_BILDER_FÜR.ID
LIEFERT_BILDER_FÜR.Titel
SCHREIBT.ID
SCHREIBT.Titel
AUTOR.Name
VERLAG.Name
ZEITSCHRIFT
FOTOGRAF.Name
LIEFERT_BILDER_FÜR
SCHREIBT
AUTOR
FOTOGRAF
VERLAG
VERLAG
ERSCHIENEN_IN
LIEFERT_BILDER_FÜR.Titel
SCHREIBT.Titel
LIEFERT_BILDER_FÜR.ID
SCHREIBT.ID
ZEITSCHRIFT.hrsg_von
ZEITSCHRIFT.hrsg_von
...
Schema 2
Primary Key
ARTIKEL
FREIER_MITARBEITER
FREIER_MITARBEITER
VERDIENT.für
ARTIKEL.Titel
ARTIKEL.Länge
ARTIKEL.Thema
FREIER_MITARBEITER.PersonID
REDAKTEUR.Name
FREIER_MITARBEITER.PersonID
ARTIKEL.Titel
VERDIENT.fM
VERDIENT.fM
ARTIKEL.Titel
FREIER_MITARBEITER.Adresse
FREIER_MITARBEITER.MName
FREIER_MITARBEITER.Adresse
FREIER_MITARBEITER.MName
FREIER_MITARBEITER.PersonID
ARTIKEL.Titel
FREIER_MITARBEITER.PersonID
ARTIKEL.Titel
REDAKTEUR.Name
FREIER_MITARBEITER.MName
ARTIKEL
REDAKTEUR.Name
VERDIENT
VERDIENT
REDAKTEUR
REDAKTEUR
REDAKTEUR
FREIER_MITARBEITER
VERDIENT
VERDIENT.für
VERDIENT.für
ARTIKEL.verantw.
ARTIKEL.verantw.
ARTIKEL.verantw.
VERDIENT.fM
...
Tabelle C.11.: Verlag mit Vorverarbeitung (0.25)
114
Ähnlichkeitswert
1.0
0.409
0.232
0.232
0.146
0.134
0.129
0.129
0.128
0.127
0.126
0.125
0.124
0.124
0.123
0.122
0.122
0.12
0.12
0.119
0.119
0.119
0.119
0.118
0.118
0.118
0.117
0.114
0.114
0.101
0.101
0.099
0.093
0.083
0.081
0.081
0.052
0.052
0.049
0.045
...
Schema 1
Primary Key
ARTIKEL
AUTOR
FOTOGRAF
LIEFERT_BILDER_FÜR.ID
SCHREIBT.ID
LIEFERT_BILDER_FÜR
SCHREIBT
ARTIKEL.Titel
ARTIKEL.Länge
ARTIKEL.Thema
AUTOR.ID
FOTOGRAF.ID
ERSCHIENEN_IN.Titel
AUTOR.Adresse
AUTOR.Name
FOTOGRAF.Adresse
FOTOGRAF.Name
AUTOR.Name
LIEFERT_BILDER_FÜR.ID
LIEFERT_BILDER_FÜR.Titel
SCHREIBT.ID
SCHREIBT.Titel
AUTOR
FOTOGRAF
FOTOGRAF.Name
ERSCHIENEN_IN.Titel
LIEFERT_BILDER_FÜR.Titel
SCHREIBT.Titel
ERSCHIENEN_IN
LIEFERT_BILDER_FÜR.ID
SCHREIBT.ID
ERSCHIENEN_IN.Titel
LIEFERT_BILDER_FÜR
SCHREIBT
LIEFERT_BILDER_FÜR.ID
SCHREIBT.ID
ARTIKEL
ZEITSCHRIFT
ARTIKEL
...
Schema 2
Primary Key
ARTIKEL
FREIER_MITARBEITER
FREIER_MITARBEITER
VERDIENT.fM
VERDIENT.fM
VERDIENT
VERDIENT
ARTIKEL.Titel
ARTIKEL.Länge
ARTIKEL.Thema
FREIER_MITARBEITER.PersonID
FREIER_MITARBEITER.PersonID
ARTIKEL.Titel
FREIER_MITARBEITER.Adresse
FREIER_MITARBEITER.MName
FREIER_MITARBEITER.Adresse
FREIER_MITARBEITER.MName
REDAKTEUR.Name
FREIER_MITARBEITER.PersonID
ARTIKEL.Titel
FREIER_MITARBEITER.PersonID
ARTIKEL.Titel
REDAKTEUR
REDAKTEUR
REDAKTEUR.Name
VERDIENT.für
VERDIENT.für
VERDIENT.für
VERDIENT
ARTIKEL.verantw.
ARTIKEL.verantw.
VERDIENT.fM
ARTIKEL
ARTIKEL
VERDIENT.für
VERDIENT.für
REDAKTEUR
ARTIKEL
FREIER_MITARBEITER
...
Ähnlichkeitswert
1.0
0.463
0.273
0.273
0.155
0.155
0.15
0.15
0.144
0.138
0.138
0.137
0.134
0.132
0.13
0.13
0.128
0.128
0.126
0.126
0.126
0.126
0.126
0.124
0.124
0.124
0.118
0.098
0.098
0.075
0.069
0.069
0.04
0.04
0.04
0.033
0.033
0.029
0.029
0.028
...
Tabelle C.12.: Verlag mit Vorverarbeitung (0.25) und manuellen Anpassungen
115
Schema 1
Primary Key
MOVIE
PERSON
MOVIE
PERSON
PERSON
PART
PERSON
PERSON
PERSON
QUOTE
MOVIE
PART
AKA
BUDGET
LOCATION
PERSON
PERSON
PERSON
PERSON
PERSON
RATING
RELEASE
MOVIE
MOVIE
MOVIE
PART
PART
QUOTE
QUOTE
CHARACTER
COUNTRY
GENRE
KEYWORD
LANGUAGE
LINK
PART
PART
PERSON
PERSON
...
Schema 2
Primary Key
PRODUCTION
PERSON
PERSON
PRODUCTION
RELEASE
PERSON
SERIES
EPISODE
QUOTE
PERSON
SERIES
PRODUCTION
PERSON
PERSON
PERSON
AKA
BUDGET
LOCATION
RATING
WORKS
PERSON
PERSON
RELEASE
EPISODE
QUOTE
RELEASE
EPISODE
RELEASE
PRODUCTION
PERSON
PERSON
PERSON
PERSON
PERSON
PERSON
QUOTE
SERIES
COUNTRY
GENRE
...
Ähnlichkeitswert
1.0
0.165
0.157
0.132
0.087
0.07
0.066
0.059
0.058
0.058
0.058
0.053
0.053
0.046
0.046
0.046
0.046
0.046
0.046
0.046
0.046
0.046
0.046
0.044
0.039
0.039
0.038
0.037
0.037
0.036
0.035
0.035
0.035
0.035
0.035
0.035
0.035
0.035
0.035
0.035
...
Tabelle C.13.: MovieDB ohne Vorverarbeitung (0.5)
116
Schema 1
Primary Key
PERSON
QUOTE
AKA
BUDGET
LOCATION
RATING
LINK
COUNTRY
GENRE
KEYWORD
LANGUAGE
MOVIE
RELEASE
PART.person
PART.person
PART.person
COUNTRY.country
GENRE.genre
KEYWORD.keyword
LANGUAGE.language
AKA.aka
AKA.country
BUDGET.budget
BUDGET.currency
LOCATION.country
LOCATION.location
RATING.rating
RATING.votes
LINK.link
MOVIE.type
QUOTE.dialog
QUOTE.line
QUOTE.quote
RELEASE.country
AKA.country
COUNTRY.country
COUNTRY.country
LOCATION.country
RELEASE.country
...
Schema 2
Primary Key
PERSON
QUOTE
AKA
BUDGET
LOCATION
RATING
LINK
COUNTRY
GENRE
KEYWORD
LANGUAGE
MOVIE
RELEASE
PARENTS.person
PLAYS.person
WORKS.person
COUNTRY.country
GENRE.genre
KEYWORD.keyword
LANGUAGE.language
AKA.aka
AKA.country
BUDGET.budget
BUDGET.currency
LOCATION.country
LOCATION.location
RATING.rating
RATING.votes
LINK.link
MOVIE.type
QUOTE.dialog
QUOTE.line
QUOTE.quote
RELEASE.country
COUNTRY.country
AKA.country
LOCATION.country
COUNTRY.country
COUNTRY.country
...
Ähnlichkeitswert
1.0
0.795
0.3
0.264
0.264
0.264
0.264
0.229
0.228
0.228
0.228
0.228
0.228
0.228
0.217
0.217
0.216
0.207
0.207
0.207
0.207
0.196
0.196
0.196
0.196
0.196
0.196
0.196
0.196
0.195
0.194
0.192
0.192
0.191
0.191
0.188
0.188
0.188
0.188
0.188
...
Tabelle C.14.: MovieDB mit Vorverarbeitung (1.0)
117
Schema 1
Primary Key
PERSON
QUOTE
AKA
BUDGET
LOCATION
RATING
PART.person
PART.person
MOVIE
PART.person
LOCATION
PERSON
LINK
COUNTRY
GENRE
KEYWORD
LANGUAGE
MOVIE
RELEASE
COUNTRY.country
GENRE.genre
KEYWORD.keyword
LANGUAGE.language
PART
AKA.aka
AKA.country
BUDGET.budget
BUDGET.currency
LOCATION.country
LOCATION.location
RATING.rating
RATING.votes
LINK.link
MOVIE.type
QUOTE.dialog
QUOTE.line
QUOTE.quote
RELEASE.country
AKA.country
...
Schema 2
Primary Key
PERSON
QUOTE
AKA
BUDGET
LOCATION
RATING
PARENTS.person
PLAYS.person
PRODUCTION
WORKS.person
PERSON
LOCATION
LINK
COUNTRY
GENRE
KEYWORD
LANGUAGE
MOVIE
RELEASE
COUNTRY.country
GENRE.genre
KEYWORD.keyword
LANGUAGE.language
PARENTS
AKA.aka
AKA.country
BUDGET.budget
BUDGET.currency
LOCATION.country
LOCATION.location
RATING.rating
RATING.votes
LINK.link
MOVIE.type
QUOTE.dialog
QUOTE.line
QUOTE.quote
RELEASE.country
COUNTRY.country
...
Ähnlichkeitswert
1.0
0.787
0.207
0.172
0.171
0.171
0.171
0.149
0.146
0.145
0.145
0.142
0.142
0.137
0.136
0.136
0.136
0.136
0.136
0.136
0.112
0.112
0.112
0.112
0.102
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.098
0.098
0.096
0.096
0.095
0.094
0.092
...
Tabelle C.15.: MovieDB mit Vorverarbeitung (0.25)
118
Schema 1
Primary Key
PERSON
MOVIE
QUOTE
AKA
BUDGET
LINK
LOCATION
RATING
RELEASE
COUNTRY
GENRE
KEYWORD
LANGUAGE
PART.person
COUNTRY.country
COUNTRY.movie
GENRE.genre
GENRE.movie
KEYWORD.keyword
KEYWORD.movie
LANGUAGE.language
LANGUAGE.movie
AKA.movie
BUDGET.movie
LINK.movie1
LINK.movie2
LOCATION.movie
RATING.movie
AKA.aka
AKA.country
BUDGET.budget
BUDGET.currency
LINK.link
LOCATION.country
LOCATION.location
RATING.rating
RATING.votes
CHARACTER
QUOTE.dialog
...
Schema 2
Primary Key
PERSON
PRODUCTION
QUOTE
AKA
BUDGET
LINK
LOCATION
RATING
RELEASE
COUNTRY
GENRE
KEYWORD
LANGUAGE
PARENTS.person
COUNTRY.country
COUNTRY.production
GENRE.genre
GENRE.production
KEYWORD.keyword
KEYWORD.production
LANGUAGE.language
LANGUAGE.production
AKA.production
BUDGET.production
LINK.production1
LINK.production2
LOCATION.production
RATING.production
AKA.aka
AKA.country
BUDGET.budget
BUDGET.currency
LINK.link
LOCATION.country
LOCATION.location
RATING.rating
RATING.votes
WORKS
QUOTE.dialog
...
Ähnlichkeitswert
1.0
0.599
0.542
0.316
0.283
0.283
0.283
0.283
0.283
0.283
0.25
0.25
0.25
0.25
0.202
0.201
0.201
0.201
0.201
0.201
0.201
0.201
0.201
0.189
0.189
0.189
0.189
0.189
0.189
0.188
0.188
0.188
0.188
0.188
0.188
0.188
0.188
0.188
0.184
0.184
...
Tabelle C.16.: MovieDB mit Vorverarbeitung (0.25) nach Wiederholung des Verfahrens
119