pdf (18647 Kb) - Fachgebiet Datenbanken und Informationssysteme ...
pdf (18647 Kb) - Fachgebiet Datenbanken und Informationssysteme ...
pdf (18647 Kb) - Fachgebiet Datenbanken und Informationssysteme ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
von 0.5 eine maximale Kompatibilität ausdrückt. In einer Schleife wird anschließend für<br />
alle Paare von Elementen (s, t) mit s ∈ S, t ∈ T die Ähnlichkeit ssim(s, t) berechnet,<br />
wobei hier zwei Fälle unterschieden werden:<br />
1. Sind s <strong>und</strong> t Blätter, ist der Wert für ssim gleich dem oben berechneten Anfangswert.<br />
2. Ist s oder t kein Blatt, sondern ein interner Knoten, werden für die Berechnung<br />
von ssim die Mengen von Blättern leaves(s) bzw. leaves(t) betrachtet, die zu den<br />
Teilbäumen gehören, deren Wurzel s bzw. t ist. ssim berechnet sich dann wie folgt:<br />
ssim(s, t) =<br />
slink out ∪ slink in<br />
|leaves(s) ∪ leaves(t)|<br />
Dabei gilt slink out = {x|x ∈ leaves(s) ∧ ∃y ∈ leaves(t), stronglink(x, y)} <strong>und</strong><br />
slink in = {x|x ∈ leaves(t) ∧ ∃y ∈ leaves(s), stronglink(y, x)}. stronglink(x, y)<br />
bedeutet, dass die gewichtete Ähnlichkeit von x <strong>und</strong> y wsim(x, y) größer als ein<br />
bestimmter Grenzwert th accept ist.<br />
Bei der Berechnung von ssim im zweiten Schritt muss sichergestellt werden, dass zuvor<br />
die Ähnlichkeitswerte wsim für alle Blätter berechnet wurden. Aus diesem Gr<strong>und</strong> werden<br />
in der Schleife die beiden Bäume in Post-Order durchlaufen, was genau das sicherstellt.<br />
Post-Order bedeutet im Zusammenhang mit Bäumen, dass ausgehend von der Wurzel<br />
zunächst der linke Teilbaum, dann der rechte Teilbaum <strong>und</strong> zuletzt die Wurzel betrachtet<br />
wird.<br />
Nachdem ssim(s, t) für jedes Knotenpaar (s, t) berechnet wurde, wird die gewichtete<br />
Ähnlichkeit wsim(s, t) für dieses Knotenpaar wie folgt berechnet:<br />
wsim(s, t) = w struct · ssim(s, t) + (1 − w struct ) · lsim(s, t)<br />
Hierbei ist w struct eine Konstante im Intervall [0, 1] <strong>und</strong> dient dazu, eine unterschiedliche<br />
Gewichtung von linguistischer <strong>und</strong> struktureller Ähnlichkeit zu ermöglichen.<br />
Nach Berechnung der gewichteten Ähnlichkeit für ein Knotenpaar (s, t) überprüft<br />
TreeMatch, ob der Ähnlichkeitswert von wsim oberhalb eines Grenzwertes th high liegt.<br />
Ist das der Fall, werden die Ähnlichkeitswerte ssim aller Paare von Blättern in den beiden<br />
Teilbäumen zu s <strong>und</strong> t um einen Faktor c inc erhöht, wobei darauf geachtet wird, dass die<br />
maximalen Werte von ssim nie größer als 1 werden. Diese Erhöhung der Werte geschieht<br />
deshalb, weil die Entwickler von Cupid annehmen, dass Blätter, deren Vorfahren sehr<br />
ähnlich sind, ebenfalls eine höhere Ähnlichkeit aufweisen. Ist der Wert für wsim kleiner<br />
als th low , werden die Ähnlichkeitswerte ssim der Blätter aus demselben Gr<strong>und</strong> um einen<br />
Wert c dec verringert.<br />
Diese Veränderung der strukturellen Ähnlichkeiten führt bei Teilbäumen mit einer<br />
sehr unterschiedlichen Anzahl an Knoten dazu, dass es sehr viele Ähnlichkeitswerte gibt,<br />
die unterhalb des Grenzwertes liegen. Um dem entgegenzuwirken schlagen die Entwickler<br />
vor, nur Elemente zu vergleichen, deren Teilbäume eine ähnliche Anzahl an Blättern<br />
32