Volltext
Volltext
Volltext
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Semiautomatische Pflege von Wrappern<br />
Andrea Ernst-Gerlach<br />
12. Februar 2004
Inhaltsverzeichnis<br />
1 Einleitung 1<br />
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />
1.2 Ziel der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />
1.3 Gliederung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
2 Informationssuche in digitalen Bibliotheken 4<br />
2.1 Aufbau von digitalen Bibliotheken . . . . . . . . . . . . . . . . . . . . . 4<br />
2.2 Vorstellung des MIND-Projektes . . . . . . . . . . . . . . . . . . . . . . 6<br />
2.3 Wrapperarchitektur in MIND . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
2.3.1 Aufgaben eines Wrappers . . . . . . . . . . . . . . . . . . . . . . 9<br />
2.3.2 Informationsgewinnung von Wrappern . . . . . . . . . . . . . . . 10<br />
2.4 Herkömmliche Erstellung/Pflege von Wrappern . . . . . . . . . . . . . . 12<br />
2.4.1 Bisheriges Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
2.4.2 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
3 Verwandte Arbeiten 15<br />
3.1 ShopBot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
3.1.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />
3.1.2 Produktunabhängige Architektur . . . . . . . . . . . . . . . . . . 16<br />
3.1.3 Erstellung der Anbieterbeschreibung . . . . . . . . . . . . . . . . 18<br />
i
INHALTSVERZEICHNIS<br />
3.1.4 Shopping-Modul . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
3.1.5 Fazit zum ShopBot . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
3.2 Wrapper Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
3.2.1 Verifizierung von Wrappern . . . . . . . . . . . . . . . . . . . . . 23<br />
3.2.2 Wrapper-Reinduktion . . . . . . . . . . . . . . . . . . . . . . . . 24<br />
3.2.3 Fazit zur Wrapper Maintenance . . . . . . . . . . . . . . . . . . . 25<br />
3.3 Fazit zu verwandten Arbeiten . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
4 Rahmen für das Wrapperwerkzeug 27<br />
4.1 Vorhandene Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
4.2 Grundannahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
4.2.1 Ergebnisse der Anfragen . . . . . . . . . . . . . . . . . . . . . . . 29<br />
4.2.2 Anfragestruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
4.2.3 Wrappertypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />
4.3 Vorstellung des Wrappertoolkits von Rupp . . . . . . . . . . . . . . . . . 30<br />
4.3.1 Die Crawlerkomponente . . . . . . . . . . . . . . . . . . . . . . . 32<br />
4.3.2 Die Tidykomponente . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
4.3.3 Die Parserkomponente . . . . . . . . . . . . . . . . . . . . . . . . 34<br />
5 Ideen für die Entwicklung eines eigenen Wrapperwerkzeugs 37<br />
5.1 Vorüberlegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />
5.2 XPath-Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />
5.3 Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />
5.4 Generalisierung von XPath-Ausdrücken . . . . . . . . . . . . . . . . . . 39<br />
5.5 Text mit Unterelementen . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
5.6 Indikatoren für unsichere Schema-Attribute . . . . . . . . . . . . . . . . 40<br />
5.7 Trennung der einzelnen Ergebnisse . . . . . . . . . . . . . . . . . . . . . 42<br />
5.8 Nutzung des Wrappertoolkits . . . . . . . . . . . . . . . . . . . . . . . . 44<br />
ii
INHALTSVERZEICHNIS<br />
6 Vorgehensweise des Reinduction-Tools 46<br />
6.1 Vorgehensweise bei Übersichtsseiten . . . . . . . . . . . . . . . . . . . . 46<br />
6.1.1 Überprüfung der Anfragestruktur und der Logdateien . . . . . . 48<br />
6.1.2 Suche des Templates . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
6.1.3 Laden der Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />
6.1.4 Freie Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />
6.1.5 Behandlung von unsicheren Schema-Attributen . . . . . . . . . . 51<br />
6.1.6 Finden der Iterationen . . . . . . . . . . . . . . . . . . . . . . . . 53<br />
6.1.6.1 Bildung der globalen Iterationen . . . . . . . . . . . . . 53<br />
6.1.6.2 Bildung der lokalen Iterationen . . . . . . . . . . . . . . 54<br />
6.1.7 Finden der Extraktionen . . . . . . . . . . . . . . . . . . . . . . . 54<br />
6.1.8 Trennung von Schema-Attributen . . . . . . . . . . . . . . . . . . 57<br />
6.1.9 Bildung von regulären Ausdrücken . . . . . . . . . . . . . . . . . 58<br />
6.1.10 Präzisieren der Iterationen . . . . . . . . . . . . . . . . . . . . . . 58<br />
6.1.11 Testen der neuen Konfigurationsdatei . . . . . . . . . . . . . . . . 59<br />
6.2 Vorgehensweise bei Detailseiten . . . . . . . . . . . . . . . . . . . . . . . 61<br />
6.2.1 Laden der Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />
6.2.2 Behandlung der unsicheren Schema-Attribute . . . . . . . . . . . 63<br />
6.2.3 Finden der Extraktionen . . . . . . . . . . . . . . . . . . . . . . . 63<br />
7 Evaluierung der Ergebnisse 64<br />
7.1 Evaluierungsmöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />
7.1.1 Evaluierung anhand gebrochener Wrapper . . . . . . . . . . . . . 64<br />
7.1.2 Evaluierung anhand funktionierender Wrapper . . . . . . . . . . 65<br />
7.1.3 Evaluierung anhand von manuell generierten Logdateien . . . . . 65<br />
7.1.4 Evaluierung mit künstlich gebrochenen Wrappern . . . . . . . . . 65<br />
7.1.5 Evaluierung für Daffodil-Wrapper . . . . . . . . . . . . . . . . . . 65<br />
iii
INHALTSVERZEICHNIS<br />
7.2 Evaluierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />
7.2.1 Evaluierung anhand funktionierender Wrapper . . . . . . . . . . 66<br />
7.2.2 Evaluierung anhand von manuell generierten Logdateien . . . . . 67<br />
7.2.3 Evaluierung mit künstlich gebrochenen Wrappern . . . . . . . . . 68<br />
7.2.4 Evaluierung für Daffodil-Wrapper . . . . . . . . . . . . . . . . . . 68<br />
7.2.5 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />
7.3 Bewertung des Wrapperwerkzeugs . . . . . . . . . . . . . . . . . . . . . 69<br />
7.4 Weitere Aspekte der Bewertung . . . . . . . . . . . . . . . . . . . . . . . 70<br />
8 Übertragbarkeit des Wrapperwerkzeugs 72<br />
8.1 Übertragbarkeit auf nicht reguläre Wrapper . . . . . . . . . . . . . . . . 72<br />
8.2 Übertragbarkeit auf allgemeine Wrapper . . . . . . . . . . . . . . . . . . 73<br />
8.3 Übertragbarkeit auf die Erstellung neuer Wrapper . . . . . . . . . . . . . 74<br />
9 Fazit und Ausblick 75<br />
9.1 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />
9.2 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />
9.2.1 Überarbeitung der Anfragestruktur . . . . . . . . . . . . . . . . . 78<br />
9.2.2 Verifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />
9.2.3 Übertragbarkeit auf allgemeine Wrapper . . . . . . . . . . . . . . 80<br />
9.2.4 Tool zur Erstellung von Logdateien . . . . . . . . . . . . . . . . . 80<br />
9.2.5 Verbesserung der regulären Ausdrücke und der Trennung von Attributen<br />
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />
9.2.6 Tool zur Nachbearbeitung von fehlerhaften Konfigurationsdateien 81<br />
9.2.7 Suche nach Ergebnissen auf den nachfolgenden Seiten . . . . . . 81<br />
iv
Kapitel 1<br />
Einleitung<br />
1.1 Motivation<br />
Mit zunehmender Verbreitung des Internets ist auch die Menge der dort verfügbaren<br />
digitalen Bibliotheken gestiegen. Allerdings sind die Angebote wegen der großen Anzahl<br />
an unterschiedlichen sowie zudem auch heterogenen Bibliotheken häufig nicht effektiv<br />
nutzbar. Deswegen kommen für eine erfolgreiche Suche meistens mehrere digitale Bibliotheken<br />
zum Einsatz. Die einzelnen Resultate müssen dabei manuell zusammengefaßt<br />
und die Suche muß in anderen Bibliotheken fortgesetzt werden.<br />
Das Projekt MIND (Multimedia International Digital Libraries) behebt dieses Problem,<br />
indem es passende Datenbanken für multimediale internationale digitale Bibliotheken<br />
auswählt und die erzielten Retrievalergebnisse miteinander kombiniert. Hierdurch erhält<br />
der Benutzer den Eindruck, daß es sich um eine einzige digitale Bibliothek und nicht<br />
um die Verknüpfung verschiedener Bibliotheken handelt.<br />
Ein zentraler Bestandteil der digitalen Bibliotheken in MIND sind Wrapper. Sie übernehmen<br />
die Aufgabe aus der HTML(Hypertext Markup Language)-Seite, die nach einer<br />
Anfrage in den meisten Fällen zurückgeliefert wird, die gewünschten Informationen zu<br />
selektieren. Weil die HTML-Seiten von digitalen Bibliotheken aus Datenbanken generiert<br />
werden, bildet ein Wrapper die Umkehrfunktion, die aus einer HTML-Seite wieder<br />
eine Datenbank generiert.<br />
Die Daten auf den HTML-Seiten sind aber wenig strukturiert, da HTML lediglich eine<br />
Seitenbeschreibungssprache ist und keine Strukturierung der Daten enthält. Deswegen<br />
wird ein Wrapper immer speziell für eine HTML-Seite erstellt. Wrapper enthalten eine<br />
Beschreibung, an welcher Stelle die gesuchten Informationen zu finden sind. Da es sich<br />
1
KAPITEL 1. EINLEITUNG<br />
bei HTML-Seiten um semistrukturierte Daten handelt, wird diese zur Beschreibung genutzt.<br />
Dadurch wird im Falle einer Layoutänderung der Webseite durch den Betreiber<br />
für den Wrapper ebenfalls eine Überarbeitung erforderlich sein, weil der Wrapper nicht<br />
mehr die gewünschten Informationen extrahiert. In diesem Fall spricht man von einem<br />
gebrochenen Wrapper. Eine Webseite wird im Durchschnitt zweimal pro Jahr geändert<br />
[Kno]. Dadurch entstehen hohe Kosten für die Pflege von Wrappern, insbesondere<br />
weil die Erstellung der meisten Wrapper manuell erfolgt. Bei einer Überarbeitung eines<br />
Wrapper wird zunächst einmal überprüft, ob sich auch die Anfragestruktur geändert<br />
hat, und diese wird ggf. neu erstellt. Danach muß eine neue Beschreibung der Webseite<br />
angefertigt werden, die eine Selektion der einzelnen Informationen ermöglicht.<br />
1.2 Ziel der Arbeit<br />
Es existieren eine ganze Reihe von Arbeiten, die sich mit der automatischen Erstellung<br />
von Wrappern, der sog. Wrapperinduktion, befassen. Allerdings haben sich nur wenige<br />
mit der Wrapperreinduktion auseinandergesetzt, die sich mit der automatischen Pflege<br />
von Wrappern beschäftigt. Diese ist ein Speziallfall der Wrapperinduktion, bei der<br />
bereits ein Wrapper existiert, der aber gebrochen ist. Weil dieser selbst, bzw. in Form<br />
von mitgeloggten Anfrageergebnissen, Informationen zur Erstellung des neuen Wrappers<br />
liefern kann, ist das Problem der Wrapperreinduktion einfacher zu lösen.<br />
Das Ziel der Diplomarbeit ist die Erarbeitung von Ideen für eine semiautomatische<br />
Pflege von Wrappern. Anhand der entwickelten Ideen soll dann ein Prototyp für ein<br />
Wrappertool erstellt werden. Dazu stehen mitgeloggte Anfragen und deren zugehörige<br />
Ergebnisse zur Verfügung, damit das Wrappertool schon über Angaben verfügt, welche<br />
Informationen auf den Webseiten zu finden sein könnten.<br />
Voraussetzung für die Entwicklung eines entsprechenden Tools ist es, Annahmen zu der<br />
Gestaltung von Webseiten zu treffen. Deswegen ist die Entwicklung eines Tools, das<br />
automatisch für jede digitale Bibliothek einen neuen Wrapper erstellt, nicht möglich.<br />
Angestrebt wird daher, in möglichst vielen Fällen einen neuen Wrapper, bzw. zumindest<br />
ein Grundgerüst für einen Wrapper, zu erstellen. Außerdem sollen auch Kriterien<br />
erarbeitet werden, mit denen der Benutzer von vornherein Bibliotheken erkennt, daß<br />
keine automatische Erstellung eines neuen Wrappers möglich ist. Darüber hinaus soll<br />
das Tool in den Fällen, in denen es zum Einsatz kommt, auch Aussagen treffen können,<br />
ob der neue Wrapper korrekt arbeitet. Dies ist möglich, da die Ergebnisse aus den<br />
Logdateien, die im Rahmen der Erstellung des neuen Wrappers auf den Ergebnisseiten<br />
der digitalen Bibliothek wiedergefunden wurden, bei einem Test des neuen Wrappers<br />
ebenfalls zurückgeliefert werden müssen. Anhand des speziell für MIND-Wrapper ent-<br />
2
KAPITEL 1. EINLEITUNG<br />
wickelten Wrappertools sollen die Lösungsmöglichkeiten bei der Pflege von allgemeinen<br />
Wrappern für HTML-Dokumente aufgezeigt werden.<br />
1.3 Gliederung<br />
In der Einleitung wird das Thema der Arbeit erläutert und das Ziel der Arbeit festgelegt.<br />
Das 2. Kapitel befaßt sich mit der Informationssuche in digitalen Bibliotheken.<br />
Hierzu wird der Aufbau von digitalen Bibliotheken erläutert. Anschließend wird das<br />
MIND-Projekt vorgestellt, in dessen Rahmen das Wrappertool zu entwickeln ist. Besonders<br />
detailliert wird dabei auf die Wrapperarchitektur und die bisherige Erstellung<br />
von Wrappern eingegangen. Um Ideen für die Erstellung eines Wrappertools zu entwickeln,<br />
werden im darauffolgenden Kapitel Arbeiten und Systeme vorgestellt, die sich<br />
ebenfalls mit der Wrapperinduktion beschäftigen.<br />
Im 4. Kapitel wird der Rahmen für das zu entwickelnde Wrapperwerkzeug abgesteckt,<br />
indem die zur Verfügung stehenden Daten und Tools vorgestellt werden. Des weiteren<br />
werden einige Grundannahmen getroffen, die die jeweiligen digitalen Bibliotheken erfüllen<br />
müssen. Das nächste Kapitel befaßt sich mit der Entwicklung von Ideen für das<br />
neue Wrapperwerkzeug. Im 6. Kapitel wird die Vorgehensweise des Werkzeugs erläutert.<br />
Das 7. Kapitel beschäftigt sich mit den Evaluierungsmöglichkeiten der konkreten<br />
Evaluierung des entwickelten Tools und nimmt auch eine Bewertung vor.<br />
Im Anschluß daran überprüft ein weiteres Kapitel, inwieweit das neue Wrapperwerkzeug<br />
auf andere Wrapper übertragbar ist. Kapitel 9 stellt die Ergebnisse der vorliegenden<br />
Arbeit dar. Den Abschluß bildet ein Ausblick auf die Erweiterungsmöglichkeiten des<br />
entwickelten Wrappertools sowie auf Rahmenbedingungen, die den erfolgreichen Einsatz<br />
des Tools erleichtern.<br />
3
Kapitel 2<br />
Informationssuche in digitalen<br />
Bibliotheken<br />
Im folgenden wird zunächst der Aufbau von digitalen Bibliotheken beschrieben und im<br />
Anschluß daran das MIND-Projekt vorgestellt. Das Augenmerk richtet sich dabei besonders<br />
auf die Aufgaben von Wrappern und deren momentane Erstellung. Zum Abschluß<br />
des Kapitels werden die Probleme bei der bisherigen Wrappererstellung aufgeführt.<br />
2.1 Aufbau von digitalen Bibliotheken<br />
Digitale Bibliotheken stellen Daten in elektronischer Form zur Verfügung. Diese Informationen<br />
können mit verschiedenen Suchfunktionen abgerufen werden. Die Darstellung<br />
der Informationen, z. B. von <strong>Volltext</strong>en, ist ebenfalls möglich. Dabei kann der Zugriff<br />
kostenpflichtig oder auf bestimmte Benutzergruppen beschränkt sein. Im folgenden ist<br />
nur die Suche relevant. Eine Vielzahl der Angebote steht im Internet zur freien Verfügung.<br />
Bei digitalen Bibliotheken handelt es sich um semistrukturierte Quellen. Darunter versteht<br />
man Quellen, die nicht auf einer definierten Grammatik oder einem Schema basieren,<br />
die aber über eine implizite Grammatik verfügen. Diese Grammatik ermöglicht<br />
es, die relevanten Informationen aus der Bibliothek zu entnehmen.<br />
Bei der Suche in einer digitalen Bibliothek wird ein Formular verwendet (s. Abb. 2.1).<br />
Darin sind die Suchkriterien anhand der Namensbeschreibung der suchbaren Attribute<br />
einzutragen. Je nach Formular können auch mehrere Attribute angegeben werden, die<br />
entweder mit fest definierten oder vom Benutzer ausgewählten boolschen Operatoren zu<br />
4
KAPITEL 2. INFORMATIONSSUCHE IN DIGITALEN BIBLIOTHEKEN<br />
Abbildung 2.1: Suchformular einer digitalen Bibliothek<br />
Quelle: http://www.kfki.hu/~arthp/index1.html<br />
5
KAPITEL 2. INFORMATIONSSUCHE IN DIGITALEN BIBLIOTHEKEN<br />
verknüpfen sind. Teilweise kann in diesen Anfrageformularen auch die Form der Ergebnisseiten<br />
festgelegt werden. Dies gilt z. B. für die Anzahl der pro Seite anzuzeigenden<br />
Ergebnisse. Nach dem Abschicken eines Formulars wird in der Datenbank der digitalen<br />
Bibliothek gesucht, wobei z. B. CGI-Skripte oder Servlets zum Einsatz kommen. Bei<br />
erfolgreicher Suche gelangt der Benutzer zu den Ergebnisseiten. Diese lassen sich in<br />
Übersichtsseiten und Detailseiten gliedern.<br />
Auf der Übersichtsseite (s. Abb. 2.2) werden mehrere Ergebnisse in Kurzform untereinander<br />
angezeigt. Meistens erfolgt die Darstellung der Ergebnisse in einer Tabellenoder<br />
Listenstruktur. Dabei handelt es sich um Informationstupel, die weitestgehend dieselbe<br />
Struktur aufweisen. Dazu gehört auch ein Link zu weiteren Details, sofern mehr<br />
Informationen zu diesem Ergebnis verfügbar sind. Die einzelnen Kurzinformationen zu<br />
einem Ergebnis werden hier häufig innerhalb einer Zeile angezeigt. Um die Darstellung<br />
der Ergebnisse übersichtlicher zu gestalten, werden die einzelnen Attribute dabei häufig<br />
durch Satzzeichen (z. B. Kommata) oder optisch (z. B. durch Fett- oder Kursivschrift)<br />
getrennt. Es kann aber auch vorkommen, daß vor den Attributen Text enthalten ist,<br />
der das Attribut kennzeichnet. Dies kann z. B. der Name des Attributes sein:<br />
Author: Fuhr<br />
Title: Information Retrieval<br />
In solchen Fällen wird oft auf die optische Hervorhebung verzichtet.<br />
Im Gegensatz zur Übersichtsseite sind auf einer Detailseite (s. Abb. 2.3) nur Informationen<br />
zu einem einzelnen Ergebnis dargestellt. Dabei sind die Informationen ausführlicher.<br />
So handelt es sich hier häufiger auch um Fließtexte oder Bilder. Die Trennung der einzelnen<br />
Einträge erfolgt auf der Detailseite neben den Tabellen und Listen, auch häufig<br />
einfach durch Zeilenumbrüche. Deutlich seltener als auf der Übersichtsseite sind auf der<br />
Detailseite mehrere Informationen in einer Zeile zu finden.<br />
2.2 Vorstellung des MIND-Projektes<br />
Digitale Bibliotheken stehen im Internet in großer Anzahl zur Verfügung. Probleme bei<br />
deren Nutzung ergeben sich vor allem bei der Auswahl der passenden Bibliothek, weil<br />
die Parameter für die Bewertung der einzelnen Bibliotheken nicht bekannt sind. Das<br />
MIND-Projekt behebt die Probleme, die bei der Nutzung von heterogenen, verteilten<br />
digitalen Bibliotheken entstehen [NF03b].<br />
Das System setzt sich dabei aus mehreren Komponenten zusammen, die aufeinander<br />
aufbauen. Die MIND-Architektur ist in Abbildung 2.4 dargestellt. Die Anfragen stellt<br />
6
KAPITEL 2. INFORMATIONSSUCHE IN DIGITALEN BIBLIOTHEKEN<br />
Abbildung 2.2: Übersichtsseite einer digitalen Bibliothek<br />
Quelle: http://www.kfki.hu/~arthp/index1.html<br />
7
KAPITEL 2. INFORMATIONSSUCHE IN DIGITALEN BIBLIOTHEKEN<br />
Abbildung 2.3: Detailseite einer digitalen Bibliothek<br />
Quelle: //www.kfki.hu/~arthp/index1.html<br />
8
KAPITEL 2. INFORMATIONSSUCHE IN DIGITALEN BIBLIOTHEKEN<br />
User Interface<br />
Dispatcher<br />
Wrapper 1 Wrapper 2<br />
DL 1 DL 2<br />
Abbildung 2.4: MIND-Architektur<br />
Quelle: [NF03b]<br />
der Anwender an das Benutzerinterface. Dieses Interface leitet die Anfrage an einen Vermittler,<br />
den sog. Dispatcher, weiter. Anhand von Güteparametern, wie z. B. Quantität,<br />
Qualität und Relevanz, wählt der Dispatcher die passenden Bibliotheken aus. Die dazugehörigen<br />
Wrapper stellen letztendlich die Anfrage an die ausgewählten Bibliotheken<br />
und übergeben die Ergebnisse an den Dispatcher. Dieser faßt die Ergebnisse zusammen<br />
und überführt sie in ein einheitliches Format. Das Resultat der Suche wird dann im<br />
Benutzerinterface angezeigt.<br />
2.3 Wrapperarchitektur in MIND<br />
2.3.1 Aufgaben eines Wrappers<br />
Grundlage eines jeden Wrappers ist die Annahme, daß die Daten automatisch aus einer<br />
Datenbank bzw. aus den XML(Extended Markup Language)-Dokumenten generiert<br />
werden, weshalb der Seitenaufbau eine gewisse Regelmäßigkeit besitzt. Wrapper sollen<br />
die ursprünglichen Informationen aus den Datenbanken bzw. aus den XML-Dokumenten<br />
wieder herstellen. Die Informationen werden also zunächst mit einer Funktion von der<br />
Datenbank auf die HTML-Seiten abgebildet. Der Wrapper stellt nun die Umkehrfunktion<br />
dar, der die Informationen aus der HTML-Seite auf ein XML-Format abbildet.<br />
9
KAPITEL 2. INFORMATIONSSUCHE IN DIGITALEN BIBLIOTHEKEN<br />
Ein Wrapper soll aus einer Webseite einer digitalen Bibliothek Informationen gemäß<br />
einer vorher spezifizierten Anfrage herausfiltern. Dazu stellt ein Benutzer mit Hilfe des<br />
Formulars auf der Webseite der digitalen Bibliothek eine Anfrage an die Webseite. Die<br />
meisten Webseiten liegen im HTML-Format vor. Darüber hinaus existieren auch digitale<br />
Bibliotheken, die das Anfrageergebnis im XML-Format zurückliefern. Weil die<br />
Markupsprache XML die Semantik des Textes mit enthält, entfallen die im folgenden<br />
beschriebenen Probleme, weshalb sie nicht weiter betrachtet werden. Das Ergebnis der<br />
Anfrage ist zunächst eine Übersichtsseite (s. 2.1). Diese kann auf weitere Übersichtsseiten<br />
verweisen.<br />
Die Übersichtsseiten enthalten die URLs(Uniform Resource Locator) zu den einzelnen<br />
Detailseiten sowie nähere Informationen zu den Ergebnissen. Der Wrapper muß als<br />
erstes diese Übersichtsseite parsen und die dort verfügbaren Ergebnisse lokalisieren und<br />
anschließend herausfiltern. Gleiches gilt für die Detailseite, falls bei der Anfrage nicht<br />
nur eine Zusammenfassung, sondern das komplette Ergebnis gewünscht wurde. Die so<br />
gewonnenen Daten werden danach an andere Anwendungen zur weiteren Verarbeitung<br />
übergeben.<br />
2.3.2 Informationsgewinnung von Wrappern<br />
Systeme zur Wrapperinduktion nutzen Layoutinformationen von Webseiten, um Datenextraktionsregeln<br />
zu erstellen und sind deswegen anfällig bei Layoutänderungen durch<br />
ein Neudesign der Seiten. Es kann vorkommen, daß ein Wrapper zwar weiterhin Daten<br />
extrahiert, diese aber nun fehlerhaft sind. Eine Änderung der Ausgabe des Wrappers<br />
ist allerdings auch aufgrund von Formatänderungen möglich. Ein Beispiel hierfür ist die<br />
Darstellung von Währungsangaben bei Preisen nach der Umstellung auf Euro.<br />
Die Wrapper für das MIND-Projekt sind in der Programmiersprache Java geschrieben,<br />
für die es eine große Anzahl von frei verfügbaren Bibliotheken gibt. Das Ergebnis einer<br />
Anfrage an MIND wird im XML-Format gespeichert. Bei XML handelt es sich um eine<br />
Metasprache, mit der Dokumenttypen definiert werden können [McL]. Eine Dokumenttypdefinition<br />
(DTD) definiert Regeln, die für ein XML-Dokument dieses Typs gelten<br />
müssen. Die DTD legt somit fest, welche Elemente in einem XML-Dokument enthalten<br />
sein dürfen. Dabei können die Elemente anhand gewisser Regeln selbst definiert werden.<br />
Die Markupsprache XML zeichnet sich insbesondere durch eine Trennung von Logischer<br />
und Layout-Struktur aus. XML ermöglicht eine Serialisierung von strukturierten Datenbeständen.<br />
Durch die in XML enthaltene logische Struktur ist es leicht möglich, die<br />
gefundenen Informationen strukturiert abzuspeichern und zu einem späteren Zeitpunkt<br />
wieder darauf zuzugreifen.<br />
10
KAPITEL 2. INFORMATIONSSUCHE IN DIGITALEN BIBLIOTHEKEN<br />
Jeder MIND-Wrapper basiert auf einem MIND-Schema [NF03a]. Das Schema gibt an,<br />
welche Attribute als Informationen aus den Webseiten der zugrundeliegenden Bibliothek<br />
herausgezogen werden können. Ein Schema-Attribut wird durch einen Namen (z. B.<br />
Author), einen Datentyp (z. B. Text oder Date) und einen Medientyp (z. B. Text oder<br />
Image) beschrieben. Darüber hinaus enthält jedes Schema eine Liste von Prädikaten,<br />
die auch leer sein kann. Enthält die Liste jedoch Prädikate, so ist eine Suche nach<br />
diesem Schema-Attribut möglich und die Liste gibt an, welche Prädikate bei der Suche<br />
zugelassen sind. Die möglichen Prädikate für ein Schema-Attribut werden dabei durch<br />
dessen Datentyp festgelegt.<br />
Beispiele für Prädikate wären z. B. exact und stemming für Schema-Attribute vom<br />
Datentyp String. Dabei bedeutet exact, daß eine genaue Übereinstimmung für eine<br />
erfolgreiche Suche notwendig ist. Dagegen gibt das Prädikat stemming an, daß lediglich<br />
eine identische Stammform erforderlich ist. Zusätzlich gibt es noch eine Beschreibung,<br />
die allerdings für den MIND-Wrapper selbst keine Bedeutung hat, sondern lediglich eine<br />
kurze Information über das Schema-Attribut darstellt.<br />
Um die HTML-Seiten besser parsen zu können, werden sie vom Wrapper zunächst in<br />
XHTML(Extensible HyperText Markup Language) umgewandelt. Dieses Format hat<br />
den Vorteil, daß es konform zu XML ist, weil es den Syntaxregeln von XML entspricht.<br />
Dadurch können XTHML-Dokumente mit den Standard-Werkzeugen für XML betrachtet,<br />
bearbeitet und validiert werden. 1 Dazu gehören auch die für XML verfügbaren<br />
Java-Klassen.<br />
Zur Selektion der Information aus einer Webseite benutzen die Wrapper XPath(XML<br />
Path Language)-Ausdrücke. XPath erzeugt ein XML-Dokument als Baumstruktur. Mit<br />
Hilfe von XPath-Ausdrücken kann ein Knoten in einem XML-Dokument gefunden werden<br />
und sein Inhalt extrahiert werden. Dazu ist es möglich, die Lage in Abhängigkeit zu<br />
anderen Knoten anzugegeben. Generell existiert ein Unterschied zwischen einer Adressierung<br />
mit absoluten und relativen Pfadausdrücken. Absolute XPath-Ausdrücke beginnen<br />
mit dem Wurzelknoten, während ein relativer XPath-Ausdruck immer bei dem<br />
gerade aktuellen Knoten, dem sog. Kontextknoten, mit der Suche beginnt. Jeder Knoten<br />
kann dann durch seine Position im Baum angesprochen werden. Der folgende XPath-<br />
Ausdruck selektiert z. B. in einem Buch im 2. Kapitel im 4. Abschnitt den 17. Absatz<br />
[Mün].<br />
//buch/kapitel[2]/abschnitt[4]/absatz[17]<br />
Fehlen die Positionsangaben so wird jeweils das erste Element selektiert.<br />
1 s. http://www.w3.org/TR/2000/REC-xhtml1-20000126/<br />
11
KAPITEL 2. INFORMATIONSSUCHE IN DIGITALEN BIBLIOTHEKEN<br />
XPath bietet darüber hinaus noch eine Funktionsbibliothek an, mit deren Hilfe eine<br />
nähere Spezifizierung des gesuchten Knotens möglich ist. Den Funktionen müssen teilweise<br />
noch Argumente übergeben werden, damit sie ihre Aufgabe wahrnehmen können.<br />
z. B. kann mit der Funktion contains() überprüft werden, ob der selektierte Knoten<br />
eine Zeichenkette enthält.<br />
//b[contains(.,’author’)]<br />
Mit der Hilfe von Funktionen ist es möglich, anzugegeben, an welcher Position in Abhängigkeit<br />
zu einem Bezugsknoten ein zu selektierendes Element stehen soll. So können<br />
z. B. ausgehend von einem Knoten der erste Geschwisterknoten und, falls es sich um eine<br />
Iteration handelt, sogar alle nachfolgenden Geschwisterknoten mit Hilfe eines XPath-<br />
Ausdrucks extrahiert werden. Des weiteren kann ein Knoten ausgewählt werden, der<br />
einen bestimmten String enthält.<br />
2.4 Herkömmliche Erstellung/Pflege von Wrappern<br />
Nachdem im letzen Abschnitt die Architektur von Wrappern erläutert wurde, befaßt sich<br />
der folgende Teil mit der bisherigen Wrappererstellung und Überarbeitung eines nicht<br />
mehr funktionierenden Wrappers. Daran schließt sich eine Beleuchtung der Probleme<br />
an, die sich aus dieser Vorgehensweise ergeben.<br />
2.4.1 Bisheriges Verfahren<br />
Es existieren 3 Möglichkeiten bei der Erstellung eines Wrappers [Bir]:<br />
• manuell: Bei einer manuellen Erstellung wird die für eine Anfrage zurückgelieferte<br />
Webseite vom Programmierer analysiert und der Wrapper von Hand erstellt,<br />
• semiautomatisch: Bei der semiautomatischen Vorgehensweise wird einem Tool gezeigt,<br />
wo die zu selektierenden Informationen aufzufinden sind. Mit Hilfe dieser<br />
Informationen erstellt das Tool dann den Wrapper. Dieser findet danach automatisch<br />
die Struktur, mit der die Informationen selektiert werden können,<br />
• automatisch: Bei der automatischen Wrappergenerierung kommen Methoden des<br />
maschinellen Lernens zum Einsatz. Damit wird der Wrapper automatisch anhand<br />
von vorliegenden Beispieltexten erstellt.<br />
12
KAPITEL 2. INFORMATIONSSUCHE IN DIGITALEN BIBLIOTHEKEN<br />
Die Entwicklung der Wrapper für MIND erfolgt bisher manuell. Um einen Wrapper<br />
zu erzeugen, ist zunächst ein MIND-Schema (s. 2.3.2) zu schreiben. Dazu werden die<br />
gewünschten Schema-Attribute aus den Ergebnisseiten festgelegt. Des weiteren werden<br />
mit Hilfe des Anfrageformulars die Schema-Attribute bestimmt, nach denen eine Suche<br />
möglich ist. Danach kann ein Grundgerüst für den Wrapper automatisch generiert<br />
werden. In diesem Grundgerüst ist die Anfrage an die Webseite zu formulieren. Dazu<br />
wird die HTML-Seite, die das Anfrageformular enthält, untersucht und festgestellt, aus<br />
welchen Attributen die Anfrage bestehen muß. Im Wrappergrundgerüst wird die URL<br />
mit den Attributen zusammengebaut.<br />
Im Anschluß daran wird aus dem HTML-Code, den eine aufgerufene URL zurückliefert,<br />
ein XHTML-Baum erzeugt. Anhand dessen geordneter Darstellung müssen die XPath-<br />
Ausdrücke einschließlich der Iterationen manuell gefunden werden. Dabei wird zunächst<br />
für jedes Ergebnis eine ID zur eindeutigen Identifizierung festgelegt. Dies ist bei den<br />
MIND-Wrappern die URL der Detailseite. Danach ist ggf. eine Nachbearbeitung der<br />
Ergebnisse erforderlich, falls der durch den XPath-Ausdruck selektierte Knoten nicht<br />
gewünschte Zeichen enthält.<br />
Abschließend ist dafür zu sorgen, daß nicht nur die Ergebnisse aus der ersten Übersichtsseite<br />
aufgerufen werden, sondern auch, soweit vorhanden, die auf den darauffolgenden<br />
Übersichtsseiten. Außerdem muß die gewünschte Anzahl an Ergebnissen zurückgeliefert<br />
werden. Sind weniger Resultate gefunden worden als angefordert waren, dürfen natürlich<br />
nur die angezeigt werden, die tatsächlich der Anfrage entsprechen.<br />
Falls eine Überarbeitung des Wrappers erforderlich ist, müssen in dem relativ unübersichtlichen<br />
Java-Code die XPath-Ausdrücke ausfindig gemacht und adaptiert werden.<br />
Die Verwendung von XPath-Ausdrücken zum Parsen der Dokumente ist deutlich einfacher<br />
und eleganter als der Durchlauf durch Dokumente mit dem Document Object<br />
Model (DOM). Allerdings geht dies zu Lasten der Effizienz. Nach der Überarbeitung der<br />
XPath-Ausdrücke sind ggf. Passagen im Java-Code zu überarbeiten, die überflüssigen<br />
Text von den Schema-Attributen abtrennen.<br />
2.4.2 Probleme<br />
Das Problem bei der herkömmlichen Wrappererstellung besteht im hohen Aufwand,<br />
sowohl beim Erstellen eines Wrappers für eine neue digitalen Bibliothek als auch bei<br />
deren Pflege. Diese resultieren aus dem beträchtlichen manuellen Aufwand, der durch<br />
das Parsen des HTML-Codes entsteht. Da HTML eine layoutorientierte Markupsprache<br />
ist, die keinerlei Hinweise zur Semantik der darin enthaltenen Informationen enthält,<br />
besteht das Problem vor allem darin, die gesuchten Informationen in der HTML-Seite zu<br />
lokalisieren. Die Wrapper sind stark an das Layout einer Webseite gebunden, wodurch<br />
13
KAPITEL 2. INFORMATIONSSUCHE IN DIGITALEN BIBLIOTHEKEN<br />
schon kleine Layoutänderungen eine Überarbeitung des Wrappers erforderlich machen.<br />
Die vorliegende Diplomarbeit wird sich mit diesem Problem auseinandersetzen und<br />
versuchen, mit Hilfe mitgeloggter Daten von alten Anfragen semiautomatisch aus den<br />
neuen HTML-Seiten wieder einen funktionierenden Wrapper zu erstellen.<br />
14
Kapitel 3<br />
Verwandte Arbeiten<br />
Es existieren eine Reihe von Projekten, die sich mit der Wrapperinduktion beschäftigen.<br />
Dagegen befassen sich mit der Wrapperpflege nur einzelne Arbeiten. Um Ideen für<br />
ein eigenes Wrapperwerkzeug zu entwickeln, wurde zunächst anhand von ausgewählten<br />
Arbeiten die Vorgehensweise beim Aufbau der Anfrage bzw. bei der Wrappererstellung<br />
und -pflege aufgezeigt.<br />
3.1 ShopBot<br />
An der Universität von Washington wurde von Doorenbos, Etzioni und Weld der Agent<br />
ShopBot zum Preisvergleich beim Online-Shopping entwickelt [DEW97]. Der Agent soll<br />
zu einem bestimmten Produkt Webseiten finden, auf denen dieses Produkt erhältlich<br />
ist. Der ShopBot Agent besteht aus zwei Komponenten: einer Lernkomponente und<br />
einer Shopping-Komponente. Die Lernkomponente benötigt als Eingabe die Webseiten<br />
von mehreren Online-Händlern. Der ShopBot erfaßt daraufhin automatisch offline<br />
die Struktur, die sog. Vendor Description, nach der bei diesen Händlern ein Einkauf<br />
abgewickelt wird. Die Lernphase des ShopBot muß für jeden Online-Händler lediglich<br />
einmal durchlaufen werden. Dabei wird ein Wrapper erstellt, der die gewünschten Daten<br />
aus der Webseite herausfiltert. Die Shopping- oder Vergleichsphase ruft dann die Beschreibungen<br />
für die verschiedenen Online-Händler auf und vergleicht deren Ergebnisse<br />
miteinander. Die zweite Phase stellt somit die eigentliche Nutzung dar.<br />
15
KAPITEL 3. VERWANDTE ARBEITEN<br />
3.1.1 Grundlagen<br />
Für den Vergleich von Einkaufspreisen hat der ShopBot zu einem Anbieter folgende<br />
Informationen zur Verfügung:<br />
• eine Beschreibung der Domain, die Informationen über die Produktattribute zur<br />
Verfügung stellt. Mit Hilfe dieser Beschreibung können verschiedene Produkte<br />
sowie Varianten desselben Produkts unterschieden werden,<br />
• eine Liste von URLs möglicher Anbieter,<br />
• ein Attribut A, wie z. B. den Preis, anhand dessen der Benutzer die Anbieter<br />
vergleichen möchte,<br />
• eine Spezifikation des gewünschten Produktes mit Termen für die Werte der ausgewählten<br />
Attribute.<br />
Der ShopBot soll dann die Anbieter bestimmen, bei denen das gewünschte Produkt<br />
verfügbar ist. Dabei werden die Anbieter anhand von Attribut A sortiert. Wird z. B.<br />
nach dem billigsten 17-Zoll-Monitor gesucht, ist nach dem Preis zu sortieren.<br />
Grundlage des ShopBot sind folgende Gesetzmäßigkeiten bei der Gestaltung der Webseiten:<br />
• Online-Shops werden so gestaltet, daß die Benutzer die Produkte schnell finden<br />
können,<br />
• damit die Benutzer die Seiten als zusammengehörig wahrnehmen, bevorzugen die<br />
Anbieter eine jeweils eigenständige und einheitliche Gestaltung der Webseiten,<br />
• um dem Käufer das Verständnis der Kataloge zu erleichtern, werden Leerzeichen<br />
benutzt.<br />
3.1.2 Produktunabhängige Architektur<br />
Die Architektur des ShopBots ist dabei unabhängig vom Produkt. Um eine neue Domain<br />
in den Vergleich mit einzubeziehen, ist lediglich eine Beschreibung für die Domain<br />
erforderlich. Die hierin enthaltene Beschreibung läßt sich in drei Kategorien einteilen:<br />
• eine Beschreibung der Attribute eines Produkts, z. B. Produktname, Hersteller<br />
und Preis,<br />
16
KAPITEL 3. VERWANDTE ARBEITEN<br />
DOMAIN<br />
DESCRIPT<br />
URLs of<br />
POSSIBLE<br />
VENDORS<br />
SHOPBOT LEARNER<br />
For each vendor<br />
Search for indices<br />
For each potential index<br />
For each sample product<br />
Query on attributes<br />
Accumulate responses<br />
Analyze<br />
Product attributes<br />
Result of search<br />
ONLINE<br />
VENDORS<br />
VENDOR<br />
DESCRIPT<br />
Abbildung 3.1: Lernmodul des ShopBot<br />
Quelle: [DEW97]<br />
• eine Heuristik, um die Webseiten der Anbieter zu verstehen. Hier werden reguläre<br />
Ausdrücke benutzt, um die Attribute auf den Anbieterseiten zu lokalisieren,<br />
• das Wissen, wie eine Webseite geladen wird. Hierzu werden Test-Anfragen mit<br />
beliebten Produkten gestellt.<br />
Mit Hilfe dieser Beschreibung ist der ShopBot in der Lage, Preisvergleiche durchzuführen.<br />
17
KAPITEL 3. VERWANDTE ARBEITEN<br />
3.1.3 Erstellung der Anbieterbeschreibung<br />
Eine besondere Neuentwicklung beim ShopBot ist das Lernmodul ( s. Abb. 3.1). Es erstellt<br />
automatisch eine Beschreibung für Online-Händler, die dem System nicht bekannt<br />
sind. Bei der Entwicklung der Anbieterbeschreibung existieren drei Probleme:<br />
• die Identifizierung eines geeigneten Suchformulars,<br />
• die Entscheidung, wie dieses Formular auszufüllen ist,<br />
• die Feststellung, in welchem Format die Produktbeschreibungen auf der Ergebnisseite<br />
vorliegen.<br />
Diese drei Probleme bauen aufeinander auf. Demzufolge zieht z. B. eine fehlerhafte<br />
Entscheidung bei der Identifizierung des Suchformulars Fehler bei den nachfolgenden<br />
Entscheidungen nach sich.<br />
Eine Anbieterbeschreibung muß folgende Informationen enthalten:<br />
• die URL der Seite, die das Anfrageformular enthält,<br />
• eine Funktion, die die Produktattribute auf die Felder des Formulars abbildet,<br />
• Funktionen, die die Produktinformationen einer Seite extrahieren können.<br />
Zunächst versucht das Lernmodul, auf der gegebenen Domain HTML-Formulare zu finden,<br />
die für die Anfrage geeignet sind. Dazu werden alle Links rekursiv nach Formularen<br />
durchsucht. Für jedes dieser Formulare wird daraufhin die Wahrscheinlichkeit geschätzt,<br />
ob es die Informationen für den gewünschten Preisvergleich zur Verfügung stellen kann.<br />
Dazu muß allerdings ermittelt werden, wie die Formulare auszufüllen sind.<br />
Die Suche nach dem richtigen Formular gliedert sich in drei Teilprobleme:<br />
• Zunächst wird mit Hilfe eines Dummys für einen Produktnamen herausgearbeitet,<br />
welche Seite zurückgeliefert wird, wenn zu der Suchanfrage keine Produkte<br />
gefunden werden können. Die meisten Webservices liefern hierfür eine Standardfehlerseite.<br />
• Anschließend werden mit Hilfe der Formulare Test-Anfragen nach beliebten Produkten<br />
gestellt, wobei das Lernmodul entscheiden muß, wie das einzelne Formular<br />
auszufüllen ist. Dazu wird die Domainbeschreibung herangezogen. Die zur<br />
Auswahl stehenden Formulare werden nun mit Test-Anfragen geprüft und das<br />
18
KAPITEL 3. VERWANDTE ARBEITEN<br />
Ergebnis wird mit dem Template für fehlende Ergebnisse verglichen. Liefert der<br />
überwiegende Teil der Anfragen für ein Formular keine Ergebnisse, schließt das<br />
Lernmodul daraus, daß das Formular nicht für die Produktsuche geeignet ist.<br />
• Darauf folgt eine Analyse der Produktbeschreibungen. Dazu werden die positiven<br />
Anfragen als Trainingsdaten benutzt. Auf der Ergebnisseite sind ein oder mehrere<br />
Produktbeschreibungen enthalten, die der Anfrage entsprechen. Jede dieser<br />
Produktbeschreibungen enthält Informationen zu einem speziellen Produkt. Danach<br />
wird nach einem Template gesucht, das aus nicht relevanten Teilen besteht,<br />
die sich im Kopf- oder Fußbereich befinden und auf allen Ergebnisseiten identisch<br />
sind. Dies gilt z. B. häufig für die Seitennavigation.<br />
Auf Basis dieser Grundlagen geht das Lernmodul davon aus, daß jede Beschreibung<br />
mit einer neuen Zeile beginnt. Deswegen wird der HTML-Code zunächst in logische<br />
Zeilen unterteilt, die nur durch Leerzeichen gegliedert sind. Zu den Grundannahmen<br />
gehört ebenfalls, daß jedes Produkt im selben Format dargestellt wird. Deswegen wird<br />
für jede logische Zeile eine Zeilenbeschreibung erstellt, indem die Argumente aus dem<br />
HTML-Element entfernt und alle durch dieselbe Variable ersetzt werden, z. B.<br />
texttexttext<br />
Zum Schluß benutzt das Lernmodul einen heuristischen Ranking-Prozeß, um die Zeile<br />
auszuwählen, die am wahrscheinlichsten nach einer Produktbeschreibung aussieht. Diese<br />
Heuristik nutzt die Tatsache aus, daß die Test-Anfragen für beliebte Produkte sind und<br />
die Anbieter in der Regel verschiedene Versionen eines Produktes vorrätig haben. Das<br />
führt zu einer Fülle von Produktbeschreibungen auf einer erfolgreichen Seite.<br />
Das Lernmodul wiederholt die beschriebene Prozedur mit jedem Formular. Anhand dieser<br />
Ergebnisse wird dann für die einzelnen Formulare geschätzt, wie erfolgreich sie beim<br />
Vergleich von Produkten sind. Als Parameter wird die Zeilenbeschreibung, die für die<br />
entsprechende Ergebnisseite ausgewählt wurde, mit in die Berechnung einbezogen. Nach<br />
der Bestimmung des Formulars mit dem besten Ranking wird die Anbieterbeschreibung<br />
erstellt. Hierfür benötigt das Lernmodul normalerweise 5 - 15 Minuten.<br />
3.1.4 Shopping-Modul<br />
Das Shopping-Modul ist im Gegensatz zum Lernmodul auf häufige Aufrufe von verschiedenen<br />
Nutzern ausgerichtet. Hat das Shopping-Modul über die GUI(Graphical User<br />
Interface) eine Anfrage erhalten, füllt es für jeden Webservice das Formular aus und<br />
übermittelt es. Bei jeder nicht leeren Ergebnisseite werden daraufhin Kopf- und Fußteil<br />
19
KAPITEL 3. VERWANDTE ARBEITEN<br />
entfernt. Der verbliebene HTML-Code wird daraufhin überprüft, ob das gelernte Format<br />
der Produktbeschreibung darin enthalten ist. Die auf diese Weise erzielten Ergebnisse<br />
werden sortiert und dem Benutzer zusammengefaßt ausgegeben.<br />
3.1.5 Fazit zum ShopBot<br />
Der Vorteil beim ShopBot ist, daß er keine anspruchsvolle Prozessierung der natürlichen<br />
Sprache benötigt, um die Performance zu erreichen. Dabei braucht er lediglich ein geringes<br />
Wissen über die einzelnen Produktdomains. Allerdings wurden dafür zahlreiche<br />
Einschränkungen gemacht. Die produktunabhängige Architektur des ShopBot läßt sich<br />
auch bei MIND wiederfinden, weil lediglich eine Wrapperbeschreibrung erforderlich ist,<br />
um eine neue digitale Bibliothek bei der Suche in MIND mit einzubinden.<br />
Im Prinzip sind die zwei Phasen des ShopBot ebenfalls beim MIND-Projekt zu finden.<br />
Die Lernphase, in der die Vendor Description erstellt wird, entspricht der Phase, in<br />
der beim MIND-Projekt die Erstellung eines Wrappers erfolgt. Allerdings werden die<br />
Wrapper momentan noch überwiegend manuell erstellt. Mit dem geplanten Wrappertool<br />
wäre dieser Schritt dann zumindest semiautomatisch und somit vergleichbar. Zu<br />
den Auswirkungen von Layoutänderungen in der Shopping-Phase konnten keine Informationen<br />
gefunden werden. Allerdings ist davon auszugehen, daß diese Problematik der<br />
eines gebrochenen Wrappers entspricht und eine Überarbeitung der Anbieterbeschreibung<br />
erfordert.<br />
Die Shopping-Phase ist vergleichbar mit der Nutzungsphase beim MIND-Projekt. Statt<br />
verschiedener Preise werden beim MIND-Projekt die zu einer Anfrage gesammelten Informationen<br />
dargestellt, damit für Nutzer eine Vergleichsmöglichkeit besteht. Die Webseiten<br />
der digitalen Bibliotheken in MIND, zumindest die im folgenden betrachteten,<br />
liegen im HTML-Format vor. Die Grundannahmen zur Gestaltung von Webseiten, die<br />
dem ShopBot zugrunde liegen, gelten auch für digitale Bibliotheken.<br />
Bei der Erstellung der Anbieterbeschreibung hängen die Suche nach dem richtigen Anfrageformular<br />
und die Identifizierung der Produktinformationen voneinander ab. Da<br />
bei der Pflege von MIND-Wrappern mitgeloggte Ergebnisse zur Verfügung stehen, ist<br />
in diesem Fall eine separate Betrachtung der Probleme möglich, weil die erstellte Anfragestruktur<br />
anhand der vorhandenen Ergebnisse überprüft werden kann. Dabei muß<br />
lediglich festgestellt werden, ob mitgeloggte Ergebnisse auf der mit der Anfragestruktur<br />
erreichten Seite enthalten sind. Dies erfordert noch keine Beschreibung der Ergebnisse.<br />
Aufgrund der überwiegend manuellen Erstellung von MIND-Wrappern erfolgt bei der<br />
bisherigen Vorgehensweise ebenfalls eine schrittweise Erstellung des Wrappers.<br />
Die Annahmen zu den nicht relevanten Teilen im Kopf- und Fußbereich einer Webseite<br />
20
KAPITEL 3. VERWANDTE ARBEITEN<br />
gelten auch für digitale Bibliotheken. Deswegen sollte die Suche nach einem Template<br />
in dem zu erstellten Wrappertool ebenfalls erfolgen.<br />
3.2 Wrapper Maintenance<br />
Lerman, Minton und Knoblock haben sich mit der Pflege von Wrappern befaßt [Usc].<br />
Diese teilen sie in die zwei Bereiche „Verifikation“ und „Reinduktion“ ein. Die Verifikation<br />
bemerkt, wenn der Wrapper gebrochen ist. Die Reinduktion übernimmt daraufhin die<br />
Überarbeitung des Wrappers. Abb. 3.2 stellt den sich daraus ergebenden Lebenszyklus<br />
eines Wrappers dar.<br />
Ein Wrapperinduktionssystem bekommt Webseiten zusammen mit den Beispieldaten,<br />
die extrahiert werden sollen. Erstellt wird dann ein Wrapper, der angibt, wie die gesuchten<br />
Daten zu lokalisieren sind. Mit Hilfe dieses Wrappers können dann Daten selektiert<br />
werden. In regelmäßigen Zeitabständen kommt die Verifikation von Wrappern zum Einsatz.<br />
Sie testet anhand der vorliegenden Beispieldaten, ob der Wrapper noch korrekt<br />
arbeitet. Ist dies nicht der Fall, wird automatisch die Reinduktion in Gang gesetzt und<br />
anhand der Beispieldaten ein neuer Wrapper erstellt.<br />
Dieser Ansatz arbeitet bei der Erstellung von Wrappern auf Wort- bzw. Tokenebene.<br />
Die Token bestehen aus einem Alphabet, das sich aus verschiedenen Typen von Zeichen<br />
zusammensetzt. Dazu gehören z. B. Buchstaben, Zahlen und Satzzeichen. Anhand der<br />
Zeichentypen werden die Token in syntaktische Kategorien eingeteilt, die eine Hierarchie<br />
bilden (s. Abb. 3.3). Die Einteilung in die Kategorien läßt Rückschlüsse auf die<br />
Informationen zu, die das Token enthält. So ist z. B. eine fünfstellige Zahl häufig eine<br />
Postleitzahl.<br />
Um die Struktur eines Daten- bzw. Formularfeldes zu erfassen, werden nur die Muster<br />
am Anfang und am Ende des Datenfeldes, dem sog. Datenprototyp, untersucht. Gerade<br />
an diesen Positionen treten die meisten Gesetzmäßigkeiten auf. Anhand von positiven<br />
Beispielen wird eine charakteristische Beschreibung oder ein Muster gelernt. Mit Hilfe<br />
von Hypothesen wird getestet, ob dieses Muster gültig ist. Dazu wird der DataProG-<br />
Algorithmus eingesetzt. Dieser findet statistisch signifikante Muster in einer Menge von<br />
Tokensequenzen. Dazu wird der Text mit dem DataProG-Algorithmus in Token zerlegt.<br />
Diese werden in syntaktische Kategorien eingeteilt. Die Muster werden in einem<br />
Präfixbaum codiert (s. 3.4), indem jeder Knoten für einen Tokentyp steht.<br />
Der DataProG-Algorithmus arbeitet mit Signifikanzbeurteilungen, um dem Baum Knoten<br />
hinzuzufügen oder sie zu entfernen. Jeder Pfad beginnt beim Wurzelknoten und<br />
entspricht einem gültigen Muster, das vom Algorithmus gefunden wurde. In der ersten<br />
21
KAPITEL 3. VERWANDTE ARBEITEN<br />
Pages to<br />
be labeled<br />
GUI<br />
Web<br />
pages<br />
Labeled<br />
Web pages<br />
Wrapper<br />
Induction<br />
System<br />
Wrapper<br />
Extracted<br />
data<br />
Change<br />
detected<br />
Automatic<br />
Re-labeling<br />
Wrapper<br />
Verification<br />
Reinduction System<br />
Abbildung 3.2: Lebenszyklus eines Wrappers<br />
Quelle: [Usc]<br />
22
KAPITEL 3. VERWANDTE ARBEITEN<br />
TOKEN<br />
PUNCT<br />
ALPHANUM<br />
HTML<br />
ALPHA<br />
NUMBER<br />
UPPER LOWER SMALL MEDIUM LARGE<br />
ALLCAPS<br />
1Digit 2Digit 3Digit<br />
CA<br />
Boulevard<br />
310<br />
Abbildung 3.3: Auszug aus der syntaktischen Hierarchie der Tokentypen<br />
Quelle: eigene Darstellung nach [Usc]<br />
Phase wächst der Baum schrittweise, indem alle signifikanten Spezialisierungen gesucht<br />
werden. Die weniger signifikanten Muster derselben Länge werden dann wieder aus dem<br />
Baum entfernt. Im letzten Schritt sind dann alle verbliebenen signifikanten Muster des<br />
Baumes zu extrahieren. Abb. 3.4 enthält einen Baum, der die Struktur von Adressen<br />
beschreibt. Dabei bilden die Knoten mit den gestrichelten Linien weniger signifikante<br />
Muster. Deswegen sind sie wieder aus dem Baum zu entfernen.<br />
3.2.1 Verifizierung von Wrappern<br />
Das System zur Verifizierung nutzt mitgeloggte Daten von alten Anfragen, bei denen sicher<br />
ist, daß sie korrekt extrahiert wurden. Die Anfragen zu diesen Daten werden an die<br />
geänderte Webseite gestellt. Die zurückgelieferten Ergebnisseiten dienen als Trainingsbeispiele.<br />
Für jedes Feld der Trainingsbeispiele wird mit dem Algorithmus ein Vektor ⃗ k<br />
berechnet. Dieser berücksichtigt den häufigsten Anfang bzw. das häufigste Ende. In der<br />
Verifikationsphase wird nun anhand von neuen Testdaten auf die gleiche Weise ein zweiter<br />
Vektor ⃗r berechnet. Wenn die beiden Vektoren ⃗ k und ⃗r statistisch übereinstimmen,<br />
arbeitet der Wrapper noch korrekt. Andernfalls ist die Überprüfung fehlgeschlagen.<br />
Für jeden Wrapper erfolgt etwa einmal pro Woche eine Speicherung der Ergebnisse von<br />
15-30 Fragen. Die neuen Ergebnisse werden mit den richtigen Ausgaben der Wrapper<br />
verglichen.<br />
23
KAPITEL 3. VERWANDTE ARBEITEN<br />
ROOT<br />
NUMBER<br />
UPPER<br />
ALPHANUM ALPHA<br />
UPPER Boulevard Street<br />
Abbildung 3.4: Musterbaum, der die Struktur von Adressen beschreibt<br />
Quelle: eigene Darstellung nach [Usc]<br />
3.2.2 Wrapper-Reinduktion<br />
Stellt das Verifikationsystem fest, daß der Wrapper nicht mehr korrekt arbeitet, wird<br />
direkt das System zur Reinduktion aufgerufen. Dieses basiert auf der Annahme, daß<br />
sich das Format der Daten nicht geändert hat. Viele Seiten benutzen Templates, die<br />
nur noch mit den Ergebnissen einer Datenbankabfrage ausgefüllt werden, um Webseiten<br />
automatisch zu generieren. Demzufolge sind die Daten nicht im Template enthalten. Der<br />
Algorithmus für die Ermittlung des Templates sucht nach allen Sequenzen von Token,<br />
die auf jeder Seite genau einmal vorkommen und mindestens drei Token enthalten.<br />
Im Reinduktionsalgorithmus werden zunächst mit dem DataProGAlgorithmus die Startund<br />
Endmuster gelernt, die die Trainingsbeispiele beschreiben. Als Trainingsbeispiele<br />
werden noch richtig extrahierte mitgeloggte Daten benutzt. Mit diesen Mustern werden<br />
mögliche Datenfelder in der neuen Seite identifiziert. Zusätzlich wird noch die durchschnittliche<br />
Anzahl der Token in den Trainingsdaten bestimmt. Für jede neue Seite<br />
wird nun überprüft, ob sie mit einem der Muster beginnt bzw. endet. Textsegmente, die<br />
deutlich von der berechneten durchschnittlichen Anzahl der Token abweichen, finden<br />
dabei keine Berücksichtigung.<br />
Die gelernten Muster sind allerdings oft zu allgemein. Um dieses Problem zu minimieren,<br />
werden von vornherein Annahmen über die Struktur von Webseiten getroffen.<br />
24
KAPITEL 3. VERWANDTE ARBEITEN<br />
Man geht davon aus, daß Beispiele für dasselbe Datenfeld auf jeder Seite annähernd<br />
an derselben Position und im selben Zusammenhang stehen. Außerdem wurde bereits<br />
angenommen, daß die Informationen nicht im Template zu finden sind. Deswegen sind<br />
Kandidaten, die Teile des Templates extrahieren, auszuschließen. Eine gegebene Information<br />
ist entweder immer für den Benutzer sichtbar, oder sie ist immer unsichtbar.<br />
Letzteres trifft ein, wenn die Information ein HTML-Attribut ist. Deswegen erfolgt zusätzlich<br />
zu jedem Kandidaten die Erstellung eines Vektors, der den Kontext und die<br />
Position im Template bestimmt. Dazu wird noch festgehalten, ob der Kandidat für den<br />
Benutzer sichtbar ist oder ob er Teil eines HTML-Elementes ist. Nachdem die Kandidaten<br />
und die zugehörigen Vektoren bestimmt sind, erfolgt eine Einteilung in Gruppen.<br />
Dabei werden die Extraktionskandidaten in einer Gruppe durch denselben zugehörigen<br />
Vektor beschrieben.<br />
Im folgenden werden die Gruppen nun anhand ihrer Ähnlichkeit zu den Trainingsdaten<br />
bewertet. Die am höchsten bewertete Gruppe enthält vermutlich das richtige Beispiel<br />
für das Datenfeld. Diese Methode setzt voraus, daß bei einer Layoutänderung ein Teil<br />
der Daten unverändert bleibt. Dabei dürfen sich die Daten nicht, wie z. B. bei Wetterinformationen,<br />
häufig ändern. Konnten für keine Gruppe Übereinstimmungen gefunden<br />
werden, kommt die zweite Bewertungmethode zum Einsatz. Dabei ist die Gruppe mit<br />
der größten Ähnlichkeit zu den Trainingsbeispielen zu suchen. Dabei basieren die Trainingsbeispiele<br />
auf den aus den Trainingsdaten gelernten Mustern.<br />
Zum Schluß des Reinduktionsprozesses werden die Extraktionen in der höchsten Rankinggruppe<br />
durch den Einsatz des STALKER-Wrapper-Induktionsalgorithmus für die<br />
neuen Webseiten unterstützt. Dieser Algorithmus lernt die Extraktionsregeln für die<br />
neuen Seiten, wenn er die richtigen Beispiele für die Felder bekommt.<br />
3.2.3 Fazit zur Wrapper Maintenance<br />
Der vorgestellte Ansatz erzielt zwar recht gute Ergebnisse, die Entwicklung erfolgte allerdings<br />
speziell für Detailseiten. Handelt es sich um Übersichtsseiten, so ist dieser Ansatz<br />
deswegen nicht immer erfolgreich. Da im Rahmen des MIND-Projektes sehr häufig nur<br />
die Übersichtsseiten aufgerufen werden, stellt dies einen entscheidenden Nachteil dar.<br />
Das Ziel des vorgestellten Ansatzes ist nicht nur eine semiautomatische, sondern eine<br />
automatische Wrapperpflege. Dabei berücksichtigt der Ansatz allerdings nur Layoutänderungen<br />
und keine Modifizierung der Anfragen.<br />
Trotzdem enthält der Aufbau mit den Stufen der Verifikation und der Reinduktion des<br />
Wrappers Ideen, die im folgenden genutzt werden sollten. Bei den MIND-Wrappern stehen<br />
auch mitgeloggte Daten zur Verfügung, somit kann ebenfalls ein Verifikationsmodul<br />
zum Einsatz kommen. Allerdings ist der Vergleich von Mustern nicht erforderlich, weil<br />
25
KAPITEL 3. VERWANDTE ARBEITEN<br />
für MIND Methoden entwickelt wurden, um die mitgeloggten Daten im selben Format<br />
aufzurufen, wie die gerade angefragten. Hierdurch wird die Verifikation erheblich<br />
vereinfacht.<br />
Bei der Reinduktion werden, wie bereits beim ShopBot, Templates identifiziert und von<br />
der Suche ausgeschlossen. Diese sollten, wie bereits beim ShopBot erwähnt, auch bei<br />
dem zu entwickelnden Wrappertool zum Einsatz kommen. Im Unterschied zum ShopBot<br />
werden hier allerdings nicht nur identische Kopf- und Fußbereiche zum Template gezählt,<br />
sondern jede Sequenz von mindestens drei Token, die genau einmal in jeder Seite<br />
enthalten ist. Des weiteren gelten die Annahmen zur Struktur von Webseiten bezüglich<br />
Position und Zusammenhang von Datenfeldern sowie zur Sichtbarkeit von Informationen<br />
auch für digitale Bibliotheken. Weil MIND-Wrapper die Extraktion mit Hilfe von<br />
XPath vornehmen, wird die konkrete Vorgehensweise allerdings anders als beim gerade<br />
vorgestellten Ansatz sein.<br />
3.3 Fazit zu verwandten Arbeiten<br />
Der ShopBot hat durch seinen zweistufigen Aufbau mit der Erstellung der Anbieterbeschreibung<br />
und der Nutzungsphase starke Ähnlichkeiten zum bisherigen Aufbau von<br />
MIND. Durch das zu entwickelnde Wrappertool könnte dieser Aufbau um die Stufen der<br />
Verifikation und Reinduktion ergänzt werden. Dabei werden sich diese beiden Stufen an<br />
die Vorgehensweise des Ansatzes zur Wrapper Maintenance anlehnen.<br />
Allerdings konnten, mit Ausnahme von Daffodil (s. 4.3) und MIND, keine Beispiele<br />
gefunden werden, in denen die Wrapper mit XPath-Ausdrücken arbeiten. Dies ist ein<br />
wesentlicher Unterschied zwischen dem zu bearbeitenden Problem und den betrachteten<br />
Wrapperwerkzeugen.<br />
Die Vor- und Nachteile der unterschiedlichen Vorgehensweisen der vorgestellten Ansätze<br />
bei der Definition des Templates sind für das zu entwickelnde Reinduction-Tool noch<br />
näher zu untersuchen (s. 5.3).<br />
Die Schritte zur Identifizierung eines Suchformulars sowie die Prüfung, wie dieses auszufüllen<br />
ist, können bei einem Tool zur Pflege von Wrappern sogar entfallen, wenn sich<br />
nur das Layout der digitalen Bibliothek und nicht die Struktur der Anfrage geändert<br />
hat.<br />
26
Kapitel 4<br />
Rahmen für das Wrapperwerkzeug<br />
Um ein Werkzeug für semiautomatische Wrapperpflege zu entwickeln, ist zunächst einmal<br />
festzustellen, welche Datengrundlagen bei der Überarbeitung eines Wrappers genutzt<br />
werden könnten. Daran schließen sich einige Grundannahmen an, die die Aufgabe<br />
klarer strukturieren. Des weiteren wird ein Tool vorgestellt, das bei der Erstellung eines<br />
neuen Wrapperwerkzeugs in die Überlegungen miteinbezogen werden sollte.<br />
4.1 Vorhandene Daten<br />
MIND-Wrapper verwenden intern eine eigene Datenstruktur. Nach dem Laden der entsprechenden<br />
Logdateien ist mit den für MIND entwickelten Methoden wieder ein Zugriff<br />
auf die Datenstrukturen möglich. Das Logging der alten Anfragen und Ergebnisse erfolgt<br />
bei MIND standardmäßig. Falls weitere Daten für die semiautomatischen Pflege notwendig<br />
sind, ist eine entsprechende Erweiterung des Loggings möglich. Um den neuen<br />
Wrapper zu erstellen, könnten so insgesamt folgende Datengrundlagen genutzt werden:<br />
• Die alten Anfragen: Mit ihnen wurde nach den vorhandenen Dokumenten gefragt.<br />
Durch die Anfragen könnte garantiert werden, daß die Test-Anfragen auch zu<br />
verschiedenen Schema-Attributen gestellt werden. Auf diese Weise könnten auch<br />
evtl. Unterschiede bei Anfragen nach verschiedenen Schema-Attributen Berücksichtigung<br />
finden.<br />
• Die URLs der alten Anfragen: Sie werden dazu benötigt, dieselben Anfragen an<br />
die überarbeitete digitale Bibliothek zu stellen. Zwar könnten die URLs auch aus<br />
dem alten Wrapper entnommen werden, allerdings liegt dieser im Java-Code vor.<br />
27
KAPITEL 4. RAHMEN FÜR DAS WRAPPERWERKZEUG<br />
Weil Java-Code zum einen schlecht zu parsen ist und zum anderen dabei der Zusammenbau<br />
der URL nachträglich nachvollzogen werden muß, ist es einfacher, die<br />
URL direkt zur Laufzeit mitzuloggen und diese in einer separaten Datei abzuspeichern.<br />
• Die Ergebnisse der alten Anfrage: Diese sind von entscheidender Bedeutung, weil<br />
sie bei gleicher Anfrage auch auf der neuen Seite zu finden sind (s. 4.2). Hierbei<br />
handelt es sich entweder um Zusammenfassungen oder Dokumente. Unter Zusammenfassungen<br />
sind in diesem Fall Daten zu verstehen, die ausschließlich von der<br />
Übersichtsseite selektiert worden sind. Dagegen werden bei den Dokumenten auch<br />
die Ergebnisse miteinbezogen, die auf der Detailseite zu finden sind.<br />
• Der alten Wrapper: Dieser liegt in einem maschinenlesbarem Format vor. Der<br />
alte Wrapper kann aufgrund der darin enthaltenen XPath-Ausdrücke von Nutzen<br />
sein. Es ist zu überprüfen, ob zumindest noch ein Teil eines Ausdrucks wieder zu<br />
verwerten ist.<br />
Darüber hinaus enthält der Wrapper reguläre Ausdrücke, die auch daraufhin zu<br />
prüfen sind, ob eine weitere Nutzung möglich ist. Falls innerhalb des Textknotens,<br />
der durch den bereits gefundenen XPath-Ausdruck extrahiert wird, überflüssiger<br />
Text enthalten ist, können die regulären Ausdrücke aus dem alten Wrapper auf<br />
ihre Funktionstüchtigkeit getestet werden.<br />
• Die zugehörigen alten HTML-Seiten: Aus ihnen geht die ehemalige Reihenfolge der<br />
Schema-Attribute hervor. Daraus könnten evtl. Rückschlüsse auf die Reihenfolge<br />
der Schema-Attribute in der geänderten digitalen Bibliothek gezogen werden.<br />
Wie bereits schon bei dem Logging von URLs erwähnt, ist es grundsätzlich schwierig,<br />
Informationen aus dem Java-Code zu extrahieren. Deswegen sollte das Reinduction-Tool<br />
möglichst ohne den Java-Code des Wrappers auskommen. Dadurch wird die Übertragbarkeit<br />
des zu entwickelnden Tools auf die Erstellung neuer Wrapper vereinfacht.<br />
Eine Nutzung der alten HTML-Seiten würde die Übertragbarkeit auf die Erstellung neuer<br />
Wrapper ebenfalls erschweren. Außerdem kann die Reihenfolge der Schema-Attribute<br />
auf der alten Webseite nur ein Indiz und kein sicherer Indikator sein, weil sich die Reihenfolge<br />
der Schema-Attribute bei der Überarbeitung des Webservices ebenfalls geändert<br />
haben kann. Demzufolge sollten auch die HTML-Seiten zunächst einmal nicht berücksichtigt<br />
werden.<br />
28
KAPITEL 4. RAHMEN FÜR DAS WRAPPERWERKZEUG<br />
4.2 Grundannahmen<br />
Im folgenden werden einige Annahmen bzw. Einschränkungen zur Eingrenzung der Problematik<br />
vorgenommen. Das so vereinfachte Problem stellt eine Teilmenge des ursprünglichen<br />
Problems dar. Kapitel 8.2 beschreibt, inwieweit das entwickelte Wrapperwerkzeug<br />
sich auch auf Wrapper anwenden läßt, für die diese Einschränkungen nicht gelten.<br />
4.2.1 Ergebnisse der Anfragen<br />
Um das Problem überschaubarer zu gestalten wird beim weiteren Vorgehen von einer<br />
Änderung des Seitenlayouts ausgegangen, nach der die alten Ergebnisse der Anfragen<br />
weiterhin auf den HTML-Seiten der digitalen Bibliothek zu finden sind. Allerdings könnten<br />
zusätzliche Informationen hinzugekommen sein.<br />
Bei der Verwendung alter Logdateien kann es vorkommen, daß sich die Ergebnisse,<br />
die zum Zeitpunkt der Erstellung der Logdatei auf der ersten Ergebnisseite zu finden<br />
waren, nun auf einer der darauffolgenden Seite stehen bzw. sich sogar auf mehrere Übersichtsseiten<br />
verteilen. Dazu kann es kommen, wenn die digitale Bibliothek um weitere<br />
Dokumente ergänzt wird. Dadurch sind Dokumente nicht mehr auf der Seite mit der<br />
gesuchten URL enthalten, sondern sind nur noch von der ursprünglichen Seite aus erreichbar.<br />
Dazu müßten allerdings die entsprechenden URLs aus der Webseite extrahiert<br />
werden.<br />
Um dieses Problem erst einmal zu minimieren, könnten zunächst nur die jeweils aktuellsten<br />
Logdateien geladen werden. Bei diesen ist die Wahrscheinlichkeit größer, daß die<br />
mitgeloggten Ergebnisse auf der ersten Übersichtsseite enthalten sind. Dadurch steigen<br />
auch die Aussichten für das zu entwickelnde Tool, erfolgreich zu arbeiten.<br />
4.2.2 Anfragestruktur<br />
Die Struktur der Anfrage wird sich seltener ändern als das Layout einer HTML-Seite.<br />
Außerdem ist der Arbeitsaufwand für die manuelle Erstellung der Anfragestrukur erheblich<br />
geringer als der Aufwand, der bei einem Wrapper auf die Erstellung des Parsers<br />
verwendet wird. Des weiteren kommen bei der Überarbeitung der Anfragestruktur andere<br />
Techniken zum Einsatz als bei der Erstellung des Parsers. Infolgedessen wird vorausgesetzt,<br />
daß sich die Struktur der Anfrage nicht verändert bzw. dieses vor dem Einsatz<br />
des zu entwickelnden Wrapperwerkzeugs überprüft und ggf. manuell überarbeitet wird<br />
(s. 6.1.1). Deswegen ist dieses Problem ebenfalls zunächst zu vernachlässigen.<br />
29
KAPITEL 4. RAHMEN FÜR DAS WRAPPERWERKZEUG<br />
4.2.3 Wrappertypen<br />
Es wird zwischen regulären und nicht regulären Wrappern unterschieden. Dazwischen<br />
sind noch Wrapper anzusiedeln die nur teilweise regulär sind.<br />
Bei einem regulären Wrapper unterscheidet sich der Seitenaufbau für verschiedene Anfragen<br />
nicht. Die Ergebnisse weisen alle dieselbe Struktur auf. Dadurch können die<br />
Schema-Attribute auf den verschiedenen Seiten immer durch dieselben XPath-Ausdrücke<br />
selektiert werden. Reguläre Wrapper sind vergleichsweise einfach zu erstellen.<br />
Bei einem nicht regulären Wrapper existiert dagegen nicht für jedes Dokument jedes<br />
Schema-Attribut. Dem gegenüber kann es hier wiederum Schema-Attribute geben, die in<br />
einzelnen Datensätzen mehrfach vorkommen. Wenn die einzelnen Schema-Attribute auf<br />
der Webseite nur durch Zeilenumbrüche getrennt sind bzw. sogar zu mehreren in einer<br />
Zeile stehen, variiert, je nach Vorkommenshäufigkeit der einzelnen Schema-Attribute,<br />
ihre Position auf der Webseite. Dadurch ist der Wrapper schwer zu erstellen, weil auch<br />
der XPath-Ausdruck variiert. Zunächst einmal sind in diesem Fall die möglichen Kombinationen<br />
von Schema-Attributen ausfindig zu machen. Danach muß festgestellt werden,<br />
wie es möglich ist, die gefundenen Kombinationen voneinander zu unterscheiden und<br />
die Schema-Attribute somit richtig zuzuordnen. Ein weiteres Beispiel für einen nicht<br />
regulären Wrapper ist eine sich ändernde Reihenfolge der Schema-Attribute. Darüber<br />
hinaus kann es auch noch Ausnahmen geben. Hierunter fallen z. B. Schema-Attribute,<br />
die sonst nicht vorkommen, und Schreibfehler. Ein Beispiel für einen nicht regulären<br />
Wrapper ist der Wrapper der National Gallery of Art von Washington D. C. (s. Abb.<br />
4.1).<br />
Bei einem nicht regulären Wrapper kann es unter Umständen auch sinnvoll sein, selten<br />
vorkommende Kombinationen von Schema-Attributen zu vernachlässigen, weil dadurch<br />
insgesamt die Quote der richtigen Zuordnungen zu den Schema-Attributen erhöht wird.<br />
Bereits die manuelle Erstellung von Wrappern für nicht reguläre Webseiten gestaltet sich<br />
problematisch. Demzufolge wird die Entwicklung eines Tools zur semiautomatischen<br />
Pflege von Wrappern deutlich schwieriger. Damit die zu bearbeitende Aufgabe nicht<br />
zu komplex wird, werden die Probleme mit nicht regulären Wrappern zunächst einmal<br />
vernachlässigt und eine reguläre Struktur vorausgesetzt.<br />
4.3 Vorstellung des Wrappertoolkits von Rupp<br />
Im Rahmen seiner Diplomarbeit zum Thema “Wrapper für digitale Bibliotheken in<br />
Daffodil“ [Rup02] hat Markus Rupp ein Wrappertoolkit entwickelt. Es ermöglicht eine<br />
30
KAPITEL 4. RAHMEN FÜR DAS WRAPPERWERKZEUG<br />
Abbildung 4.1: Auszüge aus Detailseiten<br />
der National Gallery of Art von Washington D. C.<br />
Quelle: http://www.nga.gov<br />
31
KAPITEL 4. RAHMEN FÜR DAS WRAPPERWERKZEUG<br />
einfache und effiziente Erstellung von Wrappern für digitale Bibliotheken des Daffodil-<br />
Projektes sowie eine einfachere Wartung von bereits erstellten Wrappern.<br />
Bei dem Daffodil Projekt handelt es sich um ein nutzerorientiertes Zugangssystem für<br />
heterogene digitale Bibliotheken [Daf]. Zusätzlich zur parallelen Suche in mehreren digitalen<br />
Bibliotheken bietet Daffodil auch noch eine strategische Unterstützung des Benutzers<br />
bei der Suche nach Informationen. Mit diesem Projekt soll der Zugang zu digitalen<br />
Bibliotheken erleichtert werden, damit eine effektive Nutzung möglich ist.<br />
Das Wrappertoolkit ist in der Programmiersprache Java implementiert. Für jeden Seitentyp<br />
einer digitalen Bibliothek muß dabei eine Konfigurationsdatei (s. Abb. 4.3) im<br />
XML-Format erstellt werden, die dann vom Toolkit aufgerufen wird. Das Toolkit gliedert<br />
sich in die drei Komponenten Crawler, Tidy und Parser (s. Abb. 4.2).<br />
4.3.1 Die Crawlerkomponente<br />
Die Konfigurationsdatei bekommt innerhalb des fetch Elementes die URL der zu parsenden<br />
Seite und die Parameter GET bzw. Post. Statt der direkten Angabe in der Konfigurationsdatei<br />
können dem Wrappertoolkit die Daten auch beim Aufruf als Variable<br />
übergeben werden. Das fetch Element in der Konfigurationsdatei bewirkt die Aktivierung<br />
des Crawlers. Dieser ruft daraufhin die Webseite auf und liefert das zu parsende<br />
Dokument zurück. Im folgenden Beispiel wird der Paramter die Anfrage-Methode GET<br />
übergeben. Der URL der zu parsenden Seite ist eine Variable zugewiesen. Im Anschluß<br />
daran wird noch die Codierung der URL festgelegt. Diese dient zur einheitlichen Darstellung<br />
der URL.<br />
<br />
4.3.2 Die Tidykomponente<br />
Innerhalb des clean Elementes in der Konfigurationsdatei werden zunächst Angaben<br />
zur Umwandlung von Entitäten gemacht. Anschließend erfolgt der Aufruf der Tidykomponente.<br />
Diese wandelt das HTML-Dokument, das der Crawler zurückgeliefert hat,<br />
mit Hilfe der Javabibliothek Tidy in XHTML um. Allerdings werden dabei von Tidy<br />
einige HTML-Entitäten nicht ersetzt. Es ist in diesem Fall nicht möglich, die Entitäten<br />
einwandfrei zu dekodieren, deswegen sind diese vor der Umwandlung zu ersetzen.<br />
Das folgende Beispiel substituiert z. B. Leerzeichen, die in HTML mit „ “ codiert<br />
werden:<br />
32
KAPITEL 4. RAHMEN FÜR DAS WRAPPERWERKZEUG<br />
Hash<br />
Crawler<br />
Tidy<br />
XPath<br />
&<br />
reguläre<br />
Ausdrücke<br />
WWW<br />
HTML<br />
Dokument<br />
XHTML<br />
Dokument<br />
Java<br />
Objekt<br />
High<br />
Speed<br />
Disk<br />
Abbildung 4.2: Arbeitsweise des Wrappertoolkits<br />
Quelle: [Rup02]<br />
33
KAPITEL 4. RAHMEN FÜR DAS WRAPPERWERKZEUG<br />
<br />
<br />
<br />
Für eine Vielzahl von digitalen Bibliotheken ist allerdings keine zusätzliche Codierung<br />
von HTML-Entitäten erforderlich, bevor die Tidykomponente aufgerufen wird. Deswegen<br />
ist nur ein leeres clean Element in der Konfigurationsdatei enthalten. Als Ergebnis<br />
der Tidykomponente wird ein XML-Dokument-Objekt zurückgegeben.<br />
4.3.3 Die Parserkomponente<br />
Darauf folgt mit dem parse Element der interessanteste Teil der Konfigurationsdatei. In<br />
diesem werden einzelne Knoten des XHTML-Baums mit Hilfe von XPath-Ausdrücken<br />
extrahiert und das Resultat wird jeweils einem Schlüssel zugewiesen. Das erzielte Ergebnis<br />
kann mit Hilfe von regulären Ausdrücken bearbeitet werden. Innerhalb des parse<br />
Elementes sind auch Iterationen möglich, wodurch nicht nur der erste Knoten auf einer<br />
Seite gefunden werden kann, auf die der XPath-Ausdruck zutrifft, sondern auch alle<br />
folgenden.<br />
Bei dem nachstehenden Beispiel umfaßt die Iteration mehrere Extraktionen. Dabei<br />
werden alle Knoten durchlaufen die durch den XPath-Ausdruck //tr/td/p/b/a selektiert<br />
werden. Ausgehend von diesen Knotextknoten werden dann jeweils mit den<br />
Xpath-Ausdrücken für die XML-Attribute detaillink und author die Knoten für die<br />
Schema-Attribute extrahiert. Im Normallfall ist der XPath-Ausdruck ein XML-Attribut<br />
des XML-Elementes text. Handelt es sich bei dem zu selektierenden Element um eine<br />
URL, ist der XPath-Ausdruck dabei ein XML-Attribut des XML-Elementes url. Dieses<br />
wandelt relative URLs in absolute um.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Auf diese Weise können mehrere Dokumente selektiert werden, die jeweils ein XML-<br />
Attribut der oben vorkommenden Extraktionen enthalten. In diesem Beispiel kann jedes<br />
Dokument die XML-Attribute „detaillink“ und „author“ besitzen. Im Gegensatz<br />
34
KAPITEL 4. RAHMEN FÜR DAS WRAPPERWERKZEUG<br />
dazu ist die Iteration im folgenden Beispiel in der Extraktion enthalten. Diese Variante<br />
wird verwendet, wenn auf einer Webseite nur ein Dokument enthalten ist und einzelne<br />
Schema-Attribute mehrfach vorkommen.<br />
<br />
<br />
<br />
<br />
<br />
Für Text, der sich z. B. aufgrund von optischen Hervorhebungen über mehrere Unterelemente<br />
erstreckt, bietet das Toolkit auch die Möglichkeit, den gewünschten Text ohne<br />
Berücksichtigung der weiteren Baumstruktur zu extrahieren.<br />
Existieren für ein Schema-Attribut mehrere Einträge innerhalb eines Knotens, so können<br />
diese mit Hilfe des Elementes split und eines hierin enthaltenen regulären Ausdrucks<br />
getrennt werden. Das folgende Beispiel ist für Webseiten gedacht, bei denen die Autoren<br />
durch ein Semikolon zu trennen sind.<br />
<br />
<br />
<br />
<br />
<br />
Durch das substitute Element, sowie die darin enthaltenen regulären Ausdrücke, können<br />
überflüssige Inhalte der Knoten abgetrennt werden. Das untenstehende Beispiel<br />
entfernt von dem Inhalt des selektierten Knotens alle runden Klammern. Enthält das<br />
XML-Attribut replacewith keine Argumente, kann es auch entfallen.<br />
<br />
<br />
<br />
<br />
<br />
Das Toolkit ruft bei Angabe des Elementes parse die Parserkomponete auf. Diese Komponente<br />
des Toolkits liefert bei Iterationen, die über alle Extraktionen durchgeführt<br />
werden, eine Instanz der Javaklasse java.util.Vector zurück, die mehrere Instanzen<br />
35
KAPITEL 4. RAHMEN FÜR DAS WRAPPERWERKZEUG<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Abbildung 4.3: Beispiel einer Konfigurationsdatei<br />
Quelle: eigene Darstellung<br />
der Javaklasse java.util.Hashtable enthält. Falls keine Iteration vorkommt, bzw. nur<br />
Iterationen für einzelne Extraktionen, wird direkt eine Instanz der Klasse Hashtable<br />
zurückgeliefert. Existieren Iterationen für einzelne Extraktionen, so ist für diese in der<br />
zurückgelieferten Hashtable ein Vektor enthalten.<br />
36
Kapitel 5<br />
Ideen für die Entwicklung eines<br />
eigenen Wrapperwerkzeugs<br />
Bei der Entwicklung eines Wrapperwerkzeugs wird eine induktive Vorgehensweise angestrebt.<br />
Dazu werden mit Hilfe der mitgeloggten Daten die benötigten XPath- und<br />
regulären Ausdrücke für die geänderte digitale Bibliothek gefunden, und es wird daraus<br />
semiautomatisch ein neuer Wrapper erstellt.<br />
5.1 Vorüberlegungen<br />
Grundsätzlich existieren zwei mögliche Vorgehensweisen, um die passenden XPath-<br />
Ausdrücke zu finden [Mor99]:<br />
• Generalisierung: Die Generalisierung geht bottom-up vor. Hierzu wird mit der<br />
speziellsten Hypothese begonnen. Im vorliegenden Fall könnten hierfür z. B. die<br />
XPath-Ausdrücke aus dem Wrapper selektiert werden. Solange nicht alle zutreffenden<br />
Beispiele abgedeckt sind, ist eine weitere Generalisierung erforderlich. Andernfalls<br />
ist die Suche zu beenden. Eine Verallgemeinerung der XPath-Ausdrücke<br />
kann daher durch die Entfernung des jeweils ersten Elementes erfolgen.<br />
• Spezialisierung: Bei der Spezialisierung ist die Vorgehensweise dagegen top-down.<br />
Dazu wird mit der allgemeinsten Hypothese gestartet. Im gegebenen Fall sind das<br />
der XPath-Ausruck //* für die Textknoten bzw. //@* für die Attributknoten. Mit<br />
diesen ist eine Suche in allen Text- bzw. allen Attributknoten eines Dokumentes<br />
37
KAPITEL 5. IDEEN FÜR DIE ENTWICKLUNG EINES EIGENEN<br />
WRAPPERWERKZEUGS<br />
möglich. Diese Hypothese deckt im ersten Schritt neben den gewünschten Ergebnissen<br />
wahrscheinlich auch unpassende Beispiele mit ab. Deswegen ist eine weitere<br />
Spezialisierung erforderlich. Bei einer Spezialisierung sind mögliche Erweiterungen<br />
für die aktuell verwendeten XPath-Ausdrücke zu suchen, bis der passende<br />
XPath-Ausdruck gefunden wird, der nur die gesuchten Ergebnisse herausfiltert.<br />
Die Methode der Spezialisierung verspricht größere Erfolge, weil sie eine Liste mit Kandidaten<br />
für die Xpath-Ausdrücke zurückgibt. Da die alten Ergebnisse noch auf den aktuellen<br />
Seiten zu finden sein müssen (s. 4.2.1), sind auch die passenden XPath-Ausdrücke<br />
unter den Kandidaten. Diese Listen sind schrittweise zu reduzieren. Für die verbliebenen<br />
eindeutigen XPath-Ausdrücke muß dann wieder eine Generalisierung gefunden werden,<br />
die es ermöglicht, jedes Schema-Attribut eines Typs zu selektieren.<br />
5.2 XPath-Ausdrücke<br />
Wie bereits im Abschnitt 2.3.2 beschrieben, wird zwischen relativen und absoluten<br />
XPath-Ausdrücken unterschieden. Bei relativen XPath-Ausdrücken ist schwerer nachzuvollziehen,<br />
welche Knoten sie extrahieren. Dafür sind sie bei Layoutänderungen weniger<br />
anfällig, weil der direkte Bezug zum Wurzelknoten fehlt. Absolute XPath-Ausdrücke<br />
haben, zumindest bei automatischer Generierung, den Vorteil der Eindeutigkeit. Somit<br />
kann für alle XPath-Ausdrücke eines Dokumentes die Reihenfolge bestimmt werden.<br />
Dies könnte bei der Suche nach den mitgeloggten Dokumenten von Vorteil sein, weil<br />
den eindeutig zugeordneten Schema-Attributen die Anordnung der Dokumente auf der<br />
angefragten Webseite entnommen werden kann. Deswegen wird nachfolgend mit absoluten<br />
Lokalisierungspfaden gearbeitet.<br />
Sind allerdings Dokumente bzw. Schema-Attribute mehrfach auf einer Webseite enthalten,<br />
so ist zunächst die Bildung von Iterationen notwendig. In diesem Fall muß, ausgehend<br />
von einem Kontextknoten, weiter extrahiert werden, weshalb bei den Extraktionen<br />
relative XPath-Ausdrücke Verwendung finden.<br />
5.3 Template<br />
Weil die HTML-Seiten der digitalen Bibliotheken automatisch aus einer Datenbasis generiert<br />
werden, sind für jeden Webservice bei verschiedenen Anfragen einige Teile der<br />
Ergebnisseiten immer gleich (s. Kap. 3). Dies gilt z. B. häufig für die Seitennavigation.<br />
Es handelt sich gewissermaßen um ein Template, das nur mit den jeweils aktuellen<br />
Daten zu füllen ist. Um den Aufwand für die Suche nach den Schema-Attributen zu<br />
38
KAPITEL 5. IDEEN FÜR DIE ENTWICKLUNG EINES EIGENEN<br />
WRAPPERWERKZEUGS<br />
reduzieren, sollte zunächst einmal das Template ausfindig gemacht werden. Die Teile<br />
des Templates, die zwischen den Ergebnissen stehen, können dabei Hinweise zur Lokalisierung<br />
der Resultate liefern und sollten somit im folgenden Verarbeitungsprozess<br />
zur Verfügung stehen. Insofern sind nur die Teile des Templates, die vor bzw. nach den<br />
Ergebnissen stehen, von der weiteren Betrachtung auszuschließen. Dadurch kann die<br />
Suche nach dem Template aus der Suche nach Übereinstimmungen am Anfang und am<br />
Ende der HTML-Seite bestehen. Hier wird also die Verfahrensweise des ShopBot der<br />
des Ansatzes zur Wrapper Maintenance vorgezogen.<br />
5.4 Generalisierung von XPath-Ausdrücken<br />
Im Zuge dieser Diplomarbeit soll herausgearbeitet werden, wie sich XPath-Ausdrücke<br />
generalisieren lassen. Die Generalisierung läßt sich als die Aufgabe beschreiben, mehrere<br />
XPath-Ausdrücke zu einem zu verschmelzen, um sie für die Iterationen und Extraktionen<br />
zu benutzen. Die generalisierten Ausdrücke sollen alle Dokumente bzw. Schema-<br />
Attribute, die auf einer Webseite enthalten sind, extrahieren. Dagegen repräsentieren<br />
die vorhandenen XPath-Ausdrücke nur einzelne Dokumente bzw. Schema-Attribute. Insofern<br />
bilden sie eine Teilmenge der entsprechenden Generalisierungen. Für die Generalisierung<br />
muß der gemeinsame Stamm, das evtl. vorhandene gemeinsame Ende sowie die<br />
unterscheidende Stelle erkannt werden, um sie dann in einer Iteration bzw. Extraktion<br />
nutzen zu können. Im folgenden Beispiel ist /html/body[1]/dl[1]/dt der gemeinsame<br />
Stamm, der zur Bildung der Iteration zu nutzen ist. Weil über alle Knoten iteriert werden<br />
soll, entfällt die Positionsangabe beim letzten Element des XPath-Ausdrucks für<br />
die Iteration. Der verbliebene XPath-Ausdruck /b[1]/text() wird dann zur Extraktion<br />
benutzt.<br />
/html/body[1]/dl[1]/dt[1]/b[1]/text()<br />
/html/body[1]/dl[1]/dt[2]/b[1]/text()<br />
Dabei bildet der Knoten, der jeweils von der Iteration selektiert wird, den Kontextknoten,<br />
von dem aus die XML-Elemente zu suchen sind, die durch den XPath-Ausdruck<br />
für Extraktion adressiert werden. Probleme kann es vor allem dann geben, wenn vor<br />
dem ersten interessanten Eintrag weitere stehen, für die die gleichen XPath-Ausdrücke<br />
gelten, die aber nicht mit zurück gegeben werden sollen. Dies kann beispielsweise der<br />
Fall sein, wenn zu Beginn der Ergebnisseite gesponserte Resultate stehen, die nicht mit<br />
zum Ergebnis der Anfrage gehören. Dann muß überprüft werden, ob der letzte nicht<br />
interessierende Knoten vor, bzw. der erste nicht mehr interessierende Knoten nach den<br />
gesuchten Ergebnissen durch einen XPath-Ausdruck automatisch zu identifizieren ist.<br />
39
KAPITEL 5. IDEEN FÜR DIE ENTWICKLUNG EINES EIGENEN<br />
WRAPPERWERKZEUGS<br />
In diesem Fall können dann mit Hilfe von komplexen Achsenbeziehungen die richtigen<br />
Einträge selektiert werden. Allerdings dürften diese XPath-Ausdrücke schwer automatisch<br />
zu generieren sein, weil eine Trennung zwischen Dokumenten vorgenommen werden<br />
muß, deren HTML-Code dieselbe Strukturierung aufweist.<br />
Eine Änderung des Knotentyps ist nicht zu erwarten. Zwar kann der Inhalt eines Attributknotens<br />
bei einer Layoutänderung zusätzlich auch als Textknoten in der Webseite<br />
enthalten sein, jedoch wird das vermutlich eher selten auftreten. Deswegen läßt sich<br />
häufig zumindest ein Teil des XPath-Ausdruckes wieder verwenden. Dies gilt für die<br />
Suche nach Links, bei denen der XPath-Ausdruck immer auf a/@href enden wird, und<br />
für die Suche nach Schema-Attributen zu Bildern, deren XPath-Ausdrücke immer auf<br />
img/@src, img/@width und img/@height enden werden.<br />
5.5 Text mit Unterelementen<br />
Es kann eine Unterscheidung zwischen Informationen, die sich nur innerhalb eines einzelnen<br />
XML-Elementes befinden, und solchen, die sich über mehrere XML-Elemente<br />
erstrecken, getroffen werden.<br />
Vor allem bei Fließtexten erstrecken sich die Informationen über mehrere XML-Elemente.<br />
Dabei werden z. B. in einem logisch zusammenhängendem Text verschiedene Schriftarten<br />
verwendet oder Hyperlinks zu weiteren Informationen in den Text eingebaut, so daß<br />
sich der Text über mehrere XML-Elemente erstreckt. Das Problem besteht nun darin,<br />
einen passenden XPath-Ausdruck zu finden, der alle benötigen XML-Elemente, aber<br />
gleichzeitig auch nur diese, abdeckt. Bei der bisherigen Wrappererstellung muß noch<br />
gesondert verfahren werden, damit der Inhalt von mehreren XML-Elementen selektiert<br />
wird. Im Toolkit ist diese Funktion bereits enthalten, somit entfällt bei dessen Nutzung<br />
eine Sonderbehandlung.<br />
5.6 Indikatoren für unsichere Schema-Attribute<br />
Ist der Wert eines Schema-Attributes auf einer Webseite nur einmal enthalten, läßt es<br />
sich eindeutig zuordnen. Also handelt es sich hier um ein sicheres Schema-Attribut.<br />
Es könnten zu einem gesuchten Schema-Attribut aber auch mehrere XPath-Ausdrücke<br />
gefunden werden. In diesem Fall handelt es sich um unsichere Schema-Attribute. Das<br />
Problem der Zuordnung von unsicheren Schema-Attributen wird in stärkerem Maße auf<br />
den Übersichtsseiten zu finden sein. Falls z. B. nach einem Autor gesucht wird, so kommt<br />
der Name des Autors bei den meisten digitalen Bibliotheken in jedem Ergebnistupel vor.<br />
40
KAPITEL 5. IDEEN FÜR DIE ENTWICKLUNG EINES EIGENEN<br />
WRAPPERWERKZEUGS<br />
Somit wird es schwierig sein, den passenden XPath-Ausdruck für das jeweilige Tupel zu<br />
finden.<br />
Auf den Detailseiten können ebenfalls unsichere Attribute enthalten sein. Da auf diesen<br />
Seiten allerdings nur einzelne Dokumente vorkommen, wird die Anzahl der Kandidaten<br />
für die XPath-Ausdrücke geringer sein als auf den Übersichtsseiten. Außerdem wird hier<br />
das Problem eher in einem erneuten Vorkommen der Schema-Attribute in einem anderem<br />
Zusammenhang bestehen, dies gilt insbesondere für Zahlen. Eine häufige Variante<br />
ist aber auch, daß das Schema-Attribut author, z. B. in einem Porträt des Autors, noch<br />
einmal in der Webseite enthalten ist.<br />
Durch den Ausschluß einer Suche innerhalb des Templates wird sich die Anzahl der<br />
mehrfachen Fundstellen für Schema-Attribute bereits von vornherein reduzieren. Für die<br />
unsicheren Schema-Attribute müssen Methoden zur Reduzierung der XPath-Ausdrücke<br />
gefunden werden. Dazu könnten die folgenden Verfahren eingesetzt werden:<br />
• Es wird der XPath-Ausdruck gewählt, der die größte Ähnlichkeit zum alten Ausdruck<br />
aufweist. Dabei müßte allerdings noch ein Bewertungsmaß für diese Ähnlichkeit<br />
gefunden werden.<br />
• Es wird der XPath-Ausdruck gewählt, der den anderen neuen Ausdrücken am<br />
ähnlichsten ist. Sind z. B. zwei XPath-Ausdrücke folgender Art gefunden worden<br />
table/tr/td/b()<br />
p/text()<br />
und existieren bereits einige zugeordnete Schema-Attribute mit Ausdrücken folgender<br />
Art:<br />
table/tr/td/...<br />
dann ist es wahrscheinlicher, daß der erste XPath-Ausdruck stimmt. Dies gilt<br />
insbesondere, wenn die alten Ausdrücke für die Schema-Attribute ebenfalls Ähnlichkeiten<br />
aufwiesen. Das trifft vor allem für Ausdrücke zu, die zum selben Ergebnistupel<br />
gehören. Bei diesem Verfahren muß wiederum noch ein Maß für die<br />
Ähnlichkeit entwickelt werden.<br />
• Stimmt einer der gefundenen XPath-Ausdrücke bis auf die Elemente für die optische<br />
Hervorhebung mit dem alten Ausdruck überein, so ist dieser zu bevorzugen.<br />
• Werden für genügend Dokumente auf den Übersichtsseiten zumindest einzelne<br />
Schema-Attribute eindeutig zugewiesen, können anhand dieser XPath-Ausdrücke<br />
41
KAPITEL 5. IDEEN FÜR DIE ENTWICKLUNG EINES EIGENEN<br />
WRAPPERWERKZEUGS<br />
die Positionen der Dokumente auf der Webseite bestimmt werden. Weil zwischen<br />
Schema-Attributen eines Dokumentes ein räumlicher Bezug besteht, kann durch<br />
die Positionen der Dokumente eine Reduzierung der XPath-Ausdrücke erfolgen.<br />
Beispielsweise werden Schema-Attribute des ersten Dokumentes ausschließlich vor<br />
dem ersten Schema-Attribut des zweiten Dokumentes zu finden sein.<br />
• Sind die Dokumentgrenzen bereits eindeutig identifiziert und liegen für Schema-<br />
Attribute innerhalb dieser Dokumentgrenzen noch mehrere Kandidaten für die<br />
Dokumente, kann eine Zuordnung anhand der Reihenfolge der Schema-Attribute<br />
in anderen Dokumenten vorgenommen werden. Dabei kann der Vergleich auch mit<br />
Dokumenten von anderen Anfrageergebnissen erfolgen.<br />
Schwierigkeiten könnte es bei dem Ansatz mit der Sortierung der Dokumente geben,<br />
wenn mehrere Dokumente in einer Zeile stehen, wie z. B. bei dem Wrapper für Fine<br />
Arts Museums of San Francisco (FAMSF) in Abb. 5.1. In diesem Beispiel sind 6 Tabellenspalten<br />
enthalten, wobei je drei Spalten zu einem Dokument gehören. Das Problem<br />
würde deutlich einfacher, wenn sich Dokumente nur über eine Spalte erstrecken. Probleme<br />
sind hier bei der Erstellung der Iteration zu erwarten. Deswegen müßte manuell<br />
überprüft werden, ob diese Problematik bei der jeweiligen digitalen Bibliothek auftreten<br />
kann. Weil dieses Phänomen auch optisch wahrzunehmen ist, stellt die Überprüfung<br />
aber kein größeres Problem dar.<br />
Der Vorteil der letzten beiden Ansätze besteht darin, daß kein vorhandener Wrapper benötigt<br />
wird. Somit ist der Einsatz nicht nur bei der Pflege von Wrappern, sondern, unter<br />
Zuhilfenahme von manuell erzeugten Logdateien, auch bei der Erstellung von Wrappern<br />
möglich. Allerdings könnte die Verfolgung dieser Ansätze problematisch werden, wenn<br />
alle vorhandenen Anfragen relativ wenig Ergebnisse zurückliefern sollten bzw. wenn relativ<br />
wenig Anfragen vorliegen. Wegen der besseren Eignung für die Erzeugung neuer<br />
Wrapper fällt die Entscheidung zunächst auf die beiden letzten Ansätze. Dabei sollte<br />
bei der Umsetzung eine mögliche Erweiterung des Reinduction-Tools berücksichtigt<br />
werden, damit bei Bedarf die anderen Möglichkeiten zur Behandlung von unsicheren<br />
Attributen anschließend zum Einsatz kommen könnten. Auf diese Weise könnte eine<br />
weitere Reduzierung der verbliebenen Kandidaten vorgenommen werden.<br />
5.7 Trennung der einzelnen Ergebnisse<br />
Die einzelnen Ergebnisse auf der Übersichtsseite starten meistens mit einer neuen Zeile,<br />
die durch ein HTML-Element spezifiziert wird. Dafür kommt nur eine geringe Anzahl<br />
an Tags wie z. B. , in Frage. Alternativ ist die Gliederung mit einer Tabelle<br />
42
KAPITEL 5. IDEEN FÜR DIE ENTWICKLUNG EINES EIGENEN<br />
WRAPPERWERKZEUGS<br />
Abbildung 5.1: Digitale Bibliothek mit zweispaltigem Aufbau<br />
Quelle: http://www.thinker.org/<br />
43
KAPITEL 5. IDEEN FÜR DIE ENTWICKLUNG EINES EIGENEN<br />
WRAPPERWERKZEUGS<br />
möglich. Die verschiedenen Ergebnisse werden dabei einen ähnlichen Aufbau aufweisen.<br />
Weitaus wichtiger ist allerdings die Tatsache, daß die einzelnen Schema-Attribute eines<br />
Ergebnisses einen räumlichen Bezug zueinander haben müssen, um vom Benutzer auch<br />
als eine Einheit wahrgenommen zu werden. Dieser räumliche Bezug muß sich in der<br />
Positionierung der XPath-Ausdrücke zueinander widerspiegeln.<br />
5.8 Nutzung des Wrappertoolkits<br />
Die Entwicklung des Wrappertoolkits erfolgte zwar explizit für das Daffodil-Projekt,<br />
aber eine Nutzung im Rahmen anderer Projekte wurde bei der Entwicklung mit eingeplant.<br />
So kann das Wrappertoolkit auch von den MIND-Wrappern aufgerufen werden.<br />
Dieses Vorgehen ist nicht nur für die zu überarbeitenden Wrapper, sondern generell auch<br />
für neu zu erstellende MIND-Wrapper zu empfehlen, weil durch die Nutzung des Toolkits<br />
in den Java-Klassen der jeweiligen Wrapper ein vermehrter Einsatz von Vererbung<br />
möglich ist. Dadurch werden die speziellen Klassen für die einzelnen MIND-Wrapper<br />
übersichtlicher und so wird auch die Erstellung effektiver.<br />
Bei einer Nutzung des Toolkits müssen, wenn ein Wrapper gebrochen ist, lediglich die<br />
Konfigurationsdateien, die für jeden Seitentyp einer digitalen Bibliothek zu erzeugen<br />
sind, jeweils neu verfaßt werden. Diese sind im XML-Format verfaßt, welches übersichtlicher<br />
als der Java-Code ist. Dadurch wird die Wrappererstellung und -pflege durch<br />
das Tool erheblich erleichtert und ist somit meist ohne Programmiererfahrung durchführbar.<br />
Dies gilt vor allem für die Pflege, weil oftmals nur noch XML- und XPath-<br />
Kenntnisse benötigt werden. Wenn die Schlüssel in den Konfigurationsdateien entsprechend<br />
der Schema-Attributnamen im MIND-Schema vergeben werden, können innerhalb<br />
des MIND-Wrappers direkt die Schema-Attribute gesetzt werden. Hierdurch wird die<br />
Überschaubarkeit des Wrappers weiter gesteigert.<br />
Bei einem Einsatz des Toolkits im Rahmen des MIND-Projektes wird die Suche nach den<br />
XPath-Ausdrücken nicht nur wegen der größeren Übersichtlichkeit vereinfacht, sondern<br />
auch, weil die Konfigurationsdatei eigenständig getestet werden kann, ohne eine ständige<br />
neuerliche Kompilierung des Wrappers zu erfordern. Insofern wird angestrebt, die alten<br />
MIND-Wrapper auf die Nutzung des Toolkits umzustellen. Deswegen kann im folgenden<br />
davon ausgegangen werden, daß der zur Verfügung stehende alte MIND-Wrapper bereits<br />
das Toolkit nutzt.<br />
Mit dieser Voraussetzung ist das Ziel für das zu entwickelnde Reinduction-Tool die Erstellung<br />
einer neuen Konfigurationsdatei für gebrochene Wrapper. Deshalb ist das zu<br />
entwickelnde Reinduction-Tool für digitale Bibliotheken, deren Komplexität keinen Einsatz<br />
des Wrappertoolkits ermöglicht, ebenfalls nicht einsetzbar. Dies wird keine weitere<br />
44
KAPITEL 5. IDEEN FÜR DIE ENTWICKLUNG EINES EIGENEN<br />
WRAPPERWERKZEUGS<br />
Beschränkung darstellen, weil es nur für nicht reguläre digitale Bibliotheken zutrifft,<br />
und diese Bibliotheken werden zunächst einmal nicht betrachtet (s. 4.2.3).<br />
Bei einer weitergehenden Evaluierung des Toolkits in bezug auf die MIND-Wrapper<br />
müßte deswegen noch untersucht werden, wie das Toolkit bei nicht regulären digitalen<br />
Bibliotheken einzusetzen ist, damit die Grenzen des zu entwickelnden Tools besser<br />
bestimmt werden können.<br />
Grundsätzlich ist der Einsatz des Toolkits immer dann möglich ist, wenn für alle Schema-<br />
Attribute XPath-Ausdrücke gefunden werden, die immer für diese Schema-Attribute<br />
gelten. Dazu müssen die Positionen der Schema-Attribute eindeutig anhand von XPath-<br />
Ausdrücken identifizierbar sein. Für die National Gallery of Art ist dies beispielsweise<br />
nicht möglich, deshalb wird das zu entwickelnde Reinduction-Tool für diese digitale<br />
Bibliothek nicht einsetzbar sein.<br />
45
Kapitel 6<br />
Vorgehensweise des<br />
Reinduction-Tools<br />
Im folgenden wird auf die Vorgehensweise des Reinduction-Tools bei der Pflege eines gebrochenen<br />
Wrappers eingegangen. Dabei unterscheidet sich die Vorgehensweise je nachdem,<br />
ob es sich um eine Übersichts- oder eine Detailseite handelt.<br />
6.1 Vorgehensweise bei Übersichtsseiten<br />
Als erstes wird die Vorgehensweise für Übersichtsseiten vorgestellt (s. Abb. 6.4). Zunächst<br />
muß überprüft werden, ob eine Überarbeitung der Anfragestruktur und der Logdateien<br />
erforderlich ist. Im nächsten Schritt erfolgt die Suche nach dem Template. Anschließend<br />
werden die zur Verfügung stehenden Daten geladen. Der Reihe nach werden<br />
dann mit der freien Suche nach den Ergebnissen der alten Anfrage für jedes Schema-<br />
Attribut Kandidaten für die XPath-Ausdrücke identifiziert. Falls dabei für Schema-<br />
Attribute keine eindeutige Zuordnung möglich ist, muß eine Behandlung dieser unsicheren<br />
Schema-Attribute erfolgen. Dies geschieht im ersten Schritt mit einer Einteilung in<br />
Intervalle, in denen die XPath-Ausdrücke liegen müssen. Dazu werden Intervallgrenzen<br />
anhand der Schema-Attribute bestimmt, die für ein Dokument eindeutig zugeordnet<br />
werden konnten.<br />
Ist die Behandlung der unsicheren Schema-Attribute abgeschlossen, müssen die möglichen<br />
Iterationen gefunden werden. Mit Hilfe der Iterationen kann sichergestellt werden,<br />
daß die einzelnen Dokumente als eine Einheit zu identifizieren sind. In Abhängigkeit<br />
von den möglichen Iterationen werden nun die Extraktionen bestimmt. Daraufhin wird<br />
46
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
Überprüfung der Anfragestruktur<br />
und der Logdateien<br />
Suchen der Templates<br />
Laden der Daten<br />
Freie Suche<br />
Behandlung der unsicheren Attribute<br />
Finden der Iterationen<br />
Finden der Extraktionen<br />
Trennung von Schema-Attributen<br />
Bildung von regulären Ausdrücken<br />
Präzisieren der Iterationen<br />
Test der Konfigurationsdatei<br />
Abbildung 6.1: Vorgehensweise des Wrappertools<br />
Quelle: eigene Darstellung 47
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
überprüft, ob die zurückgelieferten Ergebnisse der XPath-Ausdrücke eine weitere Bearbeitung<br />
erfordern. Dies ist z. B. der Fall, wenn zwei Schema-Attribute desselben Typs<br />
im selben Knoten zu finden sind. Daran schließt sich für Schema-Attribute, bei denen<br />
der XPath-Ausdruck zuviel selektiert hat, eine Suche nach regulären Ausdrücken an.<br />
Abschließend wird eine neue Konfigurationsdatei erstellt und getestet.<br />
Konnten keine Iterationen gebildet werden, wird der Prozeß mit dem Laden der Daten<br />
erneut begonnen. Das Reinduction-Tool wiederholt die oben beschriebene Vorgehensweise<br />
solange, bis eine Konfigurationsdatei gefunden werden konnte oder alle Logdateien<br />
getestet wurden.<br />
6.1.1 Überprüfung der Anfragestruktur und der Logdateien<br />
Vor dem Einsatz des eigentlichen Wrapperwerkzeugs ist manuell zu überprüfen, ob sich<br />
die Struktur der Anfrage geändert hat. Wenn dies der Fall ist, muß diese ebenfalls manuell<br />
in der Java-Klasse überarbeitet werden. Weil das Tool auch mit den mitgeloggten<br />
alten Anfragestrukturen arbeitet, müssen darüber hinaus auch aus den vorhandenen<br />
Logdateien für die URLs der alten Anfragen Dateien mit den aktuellen URLs erzeugt<br />
werden.<br />
Anschließend müssen die Logdateien, die nach der Layoutänderung der Webseite entstanden<br />
sind, manuell entfernt werden, weil diese zwangsläufig auf einem nicht mehr<br />
funktionierenden Wrapper basieren. Wenn bei fehlerhaften Anfrageergebnissen das entwickelte<br />
Wrapperwerkzeug zügig zum Einsatz kommt bzw. zumindest der Zeitpunkt<br />
festgehalten wird, zu dem der Wrapper das erste Mal fehlerhaft gearbeitet hat, sollten<br />
diese Logdateien schnell ausfindig zu machen sein.<br />
6.1.2 Suche des Templates<br />
Erst nach den beschriebenen Schritten wird das Reinduction-Tool gestartet. Als erstes<br />
wird das Template bestimmt, damit die Teile, die auf jeder Ergebnisseite enthalten<br />
sind, von der Ergebnissuche ausgeschlossen werden (s. 5.3). Für die Suche nach dem<br />
Template werden zwei Anfragen an die digitale Bibliothek gestellt. Die zurückgelieferten<br />
HTML-Seiten werden zunächst in einen XHTML-Baum umgewandelt. Die beiden<br />
Bäume werden dann schrittweise verglichen. Bei Übereinstimmungen von Knoten am<br />
Anfang bzw. am Ende des Dokumentes werden die absoluten XPath-Ausdrücke für die<br />
entsprechenden Knoten in einer Liste festgehalten. Da es sich hierbei um automatisch<br />
generierte Ausdrücke handelt, sind sie auch eindeutig (s. 5.2).<br />
48
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
Anhand von weiteren Anfragen wird überprüft, ob die zugehörigen Webseiten auch<br />
dieselben Übereinstimmungen aufweisen. Ist dies nicht der Fall, so werden die nicht<br />
übereinstimmenden Knoten aus der Liste für das Template wieder entfernt.<br />
6.1.3 Laden der Daten<br />
Zunächst müssen die mitgeloggten alten Daten geladen werden, damit sie im weiteren<br />
Verarbeitungsprozeß zur Verfügung stehen.<br />
Weil Ergebnisseiten vorkommen können, die nicht alle Schema-Attribute beinhalten,<br />
kann es dementsprechend auch Logdateien geben, die nicht alle Schema-Attribute enthalten.<br />
Damit die zu erzeugende Konfigurationsdatei auch alle möglichen<br />
Schema-Attribute umfaßt, wird zunächst einmal überpüft, welche Schema-Attribute in<br />
den Logdateien enthalten sind. Danach wird eine Logdatei mit Ergebnissen geladen, die<br />
alle Schema-Attribute beinhaltet.<br />
Zu der ausgewählten Ergebnisdatei wird die zugehörige URL geladen und aufgerufen.<br />
Dabei ist es möglich, mit Hilfe der in MIND vorhandenen Java-Methoden, auf Ergebnisse<br />
zuzugreifen.<br />
6.1.4 Freie Suche<br />
Die Ermittlung der Schema-Attributwerte erfolgt mit der freien Suche. Dazu werden<br />
zunächst die Schema-Attributwerte aus den alten Ergebnissen in der neuen Webseite gesucht.<br />
Weil aus den mitgeloggten Daten nicht hervorgeht, ob die Schema-Attributwerte<br />
aus einem Text- oder einem Attributknoten extrahiert wurden, sind bei der freien Suche<br />
sowohl die Text- als auch die Attributknoten daraufhin zu überprüfen, ob sie das<br />
Schema-Attribut enthalten. Um die Zahl der unsicheren Schema-Attribute möglichst<br />
klein zu halten, wird zunächst versucht, ein XML-Element bzw. XML-Attribut zu finden,<br />
das exakt mit dem Schema-Attributwert übereinstimmt. Wenn diese Suche nicht<br />
erfolgreich ist, wird nach einem XML-Element bzw. XML-Attribut gesucht, das den<br />
Schema-Attributwert enthält.<br />
Ist bei einem Schema-Attribut keine der beiden Suchvarianten erfolgreich, wird davon<br />
ausgegangen, daß das Dokument nicht mehr auf der Webseite enthalten ist. Bei der Erstellung<br />
einer neuen Konfigurationsdatei findet es dann keine weitere Berücksichtigung.<br />
Diese Vorgehensweise ist zwar sehr restriktiv, aber da es sehr ähnliche Dokumente geben<br />
kann (s. 4.1), wird auf diese Weise die falsche Zuordung der anderen Schema-Attribute<br />
verhindert.<br />
49
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
Abbildung 6.2: Beispiel für die Ähnlichkeit von Dokumenten<br />
Quelle: http://www.kfki.hu/~arthp/index1.html<br />
50
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
Die einzige Ausnahme bildet hier der Link zu den Details, weil dieser auch nur eine<br />
vom Wrapper erzeugte ID sein kann, falls es zu einem mitgeloggten Dokument keine<br />
Detailseiten gab. Bei der freien Suche wird davon ausgegangen, daß die URLs zu den<br />
evtl. vorhandenen Detailseiten, wie in MIND üblich, in den Logdateien als Teil der<br />
Dokument-ID enthalten sind. Die Links werden dementsprechend aus der Dokument-<br />
ID herausgefiltert. Das Toolkit wandelt die in einer Webseite enthaltenen relativen URLs<br />
in absolute URLs, sofern sie als URL und nicht als Text selektiert werden. Deswegen<br />
müssen die in den Logdateien enthaltenen absoluten URLs vor Beginn der freien Suche<br />
wieder in relative URLs umgewandelt werden, weil nur diese auch auf der HTML-Seite<br />
zu finden sind.<br />
6.1.5 Behandlung von unsicheren Schema-Attributen<br />
Wie bereits in Abschnitt 5.6 erwähnt, tritt das Problem der unsicheren Schema-Attribute<br />
vor allem auf den Übersichtsseiten auf. Dabei stehen die Schema-Attribute zu den einzelnen<br />
Datensätzen in räumlichem Bezug zueinander. Außerdem kann in den meisten<br />
Fällen für jeden mitgeloggten Datensatz zumindest ein Schema-Attribut eindeutig zugeordnet<br />
werden. Das trifft zum einen für den Detaillink zu, falls er in der Seite enthalten<br />
ist, zum anderen aber häufig auch für den Titel. Dabei ist nicht entscheidend, ob immer<br />
dasselbe Schema-Attribut zugeordnet werden kann. Wichtig ist die Existentenz eines<br />
sicheren Schema-Attributes für ausreichend viele mitgeloggte Datensätze. Eine exakte<br />
Angabe der Anzahl der ausreichenden Datensätze ist nicht möglich, weil diese von der<br />
Anzahl der Dokumente auf der Webseite und ihren Positionen abhängt.<br />
Durch diese Schema-Attribute können die gefundenen Dokumente nach ihrem Vorkommen<br />
auf der Webseite geordnet werden. Hierzu werden die Positionen der XPath-<br />
Ausdrücke für die sicheren Schema-Attribute in der Webseite bestimmt. Dazu wird eine<br />
geordnete Liste erstellt, in der für jeden Knoten des zur Webseite gehörigen XHTML-<br />
Baumes der entsprechende XPath-Ausdruck enthalten ist.<br />
Jeweils das erste richtig zugeordnete Schema-Attribut eines Dokumentes bildet nun die<br />
Intervallgrenze, bis zu dem Schema-Attribute des vorangegangenen Dokumentes auftreten<br />
können. Dementsprechend gibt das letzte eindeutig zugeordnete Schema-Attribut<br />
eine Intervallgrenze für die XPath-Ausdrücke der darauffolgenden Dokumente an. Zwischen<br />
diesen Intervallgrenzen können nur Schema-Attribute des Dokumentes enthalten<br />
sein, zu dem die Intervallgrenzen gehören. Falls für ein Dokument nur ein Schema-<br />
Attribut eindeutig zugewiesen werden konnte, fallen diese beiden Intervallgrenzen zusammen.<br />
Wird z. B. bei den Dokumenten 1 bis 4 die Titel eindeutig zugeordnet, so<br />
können die Schema-Attribute des zweiten Dokumentes frühestens nach dem Titel des<br />
ersten Dokumentes zu finden sein. Zugleich müssen sie aber vor dem Titel des dritten<br />
Dokumentes in der Webseite enthalten sein. Für das dritte Dokument müssen die<br />
51
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
<br />
<br />
Nottelmann, Henrik; Fuhr, Norbert<br />
(2002)<br />
<br />
<br />
Titel 1<br />
<br />
<br />
Nottelmann, H.; Fuhr, N.<br />
(2003)<br />
<br />
<br />
Titel 2<br />
<br />
<br />
Nottelmann, H.; Fuhr, N.<br />
(2003)<br />
<br />
<br />
Titel 3<br />
<br />
<br />
Nottelmann, H.; Pala, P.<br />
(2003)<br />
<br />
<br />
Titel 4<br />
<br />
<br />
Abbildung 6.3: Intervallverfahren<br />
Quelle: eigene Darstellung<br />
52
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
XPath-Ausdrücke dementsprechend zwischen den Titels des zweiten und des vierten<br />
Dokumentes zu finden sein (s. Abb. 6.3).<br />
Wenn die XPath-Ausdrücke außerhalb der Intervallgrenzen liegen, können mit diesem<br />
Verfahren die Listen mit den Kandidaten für die XPath-Ausdrücke z. T. erheblich gekürzt<br />
werden. Nachdem die Listen für die Kandidaten auf diese Weise reduziert wurden,<br />
sind die XPath-Ausdrücke der bereits eindeutig zugeordneten Schema-Attribute aus den<br />
Kandidatenlisten der anderen Schema-Attribute zu entfernen. Dies passiert allerdings<br />
nur bei den Schema-Attributen, die nicht zum selben Dokument gehören, weil innerhalb<br />
eines Dokumentes eine Selektierung von zwei Schema-Attributen durch den selben<br />
XPath-Ausdruck möglich ist. Dies kann z. B. der Fall sein, wenn sie in einem Textknoten<br />
stehen und nur durch Satzzeichen voneinander getrennt sind (s. 6.1.8).<br />
Weil sich die Intervallgrenzen der aufeinanderfolgenden Dokumente evtl. überschneiden,<br />
können Schema-Attribute, die in benachbarten Dokumenten identisch sind, noch nicht<br />
immer eindeutig zugeordnen werden. Deswegen wird das Verfahren ggf. mehrfach mit<br />
den sich aus dieser Vorgehensweise ergebenden neuen Intervallgrenzen wiederholt, bis<br />
keine Reduzierung der XPath-Kandidaten mehr erfolgt bzw. allen Schema-Attributen<br />
ein XPath-Ausdruck eindeutig zugeordnet werden konnte. Im weiteren Verlauf werden<br />
nur noch die eindeutig zugewiesenen Kandidaten für XPath-Ausdrücke betrachtet.<br />
6.1.6 Finden der Iterationen<br />
Damit eine Chance besteht, eine Iteration zu bilden, müssen jeweils zwei Beispiele eines<br />
Schema-Attributes eindeutig zugeordnet sein. Ist dies nicht der Fall, muß für die<br />
Erstellung einer Konfigurationsdatei eine andere Logdatei ausgewählt werden. Nachfolgend<br />
wird zwischen globaler und lokaler Iterationen unterschieden. Mit der globalen<br />
Iteration können mehrere Dokumente selektiert werden. Dagegen ermöglicht die lokale<br />
Iteration die Extraktion von Schema-Attributen, die mehrfach in einem Dokument<br />
vorkommen und durch unterschiedliche XPath-Ausdrücke adressiert werden.<br />
6.1.6.1 Bildung der globalen Iterationen<br />
Die Suche nach einer globalen Iteration ist notwendig, wenn mehrere Dokumente auf<br />
einer Seite enthalten sind oder es zu einem oder mehreren Schema-Attributen mehrere<br />
Ergebnisse auf einer Seite gibt. Mehrere Dokumente sind im Normalfall auf den Übersichtsseiten<br />
enthalten, mehrfaches Vorkommen von Schema-Attributen wird dagegen<br />
vor allem auf den Detailseiten zu finden sein.<br />
Um die Iteration zu finden, muß zunächst für zwei Vorkommen desselben Schema-<br />
Attributs der gemeinsame Stamm und ggf. ein gemeinsames Ende ausfindig gemacht<br />
53
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
werden (s. 5.4). Wegen der automatisch generierten XPath-Ausdrücke kann dabei ein<br />
Stringvergleich zum Einsatz kommen. Hierbei bildet der gemeinsame Stamm die Basis<br />
für die Iteration. Weil nicht immer alle Dokumente auf einer Seite auch mitgeloggt sind<br />
bzw. zusätzliche Dokumente hinzugekommen sein könnten, werden bei einem späteren<br />
Test der Konfigurationsdatei evtl. auch noch andere als die gesuchten Dokumente von<br />
der Iteration zurückgeliefert.<br />
6.1.6.2 Bildung der lokalen Iterationen<br />
Sind in den Dokumenten Schema-Attribute mehrfach enthalten und werden sie durch<br />
verschiedene XPath-Ausdrücke selektiert, müssen für diese Schema-Attribute ebenfalls<br />
noch Iterationen gebildet werden. Die gilt z. B. für die Autorennamen im folgenden<br />
Beispiel:<br />
<br />
<br />
MIND resource selection framework and methods<br />
Nottelmann, Henrik<br />
Fuhr, Norbert<br />
<br />
<br />
Weil die Iterationen in diesem Fall den Schema-Attributen zugeordnet werden, können<br />
mehrere Iterationen in einer Konfigurationsdatei enthalten sein. Zunächst wird festgestellt,<br />
welche Schema-Attribute mehrfach in einem Dokument auftreten und deren<br />
Selektierung gleichzeitig auf verschiedenen XPath-Ausdrücken basiert. Die Iterationen<br />
selbst werden dabei nach demselben Prinzip gebildet wie die globalen Iterationen.<br />
6.1.7 Finden der Extraktionen<br />
Beim Fehlen des schließenden Teils der Elemente im HTML-Code kann es Probleme<br />
geben, weil Tidy bei der Umwandlung in XHTML den fehlenden Teil selbst setzen muß.<br />
Dadurch kann in einem Dokument eine zusätzliche Tabelle definiert sein, während dies<br />
bei den anderen Dokumenten auf denselben Webseiten nicht der Fall ist. Infolgedessen<br />
unterscheiden sich die XPath-Ausdrücke für das entsprechende Schema-Attribut trotz<br />
eindeutiger Zuweisung an mehr als nur einer Stelle. Ist dies der Fall und beginnen einige<br />
der XPath-Ausdrücke mit der Iteration, so werden nur diese zur Bildung der Iteration<br />
54
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
herangezogen. Auf diese Weise kann z. B. verhindert werden, daß die Extraktion nach<br />
einer Tabelle sucht, die in den meisten Fällen gar nicht vorhanden ist.<br />
In Abhängigkeit von den gefundenen Iterationen werden die Extraktionen für die einzelnen<br />
Schema-Attribute bestimmt. Falls die Iteration mit dem Beginn der XPath-<br />
Ausdrücke für ein Schema-Attribut übereinstimmt, ist eine andere Vorgehensweise zur<br />
Identifikation der Extraktion erforderlich als bei fehlender Übereinstimmung.<br />
Ist die Deckungsgleichheit für ein Schema-Attribut gegeben, so wird zunächst dieser<br />
Stamm aus dem XPath-Ausdruck entfernt. Daraufhin wird von dem ersten verbliebenen<br />
XML-Element die Positionsangabe entfernt. Anschließend ist der verbliebene XPath-<br />
Ausdruck vorne noch um .// zu ergänzen, damit die Extraktion an dem Knoten beginnt,<br />
der jeweils von der Iteration selektiert wurde.<br />
Beginnen die XPath-Ausdrücke für ein Schema-Attribut nicht mit der Iteration, so werden<br />
nur die XML-Elemente entfernt, die mit der Iteration übereinstimmen. Danach wird<br />
festgestellt, ob das Schema-Attribut, mit dem die Iteration erstellt wurde, in der Ergebnisseite<br />
vor oder nach dem gerade behandelten Schema-Attribut auf der Webseite zu<br />
finden ist. Steht die Iteration im XHTML-Dokument vor dem Schema-Attribut, wird der<br />
verbliebene XPath-Ausdruck um .//following:: ansonsten um .//preceding:: ergänzt.<br />
Danach wird für das erste verbliebene XML-Element überprüft, wie oft das XML-<br />
Element zwischen der Iteration und dem bearbeiteten Schema-Attribut vorkommt. Die<br />
Positionsangabe des entsprechenden XML-Elementes wird daraufhin durch den berechneten<br />
Wert ersetzt. Dieses Verfahren bewirkt, daß ausgehend von dem jeweils durch die<br />
Iteration bestimmten Knoten, entsprechend der Postionsangabe das nachfolgende bzw.<br />
vorangegangene erste XML-Element für die Extraktion genommen wird. Ausgehend von<br />
diesem Knoten wird dann nach dem verbliebenen XPath-Ausdruck gesucht.<br />
Diese Vorgehensweise verhindert die Extraktion des entsprechenden Schema-Attributes<br />
des darauffolgenden bzw. vorangegangenen Dokumentes, wenn ein Schema-Attribut für<br />
ein Dokument nicht existiert.<br />
Für jedes Schema-Attribut wird daraufhin noch überprüft, ob eine lokale Iteration erforderlich<br />
ist. Ist dies der Fall, wird von der Extraktion noch der Pfad der lokalen<br />
Iteration entfernt und die Anpassung für die Suche nach dem neuen Kontextknoten<br />
vorgenommen.<br />
Liegen für das Schema-Attribut title z. B. folgende XPath-Ausdrücke vor:<br />
/html/body[1]/dl[1]/dt[1]/b[1]/text()<br />
/html/body[1]/dl[1]/dt[2]/b[1]/text()<br />
für den author die nachstehenden XPath-Ausdrücke:<br />
55
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
/html/body[1]/dl[1]/dt[1]/a[1]/text()<br />
/html/body[1]/dl[1]/dt[1]/a[2]/text()<br />
/html/body[1]/dl[1]/dt[2]/a[1]/text()<br />
/html/body[1]/dl[1]/dt[2]/a[2]/text()<br />
und für den detaillink folgende Ausdrücke:<br />
/html/body[1]/dl[1]/dd[1]/a[1]/@href<br />
/html/body[1]/dl[1]/dd[2]/a[1]/@href<br />
Dann ergibt sich aus der zuvor beschriebenen Vorgehensweise der folgende Teil der<br />
Konfigurationsdatei:<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Zwar sollte das Reinduction-Tool zunächst nicht beachten, daß nicht für jedes Dokument<br />
alle Attribute vorkommen (s. 4.2.3). Allerdings können mit der folgenden Berücksichtigung<br />
des Links- bzw. Rechtskontextes einige falsche Zuordnungen vermieden werden.<br />
Häufig wird der Schema-Attributname vor dem eigentlichen Schema-Attributwert in<br />
der Webseite stehen. Wenn für ein Dokument, wie im folgenden Beispiel die Schema-<br />
Attribute title, author und form mit folgendem HTML dagestellt werden, und wie<br />
im zweiten Beispiel, im darauf folgenden Dokument der author unbekannt ist:<br />
56
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
Madonna and Child with a Pomegranate<br />
Leonardo da Vinci<br />
form:oil on panel, 16.5 x 13.4 cm<br />
View of Fondi<br />
form:pen and brown ink on laid paper, 19.9 x 29.9 cm<br />
dann wird mit dem folgenden XPath-Ausdruck das Schema-Attribut form zuverlässig<br />
zugeordnet, obwohl sich die Position der Textknoten ändert:<br />
//text()[preceding::b[1]=’form:’]<br />
Gleichzeitig wird mit dem nachstehenden XPath-Ausdruck sichergestellt, daß für das<br />
Schema-Attribut author nicht derselbe Knoten selektiert wird.<br />
//text()[preceding::b[1]!=’form:’]<br />
6.1.8 Trennung von Schema-Attributen<br />
Wenn für einen Datensatz mehrere gleichartige Schema-Attribute existieren, können sie<br />
in einem Knoten enthalten sein. Dies gilt vor allem für die Übersichtsseite. Wenn z.<br />
B. ein Artikel von mehreren Autoren geschrieben wurde, erfolgt die optische Trennung<br />
meistens durch ein Komma oder Semikolon und ein Leerzeichen. In diesem Fall lassen<br />
sich alle durch denselben XPath-Ausdruck selektieren. Hier muß herausgefunden werden,<br />
wie die Schema-Attribute voreinander zu trennen sind, und die ensprechende split<br />
Anweisung muß dann in der neuen Konfigurationsdatei eingefügt werden.<br />
In folgendem Beispiel würden die Autorennamen beispielsweise anhand des Semikolons<br />
und des Leerzeichens gesplittet.<br />
Nottelmann, Henrik; Fuhr, Norbert<br />
Um festzustellen, bei welchen Zeichen eine Trennung vorzunehmen ist, wird zunächst<br />
der Text ab dem Wert des zweiten Schema-Attributes aus dem Knoteninhalt entfernt.<br />
Aus dem verbliebenen Text wird dann der überflüssige Teil bis zum Ende des ersten<br />
Schema-Attributes entfernt. Anhand des verbliebenen Teils muß dann die Trennung<br />
vorgenommen werden. Das Toolkit erlaubt allerdings nur die Aufteilung durch einzelne<br />
Zeichen. Reicht dies nicht aus, so werden die Trennzeichen zunächst durch # ersetzt.<br />
Mit dem #-Zeichen wird dann die Trennung vorgenommen. Auf diese Weise ergibt sich<br />
der folgende Teil der Konfigurationsdatei:<br />
57
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
<br />
<br />
<br />
6.1.9 Bildung von regulären Ausdrücken<br />
Sind die XPath-Ausdrücke, die die gewünschten Ergebnisse zurückliefern, gefunden,<br />
ist zu überprüfen, ob reguläre Ausdrücke erforderlich sind. Dies ist der Fall, wenn die<br />
Ergebnisse noch mit Daten verknüpft sind, die nicht zu der gewünschten Information<br />
gehören. Mit Hilfe der regulären Ausdrücke kann das Ergebnis dann nachbearbeitet<br />
werden.<br />
Das Reinduction-Tool kann mit regulären Ausdrücken sowohl vor als auch nach einem<br />
Schema-Attribut Text entfernen. Dazu werden zunächst die Werte für alle Schema-<br />
Attribute, deren Extraktion durch denselben Knoten erfolgt, beseitigt. Abhängig von der<br />
Position wird dabei der vorhergehende bzw. nachfolgende Text ebenfalls mit entfernt.<br />
Anschließend wird aus den verbliebenen Zeichen vor bzw. nach dem Wert des Schema-<br />
Attributes der reguläre Ausdruck gebildet. Ist z. B. der folgende Knoteninhalt gegeben:<br />
Oil on panel, 246 x 243 cm; from 1481-82<br />
So ergibt sich das nachstehende XML-Element für das Schema-Attribut form:<br />
<br />
6.1.10 Präzisieren der Iterationen<br />
Mit den bisherigen Ergebnissen wird die Konfigurationsdatei erzeugt. Selektiert diese<br />
noch leere Dokumente, ist häufig noch eine Präzision der erstellten Iterationen erforderlich.<br />
Dazu werden zunächst alle Extraktionen, die Kindknoten der Iteration sind,<br />
daraufhin geprüft, ob sie mit demselben XML-Element beginnen. Ist dies der Fall, so<br />
wird der XPath-Ausdruck für die Iteration um die Bedingung ergänzt, daß die durch die<br />
Iteration selektierten Knoten das erste XML-Element aus den geprüften Extraktionen<br />
enthalten. Im folgendem Beispiel werden nach der Präzisierung des Ausdrucks von den<br />
bisher ausgewählten Knoten nur noch die selektiert, die einen td-Kindknoten besitzen.<br />
Auf diese Weise kann die Extraktion von den Tabellenüberschriften, die durch th-Tags<br />
definiert sind, verhindert werden.<br />
58
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
/html/body[1]/center[2]/table[1]/tr<br />
⇒/html/body[1]/center[2]/table[1]/tr[td]<br />
Durch die Einbeziehung aller Extraktionen, die Kindknoten der Iteration sind, wird die<br />
Präzisierung anhand eines Schema-Attributes verhindert, das nicht für jedes Dokument<br />
vorhanden ist. Es steht zu erwarten, daß auf diese Weise häufiger die richtige Ergänzung<br />
vorgenommen wird.<br />
Im Anschluß daran wird mit der Konfigurationsdatei getestet, ob für das Schema-<br />
Attribut, mit dem die Iteration gebildet wurde, leere Attributwerte selektiert werden.<br />
Ist dies der Fall, wird überprüft, ob die nicht leeren Attributwerte in gleichmäßigen<br />
Abständen (z. B. bei jedem zweiten Dokument) auftreten. In diesem Fall wird der<br />
XPath-Operator mod verwendet. Dieser liefert den Rest bei der ganzzahligen Division.<br />
Wird ein Knoten in einem XPath-Ausdruck um diesen Knoten ergänzt, so legt der Divisor<br />
fest, in welchen Abständen die Knoten selektiert werden. Wird z. B der folgende<br />
XPath-Ausdruck um den unten dargestellten Operator mod ergänzt, hat dies zur Folge,<br />
daß nicht mehr alle Knoten selektiert werden, auf die der Ausdruck zutrifft, sondern<br />
nur noch jeder zweite.<br />
/html/body[1]/dl[1]/dd<br />
⇒/html/body[1]/dl[1]/dd[position() mod 2 = 0 ]<br />
Dabei wird durch den Rest der Division der Knoten festgelegt, der als erstes selektiert<br />
wird. So legt der Rest 0 fest, daß die Knoten an geraden Positionen selektiert werden.<br />
Ist der Rest hingegen 1, werden nur die Knoten an ungerade Positionen extrahiert.<br />
6.1.11 Testen der neuen Konfigurationsdatei<br />
Sind die vorangegangenen Schritte erfolgreich abgeschlossen, wird die Konfigurationsdatei<br />
vom Reinduction-Tool selbst getestet. Dazu werden die gefundenen Dokumente<br />
aus den Logdateien mit der Ausgabe der Toolkits verglichen. Dabei werden auf der<br />
Konsole Meldungen ausgegeben, die den Benutzer über die vermutlich falsch erkannten<br />
Schema-Attribute informieren. Des weiteren erfolgt eine Ausgabe, wenn Dokumente bei<br />
der Suche auf der Webseite gefunden wurden, diese aber von der Konfigurationsdatei<br />
nicht bzw. nur fehlerhaft extrahiert wurden.<br />
Sind nicht für alle Ergebnisse die passenden XPath-Ausdrücke gefunden worden, ist eine<br />
manuelle Weiterbearbeitung der neu erstellten Konfigurationsdatei erforderlich. Meldet<br />
das Reinduction-Tool die Erstellung einer korrekten Konfigurationsdatei, sollte trotzdem<br />
vor allem zu Beginn der Nutzung des Reinduction-Tools die Korrektheit manuell<br />
59
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
überprüft werden. Weil bei der Entwicklung des Reinduction-Tools einige Annahmen bezüglich<br />
der Struktur des XHTML getroffen werden mußten, werden nicht alle möglichen<br />
Strukturen im Reinduction-Tool berücksichtigt sein. Durch die manuelle Überprüfung<br />
der Konfigurationsdatei können eventuelle Probleme des Reinduction-Tools, die bei der<br />
Evaluierung nicht aufgetreten sind, gefunden und behoben werden. Auf diese Weise ist<br />
eine schrittweise Weiterentwicklung des Reinduction-Tools möglich. Nachfolgend ist ein<br />
Beispiel für eine durch das Reinduction-Tool erstellte Konfigurationsdatei dargestellt.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
60
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
<br />
6.2 Vorgehensweise bei Detailseiten<br />
Weil die Detailseiten im Gegensatz zu den Übersichtsseiten aus einzelnen Dokumenten<br />
bestehen, unterscheidet sich die Vorgehensweise des Reinduction-Tools bei der Erstellung<br />
einer Konfigurationsdatei von der bei Übersichtsseiten. Im Rahmen dieser Diplomarbeit<br />
wurde nur der Teil des Reinduction-Tools für die Übersichtsseiten umgesetzt.<br />
Deswegen wird nachfolgend nur die angestrebte Vorgehensweise erläutert. Die grobe<br />
Struktur (s. 6.4) bleibt von diesen Änderungen allerdings unberührt. Eine Ausnahme<br />
bildet hier der Präzisierungsschritt der Iteration. Dieser Schritt kann entfallen, da die<br />
Iterationen nur noch bei der Selektion von mehrfach vorkommenden Schema-Attributen<br />
innerhalb eines Dokumentes genutzt werden. Zwischen diesen ist allerdings ein starker<br />
räumlicher Bezug zu erwarten, deshalb reicht eine einfache Erstellung der Iterationen<br />
aus.<br />
Vor dem Start des Reinduction-Tools muß weiterhin manuell überprüft werden, ob die<br />
Anfragestruktur und die Logdateien eine Überarbeitung erfordern. Daran schließt sich<br />
ebenfalls die Suche nach dem Template an. Beim Laden der Daten werden, im Unterschied<br />
zu den Übersichtsseiten, die Logdateien für die einzelnen Dokumente geladen.<br />
Anschließend erfolgt analog zur Vorgehensweise bei den Übersichtsseiten die freie Suche.<br />
Allerdings werden bei dieser die Schema-Attribute aus allen Logdateien gesucht.<br />
Es ist davon auszugehen, daß die Wahrscheinlichkeit mehrfach auf einer Seite vorkommender<br />
Schema-Attributwerte mit steigender Länge des Schema-Attributwertes sinkt.<br />
Deswegen erfolgt die Behandlung der unsicheren Schema-Attribute nicht mit dem Intervallverfahren,<br />
sondern durch die Sortierung der Schema-Attribute eines Dokumentes<br />
nach absteigender Länge.<br />
Die Iterationen werden auf den Detailseiten nur noch dazu verwendet, um einzelne<br />
Schema-Attribute zu selektieren, die mehrfach vorkommen. Dabei bleiben die Prinzipien<br />
für die Bildung von Iterationen jedoch identisch. Im Anschluß an die Iterationen<br />
werden die Extraktionen gebildet. Dabei besteht ein Unterschied zur Vorgehensweise bei<br />
den Übersichtsseiten, weil die Positionen der XPath-Ausdrücke für die Schema-Attribute<br />
in den verschiedenen Dokumenten möglichst identisch sein sollten. Der weitere Ablauf<br />
ist mit Ausnahme der fehlenden Präzision der Iterationen analog zu der Vorgehensweise<br />
bei den Übersichtsseiten. Allerdings entfällt bei den Detailseiten die Wiederholung<br />
des Verfahrens aufgrund der parallelen Verwendung der Logdateien. Wegen des ähnlichen<br />
Ablaufs werden im folgenden nur noch die Schritte näher erläutert, die sich vom<br />
Verfahren bei Übersichtsseiten unterscheiden.<br />
61
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
Überprüfung der Anfragestruktur<br />
und der Logdateien<br />
Suchen der Templates<br />
Laden der Daten<br />
Freie Suche<br />
Behandlung der unsicheren Attribute<br />
Finden der Iterationen<br />
Finden der Extraktionen<br />
Trennung von Schema-Attributen<br />
Bildung von regulären Ausdrücken<br />
Test der Konfigurationsdatei<br />
Abbildung 6.4: Vorgehensweise des Wrappertools<br />
62<br />
Quelle: eigene Darstellung
KAPITEL 6. VORGEHENSWEISE DES REINDUCTION-TOOLS<br />
6.2.1 Laden der Daten<br />
Die erste Änderung betrifft das Laden der Daten. Hier werden nun nicht mehr die Result-<br />
Dateien, sondern die Document-Dateien geladen. Da die Bezeichnungen der Document-<br />
Dateien mit den URLs, unter denen diese Dateien zu finden sind, übereinstimmen,<br />
werden beim Laden der Document-Dateien auch gleichzeitig die URLs geladen. Hierbei<br />
werden die Dateien nicht, wie bei den Übersichtsseiten, nacheinander abgearbeitet<br />
bis der Test für die Konfigurationsdatei erfolgreich verläuft. Weil jede Datei nur ein<br />
Dokument enthält, werden nun alle verfügbaren Logdateien gleichzeitig geladen und<br />
untersucht, damit bei den Extraktionen und Iterationen auch ein Vergleich der XPath-<br />
Ausdrücke möglich ist.<br />
6.2.2 Behandlung der unsicheren Schema-Attribute<br />
Die Wahrscheinlichkeit für kürzere Schema-Attributwerte, wie z. B. Namen oder Datumsangaben,<br />
häufiger auf der Detailseite vorzukommen, ist relativ hoch. Deswegen sollte<br />
für jeden Schema-Attributwert des Anfrageergebnisses aus einer Logdatei die Länge<br />
bestimmt werden. Danach sind die Schema-Attribute eines Ergebnisses mit Hilfe eines<br />
Sortieralgorithmus der Länge nach zu ordnen. Anschließend sollte die Suche jeweils bei<br />
dem Schema-Attribut mit dem längsten Wert begonnen werden, das noch nicht gesucht<br />
wurde. Die Stellen des XHTML-Dokumentes, an denen gefundene Schema-Attribute<br />
stehen, die bereits eindeutig zugewiesen werden konnten, sollten bei den nachfolgenden<br />
Suchprozessen nicht mehr berücksichtigt werden. Mit dieser Vorgehensweise senkt sich<br />
die Wahrscheinlichkeit, unsichere Schema-Attribute zu finden.<br />
6.2.3 Finden der Extraktionen<br />
Weil jede Detailseite nur ein Dokument enthält, müssen die XPath-Ausdrücke für die<br />
einzelnen Schema-Attribute mit denen von anderen Anfragen verglichen werden. Handelt<br />
es sich, wie vorausgesetzt (s. 4.2.3), um einen regulären Wrapper, müssen sich die<br />
Schema-Attribute für alle Anfragen an derselben Position befinden. Demzufolge müssen<br />
die gefundenen XPath-Ausdrücke für die Schema-Attribute auch übereinstimmen. Ist<br />
dies der Fall, können die gefundenen XPath-Ausdrücke unverändert bleiben. Ansonsten<br />
wird nach Übereinstimmungen im vorhergehenden bzw. nachfolgenden Textknoten<br />
gesucht.<br />
63
Kapitel 7<br />
Evaluierung der Ergebnisse<br />
Im folgenden Kapitel sollen die entwickelten Ideen anhand des erstellten Reinduction-<br />
Tools getestet werden. Um bei der Evaluierung wirklich aussagekräftige Ergebnisse erzielen<br />
zu können, muß das Reinduction-Tool anhand hinreichend vieler Datensätze getestet<br />
werden. Dies ist im Rahmen einer Diplomarbeit nicht in dem eigentlich erforderlichem<br />
Maße zu leisten. Die folgende Evaluierung soll deswegen anhand einiger Wrapper die<br />
Qualität des entwickelten Tools bewerten.<br />
7.1 Evaluierungsmöglichkeiten<br />
Grundsätzlich kommt eine Evaluierung anhand von gebrochenen und funktionierenden<br />
Wrappern in Frage. Darüber hinaus kann ein Wrapper für die Evaluierung auch künstlich<br />
gebrochen werden. Weiterhin besteht auch noch die Möglichkeit, für eine neue digitale<br />
Bibliothek manuell Logdateien zu erstellen.<br />
7.1.1 Evaluierung anhand gebrochener Wrapper<br />
Weil das Reinduction-Tool in erster Linie für die Pflege von Wrappern entwickelt wurde,<br />
sollte die Evaluierung auch anhand eines gebrochenen Wrappers erfolgen. Falls dabei<br />
nicht gewünschte Ergebnisse erzielt worden sind, sollte nach der Ursache geforscht werden.<br />
So könnte es sich z. B. um einen nicht regulären Wrapper handeln. Da in dem zur<br />
Verfügung stehenden Entwicklungszeitraum allerdings kein Wrapper gebrochen wurde,<br />
konnte diese Evaluierungsmethode nicht zum Einsatz kommen.<br />
64
KAPITEL 7. EVALUIERUNG DER ERGEBNISSE<br />
7.1.2 Evaluierung anhand funktionierender Wrapper<br />
Als Alternative zur Evaluierung mit gebrochenen Wrappern bietet sich die Evaluierung<br />
anhand von digitalen Bibliotheken an, für die bereits ein funktionierender Wrapper<br />
existiert. Weil das Reinduction-Tool nicht auf die alte Konfigurationsdatei zurückgreift,<br />
reicht diese Evaluierungsform vollkommen aus. Dieses Verfahren hat im Vergleich zu<br />
den im folgenden dargestellten Methoden den Vorteil, daß gleichzeitig getestet werden<br />
kann, ob die Aktualität der Logdateien eine Rolle spielt. Dieses Vorgehen ist deswegen<br />
mit der Evaluierung anhand von gebrochenen Wrappern vergleichbar.<br />
7.1.3 Evaluierung anhand von manuell generierten Logdateien<br />
Eine weitere Möglichkeit ist es, zu neuen digitalen Bibliotheken manuell Logdateien<br />
erstellen zu lassen. Dazu werden Testanfragen an die digitale Bibliothek gestellt. Von<br />
den Ergebnisseiten werden manuell die Schema-Attribute extrahiert und im Format der<br />
MIND-Logdateien mit Hilfe eines Editors in eine Datei geschrieben. Weil die Erzeugung<br />
der Logdateien explizit erfolgt, um das Reinduction-Tool einzusetzen, wird die<br />
Aktualität der Logdateien bei dieser Evaluierungsmethode nur eine geringe Rolle spielen.<br />
Eine erfolgreiche Evaluierung mit manuell erzeugten Logdateien würde die Eignung<br />
des Reinduction-Tools auch zur Erstellung neuer Wrapper zeigen.<br />
7.1.4 Evaluierung mit künstlich gebrochenen Wrappern<br />
Die letzte Methode zur Evaluierung ist, für eine digitale Bibliothek eine neue HTML-<br />
Ansicht erstellen zu lassen. Sie stellt einen Dummy für eine Layoutänderung der ursprünglichen<br />
Bibliothek dar. Als Datengrundlage können hier die Logdateien eines bereits<br />
vorhandenen Wrappers dienen. Somit stehen gleichzeitig die Logdateien mit den<br />
Ergebnissen zur Verfügung. Dadurch ist die Voraussetzung für das Reinduction-Tool<br />
erfüllt, daß die mitgeloggten Dokumente auf den Seiten wieder zu finden sein müssen.<br />
Lediglich die mitgeloggten URLs müssen entsprechend der Adresse der neu erzeugten<br />
digitalen Bibliothek angepaßt werden. Diese Evaluierungsmethode hat den Vorteil, daß<br />
die Seiten leicht zu verändern sind. Somit können die Ergebnisse des Tools auch in<br />
Abhängigkeit von kleinen Layoutänderungen schrittweise untersucht werden.<br />
7.1.5 Evaluierung für Daffodil-Wrapper<br />
Einige der digitalen Bibliotheken aus dem Daffodil-Projekt stehen auch in MIND zur<br />
Verfügung. Für diese Bibliotheken werden die Anfragen von MIND an Daffodil weitergeleitet.<br />
MIND erhält dann auch lediglich das Ergebnis der Anfrage von Daffodil. Diese<br />
65
KAPITEL 7. EVALUIERUNG DER ERGEBNISSE<br />
Evaluierungsmethode kann erste Hinweise auf die Einsatzmöglichkeiten des entwickelten<br />
Tools bei allgemeinen Wrappern geben.<br />
7.2 Evaluierung<br />
Im folgendem Abschnitt werden nun die Ergebnisse für die vorgestellten Evaluierungsmöglichkeiten<br />
beschrieben. Da es eine Vielzahl von Möglichkeiten gibt, einen Knoten zu<br />
selektieren, kommen grundsätzlich mehrere Lösungen in Frage. Dabei ist es durchaus<br />
möglich, daß die erzeugte Konfigurationsdatei Bedingungen enthält, die nicht notwendig,<br />
deren Erstellung aber die Arbeit des Reinduction-Tools insgesamt verbessert. Weil<br />
diese nicht notwendigen Bedingungen aber die Selektierung der Schema-Attribute nicht<br />
negativ beeinflußt, spielen sie bei der Bewertung allerdings keine Rolle. Das Kriterium<br />
hierfür ist lediglich die Korrektheit der Konfigurationsdatei. Diese ist gegeben, wenn alle<br />
Schema-Attribute, die auf der Webseite enthalten sind, richtig erkannt werden. Dabei<br />
wird nicht berücksichtigt, ob sie in der Logdatei enthalten sind. Außerdem sollen durch<br />
die Evaluierung auch evtl. noch bestehende Probleme des Tools herausgearbeitet werden,<br />
damit im weiteren Verlauf noch eine Erarbeitung von Verbesserungsvorschlägen<br />
erfolgen kann.<br />
7.2.1 Evaluierung anhand funktionierender Wrapper<br />
Weil das Reinduction-Tool HTML-Seiten parsen muß, stehen für die Evaluierung anhand<br />
von funktionierenden Wrappern 12 Wrapper aus dem MIND Projekt zur Auswahl.<br />
Dabei scheidet der Wrapper für die National Gallery of Art in Washington von vornherein<br />
aus, weil er zu unregulär ist (s. 4.2.3). Außerdem wird der Wrapper für die Fine<br />
Arts Museums of San Francisco auch Probleme bereiten, weil die Ergebnisse in zwei<br />
Spalten angezeigt werden (s. 5.6). Getestet wurde die Pflege von Wrappern anhand der<br />
digitalenen Bibliotheken 1 (BIBDB) und der Web Gallery of Art 2 . (WebArt)<br />
Die BIBDB umfaßt bibliographische Referenzen zum Information Retrieval und verwandten<br />
Themengebieten. Bei dem Test sortierte das Reinduction-Tool eine Logdatei<br />
aus, weil sie nicht alle Schema-Attribute enthielt. Im Anschluß daran konnte dann mit<br />
der ersten Logdatei eine korrekte Konfigurationsdatei erstellt werden. Die Bewertung<br />
durch das Tool selbst verlief ebenfalls positiv.<br />
Die Bibiliothek WebArt enthält digitale Reproduktionen von Bildern und Skulpturen europäischer<br />
Künstler. Im ersten Versuch konnte keine Konfigurationsdatei erstellt werden.<br />
1 http://www.is.informatik.uni-duisburg.de/bib/bibdb.html<br />
2 http://www.kfki.hu/~arthp/index1.html<br />
66
KAPITEL 7. EVALUIERUNG DER ERGEBNISSE<br />
Eine Überprüfung der Logdateien ergab, daß das Schema-Attribut image-url die URLs<br />
von Thumbnails enthielt, die von MIND generiert wurden. Dadurch müssen bei der Nutzung<br />
von MIND die dort gespeicherten Bilder bei der nächsten Anfrage nicht mehr von<br />
der WebArt-Webseite übertragen werden. Damit das Schema-Attribut image-url auch<br />
auf der Webseite enthalten ist, wurden in der Konfigurationsdatei die in der Webseite<br />
enthaltenen URLs eingetragen.<br />
Hierauf erzeugte das Tool zwar eine Konfigurationsdatei, konnte diese jedoch nicht testen.<br />
Eine Untersuchung der Ausgaben des Reinduction-Tools ergab, daß die Dokument-<br />
ID auf der Seite nicht gefunden werden konnte. Die Konfigurationsdatei enthielt mit<br />
Ausnahme der Dokument-ID alle Schema-Attribute und selektierte auch die richtigen<br />
Informationen. Ein Vergleich der Ausgaben der Logdateien mit den Ergebnissen auf der<br />
Webseite ergab eine Änderung des Links zu den Detailseiten nach der Erstellung der<br />
Logdatei. Allerdings hatte diese Änderung keine Auswirkungen auf den im Einsatz befindlichen<br />
Wrapper, weil die Position der Dokument-ID sich nicht verändert hat. Nach<br />
einer erneuten manuellen Korrektur der Logdateien konnte eine korrekte Konfigurationsdatei<br />
erstellt werden, die auch die Dokument-ID richtig selektiert.<br />
7.2.2 Evaluierung anhand von manuell generierten Logdateien<br />
Hier stand mit dem Art Atlas 3 (ArtAtlas) eine digitale Bibliothek mit Galeristen zur<br />
Verfügung. Bei der Evaluierung konnte erfolgreich eine Konfigurationsdatei erstellt werden.<br />
Allerdings ist die Dokument-ID nicht wie vorausgesetzt in der Webseite enthalten.<br />
Deswegen kann das Reinduction-Tool die Konfigurationsdateien nicht selbst testen. Eine<br />
manuelle Überprüfung der Konfigurationsdatei hat deren Funktionfähigkeit allerdings<br />
nachgewiesen.<br />
Die Bibliothek Computer Science Bibliographies 4 (csbib) beinhaltet wissenschaftliche<br />
Arbeiten. Beim Test des Reinduktion-Tools wurden zwei Konfigurationsdateien erzeugt.<br />
Wie im obigen Beispiel war die Dokument-ID nicht in der Webseite enthalten. Aufgrund<br />
des fehlenden Selbsttests ist kein Ausschluß einer Datei möglich. Eine Überprüfung der<br />
beiden Konfigurationsdateien hat ergeben, daß die eine korrekt und die andere aufgrund<br />
von unsauberem HTML eine fehlerhafte Iteration enthält. Dies zieht automatisch auch<br />
nicht korrekte Extraktionen nach sich. Allerdings wäre die letzte Datei entfernt worden,<br />
wenn die Dokument-ID in der Webseite wäre.<br />
3 http://artatlas.com/<br />
4 http://liinwww.ira.uka.de/bibliography/<br />
67
KAPITEL 7. EVALUIERUNG DER ERGEBNISSE<br />
7.2.3 Evaluierung mit künstlich gebrochenen Wrappern<br />
Für diese Evaluierungmöglichkeit wurde für die Bibliotheken BIBDB_Test und WebArt_Test<br />
ein anderes Layout erstellt. Die Bibliotheken basieren dabei auf denselben<br />
Logdateien wie die Bibliotheken BIBDB und WebArt (s. 7.2.1). Bei der BIBDB_Test<br />
wurde die Listenstruktur, die bei der BIBDB zur Gliederung genutzt wird, durch eine<br />
Tabellenstruktur ersetzt. Beim Layout von WebArt_Test wird wie in der ursprünglichen<br />
Bibliothek eine Tabellenstruktur verwendet. Allerdings muß nur jede zweite Zeile extrahiert<br />
werden. Darüber hinaus ist die Bildung von regulären Ausdrücken erforderlich.<br />
Für beide Bibliotheken konnten korrekte Konfigurationsdateien erstellt werden. Dabei<br />
verliefen auch die Selbsttests des Reinduction-Tools positiv.<br />
7.2.4 Evaluierung für Daffodil-Wrapper<br />
Zum Abschluß der Evaluierung wurde noch Citeseer 5 getestet. Citeseer enthält ebenfalls<br />
wissentschaftliche Arbeiten. Zum Zeitpunkt der Evaluierung hatte Citeseer Kapazitätsprobleme,<br />
wodurch eine Evaluierung anhand von Citeseer selbst nicht möglich war. Statt<br />
dessen wurde eine Seite mit den Daten von Citeseer in einem neu erstellten Layout getestet.<br />
Bei Citeseer handelt es sich eigentlich um einen Daffodil-Wrapper, an den MIND Anfragen<br />
stellen kann. Diese werden dann von Daffodil bearbeitet und die Ergebnisse<br />
an MIND weitergeleitet. Das Logging für die zum MIND-Projekt gehörenden Daffofil-<br />
Wrapper wird in der Datenstruktur von MIND vorgenommen. Allerdings besteht die<br />
Dokument-ID bei Daffodil aus dem Titel und nicht wie bei MIND selbst aus dem Detaillink.<br />
Bei dem Titel werden jedoch die Leerzeichen entfernt und alle Großbuchstaben<br />
durch kleine Buchstaben ersetzt. Der so bearbeitete Titel ist allerdings nicht mehr in<br />
dem XHTML-Code zu finden. Dadurch kann das Reinduction-Tool die erzeugte Konfigurationsdatei<br />
nicht testen, weil keine eindeutige Zuordnung möglich ist. Weil die manuelle<br />
Überprüfung eine korrekte Erstellung der Konfigurationsdatei ergab, verhinderte<br />
die nicht auf der Webseite enthaltene Dokument-ID zunächst den erfolgreichen Abschluß<br />
der Evaluierung.<br />
Um dieses Problem zu beheben, wurde das Reinduction-Tool erweitert. Bei allen Schema-<br />
Attributen werden nun die Leerzeichen entfernt und die Großbuchstaben in Kleinbuchstaben<br />
umgewandelt. Ist das Resultat mit der Dokument-ID identisch, wird in den<br />
geladenen Dokumenten die Dokument-ID durch den Wert des Schema-Attributes ersetzt.<br />
Die Dokument-ID bleibt dabei in den Logdateien unverändert. Dadurch ist die<br />
Dokument-ID wieder im XHTML-Code zu finden. Beim Testen kann für das jeweilige<br />
5 http://citeseer.nj.nec.com/cs<br />
68
KAPITEL 7. EVALUIERUNG DER ERGEBNISSE<br />
gefundene Dokument anhand der Dokument-ID das entsprechende Dokument aus der<br />
Logdatei identifiziert werden. Dessen Schema-Attributwerte müssen mit den gerade gefundenen<br />
übereinstimmen, wenn eine korrekte Konfigurationsdatei erstellt wurde. Nach<br />
dieser Anpassung konnte auch der letzte Schritt erfolgreich getestet werden.<br />
7.2.5 Performance<br />
Die Evaluierung wurde mit einem 1,8-GHz Rechner unter Nutzung eines DSL-Anschlusses<br />
durchgeführt. Die Zeit für die Erstellung der Konfigurationsdateien betrug 1-10 Minuten.<br />
Weil in allen Dokumenten der mitgeloggten Result-Dateien die enthaltenen Schema-<br />
Attribute geprüft werden, damit die zu erzeugende Konfigurationsdatei auch alle notwendigen<br />
Schema-Attribute enthält, ergeben sich große Unterschiede in der Performance<br />
des Reinduction-Tools.<br />
Um den Aufwand zu minimieren, könnten statt dessen, wenn sich sehr viele Logdateien<br />
angesammelt haben, auch nur die aktuellsten Logdateien bei der Erstellung der neuen<br />
Konfigurationsdatei miteinbezogen werden. Allerdings könnte sich diese Vorgehensweise<br />
negativ auf die Präzision auswirken. Zum anderen macht sich auch bemerkbar, wie<br />
viele Daten die angefragte Webseite enthält. Da diese beiden Punkte nicht unabhängig<br />
von einander sind, weil eine große Menge an Dokumenten in der Logdatei häufig mit<br />
einer großen Anzahl an Dokumenten in der Webseite verbunden ist, werden sie oftmals<br />
gleichzeitig auftreten. Dadurch hat z. B. die Erstellung der Konfigurationsdateien<br />
für WebArt deutlich länger gedauert als die der anderen digitalen Bibliotheken. Eine<br />
manuelle Erstellung von Konfigurationsdateien dauert etwa 4 Arbeitsstunden [Rup02].<br />
Die manuelle Überprüfung einer erstellten Konfigurationsdatei dauert etwa 20 Minuten<br />
Bei einer Laufzeit von 10 Minuten des Reinduction-Tools ist es somit möglich, in einer<br />
halben Stunde eine neue Konfigurationsdatei zu erstellen.<br />
7.3 Bewertung des Wrapperwerkzeugs<br />
Bei der Evaluierung gab es Probleme, weil die Werte der Schema-Attribute nicht auf<br />
den Webseiten der digitalen Bibliotheken enthalten waren. Als problematisch erwies<br />
sich ebenfalls die Veränderung der Daten, die in der Webseite enthalten sind, wie z. B.<br />
die Detaillinks bei WebArt. Um diese Probleme in Zukunft zu vermeiden, sollten die<br />
Logdateien erstellt werden, bevor die Veränderung der Daten erfolgt. Die Probleme, die<br />
sich aus den fehlenden Dokument-IDs ergeben, können ebenfalls gelöst werden, indem<br />
als Dokument-IDs Daten genommen werden, die in der Webseite enthalten sind.<br />
69
KAPITEL 7. EVALUIERUNG DER ERGEBNISSE<br />
Für alle ausgewählten digitalen Bibliotheken konnten, ggf. nach einer Anpassung der<br />
Logdateien an die Voraussetzungen, korrekte Konfigurationsdateien erzeugt werden. Die<br />
Vermutung, daß die Qualität der semiautomatisch erstellten Konfigurationdatei stark<br />
von der Anzahl der vorhandenen Anfragen und den zugehörigen Ergebnissen abhängt,<br />
konnte nicht bestätigt werden. Ein Ausnahme bildete hier die BIBDB, weil in der ersten<br />
Logdatei ein Schema-Attribut in keinem der Dokumente enthalten war.<br />
Probleme gab es, wenn im HTML-Code die schließenden Teile der HTML-Elemente<br />
fehlten. Weil diese bei XHTML-Dokumenten notwendig sind, muß Tidy bei der Umwandlung<br />
in XHTML entscheiden, wo ein Element endet. Dabei werden die schließenden<br />
Teile der Elemente teilweise an die falsche Stelle gesetzt. So wird z. B. für ein Dokument<br />
eine zusätzliche Tabelle definiert, während das bei den anderen Dokumenten auf<br />
derselben Webseite nicht der Fall ist. Dadurch ist es schwierig, eine funktionierende<br />
Konfigurationsdatei automatisch zu erstellen. Zwar wurden bereits einige Vorkehrungen<br />
im Reinduction-Tool getroffen (s. 6.1.7), jedoch sollten die genauen Auswirkungen<br />
von unsauberen HTML bei der Umwandlung in XHTML durch Tidy noch näher untersucht<br />
werden. Dadurch könnte das Reinduction-Tool im Hinblick auf die zu erwartenden<br />
Probleme, die vor allem bei der Erstellung der Extraktionen auftreten, verändert werden.<br />
7.4 Weitere Aspekte der Bewertung<br />
Im folgenden Abschnitt werden einige Aspekte beschrieben, die noch weiter zu untersuchen<br />
sind. Deweiteren wird auf einige Punkte hingewiesen, die für das Reinduction-Tool<br />
bisher nocht nicht realisiert wurden, die allerdings bei den getesteten digitalen Bibliotheken<br />
nicht notwendig waren.<br />
Im Rahmen einer detaillierten Evaluierung sollte auch überprüft werden, wie das<br />
Reinduction-Tool auf ein schlechteres Verhältnis von mitgeloggten Dokumenten zu Dokumenten<br />
auf einer Seite insgesamt reagiert. Wichtig ist aber auch die Position der<br />
mitgeloggten Dokumente. Sind z. B. drei mitgeloggte Dokumente vorhanden, aber die<br />
Ergebnisseite liefert 100 Dokumente zurück, so besteht ein gravierender Unterschied, ob<br />
die drei mitgeloggten Datensätze am Anfang der Übersichtsseite stehen oder ob sie sich<br />
gleichmäßig über die Übersichtsseite verteilen. Im ersten Fall könnte es möglich sein,<br />
die ersten beiden Datensätze zuzuordnen. Im zweiten Fall wird nur eine Reduzierung<br />
der Kandidaten für die XPath-Ausdrücke möglich sein. Prinzipiell ist der Erfolg größer,<br />
je mehr mitgeloggte Daten für die entsprechende Übersichtsseite vorhanden sind.<br />
Hierzu könnte die Anzahl der auf einer Seite gesuchten mitgeloggten Daten schrittweise<br />
reduziert werden. Zudem könnten die überprüften Webseiten gespeichert und manuell<br />
verändert werden, um die Probleme des Tools zu lokalisieren.<br />
70
KAPITEL 7. EVALUIERUNG DER ERGEBNISSE<br />
Besonders problematisch wird allerdings eine Verteilung der mitgeloggten Ergebnisse<br />
auf mehrere Übersichtsseiten sein. Dies gilt insbesondere, wenn kein bzw. nur eines<br />
der mitgeloggten Ergebnisse auf der ersten Übersichtsseite zu finden ist. Dieses Problem<br />
wird vor allem bei Wrappern für Webservices auftreten, bei denen die Datenbasis<br />
großen Änderungen unterliegt. Allerdings hängt das Ergebnis in diesem Fall auch von<br />
der gestellten Anfrage ab. Es wird bei einer Anfrage nach ”President” viel schwieriger<br />
sein, die alten Ergebnisse wiederzufinden als bei einer Suche nach ”Retrieval”, weil im<br />
ersten Fall das Ergebnis deutlich schneller auf nachfolgenden Übersichtsseiten zu finden<br />
sein wird als im zweiten Fall. Wenn bei der gestellten Anfrage die erläuterten Probleme<br />
auftreten, wird zunächst einmal versucht, mit anderen Anfragen zu arbeiten. Bei<br />
einem Wrapper für ein Kunstmuseum wird die Fluktuation der Daten dagegen generell<br />
deutlich geringer ausfallen.<br />
Das Reinduction-Tool kann momentan nur Schema-Attribute finden, deren Inhalt auf<br />
der Webseite ohne störende Zeichen innerhalb des Schema-Attributes vorkommen. Um<br />
diese Einschränkung aufzuheben, müßte jedes Schema-Attribut in Token zerlegt werden<br />
und die Suche nach den einzelnen Token erfolgen. Aus den XPath-Ausdrücken für die<br />
einzelnen Token muß ein XPath-Ausdruck gebildet werden, der alle Token selektiert. Der<br />
Inhalt, den dieser XPath-Ausdruck zurück liefert, muß noch mit regulären Ausdrücken<br />
bearbeitet werden. Könnte das Schema-Attribut auch in zwei Schema-Attribute aufgeteilt<br />
werden und sind die störenden Zeichen nur zwischen den Schema-Attributen und<br />
nicht innerhalb der Schema-Attribute, so kommt das Reinduction-Tool damit klar, wenn<br />
diese Schema-Attribute in den Logdateien auch getrennt enthalten sind.<br />
Die Tidykomponente der Konfigurationsdatei bekommt vom Reinduction-Tool keine<br />
Elemente zugewiesen, somit wird die Ersetzung der Entitäten ausschließlich von Tidy<br />
vorgenommen. Allerdings war bei den getesteten Beispielen auch keine zusätzliche<br />
Umwandlung, wie z. B. die Entfernung von störenden Leerzeichen, erforderlich.<br />
Findet das Reinduction-Tool kein einziges Schema-Attribut wieder, so ist dies ein deutliches<br />
Indiz für eine akute Einschränkung der Webseiten in ihrer Funktionalität. Das<br />
kann z. B. durch eine Überlastung des Servers oder den Ausfall eines Datenbank-Servers<br />
bedingt sein. Allerdings handelt es sich hierbei um ein grundsätzliches Problem, das bei<br />
der Erstellung von Wrappern immer auftreten kann. Deswegen ist es bei der Bewertung<br />
des Reinduction-Tools zu vernachlässigen.<br />
71
Kapitel 8<br />
Übertragbarkeit des<br />
Wrapperwerkzeugs<br />
Im folgenden Kapitel werden die Anwendungsmöglichkeiten des Reinduction-Tools auf<br />
andere Wrappertypen untersucht. Dabei werden die drei Fälle der Übertragbarkeit auf<br />
nicht reguläre Wrapper, auf allgemeine Wrapper sowie die Einsatzmöglichkeiten bei der<br />
Erstellung neuer Wrapper diskutiert.<br />
8.1 Übertragbarkeit auf nicht reguläre Wrapper<br />
Ist ein Wrapper nicht regulär wie die vom Toolkit behandelten, wird das Setzen der<br />
Schema-Attribute mit Hilfe von Iterationen über die zurückgelieferten Ergebnisse der<br />
Toolkits meistens nicht funktionieren. Diese Fälle erfordern innerhalb des<br />
MIND-Wrappers noch eine Überprüfung, ob die XPath-Ausdrücke tatsächlich die richtigen<br />
Schema-Attribute gefunden haben. Insofern ist bei einem Einsatz des Reinduction-<br />
Tools bei nicht regulären Wrappern eine Nachbearbeitung erforderlich. Allerdings gibt<br />
es nicht reguläre Wrapper, bei denen eine Generalisierung der XPath-Ausdrücke für<br />
einzelne Schema-Attribute möglich ist. Für diese Schema-Attribute wird dann der entsprechende<br />
Teil der Konfigurationsdatei erstellt. Speziell für die nicht regulären Wrapper<br />
könnte noch eine Erweiterung für das Reinduction-Tool erzeugt werden, die versucht,<br />
alle eindeutig zugewiesenen XPath-Ausdrücke der Schema-Attribute, die noch nicht in<br />
der Konfigurationsdatei berücksichtigt worden sind, unabhängig von den zugehörigen<br />
Schema-Attributen zusammenzufassen. Diese Ausdrücke können dann ohne konkreten<br />
Schema-Attributnamen in die Konfigurationsdatei übernommen werden. Die Zuordnung<br />
der Schema-Attribute ist dann im Java-Code zu ändern.<br />
72
KAPITEL 8. ÜBERTRAGBARKEIT DES WRAPPERWERKZEUGS<br />
Ist die digitale Bibliothek nach der Änderung des Layouts der HTML-Seite auf dieselbe<br />
Art unregulär wie vor der Layoutänderung, kann die Nachbearbeitung des Java-Codes<br />
entfallen. Bei dem aktuellen Wrapper für die National Gallery of Art in Washington<br />
werden z. B. für die Detailseite Knoten mit verschiedenen XPath-Ausdrücken selektiert.<br />
Danach wird mit Hilfe von regulären Ausdrücken überprüft, welches Schema-Attribut<br />
an welcher Stelle steht. Würden sich lediglich die XPath-Ausdrücke und nicht die Bedingungen,<br />
nach denen die einzelnen Schema-Attribute zugeordnet werden, ändern, so<br />
könnte das entwickelte Wrapperwerkzeug mit der beschriebenen Erweiterung auch ohne<br />
Nachbearbeitung durchaus erfolgreich eingesetzt werden.<br />
8.2 Übertragbarkeit auf allgemeine Wrapper<br />
Das Ziel des entwickelten Tools ist die Erstellung einer neuen Konfigurationsdatei für<br />
das Wrapper Toolkit. Insofern ist die Grundvoraussetzung für die Übertragbarkeit auf<br />
allgemeine Wrapper, daß diese Wrapper mit dem Toolkit arbeiten. Im folgenden Abschnitt<br />
wird für die einzelnen Schritte des Reinduction-Tools untersucht, ob sie bei<br />
allgemeinen Wrappern angepaßt werden müssen.<br />
Weil die Überprüfung der Anfragestruktur ein manueller Arbeitsschritt ist, muß hier<br />
keine Änderung erfolgen. Da die von MIND mitgeloggten Daten in einer speziell entwickelten<br />
Datenstruktur vorliegen, arbeitet das Reinduction-Tool ebenfalls mit dieser<br />
Datenstruktur. Deswegen müssen bei allgemeinen Wrappern die Logdateien ebenfalls in<br />
diesem Format vorliegen. Dazu ist eine Erweiterung der Wrapper um ein entsprechendes<br />
Logging erforderlich. Sind diese Dateien vorhanden, ist das Laden der Daten kein Problem.<br />
Beim Laden der Dateiseiten wird von einer Übereinstimmung des Dateinamens<br />
und der URL der Ergebnisseite ausgegangen. Deswegen ist es besonders wichtig, daß<br />
die Dateinamen die URL auch beinhalten. Ansonsten muß das Reinduction-Tool beim<br />
Laden der Daten angepaßt werden, damit wie bei den Übersichtsseiten ebenfalls die<br />
Logdatei mit der URL geladen werden kann.<br />
Die weiteren Arbeitsschritte aus der Vorgehensweise verwenden die geladenen Daten<br />
bzw. die aktuellen Daten der neu gestellten Anfrage. Deswegen sind hier bei der Übertragbarkeit<br />
auf andere Wrapper keine Probleme zu erwarten. Die zweite Voraussetzung<br />
bei der Übertragbarkeit auf allgemeine Wrapper ist die Erstellung der Logdateien im<br />
Format der MIND-Logdateien. Hierbei wäre noch näher zu untersuchen, inwieweit die<br />
Erstellung des benötigten Formates der jeweiligen Logdateien zu Problemen bei allgemeinen<br />
Wrappern führen könnte. Bei der Evaluierung von Wrappern aus dem Daffodil-<br />
Projekt stellte sich z. B. die unterschiedliche Zuweisung der Dokument-ID als Schwierigkeit<br />
heraus (s. 7.1.5). Allerdings ist dieses Problem bereits behoben worden, d. h. es<br />
gibt bei allgemeinen Wrappern mehr Möglichkeiten bei der Zuordnung der ID.<br />
73
KAPITEL 8. ÜBERTRAGBARKEIT DES WRAPPERWERKZEUGS<br />
Als Alternative zur Anpassung des Loggings selbst könnte noch ein Tool zur Vorprozessierung<br />
entwickelt werden, das die Logdateien der allgemeinen Wrapper auf die Datenstruktur<br />
von MIND abbildet. Allerdings muß in diesem Fall für jeden neuen Logdateityp<br />
eine Anpassung dieses Vorprozessierungstools vorgenommen werden.<br />
8.3 Übertragbarkeit auf die Erstellung neuer Wrapper<br />
Nachfolgend wird die Erstellung einer Konfigurationsdatei für neue digitale Bibliotheken<br />
unter Verwendung des Reinduction-Tools beschrieben. Falls sich die Anfragestruktur<br />
verändert hat, wurde sie bei zu pflegenden Wrappern manuell neu erstellt. Dieser Teil<br />
läßt sich insofern problemlos auch auf die Erstellung von neuen Wrappern übertragen.<br />
Das gleiche gilt für die Suche nach dem Template.<br />
Vor dem Laden von Daten müßten vorhandene Daten simuliert werden. Dazu würden<br />
die Ergebnisse manuell aus der Seite ausgelesen und im Format von mitgeloggten Daten<br />
gespeichert. Diese Eingabe könnte einfach mit Hilfe eines Editors erfolgen.<br />
Bei der Sortierung der Schema-Attribute und der freien Suche könnte wie bei der Pflege<br />
von Wrappern verfahren werden. Die Suche nach regulären Ausdrücken könnte ebenfalls<br />
zum Einsatz kommen. Zum Abschluß ließe sich ebenfalls, wie gewohnt, die Konfigurationsdatei<br />
erstellen und testen. Somit besteht der wesentliche Unterschied zwischen der<br />
Pflege von Wrappern und der Erstellung von neuen Wrappern in den nicht zur Verügung<br />
stehenden Logdateien. Bei der Erstellung von neuen Wrappern müßten selbstverständlich<br />
auch die anderen Schritte, die zur Erzeugung eines Wrappers erforderlich sind,<br />
durchgeführt werden. Bei MIND wären das z. B. die Erstellung des MIND-Schemas<br />
und der zugehörigen Java-Klassen. Da das entwickelte Reinduction-Tool ohne die Konfigurationsdatei<br />
des gebrochenen Wrappers auskommt, läßt es sich unter den genannten<br />
Voraussetzungen auch bei der Erzeugung von neuen Wrappern nutzen (s. 7.2.2).<br />
74
Kapitel 9<br />
Fazit und Ausblick<br />
Im letzten Kapitel werden die Ergebnisse der vorliegenden Diplomarbeit zusammengefaßt<br />
und einer kritischen Betrachtung unterzogen. Im Anschluß daran werden noch<br />
Ideen für die Erweiterung und Optimierung des Reinduction-Tools vorgestellt.<br />
9.1 Fazit<br />
In der vorliegenden Arbeit wurde zunächst der Aufbau von digitalen Bibliotheken untersucht.<br />
Dabei wurden Unterschiede zwischen Übersichts- und Detailseiten festgestellt.<br />
Diese bezogen sich auf die Anzahl der in den Seiten enthaltenen Dokumente. Das MIND-<br />
Projekt faßt heterogene, verteilte digitale Bibliotheken zusammen, indem es Anfragen<br />
an geeignete digitale Bibliotheken weiterleitet. Für jede Bibliothek existiert dabei ein<br />
Wrapper, der die Ergebnisse der Anfrage aus den Webseiten extrahiert. Die Wrapper<br />
nutzen dafür die Struktur der HTML-Seiten, um die Informationen mit Hilfe von XPath-<br />
Ausdrücken zu selektieren. Bisher erfolgt die Erstellung der Wrapper manuell. Dabei<br />
besteht die größte Schwierigkeit darin, die passenden XPath-Ausdrücke zu finden. Die<br />
Nutzung der Struktur der HTML-Seiten, zu der keine Alternative existiert, hat allerdings<br />
den Nachteil, daß eine Layoutänderung der Webseite in den meisten Fällen eine<br />
Überarbeitung des Wrappers nach sich zieht. In den vorherigen Kapiteln wurde deswegen<br />
an der Entwicklung eines Tools für eine semiautomatische Pflege von Wrappern<br />
gearbeitet.<br />
Aus der Untersuchung von verwandten Arbeiten ergaben sich Ideen für die Erstellung<br />
des Reinduction-Tools. Im Unterschied zu den Wrappern des MIND-Projektes arbeiten<br />
die Wrapper in den vorgestellten Arbeiten jedoch nicht mit XPath-Ausdrücken. Es<br />
75
KAPITEL 9. FAZIT UND AUSBLICK<br />
wurde untersucht, welche Datengrundlagen dem zu entwickelnden Tool zur Verfügung<br />
gestellt werden könnten. Im weiteren Verlauf der Arbeit kristallisierte sich heraus, daß<br />
die Logdateien der Ergebnisse sowie deren URLs benötigt werden. Bei der Entwicklung<br />
des Reinduction-Tools wurde vorausgesetzt, daß die Inhalte der Dokumente aus den<br />
Logdateien weiterhin in den Webseiten enthalten sind. Das Tool wurde nur für reguläre<br />
Wrapper entwickelt. Bei diesen Wrappern sind die Informationen bei allen Dokumenten<br />
an denselben Positionen zu finden. Weil seltener eine Änderung der Struktur der<br />
Anfrage als der des Layouts der Webseiten erwartet wird, wurde die Überarbeitung der<br />
Anfragestruktur von den weiteren Überlegungen zur Entwicklung des Tools ausgeschlossen.<br />
Im Anschluß daran wurde das Wrappertoolkit vorgestellt, das eine Vereinfachung bei der<br />
Wrappererstellung ermöglicht. Im Mittelpunkt steht dabei die Entwicklung einer Konfigurationsdatei.<br />
Diese muß im XML-Format erstellt werden und beinhaltet die XPathund<br />
regulären Ausdrücke, die zur Selektierung der Daten genutzt werden. Dabei werden<br />
diese vom Java-Code losgelöst. Die Erstellung von XML-Dateien gestaltet sich einfacher<br />
als die Generierung von Java-Code. Dies gilt insbesondere bei einer automatischen<br />
Erstellung. Deswegen wurde im folgenden die Nutzung des Toolkits vorausgesetzt. Bei<br />
einer Layoutänderung ist lediglich die Konfigurationsdatei zu überarbeiten. Deswegen<br />
wurde eine semiautomatische Überarbeitung der Konfigurationsdatei angestrebt.<br />
Das Tool arbeitet zunächst mit absoluten XPath-Ausdrücken, weil diese aufgrund ihrer<br />
automatischen Generierung untereinander vergleichbar sind. Bei Bedarf werden sie im<br />
Verlauf in relative Ausdrücke umgewandelt. Bereits aus der Untersuchung der weiterführenden<br />
Arbeiten hat sich ergeben, daß die Teile der Webseiten, die sich nicht ändern,<br />
von der Suche nach den Schema-Attributen der Dokumente auszuschließen sind.<br />
In einer Vielzahl der Fälle werden die Werte der Schema-Attribute mehrfach auf den<br />
Webseiten enthalten sein. Deswegen wurden Verfahren entwickelt, mit denen für unsichere<br />
Schema-Attribute der passende XPath-Ausdruck zugeordnet werden kann.<br />
Auf der Basis dieser Überlegungen wurde für die Übersichtsseiten ein Prototyp des<br />
Reinduction-Tools erstellt. Der zentrale Punkt ist hierbei die Behandlung der unsicheren<br />
Schema-Attribute. Dabei kommt ein Intervallverfahren zum Einsatz, das anhand von<br />
sicheren Schema-Attributen eine Reihenfolge der Dokumente erstellt und Intervallgrenzen<br />
für diese Dokumente bestimmt. Durch eine schrittweise Verkleinerung der Intervalle<br />
werden die Kandidaten für die unsicheren Schema-Attribute reduziert. Auf Basis der<br />
eindeutig zugewiesenen Xpath-Ausdrücke werden dann nacheinander die einzelnen Teile<br />
der Konfigurationsdatei zugewiesen. Das Reinduction-Tool kann die erzeugte Konfigurationsdatei<br />
selber testen. Dazu werden die Ergebnisse der Logdatei, die auch auf der<br />
Webseite enthalten waren, mit den Ergebnissen der Konfigurationsdatei verglichen.<br />
76
KAPITEL 9. FAZIT UND AUSBLICK<br />
Die Evaluierung des umgesetzten Teils des Reinduction-Tools ergab, daß für alle getesteten<br />
digitalen Bibliotheken eine korrekte Konfigurationsdatei erzeugt werden konnte.<br />
Allerdings wurden dafür teilweise manuelle Korrekturen der Logdateien vorgenommen.<br />
Das Logging sollte deswegen im Hinblick auf die automatisierte Pflege von Wrappern<br />
erfolgen, bevor die Daten verändert werden. Des weiteren sollten die Dokument-IDs so<br />
ausgewählt werden, daß sie in den Webseiten enthalten sind. Die Untersuchungen zur<br />
Übertragbarkeit der entwickelten Ideen ergaben eine notwendige Nachbearbeitung der<br />
erzeugten Konfigurationsdatei bei nicht regulären Wrappern. Alternativ ist auch eine<br />
Weiterentwicklung des Reinduction-Tools denkbar. Bei allgemeinen Wrappern sowie für<br />
die Erstellung neuer Wrapper wird die Nutzung des Toolkits für eine Übertragbarkeit<br />
vorausgesetzt. Zusätzlich müssen die mitgeloggten Ergebnisse im MIND-Format zur<br />
Verfügung gestellt werden.<br />
Das entwickelte Reinduction-Tool wird jedoch nicht für jede digitale Bibliothek eine<br />
neue Konfigurationsdatei erzeugen können. Dies gilt nicht nur für die bereits angesprochenen,<br />
nicht regulären digitalen Bibliotheken, sondern auch für Schema-Attribute, zu<br />
deren Selektion mehrere reguläre Ausdrücke nacheinander erforderlich sind. Weil das<br />
Reinduction-Tool die Struktur des HTML ausnutzt, um die Daten zu finden, sind Annahmen<br />
zu dieser Struktur gemacht worden. Aufgrund der Vielzahl von Gestaltungsmöglichkeiten<br />
von HTML wird es auch digitale Bibliotheken geben, für die diese Annahmen<br />
nicht zutreffen. In diesen Fällen wird eine Nachbearbeitung der generierten Konfigurationsdatei<br />
erforderlich sein. Deswegen sollten die erzeugten Konfigurationsdateien<br />
vor allem in der ersten Einsatzzeit noch manuell überprüft werden. Das Reinduction-<br />
Tool sollte anhand der dabei festgestellten Probleme weiterentwickelt werden, um dessen<br />
Möglichkeiten bei der Erstellung von Konfigurationsdateien weiter zu verbessern.<br />
In der vorliegenden Arbeit wurde ein Prototyp für die semitautomatische Pflege von<br />
Wrappern erstellt. Bei der Evaluierung hat sich dieser Prototyp als leistungsfähig erwiesen.<br />
Ein Vorteil des vorgestellten semiautomatischen Ansatzes besteht darin, daß<br />
zur Laufzeit des Reinduction-Tools keine Eingriffe des Benutzers erforderlich sind. Die<br />
manuellen Arbeitsschritte „Überarbeitung der Anfragestruktur“ und „Überprüfung der<br />
Konfigurationsdatei“ kommen vor bzw. nach dem Reinduction-Tool zum Einsatz. Außerdem<br />
kann das Tool selbst bereits Aussagen zur Qualität der Logdatei treffen. Weil<br />
der gewählte Ansatz den alten Wrapper nicht benötigt, ist auch eine Übertragbarkeit<br />
auf allgemeine Wrapper und die Erstellung von neuen Wrappern möglich.<br />
Zwar ist die Performance des Reinduction-Tools recht unterschiedlich, allerdings wird<br />
die Arbeitszeit des Benutzers, im Falle einer erfolgreichen Erzeugung einer Konfigurationsdatei,<br />
auf jeden Fall erheblich reduziert. Der Benutzer muß sich dann lediglich noch<br />
von der Funktionsfähigkeit der Konfigurationsdatei überzeugen. Da das Reinduction-<br />
Tool nach dem Start keine Interaktion erfordert, kann der Benutzer sich während der<br />
77
KAPITEL 9. FAZIT UND AUSBLICK<br />
Laufzeit mit anderem befassen. Durch das Reinduction-Tool ergibt sich somit eine<br />
Arbeitszeit- und Kostenersparnis.<br />
9.2 Ausblick<br />
Im nächsten Abschnitt werden einige Ideen beschrieben, mit denen besserere Konfigurationsdateien<br />
erstellt werden können. Außerdem werden Überlegungen für breitere<br />
Einsatzmöglichkeiten des Tools vorgestellt.<br />
9.2.1 Überarbeitung der Anfragestruktur<br />
Ein Nachteil des entwickelten Tools ist die vorgesehene manuelle Korrektur der Logdateien<br />
für die alten URLs, falls sich die Anfragestruktur geändert hat. Die Überarbeitung<br />
bleibt auch bei automatischer Erstellung der neuen Anfrage weiterhin erforderlich. Eine<br />
Verbesserung des Tools kann erzielt werden, indem es um eine semiautomatische<br />
Überprüfung und Überarbeitung der Anfragestruktur erweitert wird. Hierzu könnten<br />
die Methoden von Kushmerick [Kus] zum Lernen von Anfragestrukturen von Webformularen<br />
angewendet werden. Um das Ausfüllen eines Webformulars zu lernen, müssen<br />
eine Menge von gekennzeichneten Formularen und Feldern mit den zugehörigen Domains<br />
bzw. den zugehörigen Datentypen für jedes Feld eingegeben werden. Ausgegeben<br />
wird eine Funktion, die ein nicht gekennzeichnetes Formular auf die zugehörige Domain<br />
und die zugehörigen Datentypen für die einzelnen Felder abbildet.<br />
Ein Webfomular umfaßt mindestens ein Feld, wobei jedes Feld wiederum ein oder mehrere<br />
Terme umfaßt. Unter dem Begriff Term werden Wörter, Tags, Attribute und andere<br />
Token eines HTML-Dokumentes verstanden. Bei Instanzen von Webformularen handelt<br />
es sich folglich um strukturierte Objekte. Das Ziel des Algorithmus ist es somit,<br />
die zugrundeliegende Struktur zu finden, in dem ein Formular und seine Felder einer<br />
bestehenden Klassifizierung zugeordnet werden. Dazu wird zunächst die Kategorie D<br />
der Domain bestimmt (z. B. Suche nach Büchern). Anschließend wird der Datentyp T<br />
entsprechend der semantischen Kategorie (z. B. Buchtitel) klassifiziert.<br />
Um die Abbildungsfunktion zu erhalten, wird ein Bayesches Netzwerk verwendet, mit<br />
diesem wird der Datentyp von jedem Feld, basierend auf seinen Termen, bestimmt.<br />
Gleichzeitig wird die Domain des Formulars bestimmt, indem die Datentypen der einzelnen<br />
Felder ermittelt werden. Durch die Betrachtung des Problems als Bayesches Inferenznetzwerk<br />
kann die Maximum-Likelihood-Wahrscheinlichkeit von allen Vorhersagen<br />
simultan bestimmt werden.<br />
78
KAPITEL 9. FAZIT UND AUSBLICK<br />
Das generative Modell wird dabei auf einen Baum abgebildet, in dem die Domain den<br />
Wurzelknoten bildet. Die Kinder stellen die Datentypen eines jeden Feldes dar. Deren<br />
Kinder stellen wiederum die Terme dar, mit denen ein Feld codiert wird. Dabei sind sowohl<br />
die Wahrscheinlichkeit für die Domain als auch die bedingten Wahrscheinlichkeiten<br />
der Datentypen in Abhängigkeit von der Domain zu schätzen. Die Parameter können anhand<br />
ihres Vorkommens in den Trainingsdaten bestimmt werden. Die Tabelle mit den<br />
bedingten Wahrscheinlichkeiten für jeden Knoten hängt direkt mit den zu lernenden<br />
Parametern zusammen. Dabei sind die Tabellen mit bedingten Wahrscheinlichkeiten<br />
für alle Datentypen- und Termknoten identisch. Ist ein Bayesches Netzwerk gegeben,<br />
werden die Terme in jedem Feld beobachtet und danach die Maximum Likelihood-<br />
Wahrscheinlichtkeit für Formular-, Domain- und Felddatentypen folgerichtig anhand<br />
dieser Indizien berechnet.<br />
Am Ende dieses Verfahrens von Kushmerick könnte mit den mitgeloggten alten Anfragen<br />
und Ergebnissen von MIND überprüft werden, ob das Ausfüllen des Formulars<br />
korrekt gelernt wurde. Dazu könnte das Formular mit den alten Anfragen ausgefüllt<br />
werden. Auf der Ergebnisseite müßten dann die mitgeloggten Dokumente enthalten<br />
sein.<br />
9.2.2 Verifikation<br />
Um die Probleme durch nicht mehr aktuelle Logdateien zu minimieren, könnten Anfragen<br />
für die einzelnen digitalen Bibliotheken regelmäßig mit Hilfe eines Cron-Jobs gestellt<br />
werden. Bei einem Cron-Job handelt es sich um einen Dämonen. Unter diesem Begriff<br />
werden Programme zusammengefaßt, die automatisch immer wiederkehrende Aufgaben<br />
bearbeiten. Im Fall eines Cron-Jobs werden Kommandos zu einem festgelegten Zeitpunkt<br />
ausgeführt [SH96]. Dazu prüft der Dämon einmal pro Minute, ob zum aktuellen<br />
Zeitpunkt Kommandos auszuführen sind. Mit Hilfe eines Cron-Jobs können auch Tools<br />
gestartet werden. Die Wrapper könnten mit Hilfe der mitgeloggten Anfragen in den<br />
query-Dateien mit einem Cron-Job gestartet werden.<br />
Um die Pflege von Wrappern zu optimieren, könnte das Tool ebenfalls per Cron-Job die<br />
Korrektheit der Logdateien überprüfen. Die mitgeloggten Dokumente würden dann mit<br />
den jeweils letzten Logdateien zu den Anfragen verglichen. Wenn die Anfragen täglich<br />
per Cron-Job gestellt und Anfragen ausgewählt werden, die sich nicht häufig ändern,<br />
müßten immer noch einige Dokumente in der Logdatei enthalten sein. Ist dies nicht der<br />
Fall, so sollte automatisch überprüft werden, ob der Wrapper gebrochen ist.<br />
Ist der Wrapper gebrochen, werden automatisch alle Logdateien entfernt, deren Erstellung<br />
nach der letzten Überprüfung des Wrappers erfolgte. Im Anschluß daran wird das<br />
79
KAPITEL 9. FAZIT UND AUSBLICK<br />
Reinduction-Tool aufgerufen. Dazu könnte das Tool ebenfalls automatisch eine Meldung<br />
zum Ergebnis der Erstellung der neuen Konfigurationsdatei in Form einer E-Mail<br />
verschicken. Der Empfänger muß dann lediglich noch die manuelle Überprüfung durchführen.<br />
Dadurch ist eine deutliche Reduzierung der Reaktions- und Reparaturzeit bei<br />
gebrochenen Wrappern erreichbar.<br />
9.2.3 Übertragbarkeit auf allgemeine Wrapper<br />
Als Voraussetzungen für die Übertragbarkeit des Reinduction-Tools auf allgemeine Wrapper<br />
wurden die Nutzung des Toolkits und ein Logging im MIND-Format herausgestellt<br />
(s. 8.2). Die Daffodil-Wrapper erfüllen die erste Voraussetzung bereits, deswegen sollten<br />
die Wrapper im Hinblick auf eine Verwendung des Reinduction-Tools zügig um ein<br />
Logging im MIND-Format erweitert werden.<br />
9.2.4 Tool zur Erstellung von Logdateien<br />
Um den Einsatz des Reinduction-Tools bei Erzeugung von neuen Wrappern zu erleichtern,<br />
könnte ein weiteres Tool entwickelt werden, das den Benutzer bei der Erstellung<br />
der Logdateien unterstützt. Eine einfache Lösung wäre ein Tool zur Erstellung eines<br />
Grundgerüstes für die Logdateien, die der Benutzer lediglich in einem Editor mit konkreten<br />
Ergebnissen füllen muß.<br />
Eine weitergehende Variante könnte eine graphische Oberfläche sein, die mit der Angabe<br />
einer Webseite und der digitalen Bibliothek gestartet wird. In dieser GUI sollten<br />
die möglichen Schema-Attribute aus dem MIND-Schema der digitalen Bibliothek angezeigt<br />
werden. Des weiteren werden wahlweise nur die sichtbaren Elemente des HTML-<br />
Baums oder der ganze HTML-Baum dargestellt. Der Benutzer könnte dann den einzelnen<br />
Schema-Attributen Werte aus dem HTML-Baum zuweisen. Dabei muß auch eine<br />
Zuordnung der Werte zu Dokumenten möglich sein. Anschließend werden aus den dort<br />
eingegebenen Daten die Logdateien erzeugt.<br />
9.2.5 Verbesserung der regulären Ausdrücke und der Trennung von<br />
Attributen<br />
Das Reinduction-Tool ist nicht in der Lage, mehrere reguläre Ausdrücke ineinander<br />
zu schachteln. Liefern die erstellten automatisch generierten regulären Ausdrücke kein<br />
befriedigendes Ergebnis, so können häufig vorkommende reguläre Ausdrücke getestet<br />
80
KAPITEL 9. FAZIT UND AUSBLICK<br />
werden, die in einer Methode des Reinduction-Tools bzw. einer separaten Datei zusammengefaßt<br />
sind. Beispiele hierfür wären Ausdrücke, die überflüssige Satzzeichen sowie<br />
evtl. auch vorhergehenden bzw. darauffolgenden Text abtrennen.<br />
Eine weitere Möglichkeit wäre es, eine Datei zu erstellen, in der reguläre Ausdrücke<br />
gespeichert werden. Bei jedem Aufruf des Reinduction-Tools könnten die regulären<br />
Ausdrücke aus der Konfigurationsdatei des aktuellen Wrappers oder allen vorhandenen<br />
Konfigurationsdateien daraufhin überprüft werden, ob sie bereits in der Datei mit<br />
den regulären Ausdrücken gespeichert sind. Ist dies nicht der Fall, sind sie in der Datei<br />
abzulegen. Ist nun ein gefundenes Schema-Attribut noch mit regulären Ausdrücken zu<br />
behandeln, können zunächst die Ausdrücke aus der Datei getestet werden. Wird keine<br />
der genannten Methoden durch das Reinduction-Tool als erfolgreich bewertet, so ist der<br />
reguläre Ausdruck manuell zu erstellen.<br />
Zur Optimierung der Trennung von Attributen können die vorgeschlagenen Vorgehensweisen<br />
ebenfalls benutzt werden. Die beste Variante wäre allerdings, gezielt Beispiele zu<br />
untersuchen, bei denen geschachtelte reguläre Ausdrücke notwendig sind und anhand<br />
der so gewonnenen Erkenntnisse das Reinduction-Tool zu erweitern.<br />
9.2.6 Tool zur Nachbearbeitung von fehlerhaften Konfigurationsdateien<br />
Manuelle Änderungen der erzeugten Konfigurationsdatei könnten durch eine GUI unterstützt<br />
werden. Die GUI könnte z. B. die Kandidaten für die XPath-Ausdrücke anzeigen,<br />
die das Tool gefunden hat. Der Benutzer müßte lediglich noch den passenden Kandidaten<br />
auswählen, wobei sofort eine Markierung der entsprechenden Stellen im ebenfalls<br />
angezeigten XHTML-Baum erfolgt.<br />
Bei der Überarbeitung der regulären Ausdrücke ist ebenfalls eine GUI-unterstützte Hilfe<br />
denkbar. Dazu könnte z. B. ein Textfeld zur Verfügung stehen, in dem ein regulärer<br />
Ausdruck direkt erzeugt werden kann. Außerdem könnten auch Funktionen vorhanden<br />
sein, die die Erstellung regulärer Ausdrücke unterstützen.<br />
9.2.7 Suche nach Ergebnissen auf den nachfolgenden Seiten<br />
Bei der Evaluierung konnten keine Probleme durch nicht mehr gefundene Dokumente<br />
festgestellt werden. Deswegen wurde die Suche nach den Ergebnissen auf den nachfolgenden<br />
Seiten nicht implementiert. Falls die mitgeloggten Daten nicht mehr auf der<br />
ersten Seite zu finden sind, ist auf der gegebenen Seite zunächst eine Suche nach Links zu<br />
weiteren Seiten erforderlich. Dazu werden alle Links auf der Webseite gesucht. Von den<br />
81
KAPITEL 9. FAZIT UND AUSBLICK<br />
gefundenen Links kommen diejenigen für die eindeutig zugeordneten Schema-Attribute<br />
nicht mehr in Frage. Die verbliebenen Links müssen daraufhin überprüft werden, ob sie<br />
zu der URL der durchsuchten Webseite eine semantische Ähnlichkeit aufweisen. Häufig<br />
unterscheiden sie sich nur in einer Umgebungsvariablen. Weitere Indizien für URLs sind<br />
Bezeichnungen für die URLs, wie z. B. nächste Seite oder Zahlen.<br />
Die Seiten der verbliebenen URLs werden aufgerufen, und es wird überprüft, ob das<br />
Template mit dem der ersten Übersichtsseite übereinstimmt. Danach kann das<br />
Reinduction-Tool wie gewohnt arbeiten. Diese Erweiterung des Reinduction-Tools stellt<br />
eine Alternative zu der täglichen Anfrage per Cron-Job dar.<br />
82
Literaturverzeichnis<br />
[Bir]<br />
http://www-ai.cs.uni-dortmund.de<br />
/LEHRE/SEMINARE/INFORMATIONSEXTRAKTION/birkmann.pdf.<br />
[Daf] http://www.daffodil.de. Daffodil -.<br />
[DEW97] Doorenbos, Robert B., Oren Etzioni und Daniel S. Weld: A Scalable<br />
Comparison-Shopping Agent for the World-Wide Web. In: Johnson,<br />
W. Lewis und Barbara Hayes-Roth (Herausgeber): Proceedings of the<br />
First International Conference on Autonomous Agents (Agents’97), Seiten<br />
39–48, Marina del Rey, CA, USA, 1997. ACM Press.<br />
[Kno]<br />
[Kus]<br />
[McL]<br />
[Mün]<br />
Knoblock, Craig: Wrapper Validation and Maintenance.<br />
Kushmerick, Nicholas: Learning to invoke Web forms and services.<br />
McLaughin, B.: Java und XML.<br />
Münz, Stefan. http://selfhtml.teamone.de/.<br />
[Mor99] Morik, K.: Maschinelles Lernen. 1999.<br />
[NF03a]<br />
[NF03b]<br />
[Rup02]<br />
[SH96]<br />
Nottelmann, H. und N. Fuhr: Combining DAML+OIL, XSLT and probabilistic<br />
logics for uncertain schema mappings in MIND. 2003.<br />
Nottelmann, H. und N. Fuhr: The MIND Architecture for Heterogeneous<br />
Multimedia Federated Digital Libraries. 2003.<br />
Rupp, Markus: Wrapper für digitale Bibliotheken in Daffodil. Diplomarbeit,<br />
Universität Dortmund, Fachbereich Informatik, 2002.<br />
Sebastian Hetze, Dirk Hohndel, Martin Müller Olaf Kirch: LinuX,<br />
Anwenderhandbuch und Leitfaden für die Systemverwaltung. LunetIX,<br />
1996.<br />
83
LITERATURVERZEICHNIS<br />
[Usc]<br />
Usc, Kristina Lerman: Wrapper Maintenance: A Machine Learning Approach.<br />
84
Abbildungsverzeichnis<br />
2.1 Suchformular einer digitalen Bibliothek . . . . . . . . . . . . . . . . . . . 5<br />
2.2 Übersichtsseite einer digitalen Bibliothek . . . . . . . . . . . . . . . . . . 7<br />
2.3 Detailseite einer digitalen Bibliothek . . . . . . . . . . . . . . . . . . . . 8<br />
2.4 MIND-Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
3.1 Lernmodul des ShopBot . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
3.2 Lebenszyklus eines Wrappers . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
3.3 Auszug aus der syntaktischen Hierarchie der Tokentypen . . . . . . . . . 23<br />
3.4 Musterbaum, der die Struktur von Adressen beschreibt . . . . . . . . . . 24<br />
4.1 Auszüge aus Detailseiten<br />
der National Gallery of Art von Washington D. C. . . . . . . . . . . . . 31<br />
4.2 Arbeitsweise des Wrappertoolkits . . . . . . . . . . . . . . . . . . . . . . 33<br />
4.3 Beispiel einer Konfigurationsdatei . . . . . . . . . . . . . . . . . . . . . . 36<br />
5.1 Digitale Bibliothek mit zweispaltigem Aufbau . . . . . . . . . . . . . . . 43<br />
6.1 Vorgehensweise des Wrappertools . . . . . . . . . . . . . . . . . . . . . . 47<br />
6.2 Beispiel für die Ähnlichkeit von Dokumenten . . . . . . . . . . . . . . . 50<br />
6.3 Intervallverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />
6.4 Vorgehensweise des Wrappertools . . . . . . . . . . . . . . . . . . . . . . 62<br />
85