Einleitung

Semistrukturierte Daten sind vor allem durch die Ausbreitung des Internets zu einem Forschungsschwerpunkt auf dem Gebiet der Datenbanken geworden.
Semistrukturierte Daten sind Daten, die zwar eine gewisse Struktur haben aber nicht in ein relationales oder objektorientiertes Datenbankschema passen.
Es gibt verschiedene Ansätze, diese Daten zu handhaben. Eine Möglichkeit besteht darin, ein eigenes Datenbanksystem dafür zu entwickeln. Ein solches ist Lore (Lightweight Object Repository) [HAG+97], das an der Stanford University entwickelt wurde. Es bietet die Möglichkeit, semistrukturierte Daten sowohl direkt zu speichern als auch auf der externen Quelle zu belassen und bei Bedarf von dort abzufragen. Dafür wurde auch eine eigene Abfragesprache, Lorel, entwickelt.
Man kann aber auch sogenannte Wrapper um die Daten herumbauen, sie also mit einer Struktur einhüllen und diese dann für Anfragen nutzen. Für die Generierung der Wrapper gibt es ein Tool, das an der University of Southern California entwickelt wurde [AK97].
Webseiten in ein Datenbanksystem zu integrieren und aus einer Datenbank Webseiten als Antworten auf Anfragen zu erzeugen, ist ein ganz anderer Ansatz, der aber für den normalen Nutzer sehr entgegenkommend ist, da er ihm das anbietet, was er aus seiner täglichen Nutzung des Internets kennt. Das ARANEUS-System [AMM97] wurde speziell für diese Aufgaben an der Universit€ di Roma Tre entwickelt.
Strudel [FFK+98] wurde für die automatische Erzeugung von HTML-Seiten aus vorliegenden unterschiedlichen Datenbeständen entwickelt. Auch hierbei handelt es sich um ein System, das mit semistrukturierten Daten umgehen muß.

Im folgenden wird erst definiert, was semistrukturierte Daten sind und Datenmodelle zur Repräsentation vorgestellt. Dann wird erläutert, wie man die Struktur extrahieren und die Daten speichern kann. Abschließend werden die Abfragemöglichkeiten für semistrukturierte Daten dargestellt und die Möglichkeit der interaktiven Suche genauer beleuchtet.


1. Semistrukurierte Daten - ein Überblick

Im Internet findet man Daten mit sehr unterschiedlichen Strukturen wie Texte in den verschiedensten Formaten, Bilder, Klänge, Videos und Daten, die aus Datenbanken abgefragt werden. Im folgenden soll aufgezeigt werden, was semistrukturierte Daten kennzeichnet und wie man damit umgehen kann.

1.1 Definition semistrukturierter Daten

Die unterschiedlichen Definitionen, die es für semistrukturierte Daten gibt, kann man so zusammenfassen: Semistrukturierte Daten sind nicht streng typisiert, haben aber eine gewisse Struktur, auch wenn diese nicht sofort erkennbar ist.
Daten aus relationalen oder objektorientierten Datenbanken sind streng typisiert, da sie in das Schema aus Tabellen bzw. Klassen passen müssen. Bilder oder Klänge haben überhaupt keine Struktur. Alles, was zwischen diesen beiden Extremen liegt, sind semistrukturierte Daten.
Bei diesen kann die Struktur implizit, irregulär oder partiell sein.

1.2 Beispiele für semistrukturierte Daten

Formatierte Texte haben durch überschriften oder Absätze eine implizite Struktur, die man aber erst extrahieren muß, bevor man sie nutzen kann.
Manche Dokumente sind nach einer bestimmten Grammatik aufgebaut (z. B. HTML). In diesem Fall kann man durch Parsen Teile der Information, die in den Seiten enthalten ist, und Informationen über Beziehungen zwischen ihnen herauslösen. Die Interpretation ist dann Aufgabe der Anwendung, da Datenbanksysteme damit meist überfordert sind.
Auch hier spricht man von einer impliziten Struktur, da diese nicht sofort verwendet werden kann, sondern erst geeignet beschrieben werden muß.

Wenn man in einer Anwendung unterschiedliche Objekte zusammenführt, bekommt man eine sehr irreguläre Struktur. Manchen Objekten fehlen Attribute, bei anderen gibt es Attribute mehrfach. Ein Objekt speichert z. B. das Datum in einem Datumsformat, beim nächsten ist es ein String.

Dokumente, die zusätzlich Bilder und unformatierten Text enthalten, haben nur eine partielle Struktur. Auch wenn man nur einen Teil der Daten in der Datenbank speichert und den Rest bei Bedarf von der externen Quelle holt, erhält man eine partielle Struktur, da dann der externe Teil aus Sicht der Datenbank keine Struktur hat.

Für semistrukturierte Daten gibt es keine strenge Typisierung wie bei Daten in einem relationalen Datenbanksystem, da die Daten von unterschiedlichen Autoren stammen, die bei der Gestaltung einer Seite nicht an ein Typsystem gebunden sind. Also kann man solchen Daten auch kein festes a-priori-Schema zuordnen, das ihre Struktur beschreibt. Das hat mehrere Gründe:

  • Wenn die Daten aus sehr vielen verschiedenen Quellen stammen, haben sie viele unterschiedliche Typen. Das Schema würde sehr groß werden.
  • Daten im WWW ändern sich sehr oft, sowohl ihr Inhalt als auch ihr Typ. Das Schema müßte bei jeder änderung angepaßt werden.
  • Die Daten werden nacheinander aus verschiedenen Quellen geholt. Jeder neue Typ, der dabei auftritt, müßte in das Schema eingefügt werden.

    InhaltKapitel 2