YAZ (Z39.50 Toolkit), PHP, Apache und Windows


Im letzten Beitrag (Bibliothekskataloge/OPACs für alle?) habe ich erwähnt, dass häufig das fehlen von YAZ ein Problem beim Testen von Open Source-“OPACs” sei.

YAZ kann man unter www.indexdata.com/yaz herunterladen. Dort wird auch erklärt was YAZ eigentlich ist. Unscharf ausgedrückt, erlaubt das Toolkit den einfachen Zugriff (Abfrage) auf Daten, die per Z39.50-Protokoll übermittelt werden, jenem Protokoll also, welches von Bibliothekskatalogen verwendet wird. Woher sonst sollte man besser bibliographische Daten bekommen? 😉 Theoretisch gibt es auch ein webtauglicheres Protokoll, aber siehe dazu dann Wikipedia.

Jedenfalls wollte ich meinen Uniform Server (für Interessierte: US 5.0-Nano: Introduction) nun YAZ-fähig machen, allerdings stellte sich die Frage “Wie eigentlich”? Eine Anleitung findet sich im Pneumonochrome-Blog unter PHP5.2.6, Apache 2.2, and php_yaz. Dummerweise ist der PECL4Win-Link schon ziemlich lange tot. Deveblog gibt den guten Tipp (Download PECL Extensions for Windows), dass man die Dateien noch über museum.php.net beziehen kann.

Ich hab’s ein ganz klein wenig anderes gelöst, womit der Uniform Server portable bleibt. Prinzipiell sollte es aber auch für alle anderen WAMP-Varianten funktionieren:

  1. Download der aktuellen YAZ-Version für Windows bei Index Data (fast direkt; am besten nach “Last modified” sortieren)
  2. Installieren (YAZ Runtime reicht)
  3. Im YAZ\bin-Ordner (C:\Program Files\YAZ\bin) die DLLs markieren und kopieren (die ic*40.dll’s braucht man nicht;  spart Platz)
  4. Die DLLs im Apache-Ordner einfügen (US: x:\UniformServer\udrive\usr\local\apache2\bin)
  5. (YAZ deinstallieren :))
  6. Bei den Museum.php-Paketen ist php_yaz.dll nicht enthalten, außer in einer uralt-Version im win32-Ordner.  Wahrscheinlich ist das sogar noch die aktuelle. Direkter kriegt man die Datei unter ftp.indexdata.dk/pub/phpyaz/win32/php-5.2.3/1.0.11/php_yaz.dll.
  7. Ab damit in den PHP-Extension-Ordner (US: x:\UniformServer\udrive\usr\local\php\extensions)
  8. php.ini bearbeiten (US: x:\UniformServer\udrive\usr\local\php\php.ini) und die Zeile extension=php_yaz.dll einfügen (am besten da, wo bereits einige solcher Einträge sind ;))
  9. Fertig; Server ggf. neu starten

Wer jetzt noch schnell ausprobieren will, ob auch wirklich alles klappt, der kann PHP YAZ Example-Script coyp&pasten (wahllose ISBN für die ganz Eiligen: 0939513455). Die PHP YAZ Functions sind an gewohnter Stelle dokumentiert, sollte man etwas herumprobieren wollen.

So, jetzt stellt sich nur noch eine Frage: was ist, wenn ich lieber den GBV statt der Library of Congress hätte? Dafür gibt es dann die Z39.50 Target Directory von Index Data. Hier ein paar für den Schnelleinstieg (teilweise sind mehrere Server vorhanden, ich hab jeweils die mit 100% Verfügbarkeit bzw. den ersten genommen):

  • Library of Congress (LoC) – z3950.loc.gov:7090/voyager
  • Deutsche Nationalbibliothek (DNB) – z3950.dbf.ddb.de:210/ILTIS
  • Gemeinsamer Bibliotheksverbund (GBV) – z3950.gbv.de:210/GVK
  • Hessisches Bibliotheks-Informationssystem (HEBIS) – tolk.hebis.de:210/hebis
  • Südwestdeutscher Bibliotheksverbund (SWB) – swb.bsz-bw.de:210/swblite

Einfach beim obigen Script z.B. den GBV einzufügen funktioniert aber nicht – das scheint schon etwas trickreicher zu funktionieren alles. Aber Prinzipiell funktioniert das so wenigstens mit der YAZ-Unterstützung…

Uh, ich glaub ich hab loc.gov gerade zum abschmieren gebracht mit meinen Spielerein (und ich dacht ich hätte beim Script was kaputt gemacht wegen der Timeouts). Ich glaub ich muss weg, sorry Erik 😀


3 Antworten zu “YAZ (Z39.50 Toolkit), PHP, Apache und Windows”

  1. Good day! I know this is kinda off topic but I was wondering if you knew where I could find a captcha plugin for my comment form? I’m using the same blog platform as yours and I’m having trouble finding one? Thanks a lot!