|
|
Gerrit G. GragertDer Meta-OPAC Berlin-BrandenburgKonzeption, Entwicklung & Implementation |
|
Der Meta-OPAC wurde als studentisches Projekt am Institut für Bibliothekswissenschaft der
Humboldt-Universität Berlin entwickelt. Mit seiner Hilfe ist es möglich, in mehreren
Bibliotheken der Region, die ihren OPAC über das World-Wide-Web zugänglich gemacht haben,
gleichzeitig zu recherchieren. Der vorliegende Text behandelt überblicksartig Vorbilder
wie den Karlsruher virtuellen Katalog (KVK) oder geplante Projekte auf diesem Gebiet wie
die Suchmaschine des Kooperativen Bibliotheksverbunds Berlin-Brandenburgs (KOBV). Ausführlich wird
der Aufbau und die Arbeitsweise des in der Programmiersprache JAVA entwickelten Meta-OPACs erläutert
sowie bestehende Probleme aber auch Erweiterungsmöglichkeiten diskutiert.
The Meta-OPAC was developed by a group of students of the Institute for Library Science of the Humboldt-University Berlin. He enables the search in multiple library catalogs at the same time. These regional catalogs have a World-Wide-Web-Interface. The article describes other projects like the Karlsruher virtuellen Katalog (KVK) or the Search Engine of the Kooperativer Bibliotheksverbund Berlin-Brandenburg (KOBV). The main part deals with the architecture and working order of the Meta-OPAC written in the language JAVA. It also discusses existing problems and possible future improvements. |
| Überblick |
| Credits |
Der Meta-OPAC Berlin-Brandenburg [Lit1]wurde und wird als studentisches Projekt am Institut für Bibliothekswissenschaft der Humboldt-Universität Berlin entwickelt. Die Teammitglieder sind im einzelnen (in alphabetischer Reihenfolge):
Betreut wurde das Projekt von Michael Heinz, der durch seine wegweisenden Ideen maßgeblich am Erfolg beteiligt ist.
| Darstellung der Situation |
Eine der wichtigsten Fragen bei der Aufklärung eines Verbrechens ist stets die Frage nach dem Motiv. Nun haben wir (hoffentlich) kein Verbrechen begangen, doch um den Meta-OPAC zu verstehen, ist es sicherlich hilfreich zu wissen, warum wir ihn entwickelt haben. Denn die Antwort auf die Frage Warum habt Ihr das getan? lautet nicht (zumindest nicht ausschließlich) Weil es sowas vorher noch nicht gab.
Daß dies für den regionalen Bibliothekskunden von enormen Nutzen ist, steht außer Diskussion. Doch daß die Situation gleichzeitig noch nicht hunderprozentig befriedigend ist, zeigt bereits die einfache Frage In welcher Bibliothek bekomme ich "Informationssysteme und Datenbanken" von Carl August Zehnder? Für eine vollständige Antwort ist nun jeweils eine Recherchen in 22 OPACs nötig. Diese OPACs sind natürlich Teil verschiedener Systeme, verlangen andere Handhabungen, haben unterschiedliche Feldkennungen und Anfragesprachensyntax. Zudem muß sich der Suchende merken, in welcher Bibliothek er nun den Titel gefunden hat, denn auch eine Gesamtliste aller Treffer gibt es nicht. Abspeichern der einzelnen Listen und eigenhändiges Zusammenfügen gestaltet sich ebenfalls sehr umständlich, da auch die Ausgabeformate der OPACs verschiedene sind. Zusammengefaßt: Eine schnelle und umfassende Suche nach einem Titel ist nicht möglich.
Das Prinzip des KVK ist vergleichbar mit dem Prinzip bekannter Meta-Suchmaschinen wie MetaCrawler oder MetaGer : vom Nutzer eingegeben Suchdaten werden von der Meta-Suchmaschine in eine Suchanfrage für mehrere Zielsysteme umgewandelt, dann werden diese Anfragen an die einzelnen Kataloge geschickt und schließlich die Trefferlisten gesammelt und analysiert, um daraus eine Gesamttrefferliste zu erstellen. Wie unten aufgeführt wird, baut auch der Meta-OPAC auf diesem Prinzip auf, daher sind nähere Erläuterungen dazu unter dem Punkt Der Lösungsansatz Meta-OPAC zu finden.
| Der Lösungsansatz Meta-OPAC |
Ein Problem ist also vorhanden. Eine Lösung für die Region jedoch noch nicht genau absehbar. Darum haben wir uns darangemacht, das bereits vorhandene - nämlich die WWW-OPACs einzelner Bibliotheken - zu nutzen, um damit eine adäquate Lösung zu finden, zumindest, bis der KOBV voll funktionsfähig ist.
Ein weiteres Problem ist der - bei einigen Katalogen zumindest - sehr hohe Kommunikationsaufwand [4]. Manche Kataloge sind nur nach einem Login-Vorgang und aufwendiger Auswahl von Suchmodi und einzelnen Katalogen recherchierbar. Für den normalen Nutzer gestaltet sich dies nicht als große Hürde, ein Programm muß jedoch aus den empfangenen Seiten stets unter größerem Aufwand die nötigen Daten, die verlangt werden, um eine Anfrage an den Katalog stellen zu können, extrahieren. Mitunter noch aufwendiger wird der Vorgang, wenn - wie es einige Bibliotheken tun - spezielle Rechercheserver dynamisch beim Aufruf der Einstiegsseite des Katalogs zugeteilt werden und der Nutzer dann einen (zeitabhängigen) Zugriffscode erhält.
Sind diese Hürden überwunden und wurde die Anfrage erfolgreich gestellt, taucht bei den erhaltenen Trefferlisten das nächste Problem auf. Um diese auf ein einheitliches Format zu bringen, muß das Programm erkennen, welche Zeichenketten den Titel, den Autor und das Jahr darstellen. Dies ist schwierig, da nur einige Trefferliste die einzelnen Felder explizit kennzeichnen. Andere Listen tun dies nicht, und für das menschliche Auge mag es ersichtlich sein, wie die Felder zu trennen sind, nicht jedoch für ein Programm. Solange die Felder durch ein eindeutiges Merkmal von einander getrennt sind oder eine feste Länge besitzen, ist diese Trennung noch relativ einfach. Doch leider fehlt bei einigen Listen ein solches Trennungsmerkmal und die Felder weisen eine variable Länge auf. Hier ist ein sehr hoher Aufwand nötig, um das Problem zu lösen.
Ebenfalls mit den Trefferlisten verbunden ist die Schwierigkeit, daß manche Kataloge ihre Trefferlisten in "kleinen Häppchen" von i.d.R. zehn Treffern pro Seite senden. Dies ist für den menschlichen Nutzer in Hinblick auf die Ladezeiten günstig, nicht jedoch für einen Meta-OPAC, der natürlich die gesamte Liste auf einmal benötigt. Gerade bei sehr hohen Trefferzahlen muß der Katalog sehr oft kontaktiert und um die nächste Seite gebeten werden. Auch dies erhöht den zu betreibenden Aufwand.
Da es am günstigsten ist, eine Recherche im Meta-OPAC
aus Nutzersicht sich nicht einfach beschreiben zu lassen, sondern sie selbst durchzuführen (einfach dem Link folgen),
soll der Fokus nun auf eine Recherche aus Systemsicht gerichtet werden.Nebenstehende Abbildung soll den Ablauf eine Anfrage im System verdeutlichen. Nachdem der Nutzer die gewünschte Anfrage im Meta-OPAC-Interface eingegeben hat und die Bibliothek gewählt hat, in denen er suchen möchte, werden diese Daten als erstes vom System eingelesen und von der standardisierten CGI-Formatierung [3] in eine systeminterne Form umgewandelt. Diese Form vereinfacht späteres Arbeiten mit den Daten. Nun beginnt der Meta-OPAC zu arbeiten: als erstes wird geprüft, ob der Nutzer überhaupt eine Anfrage eingegeben hat und nicht versehentlich das System gestartet hat, ohne Daten zu senden. Dann wird geprüft, ob der Nutzer mindestens eine Bibliothek gewählt hat, in der gesucht werden soll. Andernfalls wird ihm dazu erneut die Gelegenheit geboten. Sind diese beiden Punkte gewährleistet, werden die Bibliotheksmodule entsprechend der Auswahl des Nutzers aktiviert, die Anfragedaten werden ihnen zwecks Überführung in eine korrekte Anfrage für den entsprechenden Katalog übergeben und alle Anfragen schließlich gestartet.
Das System wartet nun auf eine Antwort von den Bibliotheken. Nach 60 Sekunden werden alle Anfrage, die noch keine Antwort lieferten, abgebrochen. Aus allen vorhandenen Daten erzeugt der Meta-OPAC nun die Trefferübersicht, in die die Trefferzahl bzw. die Nicht-Antwort aller gewählten Bibliotheken einfließen. Diese Übersicht wird ausgegeben und dem Nutzer so die Möglichkeit präsentiert, sich eine der Trefferlisten anzeigen zu lassen.
Durch einfachen Knopfdruck kann der Nutzer seine Wahl treffen, worauf der Meta-OPAC die entsprechende temporäre Datei ausgibt. Diese Dateien sind gekennzeichnet durch einen zeitabhängigen Zugriffscode und einen systeminternen Code für die Bibliotheken. Nach der Ausgabe kann sich der Nutzer Einzeltreffer anzeigen lassen, zu anderen Trefferlisten springen, eine neue Recherche durchführen oder auch den Meta-OPAC ganz verlassen.
Ein näherer Blick soll nun noch auf den genauen Ablauf einer einzelnen Anfrage an eine Bibliothek geworfen werden. Wieder
wird dies durch nebenstehende Abbildung visualisiert.
Die Recherchedaten werden nach Feldern (Autor, Titel, Jahr, ISBN sowie die Operatoren) getrennt an das Bibliotheksmodul übergeben. Die Feldinhalte werden an den Leerstellen zerlegt und evtl. erkannte boolsche Operatoren in die Syntax des entsprechenden Systems übertragen. Dann werden die Felder wieder so zusammengefügt, daß sie als zusammenhängende Zeichenkette an den jeweiligen OPAC gesendet werden können.
Sobald eine Antwort erhalten wurde, wird dies dem Steuerprogramm mitgeteilt. Das Bibliotheksprogramm bricht sich nicht selbst ab, wenn keine Antwort nach 60 Sekunden empfangen wurde, sondern das Steuerprogramm tut dies, sofern es keine anderslautendende Mitteilung von dem Bibliotheksprogramm erhalten hat. Im entgegengesetzten Fall einer Antwort wird jedoch nicht gewartet, sondern sofort mit dem Laden der Trefferlisten begonnen. Diese können sich über mehrer Seiten erstrecken, so daß das Programm die Bibliothek u.U. mehrmals bitten muß, die nächste Seite mit Treffern zu senden. Diese Anfrage varieren stets in der Angabe, welche Seite der Trefferliste als nächstes geschickt werden soll. Alle Listen werden vom Bibliotheksprogramm beim zeilenweisen Empfang umformatiert, so daß sie dem generellen Listenformat des Meta-OPACs entsprechen. Die umformatierte Zeile wird in eine temporäre Datei auf die Festplatte des Meta-OPAC-Servers geschrieben.
Damit hat das Bibliotheksprogramm seine Aufgabe erledigt und ist beendet. Andere Programme des Meta-OPACs dienen nun dem Nutzer dazu, die Trefferlisten aus den temporären Dateien auf seinem Bildschirm darzustellen. Über das Steuerprogramm findet die notwendige Kommunikation zwischen diesen Programmen statt, so daß das Anzeigeprogramm die richtige Datei zwecks Ausgabe finden kann. Der Nutzer erhält eine Tabelle im HTML-Format, die er auch zu späteren Verwendungszwecken mit der entsprechenden Funktion seines Browsers abspeichern kann.
| Existierende Probleme und Erweiterungsmöglichkeiten |
Keine Software ist perfekt und fehlerfrei [Lit5]. Dies gilt auch für diese. Neben sicherlich noch vielen unentdeckten Fehlern gibt es jedoch auch Probleme, die nicht so leicht durch kleine Änderungen in den Programmen behoben werden können. Außerdem läßt sich das System noch weitaus verbessern und erweitern. Beide Punkte seien zum Abschluß noch kurz angesprochen.
Eine weitere Verbesserung wäre - durch den Einsatz von JAVA leicht gegeben - neben der Nutzung des Meta-OPACs via CGI ein weiterer Zugang über JAVA-Applets bzw. JAVA-Applications, die großen Brüder der Applets. Dies hätte zum Vorteil, daß die Kommunikation mit dem Meta-OPAC nicht über einen allgemeinen Browser stattfinden würde, sondern über eine eigens für dieses Problem erstellte Anwendung. Eine in weitem Maße höhere Interaktivität wäre möglich und zudem ließen sich einige Aufgaben wie das Erstellen und Sortieren einer Gesamtliste vom Server auf den Client verlagern, welches eine Entlastung des Servers mit sich brächte. Bislang wurde von dieser Möglichkeit jedoch noch nicht gebrauch gemacht, da nur der CGI-Standard als allgemein verbreitet angesehen werden kann. Schon bei der Nutzung von JAVA-Applets bauen sich technische Hürden auf, durch die man viele Nutzer von vornherein ausgeschlossen hätte.
| Anhang |
[2] Der Karlsruher Virtuelle Katalog ist zu finden unter: http://www.ubka.uni-karlsruhe.de/. Nähere Informationen finden sich auf den KVK-Hilfeseiten unter http://www.ubka.uni-karlsruhe.de/hylib/kvk_help.html und in einem Artikel der RZ-News des Rechenzentrums der Universität Karlsruhe unter http://www.uni-karlsruhe.de/Uni/RZ/Schriften/RZ-News/96/Sep/.
[3] Ausführliche Informationen zum KOBV und Dokumente aller Entwicklungsstadien sowie eine Auflistung aller beteiligten Bibliotheken finden sich unter der zentralen Adresse http://www.kobv.de. Auch Näheres zur Z39.50-Schnittstelle ist dort zu erfahren.
[4] JAVA (http://java.sun.com) ist ein - Entschuldigung für diesen Gefühlsausbruch - wundervolles Produkt der Firma Sun (http://www.sun.com). Eine wichtige Hilfe bei der Meta-OPAC-Entwicklung waren folgende Titel:
Java 1.1 in 21 Tagen : lernen Sie die Grundlagen der Programmierung mit Java 1.1 ; entdecken Sie, wie Sie dynamische und interaktive Web-Seiten mit Java-Applets erstellen ; erkunden Sie die neuen Möglichkeiten wie JDBC, RMI und JavaBeans / Laura Lemay ; Charles L. Perkins.- Haar bei München : SAMS, 1997.- ISBN 3-8272-2009-2
Harold, Elliotte Rusty
Java Network Programming / Elliotte Rusty Harold.- Cambridge : O'Reilly, 1997.- 1. Aufl.- 422 S.- ISBN 1-56592-227-1
[5] Näheres zu bestehenden und behobenen Problemen im Meta-OPAC findet sich unter http://141.20.126.207/testphase.html.
2 Diese Zahl ist nicht offiziell, soviele OPACs haben wir im Vorfeld der Meta-OPAC Entwicklung jedenfalls in der Region gefunden. Stand: September 1998.
3 CGI : Common Gateway Interface. Dies ist eine standardisierte Schnittstelle, über welche vom Clienten (Browser) Daten an den (WWW-)Server gesendet werden können. Diese Daten können z.B. vom Nutzer eingegeben worden sein und der Server kann daraus dynamisch eine neue Webseite erzeugen. Die Verwendungsmöglichkeiten sind vielfältig.
4 Ein Extrembeispiel ist hier der Berlin-OPAC bei DBI-LINK.
5 Lines of Code (Anzahl der Programmzeilen) ist eine gängige Metrik, um die Größe von Softwareprodukten zu spezifizieren. In den 30.000 LoC sind Kommentare und Leerzeilen mitenthalten. Es mag viel klingen, doch handelt es sich "nur" um eine Software mittlerer Größe.