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:
-
Basis-Text-Indexieren (basic text indexing),
-
ConText-Indexieren (ConText indexing),
-
Wortinformations-Indexieren (word information indexing).
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:
-
dem pass mode und
-
dem stop mode.
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:
SELECT page FROM manual
WHERE page CONTAINS ('print' AND 'file') WITHIN SENTENCE
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':
SELECT page FROM books
WHERE page CONTAINS SYN('publication')
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:
-
Abfrage der Dokumente über Themen (theme),
-
Satzweise Textreduktion für die Indexierung über das theme
grading system,
-
Erzeugung von theme vectors über Dokumente,
-
speed-reading (SpeedRead ist ein Dokumentenbetrachter) zur Anzeige
des reduzierten Textes,
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:
SELECT resume FROM emp
WHERE resume CONTAINS ('rdbms' or 'c')
AND THEME('project managment')
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