Inhaltsverzeichnis / Charakteristika von Volltextdatenbanken / Illustra und das PLS Text DataBlade

Oracle TextServer 3.1 mit ConText

1 Überblick

Der Oracle TextServer 3.1 und ConText sind zwei von der Oracle Corporation entwickelte und für den Einsatz mit der relationalen Datenbank Oracle7 (Oracle Server) optimierte Module für die Speicherung von und die Suche in Volltexten. Durch ihre Integration können sie auf diverse Eigenschaften des RDBMS zurückgreifen.

Der TextServer bietet die Möglichkeiten zur Speicherung von Dokumenten und grundlegende Retrievalfunktionen, wie z.B. Phrase- und Proximity-Suche, Boolesche Operatoren und Stemming an. ConText soll diese Fähigkeiten durch die Möglichkeit der Textreduktion, dem des automatischen Ermittelns von Thema und Inhalt eines englischen Textes, erweitern.

2 Datenmodell

Der Oracle TextServer kann Text extern im Dateisystem oder intern speichern. Dazu stehen entsprechende Datentypen bereit (z.B. EXTERNAL und LTEXT). Dabei bleiben die Dokumente normalerweise im Originalformat, so daß der Einsatz von Textfiltern für das Anzeigen im systemeigenen Anzeigeprogramm SpeedRead und beim Indexieren notwendig wird. Ein zusätzliches Feature ist die Möglichkeit der Komprimierung von intern gespeicherten Texten.

Wie in relationalen Datenbanken üblich, können die Textdaten mit anderen Daten verknüpft werden.

Für jede Texttabelle wird ein eigener Text-Index gepflegt. Dieser Text-Index ist jedoch kein Index im Sinne üblicher Datenbankindizes. Der Index wird in eigenen Datenbanktabellen gehalten. Eine weitere Besonderheit ist, daß verschiedene Stufen und Modi der Indexierung gewählt werden können.

3 Indexierung

Es werden grundsätzlich 3 Stufen der Indexierung unterschieden: Die Indexinformationen werden je nach Indexierungsstufe über vier verschiedene Tabellen verteilt: wordlist table, bit location table, word information table und linguistic analysis table.

Abbildung 3-1: Der Basisindex nach [O1]

Die Basistabellen für den Index sind die wordlist table und die bit location table. In der wordlist table werden alle beim Indexieren gefundenen Wörter eingetragen. In der bit location table werden die Dokumente, die die jeweiligen Wörter enthalten, über einen kodierten String indiziert. Gemeinsam entsprechen beide Tabellen einer einfachen invertierten Datei. Im Basis-Index werden nur diese beiden Tabellen gefüllt.

Sollen zusätzlich Frequenzangaben und/oder Informationen über die Lage von Termen (z.B. für Proximity-Suche) gespeichert werden, muß das word information indexing durchgeführt werden, um die word information table zu füllen. In den Manuals wird jedoch angegeben, daß der Index auf über das dreifache der Dokumentengröße anwachsen kann.

Weiterhin unterscheidet der TextServer zwischen zwei Indexierungsmodi:

Dafür enthält die wordlist table eine zusätzliche Spalte - das WL_TYPE-Feld. Damit läßt sich die Behandlung der Tabelleneinträge der Wortliste durch die Indexierungsmodi kontrollieren. Im stop mode werden alle Wörter, die mit STOP gekennzeichnet sind, als Stoppwort interpretiert und nicht weiter behandelt. Im pass mode werden nur jene Wörter indexiert, denen der Typ PASS zugeordnet ist. Weiterhin existieren noch die Typen FREE, KEYWORD und THEME. Mit FREE werden beim Indexieren im stop mode neu hinzugekommene Wörter angezeigt, mit KEYWORD jene, die in sogenannten keyword columns der Texttabellen vorkommen (vom Benutzer kontrolliert), und mit THEME die, die durch die Textanalyse von ConText hinzugefügt wurden.

Die ConText betreffenden Probleme werden weiter unten behandelt.

4 Retrieval

Der TextServer unterstützt durch seine Integration in ein relationales DBMS sowohl Anfragen über strukturierte Daten mittels SQL als auch Anfragen über Texte mittels erweitertem SQL. Die verwendete Abfragesprache extended-SQL ist ein um das Schlüsselwort CONTAINS erweiterter SQL-Dialekt. Es können die üblichen Operatoren der Booleschen Suche, wie auch Phrasensuche, Proximity-Suche, Fuzzy Matching, Wildcards angewendet werden. Interessant ist das Feature Texte in sections, d.h. in Strukturen wie Sätze, Absätze, ..., unterteilen und durchsuchen zu können. Diese Unterteilung erfolgt nicht beim Indexieren, sondern während der Suche anhand von section markers. Ein Beispiel für eine Suchanfrage: Als weitere Features sind noch das Stemming und die Bestimmung von Thesauri zu nennen. Das Stemming kann über die Funktion VARIANT erfolgen. Dabei wird zwischen dem inflectional stemming (Flektieren) und dem derivational stemming (Bildung neuer Wörter) unterschieden. Ableitungen sind aber nur für Wörter im Englischen möglich. Im Thesaurus lassen sich hierarchische Beziehungen, Synonyme und Terme mit anderen Beziehungen (related terms) definieren. Ein Beispiel für die Suche nach 'publication' und Synonymen für 'publication' in der Tabelle 'books': Das Ranking erfolgt anhand der Termhäufigkeit.

5 Erweiterungen des TextServers durch ConText

Das Modul ist nur für die englische Sprache erhältlich. Die wichtigsten Features, die von Oracle ConText Option geboten werden, sind: Das theme grading system kann dazu genutzt werden, den Text eines Dokumentes für das Indexieren und für das Anzeigen mittels des Textbetrachters SpeedRead zu reduzieren. Es könne bis zu 16 Wörter pro Satz extrahiert werden.

ConText bietet außerdem die Möglichkeit, einem Dokument einen bis zu 16 gewichtete Wörter (themes) enthaltenden theme vector zuzuordnen. Themen sind Wörter, die den Inhalt des Dokumentes wiedergeben sollen und dabei nicht selbst darin vorkommen müssen.(Leider ist über die Art und Weise der Reduktion nichts zu berichten.)

Die Ergebnisse der Textreduktion werden einerseits in der wordlist table (mit der Kennzeichnung THEME) vermerkt und andererseits werden in der linguistic analysis subtable die Informationen (Gewichtungen), die für das Ranking notwendig sind, gespeichert.

Die Abfrage erfolgt über die gespeicherten Themen, ähnlich einer Booleschen Suche. Es gibt keinen Hinweis, daß eine Abfrage auch ganze Textpassagen akzeptieren würde ("natürlichsprachlicher" Input). Ein Beispiel:

Der Ranking-Wert kann durch ConText auf zwei verschieden Arten ermittelt werden. Die einfache Methode berechnet den Wert aus der Kombination der Gewichtung der gefundenen Themen. Die erweiterte Methode kalkuliert ihn anhand der Gewichtung der Themen und der Frequenz der Themen in der Menge der zurückgegebenen Dokumente.

In den Manuals wird angegeben, daß sich die Ressourcenanforderungen durch ConText stark erhöhen. Der zusätzliche Speicherbedarf für den Index (normalerweise bei ca. 25%) wird mit 20 - 50 Prozent der Größe der Dokumente angegeben. Die Indexierungszeit soll bis um den Faktor 10 steigen.

6 Derzeitiger Entwicklungsstand

Die zwei Komponenten TextServer und ConText wurden bei der weiteren Entwicklung in einem Modul, der ConText Option, zusammengefaßt. Die aktuellste Version ist die Oracle Cartridge für Oracle8.


Inhaltsverzeichnis / Charakteristika von Volltextdatenbanken / Illustra und das PLS Text DataBlade