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