
Thesaurusbasierte Internetrecherche
Dokumentinformationen
Autor | Gerd Klingler |
instructor | Dr. Wolf-Fritz Riekert |
Schule | Universität Ulm |
Fachrichtung | Informatik (vermutlich) |
Ort | Ulm |
Dokumenttyp | Diplomarbeit |
Sprache | German |
Format | |
Größe | 385.00 KB |
Zusammenfassung
I.Suchmaschinen und Thesaurusbasierte Recherche
Das Dokument beschreibt die Funktionsweise von Suchmaschinen (Crawler, Suchbegriff), die das Internet nach Informationen durchsuchen. Ein Hauptfokus liegt auf der Verbesserung der Recherche durch Thesaurusbasierte Recherche. Ein Thesaurus erweitert die Suchmöglichkeiten, indem er semantische Netzwerke mit Beziehungen wie Ober-/Unterbegriff-Beziehungen und Synonymen nutzt. Dies ermöglicht präzisere Suchen nach Fachinformationen, besonders im Bereich von Metainformationssystemen und bietet Vorteile bei der Suche nach Informationsressourcen im Vergleich zu herkömmlichen Suchmaschinen, die nur wortwörtliche Übereinstimmungen finden. Die Verwendung eines multilingualen Thesaurus ermöglicht die Suche in verschiedenen Sprachen, wobei der Thesaurus als Übersetzungsmodul fungiert. Die Integration in Intranets vereinfacht die Suche nach internen Dokumenten mittels Volltextindex.
1. Suchmaschinen und ihre Funktionsweise
Der Abschnitt beginnt mit der Beschreibung der Arbeit von Suchmaschinen-Robotern, die das Internet kontinuierlich nach neuen und aktualisierten Einträgen durchsuchen. Der Startpunkt ist meist eine Adresse, die ohne zusätzliche Informationen an die Suchmaschine übergeben wird. Auch Querverweise von anderen Webseiten können zu neuen Einträgen führen. Die enormen Datenmengen werden mit spezieller Software ausgewertet und nach bestimmten Kriterien in die Datenbank der Suchmaschine eingeordnet. Beispiele für Suchmaschinen sind Altavista, Crawler, Aladin, Fireball und Nathan. Ein Vorteil dieser automatisierten Suche ist die theoretische Möglichkeit, das gesamte Internet ohne zusätzliche manuelle Arbeit zu durchsuchen. Ein Nachteil ist jedoch die fehlende inhaltliche Interpretation der Suchanfragen; die Suche liefert nur Ergebnisse, die den Suchbegriff wortwörtlich enthalten. Synonyme oder semantisch ähnliche Begriffe werden nicht berücksichtigt, was die Effektivität der Suche einschränkt. Dieser Abschnitt legt die Grundlage für die anschließende Diskussion über die Verbesserung der Suchgenauigkeit mittels Thesaurus.
2. Thesaurusbasierte Recherche Ausgangspunkt und Ziel
Das World Wide Web wird zunehmend zur Bereitstellung von Informationen genutzt, wobei die Effizienz der Recherche entscheidend für die Nutzbarkeit ist. Der Abschnitt stellt die thesaurusbasierte Recherche als Lösungsansatz vor. Ein Thesaurus wird mit einer Suchmaschine gekoppelt und dient zum einen als Vokabular an Schlagworten für die Suche. Zum anderen strukturiert er diese Begriffe in einem semantischen Netz mit Beziehungen wie Ober-/Unterbegriff-Beziehungen, Beziehungen zwischen verwandten Begriffen und Synonymbeziehungen. Das Ziel der beschriebenen Arbeit ist die Verbindung der Vorteile von Metainformationssystemen und Suchmaschinen. Dies soll dem Nutzer ein flexibles und passendes Vokabular für die Recherche bieten, ohne den Informationsanbieter zusätzlich zu belasten. Der Thesaurus ist hierbei das zentrale Element zur Verknüpfung dieser Vorteile. Die Anwendung ist besonders für die Suche nach Fachinformationen sinnvoll, da herkömmliche Suchmaschinen bei allgemeinen Informationen bereits umfangreiche Ergebnisse liefern. Ein multilingualer Thesaurus ermöglicht die Eingabe des Suchbegriffs in einer Sprache und die Übersetzung des semantischen Netzes in die Sprache der eigentlichen Suchanfrage an die Suchmaschine.
3. Thesaurusbasierte Recherche im Intranet
Die Integration eines thesaurusbasierten Suchsystems in ein Intranet vereinfacht die Suche nach internen Dokumenten erheblich. Die Notwendigkeit einer manuellen Katalogisierung entfällt, da eine Suchmaschine mit einem Volltextindex und einem Thesaurusmodul ausreicht. Diese kostengünstige Lösung benötigt lediglich eine Suchmaschine mit Volltextindex (beispielsweise Excite for Webservers) und einen passenden Thesaurus. Alternativ kann auf einen eigenen Thesaurus verzichtet werden, wenn ein geeignetes Thesaurusmodul mit einem passenden Thesaurus im Internet verfügbar ist. In diesem Fall kann das Modul mit einer im Intranet bereits vorhandenen Suchmaschine kombiniert werden. Dieser Abschnitt zeigt die praktische Anwendung und die Flexibilität des Thesaurus-basierten Suchansatzes im Kontext geschlossener Netzwerke. Die effiziente Suche nach Informationen, besonders von Fachinformationen, wird durch die Kombination von Volltextindex und Thesaurus erheblich verbessert. Der Ansatz reduziert den Aufwand und Kosten für die Informationsverwaltung.
II.Die Programmiersprache Java und ihre Rolle im Internet
Die Programmiersprache Java wird als Architekturunabhängige und sichere Sprache für die Entwicklung von Internet-Anwendungen vorgestellt. Java Applets, kleine Programme, die in Webbrowsern laufen, ermöglichen dynamische Webinhalte. Die Java Sicherheit wird durch Mechanismen wie den Byte Code Verifier gewährleistet. JDBC (Java Database Connectivity) ermöglicht den Zugriff auf Datenbanken. Die Sprache bietet Vorteile in Bezug auf Objektorientierung und vermeidet Fehlerquellen anderer Sprachen. Allerdings gibt es Einschränkungen für Applets aus Sicherheitsgründen, um die Verbreitung von schädlicher Software zu verhindern.
1. Was ist Java
Java, entwickelt von SUN Microsystems, ist eine Programmiersprache, die die Erstellung von internetbasierten Anwendungen ermöglicht. Diese Anwendungen können vom Benutzer über das Internet angefordert und auf seiner Maschine ausgeführt werden, ohne dass der Entwickler die lokale Hardware- und Betriebssystemumgebung kennen muss. Ein wichtiger Aspekt sind Java Applets, die dynamische Elemente wie bewegte Bilder auf Webseiten einfügen. Java hat aufgrund seiner Eigenschaften eine schnelle Verbreitung erfahren und ist vielen Programmierern durch seine Syntax, die Ähnlichkeiten zu C und C++ aufweist, vertraut. Die Sprache zeichnet sich durch ihre Einfachheit aus, da sie auf komplexe Konzepte wie Zeigerarithmetik, Mehrfachvererbung und C++-spezifische Elemente verzichtet. Die Architekturunabhängigkeit wird durch die Definition einer Zwischenpräsentation (Bytecode) erreicht, die von einem Interpreter auf verschiedenen Architekturen ausgeführt werden kann. Sicherheit ist ein entscheidender Faktor, besonders im Kontext des Internets. Der Byte Code Verifier spielt hier eine wichtige Rolle bei der Überprüfung des Codes vor der Ausführung.
2. Java und Sicherheit im Internet
Im Kontext des Internets, mit seinen Sicherheitsbedenken, besitzt Java besondere Bedeutung. Die elektronische Verteilung von Software, multimediale Inhalte und digitale Transaktionen erfordern ein hohes Maß an Sicherheit. Java bietet durch seinen Compiler und das Runtime-System mehrere Abwehrschichten gegen fehlerhaften Code. Die Java-Umgebung geht vom Prinzip des „Nicht-Vertrauens“ aus und unterzieht den Code strengen Prüfungen. Dies ist ein großer Vorteil bei der Datenbankanbindung. Allerdings ergeben sich daraus Einschränkungen für Java Applets, die im Webbrowser ausgeführt werden. Diese Einschränkungen sind jedoch notwendig, um die Ausführung von schädlichen Programmen wie Viren zu verhindern und die sichere Verbreitung von Java-Anwendungen zu gewährleisten. Die Balance zwischen Funktionalität und Sicherheit ist ein zentraler Aspekt der Java-Entwicklung im Internet.
3. Einschränkungen für Java Applets
Obwohl Java als vollständige Programmiersprache grundsätzlich alle Systemoperationen erlaubt, die auch andere Sprachen ermöglichen, unterliegen Java Applets aus Sicherheitsgründen Beschränkungen. Diese Einschränkungen sind essenziell für die breite Akzeptanz und Verbreitung von Java im Internet. Ohne diese Sicherheitsmaßnahmen wäre die Ausführung von unerwünschten Programmen (z.B. Viren) auf beliebigen Rechnern im WWW leicht möglich. Der Abschnitt unterstreicht den Kompromiss zwischen der Leistungsfähigkeit von Java und der Notwendigkeit, die Sicherheit im Internet zu gewährleisten. Die beschriebenen Einschränkungen sind ein notwendiges Mittel, um die Risiken zu minimieren, die mit der Ausführung von Code aus unbekannten Quellen verbunden sind. Die Balance zwischen Funktionalität und Sicherheit ist hier entscheidend für die erfolgreiche Anwendung von Java im World Wide Web.
III.Internet Datenbankanbindung und Architekturen
Die Anbindung von Datenbanken an das Internet ist ein wichtiges Thema. Es werden verschiedene Ansätze wie CGI (Common Gateway Interface), Webserver-APIs, und Microsoft Active Server Pages (ASP) beschrieben. JDBC bietet eine standardisierte Java-Schnittstelle für den Datenbankzugriff, wobei verschiedene JDBC-Treiber (Typ 1-4) für unterschiedliche Datenbanken benötigt werden. Die JDBC-ODBC-Bridge ermöglicht den Zugriff auf ODBC-Datenbanken. Zwei Architekturmodelle werden vorgestellt: die Two-Tier-Architektur, bei der Web- und Datenbankserver auf demselben Rechner laufen, und die Three-Tier-Architektur, die einen separaten Application-Server einsetzt. Firewalls spielen eine entscheidende Rolle bei der Sicherheit in beiden Architekturen. Authentifizierung findet auf verschiedenen Ebenen statt, um den Zugriff auf die Datenbank zu schützen.
1. Der Bedarf an Internet Datenbankanbindung
Die zunehmende Nutzung des Internets im privaten und kommerziellen Bereich erfordert die Anbindung von Datenbanken an diese Technologie. Viele Firmen verwenden Intranets (TCP/IP-basierte interne Netze), um Mitarbeitern den Zugriff auf Firmendaten über Browser zu ermöglichen. Die Ausgabe statischer Daten auf HTML-Seiten reicht nicht mehr aus; moderne Anwendungen basieren auf Datenbanksystemen im Hintergrund (z.B. Produktdatenbanken, Kundendatenbanken). Es gibt verschiedene Möglichkeiten, Datenbanken an das Internet/Intranet anzubinden. Der Text beschreibt zwei grundlegende Arten des Zugriffs: serverseitig (CGI, Webserver-API) und clientseitig (mittels JDBC).
2. Serverseitiger Datenbankzugriff
Der serverseitige Zugriff auf Datenbanken wird über zwei Hauptmethoden erklärt: Common Gateway Interface (CGI) und Webserver-APIs. Bei CGI sendet der Client (Webbrowser) eine Anfrage an den Webserver, der sie über das CGI an den Application-Server weiterleitet. Dieser greift auf das Datenbanksystem zu, sendet die Anfrage und liefert die Ergebnisse über das CGI zurück an den Webserver. Der Webserver erzeugt daraus dynamisch eine HTML-Seite für den Client. Ähnlich funktioniert der Zugriff über eine Webserver-API, wobei der Webserver eine spezielle API für die Verbindung zum Application-Server nutzt. Die Ergebnisse werden in beiden Fällen als statische HTML-Seiten an den Client gesendet. Die API-Methode wird als performanter dargestellt. Die verschiedenen Zugriffsmethoden stellen unterschiedliche Ansätze zur Integration von Datenbanken in Webanwendungen dar.
3. JDBC und Datenbanktreiber
JDBC (Java Database Connectivity) stellt eine standardisierte Schnittstelle für den Datenbankzugriff in Java-Anwendungen dar. Für jede Datenbank wird ein spezieller Datenbanktreiber benötigt, der als Schnittstelle zwischen JDBC und der jeweiligen Datenbank fungiert. Diese Treiber können native Programme oder Java-Applikationen sein und werden in der Regel vom Datenbankhersteller bereitgestellt. Der Text unterscheidet vier JDBC-Treibertypen. Die JDBC-ODBC-Bridge ist ein spezieller Treiber, der JDBC-Befehle in ODBC-Befehle umsetzt. Da ODBC-Treiber für viele Datenbanken existieren, ermöglicht die Bridge den Zugriff auf eine Vielzahl von Datenbanken. Die Bridge benötigt jedoch den Zugriff auf C-Bibliotheken und ist daher vorwiegend für den Einsatz mit einem Application-Server geeignet. Typ-4-Treiber stellen die modernste Variante dar; sie benötigen weder native noch ODBC-Treiber und können zur Laufzeit geladen werden.
4. Two Tier und Three Tier Architekturen
Der Text beschreibt zwei gängige Architekturen für die Internet-Datenbankanbindung: die Two-Tier- und die Three-Tier-Architektur. Bei der Two-Tier-Architektur befinden sich Webserver und Datenbankserver auf demselben Rechner. Dies ist aufgrund der Sicherheitseinschränkungen von Java Applets notwendig, da diese nur mit dem Rechner kommunizieren können, von dem sie geladen wurden. Die Three-Tier-Architektur trennt Webserver und Datenbankserver auf verschiedene Maschinen. Ein Applet kommuniziert mit einem Application-Server (oder Gateway wie CGI), der als DB-Client fungiert und die Anfrage an die Datenbank stellt. Die Ergebnisse werden vom Application-Server an das Applet zurückgegeben. Die Three-Tier-Architektur erlaubt eine bessere Trennung der Komponenten und verbesserte Sicherheitsmaßnahmen, z.B. durch Firewalls und Authentifizierung auf verschiedenen Ebenen.
5. Sicherheit und Authentifizierung
Sicherheit spielt eine entscheidende Rolle bei der Internet-Datenbankanbindung. Firewalls schützen vor unautorisierten Zugriffen. In der Three-Tier-Architektur kann die Authentifizierung auf dem Application-Server erfolgen. Der Client benötigt keine direkte Verbindung zur Datenbank, wodurch die Sicherheit erhöht wird. Zusätzliche Sicherheitsmechanismen können zwischen Application-Server und Datenbank implementiert werden. Eine einfache Authentifizierung über ein Passwort am Webserver ist nur für begrenzte Anwendungen sinnvoll, da sie zu vielen unnötigen Passwortabfragen führen würde. Das Kapitel betont die Notwendigkeit verschiedener Sicherheitsmaßnahmen und Architekturen, um den Zugriff auf Datenbanken über das Internet zu schützen.
IV.Verteilte Systeme und Remote Method Invocation RMI
Das Dokument behandelt Standards für verteilte Systeme wie CORBA, DCOM, und OSF/DCE. RMI (Remote Method Invocation) wird als Java-spezifische Technologie für die Kommunikation zwischen Java-Programmen in verschiedenen Adressräumen vorgestellt. Die Object Serialization in RMI erlaubt die Übertragung von Objekten, wobei nur java.io.Serializable
-Objekte unterstützt werden. Das Beispielsystem (Prototyp mit zweisprachigem Umweltthesaurus des Umweltbundesamtes) verwendet RMI für Datenbankabfragen. Die verwendeten Datenbanken sind Oracle7 (unter UNIX) und Access (unter WIN NT). Die Anwendung basiert auf einer Three-Tier-Architektur.
1. Wichtige Standards für verteilte Systeme
Der Abschnitt behandelt wichtige Standards für die Entwicklung und Integration von Softwarekomponenten in verteilten, heterogenen Umgebungen. Es werden CORBA (Common Object Request Broker Architecture), standardisiert von der Object Management Group (OMG), und DCOM (Distributed Component Object Model), die verteilte Variante von COM, erläutert. CORBA stellt eine Kommunikationsinfrastruktur bereit, die den plattformunabhängigen Aufruf von Operationen auf entfernten Objekten ermöglicht. DCOM, basierend auf Microsoft RPC, bietet ähnliche Funktionalität, wobei die Komponenten über einheitliche Schnittstellen angesprochen werden. Beide Technologien ermöglichen die Entwicklung verteilter Anwendungen, die über verschiedene Hardware- und Softwareplattformen hinweg funktionieren. Der Abschnitt bietet einen Überblick über etablierte Standards für verteilte Systeme und deren grundlegende Funktionen.
2. Remote Method Invocation RMI
RMI (Remote Method Invocation) ist eine Java-Technologie, die die Kommunikation zwischen Java-Programmen in verschiedenen Adressräumen ermöglicht. Ab JDK Version 1.1 ist RMI Teil der Core-API. Im Gegensatz zu CORBA setzt RMI eine homogene Umgebung voraus, da es kein sprachunabhängiges Objektmodell benötigt. RMI verwendet HTTP zum Laden von Klassen, was im Vergleich zu CORBAS schnellerem IIOP-Protokoll einen Geschwindigkeitsnachteil darstellt. RMI vereinfacht die Kommunikation zwischen Java-Komponenten in verteilten Anwendungen, jedoch innerhalb eines eingeschränkteren Kontextes als CORBA. Die Technologie ist speziell für Java-Umgebungen optimiert und bietet eine vereinfachte Entwicklungsumgebung für verteilte Java-Anwendungen. Die Einschränkungen im Vergleich zu CORBA sind aber zu beachten.
3. Object Serialization und erlaubte Datentypen für RMI
Für die Übertragung von Objekten in RMI wird Object Serialization verwendet. Nur Datentypen, die das Interface java.io.Serializable
implementieren, sind als Rückgabewert von RMI-Methoden erlaubt. Dieses Interface gewährleistet, dass Objekte in ihrem aktuellen Zustand in einen Stream geschrieben und wieder exakt so ausgelesen werden können. Nicht alle Datentypen implementieren standardmäßig dieses Interface; ein Beispiel ist java.sql.ResultSet
, der Ergebnistyp einer SQL-Abfrage. Dieser Abschnitt beschreibt die notwendigen Voraussetzungen für die Datenübertragung in RMI und verdeutlicht die Einschränkungen bezüglich der unterstützten Datentypen. Die Implementierung von java.io.Serializable
ist somit eine wichtige Voraussetzung für die Verwendung von Objekten in RMI-basierten Anwendungen.
V.Beispielrealisierung und Systemfunktionalität
Eine Beispielrealisierung des beschriebenen Systems nutzt den zweisprachigen Umweltthesaurus des Umweltbundesamtes in einer relationalen Datenbank (Normen ISO 2788 und ISO 5964). Die Anwendung ist als Three-Tier-Architektur konzipiert und nutzt RMI für die Datenbankkommunikation. Die Funktionsweise des Systems beinhaltet die Suche nach Begriffen im Thesaurus (Teilstringsuche), die Darstellung von semantischen Netzen, und die Generierung von Suchanfragen für externe Suchmaschinen (mit der Klasse MyOwnSearchEngine
). Die mehrsprachige Suche ermöglicht die Eingabe in einer Sprache und die Übersetzung der Suchergebnisse in eine andere Sprache. Der Anwender kann so effektiv Fachinformationen im Internet recherchieren.
1. Systemprototyp und verwendete Technologien
Ein Prototyp des beschriebenen Systems wurde unter Verwendung des zweisprachigen Umweltthesaurus des Umweltbundesamtes erstellt. Der Thesaurus liegt am Fraunhofer-Institut für Arbeitswirtschaft und Organisation (FAW) Ulm in Form einer relationalen Datenbank vor, die den Normen ISO 2788 und ISO 5964 entspricht. Um die Portabilität zu demonstrieren, wurden Tests mit einem Oracle7-Datenbankserver unter UNIX und einer Access-Desktopdatenbank unter Windows NT durchgeführt. Ein einfacher Wechsel des JDBC-Treibers ermöglicht den Betrieb auf beiden Plattformen. Das System ist als Three-Tier-Architektur konzipiert, wobei im Fall der Desktopdatenbank Webserver und Datenbanksystem auf demselben Rechner laufen. Die Verwendung von RMI (Remote Method Invocation) für die Datenbankabfragen und die aufbereitete Datenrückgabe an den Client zur grafischen Darstellung wird hervorgehoben.
2. Datenbankstruktur und Komponentenverteilung
Die Datenbank enthält eine Tabelle mit Thesaurusbegriffen (Deskriptoren), wobei der Primärschlüssel aus den Attributen 'Language' und 'Desc_No' besteht. Begriffe gleicher Bedeutung in verschiedenen Sprachen haben dieselbe 'Desc_No'. Die Komponentenverteilung im System ist so konzipiert, dass alle Datenbankabfragen über RMI-Methoden erfolgen. Die Datensätze werden vor der Übertragung an den Client aufbereitet, um die grafische Darstellung zu vereinfachen und die Netzwerkbelastung zu minimieren. Dieser Ansatz fokussiert auf die effiziente Datenübertragung, indem nur die vom Client tatsächlich benötigten Daten übertragen werden. Die Architektur des Systems und die Verteilung der Aufgaben zwischen den Komponenten werden detailliert beschrieben.
3. Funktionsweise des Systems und mehrsprachige Suche
Das Applet fragt beim Start die Sprachunterstützung des Thesaurus vom Application-Server ab. Der Benutzer kann dann einen Begriff suchen; die Suche basiert auf einer Teilstringsuche, die alle passenden Begriffe, Synonyme und verwandte Begriffe mit Verweisen auf den Deskriptor liefert. Eine zweite Anfrage generiert eine grafische Darstellung des semantischen Netzes. Die Ergebnisse der Thesaurussuche werden zur Erstellung der Suchanfrage für eine externe Suchmaschine verwendet. Die Suche im Thesaurus findet alle Begriffe, die mit dem Suchbegriff beginnen (Teilstringsuche), inklusive der Einträge in den Tabellen für verwandte Begriffe und Synonyme. Eine Anfrage mit einem gefundenen Begriff liefert ein semantisches Netz, dessen Darstellung von gewählten Parametern abhängt. Das System unterstützt mehrsprachige Suchen, indem die Suche im Thesaurus in einer Sprache durchgeführt und die Ergebnisse in eine andere Sprache für die Suchanfrage an die Suchmaschine übersetzt werden können. Die Klasse MyOwnSearchEngine
ermöglicht die Verwendung einer benutzerdefinierten Suchmaschine.