Evaluation von OpenBib

Das an der  USB Köln von  Oliver Flimm seit 1997 kontinuierlich entwickelte Open Source-Portal  OpenBib ermöglicht es nach eigenen Angaben, "... effizient und schnell eine grosse Anzahl an Katalogen verschiedener Bibliothekssysteme und OAI-Datenquellen unter einer komfortablen Suchoberfläche recherchierbar zu machen." Einen recht aktuellen Überblick der technischen Eigenschaften und Einsatzmöglichkeiten findet sich in  Flimm, Oliver (2007): Die Open-Source-Software OpenBib an der USB Köln - Überblick und Entwicklungen in Richtung OPAC 2.0. Da die Software hauptsächlich für den auf Sisis SunRise aufsetzenden, derzeit fast 7 Mio. Einträge umfassenden  Kölner Universitäts-Gesamtkatalog (KUG) eingesetzt wird, ergibt sich für uns die Frage, ob es möglich ist, die Performanz von SunRise (v.a. in Hinblick auf den OPAC) aufgrund der Architektur von OpenBib, die eine Re-Indexierung der Katalogdaten in eine Suchmaschine (für die einfache Suche) und in eine vom Lokalsystem explizit getrennte Recherchedatenbank (für die erweiterte Suche) vorsieht, zu verbessern. Dies legt u.a. folgender Absatz im technischen Handbuch nahe:

Unsere Erfahrung mit einem alternativen Recherche-Portal hatte zwischenzeitlich gezeigt, dass Recherchen direkt auf den Quell-Systemen die entsprechenden Systeme massiv belasteten -- in den Modulen Katalogisierung, Erwerbung sowie Ausleihe waren ganz erhebliche Performance-Probleme zu verzeichnen. Die Entkopplung von Katalogisierungs- und Recherche-Datenbanken hat sich hier für beide Seiten als sehr vorteilhaft erwiesen.

Technische Dokumentation:

Installationshinweise

Ausgehend von einer standardmäßigen CentOS 5.1-Installation ergeben sich folgende über die in der Schnellinstallation beschriebenen Abhängigkeiten hinausgehenden Anforderungen:

  • Installation von libgtop
  • Durch eine bereits installierte 2er-Version von Apache mit mod_perl kam es zu Problemen bei der Installation des Apache::Request-Moduls, da dem Makefile trotz ordnungsgemäß installiertem mod_perl 1.30 eine 2er-Version von mod_perl gemeldet wurde. Workaround: libapreq direkt von der ASF  herunterladen, den BEGIN-Block in Makefile.PL, in dem die mod_perl-Version abgeprüft wird, auskommentieren und statt dessen use mod_perl 1.30; verwenden. Den anschließenden Test nicht durchführen, sondern einfach installieren!
  • Um Benchmark ':hireswallclock' verwenden zu können, benötigt man Time::HiRes.
  • Da es das Modul OAI2::Harvester in dieser Form nicht mehr zu geben scheint, wird zunächst auf seine Installation verzichtet.
  • Um das Modul Search::Xapian installieren zu können, muss  Xapian bereits installiert sein.
  • Zur Installation des Zoom-Moduls wird  YAZ benötigt.
  • Nicht dokumentierte Abhängigkeiten bestehen zu den Modulen Apache::Singleton::Process, YAML::Syck Unicode::Semantics, XML::LibXML, JSON und Business::ISBN, die ebenfalls installiert werden müssen.
  • Das Verzeichnis /usr/local/lib/site_perl muss dem System als weiterer Installationsort von Perl-Modulen bekannt gemacht werden (z.B. durch Setzen der Umgebungsvariablen PERL5LIB).
  • Bricht der Start des Apache mit der Fehlermeldung Cannot create semaphore... (Die Datei existiert bereits)... ab, kann man mit ipcrm -S <semid> die Semaphore löschen.
    ACHTUNG: Der httpd-Prozess darf im weiteren Verlauf nicht mit apachectl restart oder apachectl graceful neu gestartet werden, da dies wiederum zu Problemen mit Semaphoren und zu einem Internal Server Error führt!

Extraktion der Katalogdaten

  • Auf der ISQL-Befehlszeile mit /SunRise/sybase/OCS-12_5/bin/isql -S sisisSYB -U <benutzer> - P <passwd> -D <datenbank> anmelden.
  • Mit select katkey from titel_daten erhält man die Liste der einschlägigen IDs.
  • Mit /opt/openbib/olws/ws/perl/modules/test.pl lassen sich die Titelsätze anhand der IDs extrahieren.
  • Das Skript /opt/openbib/olws/ws/perl/modules/dump_titles.pl extrahiert Datensätze in Bündeln zu 200.000 Einträgen. Dabei erreicht es allerdings nur einen Durchsatz von 1.000 Dokumenten pro Minute. Anhand von Lasttests sollte überprüft werden, ob und in welchem Umfang sich die Datenextraktion (durch Threading) optimieren lässt.
  • Inkrementelle Aktualisierungen der zu indexierenden Daten lassen sich anhand der Differenz der zuletzt indexierten ID und dem Umfang der vorhandenen Titel realisieren. Dieser lässt sich mit select * from titel_daten_1_seq ermitteln. Zu prüfen ist noch, wie man die Indexierung geänderter Daten realisieren kann; eine erste Ansatzmöglichkeit bestünde in der Abfrage des Felds 0003 der Titeldaten, in dem das Datum der letzten Änderung steht.

AddComment?