Thesauri und Text-Retrieval mit Oracle10g

Werbung
58_64_215790_DOAG_Q3
26.07.2007
Best Practice
12:39 Uhr
Seite 60
OracleText
Thesauri und Text-Retrieval mit Oracle10g
Autor: Christian Schappeit, Schering AG
Im Lieferumfang der 9i- und 10g-Datenbanken befindet sich OracleText, das mit einer
kompletten Thesaurus-Unterstützung sehr
spezifische Suchen in textorientierten Datenbeständen ermöglicht. In diesem Artikel wird
OracleText mit bestehenden klassischen TextRetrievalsystemen verglichen.
Das lückenlose Auffinden von Literaturverweisen zu Produkten und Substanzen unter genau definierten Aspekten
ist eine Aufgabe, die in der pharmazeutischen Forschung
große Bedeutung hat. Dabei ist neben der Abdeckung der
hauseigenen Forschungsgebiete mit Substanzen und Produkten oft auch die Beachtung der Produktbezeichnungen
aus der Vergangenheit, von Mitbewerbern oder der hinzugekommenen Bezeichnungen aus Akquisitionen und
Fusionen wichtig. Das notwendige Beispiel einer bibliografischen Datenbank für die Beurteilung der Anwendbarkeit wurde auf die Anforderungen von professionellen
Online-Rechercheuren abgestimmt.
Die bei relationalen Datenbanken gebräuchliche Abfragesprache SQL könnte zwar prinzipiell zur Suche in TextStrings verwendet werden, ist jedoch in ihrer Ausprägung
nicht auf die Anforderungen im so genannten Information-Retrieval ausgerichtet. Im Information-Retrieval haben
sich darüber hinaus standardisierte Such-Sprachen und
Such-Strategien durchgesetzt, die die Recherche in nichtrelationalen Text-Datenbanken mit komplexer Verschlagwortung erleichtern. Die aus dem Jahre 1993 stammende
Common-Command-Language zur Abfrage von TextDatenbanken ist sogar in der ISO-8777 spezifiziert.
In dem betrachteten Fall war die Frage zu beantworten,
ob es möglich sei, auf Basis der unternehmensweit verfügbaren Oracle-10g-Infrastruktur die Anforderungen an spezifische Suchstrategien und insbesondere die Anwendung
von Thesaurus-Mechanismen zu erfüllen. Formal war
zunächst nur bekannt, dass in der vorhandenen Oracle 9iund 10g-Infrastruktur das Modul OracleText mit Thesaurus-Funktionalität verfügbar ist.
darüber hinaus auch erfolgreich, komplexere Suchstrategien auf Volltext-Daten abzusetzen.
OracleText bietet über den CONTAINS-Operator ein
komplettes Subsystem zur Volltextsuche an. Die Abfragen
müssen aber trotzdem immer wieder in formale und syntaktisch korrekte SQL-Statements eingebettet werden.
Die Anforderung, im Nutzer-Interface eine standardisierte, aber auch bei Texteingabe zeitökonomische Retrievalsprache zu haben, war damit immer noch ein Problem.
Mehr noch – die für die hypothetische Anwendung
geforderte Suchsprache lehnte sich stark an das Textretrieval-System TRIP-Classic an, das die CommonCommand-Language noch um zusätzliche Funktionen
erweitert.
Die über den Operator CONTAINS realisierbaren Abfragen können auf bestimmte Teile der Dokumente eingeschränkt werden, so auch auf Treffer beispielsweise mit
gleichem Wortstamm; aber auch auf Synonyme von
Begriffen ausgeweitet werden. Für die Erweiterung der
Suchanfrage auf Synonyme muss mindestens ein definierter Thesaurus vorhanden sein, der dann innerhalb des
CONTAINS-Operators gezielt ansprechbar ist.
OracleText ist in der Lage, einen umfangreichen polyhierarchischen Thesaurus aufzunehmen und entsprechend
zu verwenden. Begriffe und ihre Synonyme können in
einer komplexen Hierarchie angelegt werden und auch
beliebige Querverweise in andere Teil-Hierarchien enthalten. Zur Verwendung des Oracle-internen Thesaurus wurden polyhierarchische Strukturen – bestehend aus 20.000
Knoten – aus einem externen Ontologie-Editor (Protegé,
Stanford University) in Oracle 10g geladen und verwendet.
SELECT title, body
FROM papers
WHERE CONTAINS (body,
'blood AND cancer') > 0
Listing 1: Textsuche über den Operator CONTAINS
Es konnte schnell gezeigt werden, dass über SQL-Ausdrücke
mit dem Operator CONTAINS direkt textorientiert gesucht
werden kann, sobald ein Index vom Typ CONTEXT für die
zu durchsuchenden Spalten in Oracle erstellt wurde. Es war
60
News Q3-2007
Abbildung 1: Polyhierarchische Thesaurusstruktur im Ontologie-Editor Protegé: Der Begriff "Nase" kann sowohl den Sinnesorganen als
auch dem Gesicht oder dem Nasen-Rachen-Raum zugeordnet werden.
www.doag.org
58_64_215790_DOAG_Q3
26.07.2007
12:39 Uhr
Seite 61
OracleText
Für unsere Betrachtung war es besonders wichtig, ein realitätsnahes Bezugssystem zu schaffen. Zu diesem Zweck
wurden 200.000 reale Datensätze der betrachteten bibliografischen Datenbank extrahiert. Die Datensätze ließen
sich zunächst vereinfacht als eine Tabelle mit einer definierten Anzahl von Spalten abbilden. Da die Anforderungen an die Durchsuchbarkeit mehr Flexibilität in der
Datenstruktur stellen, ist insbesondere für die Felder der
Verschlagwortung ein Ansatz auf der Basis von verschachtelten XML-Elementen gewählt worden.
Die gewählte XML-Struktur erlaubt es einerseits, Schlagworte in Gruppen mit jeweils spezifischen Sub-Headings zu
versehen, als auch ganze Aspekte zusammenzufassen und
in einer bestimmten Kombination mit solchen SubHeadings selektiv auffindbar zu machen. Das Konzept der
Sub-Headings wird bereits bei der Verschlagwortung der
bibliografischen Datenbank PubMed der NIH erfolgreich
eingesetzt – und führt zu einer verbesserten Selektivität bei
der Suche. Für unser Beispiel sind die Datensätze beim Import als virtuelle XML-Dokumente in einer 10g-Datenbank
angelegt worden.
<?xml version="1.0" encoding="UTF-8"
standalone="no"?>
<IndexFields>
<IndexGroup>
<Index_Terms>
<Keyword>DrugA</Keyword>
<Subheading>therapeutic use</Subheading>
<Subheading>adverse effects</Subheading>
</Index_Terms>
<Index_Terms>
<Keyword>Infection</Keyword>
<Subheading>chemically
induced</Subheading>
</Index_Terms>
</IndexGroup>
<IndexGroup>
<Index_Terms>
<Keyword>DrugB</Keyword>
<Subheading>therapeutic use</Subheading>
<Subheading>adverse effects</Subheading>
</Index_Terms>
</IndexGroup>
</IndexFields>
Best Practice
CCL: KW=(DrugA OR DrugB)
SQL: CONTAINS (XML, '(DrugA WITHIN
Keyword OR DrugB WITHIN Keyword)
INPATH(//IndexFields)') > 0
Listing 3: Umsetzung der Suche in Schlagworten im Vergleich zwischen CCL und SQL/OracleText, die auch Wortgruppen enthält
lässt, zu wie vielen Aspekten ein Artikel sich jeweils zuordnen lässt. Es ist also sinnvoll, die Möglichkeit der flexiblen
Erweiterung für einzelne Datensätze zu schaffen.
Eine Reihe von Feldern mit nicht-textartigen Inhalten
(Datum, Nummerische Inhalte) sind parallel als dedizierte
Felder angelegt worden, um auch arithmetische Operationen wie die Suche in Datumsbereichen effektiv in den
Abfragen umsetzen zu können. Beim Import sind die
ursprünglichen Feldbezeichnungen beibehalten worden.
CCL: NT(Blood OR Body Fluids)
SQL: CONTAINS ('Plasma OR {Blood Cells}
OR {Blood Gases} OR {Blood Groups}
OR Urine OR Saliva OR Sweat') >0
Listing 4: Textsuche erweitert auf alle Unterbegriffe (Operator NT)
Für den betrachteten Fall war es notwendig, nicht nur
sämtliche Unterbegriffe, sondern auch die Synonyme auf
den einzelnen Unter-Ebenen in die Suche einzubeziehen.
Eine Verschachtelung des Operators NT und SYN ist in
OracleText nicht direkt möglich.
Eine Besonderheit des in OracleText implementierten
Thesaurus-Systems erschwerte die Umsetzung dieser Kombination insofern, dass so genannte Deskriptoren die Verbindung zwischen dem Synonymkreis und der Position in
der Hierarchie herstellen. Es ist daher nur möglich, über
den Deskriptor auch dessen Eltern- und Kind-Knoten zu bestimmen. Ist es einerseits zwar möglich, bei der Suche nach
dem Begriff "Nasenhöhle" das Synonym "Nasal Cavity"
aufzufinden, bleibt leider offen, welches der beiden Synonyme der Deskriptor ist und damit auch die Möglichkeit
verschlossen, die Position in der Thesaurus-Hierarchie zu
bestimmen.
Listing 2: Beispiel für die XML-Repräsentation der Verschlagwortung
von Drug A und Drug B. Nur Drug A wird in Zusammenhang mit
Infektionen erwähnt
Für die Textsuche insbesondere in den Teil-Strukturen aus
Schlagworten wurden XPath-Abfragen implementiert, die
in OracleText innerhalb des CONTAINS-Operators verfügbar sind (siehe Listing 3).
Die gewählte XML-Struktur der Felder für die Verschlagwortung erlaubt es nun, ohne Rücksicht auf eine
Normalisierung der Datenbank, eine unbestimmte Anzahl
von gruppierten Stichworten als so genannte Aspekte
aufzunehmen. Die bibliografischen Referenzen sind erfahrungsgemäß so beschaffen, dass sich nicht voraussagen
www.doag.org
Abbildung 2: Thesaurus-Beziehung mit Unter-Begriffen und Synonymen; die Deskriptoren sind fett umrandet
News Q3-2007
61
58_64_215790_DOAG_Q3
26.07.2007
Best Practice
12:39 Uhr
Seite 62
OracleText
Die Lösung des Problems ergab sich aus einem in dieser
Form nicht dokumentierten Verhalten des OracleTextThesaurus. Anhand von Funktionstests wurde ermittelt,
dass für einen Synonymkreis mit einem zusätzlich definierten Preferred-Term auch der zugehörige Deskriptor zu
ermitteln ist. Auf dieser Grundlage wurde es schließlich
möglich, zu jedem Synonym mithilfe des Preferred-Terms
den zugehörigen Deskriptor und damit die Position im
Hierarchie-Baum zu bestimmen. Daraufhin wurde bereits
beim Import der Daten für jeden Deskriptor auch ein identischer Preferred-Term angelegt. Auf der Basis dieser Vorbereitung des Thesaurus ist es nun auch möglich, den in
der CCL beziehungsweise in Trip-Systemen üblichen Befehl
"Text= Down=" zu implementieren, der im Wesentlichen
eine Verschachtelung der Operatoren NT und SYN darstellt.
Die Implementierung der Befehle aus der Suchsprache
CCL erfolgte über Java-Komponenten, die auf der Basis
von JavaCC und einer speziell angepassten Grammatik
im Rahmen der Diplomarbeit "Expertensuche mit OracleText in einer thesaurusgestützten Text-Datenbank" von
Michael Baer erarbeitet wurden (siehe "Weitere Informationen").
62
News Q3-2007
Fazit
Die entstandene Anwendung auf der Basis von Oracle 10g
und eines vorgelagerten Query-Interpreters eignet sich für
die Recherche in bibliografischen Datenbanken, deren Inhalte oft mehrdeutige oder verschlüsselte Begriffe enthalten
und die durch Experten bereits nach verschiedenen Aspekten aufgearbeitet wurden. Die selektive Durchsuchbarkeit
stellt zudem auch einen bedeutenden Mehrwert gegenüber
klassischen Text-Retrieval-Systemen dar. Durch die Verknüpfung der Vorteile eines skalierbaren Datenbank-Systems mit einer integrierten XML-Unterstützung sowie den
ebenfalls vorhandenen Werkzeugen des klassischen Text-Retrieval ist Oracle in der Lage, interessante Alternativen für
Anwender klassischer Text-Retrieval-Systeme zu liefern.
Weitere Informationen
Michael Baer (2006): "Expertensuche mit OracleText in einer thesaurusgestützten Text-Datenbank", Diplomarbeit an
der Berufsakademie in der Fachhochschule für Wirtschaft
Berlin, Fachbereich Informatik.
Kontakt:
Christian Schappeit
[email protected]
www.doag.org
Herunterladen