07.03.2014 Aufrufe

Volltext

Volltext

Volltext

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 „&nbsp;“ 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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!