AutoLink TIB/UB: Automatischer Abgleich von ISBNs in Webseiten mit dem Bibliothekskatalog

Motivation

Fachreferenten an Zentralen Fachbibliotheken und Bibliotheken mit Sondersammelgebieten, Pflichtexemplarrecht oder auch auf einem beliebigen Gebiet dichten Bestand stehen oft vor dem Problem, möglichst alle relevanten Veröffentlichungen für ihr Fach ausfindig zu machen. Die regelmäßig gelieferten Erwerbungsunterlagen (etwa in Form von Profildiensten aufgrund von Nationalbibliographien und vergleichbaren Daten) sind für den systematischen Bestandsaufbau ein wichtiger Grundstock, doch selbst die im Buchhandel erscheinende Literatur läßt sich damit nur lückenhaft erfassen; spätestens wo es keine  Nationalbibliographie gibt, beginnt es aufwendig zu werden.

Für die systematische Auswertung der reichlich als Werbung eingehenden Verlagskataloge hingegen bleibt selten die Zeit, zumal das bei ohnehin schon dichtem Bestand eine frustrierende Angelegenheit sein kann. Nun könnte man sich auf den Standpunkt stellen, die Vorakzession sei nicht Aufgabe des Fachreferenten, der daher großzügig alles abzeichnen könne, was relevant scheint — in beliebigem Umfang und ohne Rücksicht auf Wiederholungen, denn spätestens vor dem Bestellen würde es ja doch auffallen und dublette Erwerbung verhindert. Nur nebenbei bemerkt: Daß Fachreferenten noch Wochen, ja Monate nach  Durchsicht der Erwerbungsunterlagen auswendig wissen, was sie bereits haben bestellen lassen, gehört leider ins Reich des  Mythos, an den höchstens vereinzelte Erwerbungsleiter zu glauben scheinen; die Wahrheit ist, daß das Gedächtnis von  Fachreferenten einer Bestelldatenbank immer unterlegen ist. Wie dem auch sei, skrupelloses Abzeichnen von Bestellvorschlägen würde den Aufwand nur an eine andere Stelle verlagern und das Problem der Lückenergänzung bei dichtem Bestand nicht grundsätzlich lösen.

Wünschenswert wäre daher eine technische Möglichkeit für den automatischen Abgleich von elektronisch verfügbaren bibliographischen Daten (etwa auf Verlagsseiten im Internet) mit dem Bibliothekskatalog. Wem ein solcher Ansatz zu technokratisch erscheint, wenn nicht gar als Herabwürdigung der eigenen intellektuellen Leistung bei der Literaturauswahl, dem sei gesagt: Das ist nicht der Punkt, sondern es geht darum, schnell und automatisch diejenigen Fälle zu identifizieren, für die die intellektuelle Leistung bereits erbracht wurde, weil sie bereits in der Bibliothek vorhanden sind.

Kommandozeilentool und serverbasierte Lösung

Vor mehr als fünf Jahren entstand daher ein Perl-Skript, das für lokal gespeicherte html-Dateien mit regulären Ausdrücken und Prüfung auf Validität die ISBNs extrahiert, eine Anfrage an den Bibliothekskatalog schickte und aufgrund der Rückmeldung die  Datei derart modifizierte, daß hinter jeder ISBN stand, ob das Buch vorhanden sei oder nicht. (Voraussetzung für den sinnvollen  Einsatz ist natürlich, daß bestellte Titel bereits im Katalog angezeigt werden. Und es funktioniert nur mit textbasierten Formaten, insbesondere pdf als Ausgabeformat ist schlecht bis gar nicht für eine automatische Weiterverarbeitung geeignet.)

Wirklich komfortabel war die – wenn auch sehr flexible – Skriptlösung nicht, denn man mußte zu untersuchende Dateien erst speichern, um dann das Skript auf der Kommandozeile aufrufen. Und das Skript lief nur auf einem Rechner mit installierter Perl-Distribution, was in den meisten Bibliotheken an den Rechnern der Mitarbeiter die Ausnahme sein dürfte.

Nächster Schritt war daher die Erweiterung des Skripts zu einem über Webformular zugänglichen serverbasierten Dienst. Über die technischen Herausforderungen (ich hatte überhaupt erst begonnen, Perl programmieren zu lernen, um das ursprüngliche Skript zu schreiben, und von cgi-Programmierung hatte ich noch weniger Ahnung) und administrative Schwierigkeiten des Hostings eines laienhaft programmierten Tools will ich hier nicht reden. Im Ergebnis jedenfalls stand das »Acquisition Support System« – abgekürzt »ASS« und so benannt in liebevoller Ironisierung der Vorliebe von Bibliothekaren für Akronyme – fortan  auch den Kollegen in der Bibliothek zur Verfügung. Bald kamen Anpassungen für weitere Bibliotheken hinzu, denn dank geeigneter Parametrierung war es relativ leicht, dasselbe cgi-Skript für mehrere Bibliotheken einzurichten.

Über das Webformular konnten entweder Dateien hochgeladen und verarbeitet werden oder gleich ein URL angegeben werden. Verbessern konnte ich mit wachsender Erfahrung auch die regulären Ausdrücke, so daß die Auswahl, ob auf ISBN10 oder  ISBN13 geprüft werden solle, überflüssig wurde und das universelle Muster gut funktionierte.

Acquisition Support System (ASS) - Webformular

Dennoch blieben Wünsche offen: Da die modifizierte Seite von einem fremden Server ausliefert wurde, funktionierten relative Links nicht mehr. Stylesheets und Grafiken wurden nicht gefunden, das Layout war oft zerschossen. Auch die Zeichenkodierung konnte ein Problem werden. Das hätte man sicher beheben können, aber da ich für den Notfall immer noch die Kommandozeilenversion hatte, war der Bedarf dafür gering. Es hätte auch nichts am größten Ärgernis geändert: jedesmal bewußt entscheiden zu müssen, eine Quelle gegen den Katalog zu prüfen, und aktiv zu werden, d.h. mindestens das Webformular aufrufen und den URL eingeben. Das lohnte sich nur, wenn genügend einschlägige Titel mit ISBN auf einer Webseite vorhanden waren, bei geringer Zahl war die Schwelle zu hoch.[1]

Clientbasierte Lösung mit Greasemonkey-Skript

Unter dem Titel »Auch Bibliothekare brauchen moderne Hilfsmittel für ihre Arbeit« habe ich vor 1½ Jahren unter anderem das Vorhaben skizziert, mit dem auf der Grundlage der ISBN schon beim Laden von Webseiten ein automatischer Abgleich mit einem Bibliothekskatalog erfolgen sollte. Als Inspiration diente vor allem ein kleines Greasemonkey-Skript, das Edward  Vielmetti unter dem Titel »Inserting library holdings information into Google Book Search« vorgestellt hat; es prüft bei der Recherche in Googles Buchsuche, ob ein ausgewähltes Buch auch in der Bibliothek vorhanden ist und fügt eine entsprechende Notiz und einen Link auf den Katalog in die Seite ein. Für einzelne Webseiten mit standardisiertem Aufbau wie eben Googles Buchsuche oder den Amazon-Katalog mit jeweils einer zu extrahierenden ISBN, die gleichzeitig als Anker für den einzufügenden Link auf den Bibliothekskatalog dient, erweist sich die Sache als nicht sehr kompliziert: Gibt es erst einmal die Idee und eine prototypische Realisierung, läßt sich das relativ einfach auf andere Bibliotheken mit ihrem jeweiligen Katalog übertragen, zumindest solange die Katalog gut skriptbar sind (d.h. auf Authentifizierung, Sessioncookies, per JavaScript nachladende Frames und ähnliche Scheußlichkeiten verzichten sowie Suchabfragen mit GET-Abfragen übergeben werden können).

Als schwieriger erweist sich schon die Verallgemeinerung auf beliebige Seiten mit beliebig vielen ISBNs. Hilfreich war der Hinweis auf die LibX-Toolbar, die unter anderem eine Autolinking-Funktion für ISBNs enthält, die auf Webseiten erkannt werden und für die ein Link auf den Bibliotheksatalog eingefügt wird. Zunächst dachte ich daran, einfach LibX für den Katalog der TIB/UB einzurichten und anschließend die fehlende Funktionalität (Abfrage am Katalog und entsprechende Modifikation der Seite) dort einzubauen. Das erwies sich aufgrund der Komplexität von LibX als zu kompliziert für mich, daher griff ich auf Jesse Rudermans Greasemonkey-Skript AutoLink zurück, das auch der entsprechenden Funktionalität von LibX zugrunde liegt.

Ein Prototyp, seit etwa einem Jahr im Einsatz, ist nach einigen Optimierungen und vor allem Behebung eines gravierenden Fehlers nun halbwegs präsentabel als Betaversion.

Zur Veranschaulichung eine Verlagsseite, einmal vor, einmal nach der Manipulation durch das Greasemonkey-Skript:

Illustration der Wirkung von AutoLink TIB/UB

Wer die Geduld für einen Screencast von mehr als zwei Minuten Länge mitbringt, kann sich auch die Livedemonstration ansehen:

Wie kann man das Ganze jetzt selbst nutzen? Zunächst ist zu beachten, daß das Tool nur mit dem Mozilla Firefox funktioniert. Um es benutzen zu können, benötigt man die Browser-Erweiterung Greasemonkey (ab Version 0.8.5, Stand 4/2010). Nach der Installation ist ein Neustart des Browsers erforderlich. Anschließend kann man das eigentliche Skript AutoLink TIB/UB installieren. Dabei muß Greasemonkey aktiv sein; falls nur der Quelltext angezeigt wird, Greasemonkey aktivieren und ggf. die Seite neu laden.

Die Benutzung ist denkbar einfach: Ist Greasemonkey aktiv, wird das Skript auf alle Seiten angewendet, außer auf den Katalog der TIB/UB (weil das sinnlos wäre), den Gemeinsamen Verbundkatalog GVK (das ließe sich ändern) und problematische Seiten, bei denen AutoLink aus irgendeinem Grund nicht funktioniert. Ein großer Vorteil der Greasemonkey-Lösung gegenüber der serverbasierten Variante ist, daß man, ohne sich aktiv dafür entscheiden zu müssen, immer das Ergebnis bekommt, egal, ob eine Seite eine ISBN oder einige hundert enthält.

Um auch ISBNs in Links auswerten zu können (wie etwa in der Wikipedia), löst das Skript solche Links vorher auf und ersetzt sie durch ihren Link-Text. Das hat natürlich Auswirkungen auf die ursprüngliche und von den Seitenanbietern intendierte Funktionalität.

Hinweise und Perspektiven

Da ich absoluter JavaScript-Anfänger bin, gebe ich keine Garantie für Funktion und Korrektheit des Skripts. Da es von Cross-Site-Skripting Gebrauch macht (bei der Abfrage am Katalog) und Links manipuliert, wird dringend empfohlen, das Skript zu deaktivieren bei allen über das reine Lesen von Webseiten hinausgehenden Aktivitäten im Browser (z.B. Online Banking, Bearbeitung von Intranet-Seiten, Arbeit mit einem CMS, Webforen oder Bibliotheksbenutzerkonto etc.). Greasemonkey kann mit Klick auf den bräunlichen bzw. gräulichen Kopf in der Firefox-Statusleiste ein- bzw. ausgeschaltet werden. Bei Seiten mit vielen ISBNs (oder wenn der Katalog gerade langsam antwortet) kann es den Browser verzögert reagieren lassen, auch zum Absturz führen. Zur Sicherheit wird ein Hinweis eingeblendet, wenn mehr als 50 ISBNs gefunden wurden.

Beispiel für eine Seite, bei der das originale AutoLink von Jesse Ruderman und folglich leider auch AutoLink TIB/UB nicht funktioniert: http://www.zentralblatt-math.org/zbmath/search/?q=an%3A05869585 Falls jemand eine Idee hat, woran das liegen könnte …

Die Verlinkung von ISBNs auf den Katalog, für der Katalog keinen Treffer geliefert hat, mag zunächst widersinnig wirken. Tatsächlich könnte man statt dessen auch gleich auf einen Verbundkatalog verlinken. Bislang habe ich das nicht umgesetzt, weil es das Überprüfen des Skripts erleichtert hat. Wenn die Zuverlässigkeit hinreichend erwiesen ist, werde ich das ändern.

Den einen oder anderen wird die Übertragbarkeit des Skripts auf andere Bibliothekskataloge interessieren. Für manche Kataloge wird es relativ einfach möglich sein, für manche nur mit größerem Aufwand. Zu den einfachen Beispielen zählen alle Kataloge auf der Basis des OCLC/PICA OPC4. Geradezu trivial ist es für andere Hannoversche Bibliotheken, da das LBS-Hannover bei der TIB/UB betrieben wird und die Kataloge sich technisch nur durch eine Datenbanknummer unterscheiden. Um AutoLink TIB/UB für den Katalog der Bibliothek der FH Hannover anzupassen, reicht es, die folgenden Zeilen


// Für Abfrage im Picaplus-Format (Parsing der Signatur einfacher)
var libraryUrlPatternA = 'http://opac.tib.uni-hannover.de/DB=1/LNG=DU/CMD?ACT=SRCHA&PRS=PP%7F&TRM=';
// Für Einfügen des Links auf den Katalog
var libraryUrlPatternB = 'http://opac.tib.uni-hannover.de/DB=1/LNG=DU/CMD?ACT=SRCHA&IKT=1016&SRT=YOP&TRM=num+';
// Name der Bibliothek (möglichst kurz, wird u.a. hinter ISBNs in die Webseiten geschrieben)
var libraryName = 'TIB/UB';

zu ändern in:


// Für Abfrage im Picaplus-Format (Parsing der Signatur einfacher)
var libraryUrlPatternA = 'http://opac.tib.uni-hannover.de/DB=4/LNG=DU/CMD?ACT=SRCHA&PRS=PP%7F&TRM=';
// Für Einfügen des Links auf den Katalog var libraryUrlPatternB = 'http://opac.tib.uni-hannover.de/DB=4/LNG=DU/CMD?ACT=SRCHA&IKT=1016&SRT=YOP&TRM=num+';
// Name der Bibliothek (möglichst kurz, wird u.a. hinter ISBNs in die Webseiten geschrieben)
var libraryName = 'Bib-FHH';

Tatsächlich wurde nur in den Katalogadressen »DB=1« durch »DB=4« ersetzt und der Bibliotheksname geändert. Wenn man möchte, kann man noch den deskriptiven Teil anpassen:


// ==UserScript==
// @name AutoLink TIB/UB
// @namespace http://www.tempelb.de/
// @author Bernhard Tempel
// @description Wandelt ISBNs in Links auf den Katalog der TIB/UB um und ermittelt, ob die Bücher in der Bibliothek vorhanden sind.
// @include *
// @exclude http://opac.tib.uni-hannover.de/*
// ==/UserScript==

Bei Anpassung auf Kataloge außerhalb des LBS Hannover empfiehlt es sich, zusätzlich zu den Variablen noch den Basis-URL des Katalogs in die @exclude-Anweisung aufzunehmen, auch werden dort möglicherweise andere Muster für die Auswertung der Anfrageergebnisse benötigt, die aber auch im Variablenblock enthalten sind.

Nicht verschwiegen sei an dieser Stelle, daß auch die Updatefunktion anzupassen ist, weil sie auf die ID-Nummer des Skripts auf http://www.userscripts.org verweist.

Auf diese Weise lassen sich einzelne Greasemonkey-Skripte für verschiedene Bibliothekskatalog erzeugen, wobei  Verbesserungen am eigentlichen Skript dann jeweils nachgezogen werden müßten. Das ginge sicher mit einem Build-Systems, zu überlegen wäre auch ein einziges Greasemonkey-Skript mit Optionen für die verschiedenen Kataloge. Die Luxusvariante wäre schließlich eine Firefox-Erweiterung, die ohne Greasemonkey für sich verteilt werden kann. Eine solche Erweiterung könnte verschiedene Kataloge als Optionen enthalten oder sogar konfigurierbar sein. Sie müßte aber wie Greasemonkey mit einem Mausklick in der Statuszeile ein- und ausschaltbar sei, ohne einen Neustart des Browsers zu verlangen. Das aber ist ein weites Feld, von dem ich nicht weiß, ob ich es beackern werde.

Da das Skript noch in Entwicklung ist, nehme ich Fehlermeldungen und Wünsche für Weiterentwicklung jederzeit gern  entgegen. Die Umsetzung bleibt natürlich vorbehalten, da die Entwicklung mein Freizeitvergnügen ist, wenn auch aus Bedürfnissen der Fachreferatsarbeit motiviert. Es ist auch eine Update-Funktion integriert, die mit Greasemonkey 0.9.3 funktioniert, nicht aber mit der aktuellen Version 0.9.5; der Hinweis auf die Verfügbarkeit eines Updates wird zwar angezeigt, aber nicht der Browsertab mit der Downloadseite geöffnet. Diese läßt sich aber manuell öffnen, und die Aktualisierung des Skripts muß ohnehin manuell durch Überinstallation erfolgen.

Updates 3. Juli 2011:

  1. Mit dem jetzt verfügbaren Greasemonkey 0.9.6 funktioniert auch die Update-Funktion wieder.
  2. Ich habe außerdem eine neue Version des Skripts erstellt, bei der über das Greasemonkey-Menü „Benutzerskript-Befehle“ Kataloge unterschiedlicher Bibliotheken ausgewählt werden können. Für Kataloge auf der Basis von OPC4 funktioniert das ganz gut, es muß nur einer Version des Skripts gepflegt werden, und alle können von der Updatefunktion profitieren. Als Standard ist der Katalog der TIB/UB voreingestellt (logisch, da für mich der wichtigste). Nach der Auswahl eines anderen Katalogs (zur Zeit sind die Einstellungen für Benutzung mit den Katalogen der GWLB Hannover, der Bibliothek der FH Hannover und dem Stabikat der SBB-PK im Skript enthalten), bleibt diese Einstellung erhalten, bis man erneut wechselt; die einmal gewählte Einstellung überlebt auch Browser- und Rechnerneustart, weil eine lokale, skriptbezogene Firefox-Variable gespeichert wird. Vgl. dazu die Greasemonkey-Dokumentation:  „Values are saved in the Firefox preferences back end and can be manually inspected or changed by typing about:config in the address bar and searching for the preference name ‚greasemonkey.scriptvals.namespace/script_name.value_name‚. (For appropriate values of namespace, script_name and value_name.)“ (http://wiki.greasespot.net/GM_setValue, Abruf 2011-07-03).
  3. Die unter 2. beschriebene Lösung hat noch einen Nachteil: Da ISBNs des je eigenen Katalogs nicht ausgewertet werden sollen (gerade wenn sich bei einem Nulltreffer-Ergebnis der Index über alle Nummern öffnet, ist das ziemlich absurd) und die von der Anwendung ausgeschlossenen Seiten global für das gesamte Skript ausgeschlossen werden, muß für jeden neu aufgenommenen Katalog die Ausschlußliste erweitert werden. Manchmal wäre es aber durchaus von Interesse, wenn bei Recherche in einem anderen Katalog als dem der eigenen Bibliothek das Skript angewandt würde. Auch dies muß dann auf Nutzerseite individuell angepaßt werden.
  4. Weitere Kataloge nehme ich gern auf, wenn sich der Aufwand in Grenzen hält. Bitte in Kommentaren oder per E-Mail melden.
  5. Der Name des von mir betreuten Skripts bleibt „AutoLink TIB/UB“, auch wenn Edlef Stabenau natürlich recht hat, wenn er in seinem freundlichen Hinweis auf das Tool bemerkt, daß der Name spezieller als das Verfahren und das Tool ist. Aber das Ganze hat ja auch einen Marketing-Aspekt.

Updates 20. Juli 2017:

  1. Da das damals benutzte Repositorium für Greasemonkey-Skripte unter userscripts.org seit geraumer Zeit nicht mehr existiert, habe ich im Text oben den Link auf das neue Repositorium https://greasyfork.org aktualisiert. In aktuellen Greasemonkey-Versionen ist auch eine Update-Funktion für Skripte enthalten, so daß Updates von Autolink TIB/UB korrekt angeboten bzw. installiert werden.
  2. Für Google Chrome (unter Debian Linux: Chromium) existiert mit Tampermonkey eine Browsererweiterung, die ebenfalls Greasemonkey-Skripte nutzbar macht. Autolink TIB/UB läuft auch unter Tampermonkey.
  3. Autolink TIB/UB und einige weitere, teils darauf aufsetzende Mehrwertdienste werden in folgendem Beitrag beschrieben:
    Balz, Nina / Eberl, Michael / Schumm, Irene / Tempel, Bernhard / Zumstein, Philipp: Literaturauswahl und -bestellung leichter gemacht!. In: BIT online : Bibliothek, Information, Technologie 17 (2014) Nr. 6, S. 519-530 (https://doi.org/10.15488/222).

[1] Zu Funktionsweise und Einsatzmöglichkeiten des ASS vgl. auch Dieter Schwartz: Bestandsanalyse einer hybriden Bibliothek. Auswertung von elektronischen und konventionellen Buchbeständen. In: B.I.T. online 13 (2010) Nr. 1, S. 27-34 (http://www.b-i-t-online.de/heft/2010-01/fachbeitrag3, Abruf 2011-06-18).

Permanentlink zu diesem Beitrag: http://www.tempelb.de/autolink-tibub/

7 Kommentare

2 Pings

Zum Kommentar-Formular springen

  1. Noch zwei Nachträge: 1) Das ursprüngliche Perl-Skript (die Kommandozeilenversion oder die serverbasierte) haben noch nicht ausgedient, weil Greasemonkey-Skripte nicht auf lokal gespeicherte Dateien angewandt werden. 2) Wenn man erst einmal solche Tools zur Verfügung hat, stellt man auch fest, daß immer seltener auf Verlagsseiten in Titellisten auch die ISBN angegeben ist, die man oft erst in der Detailanzeige zu sehen bekommt.

  2. Hallo!
    Von mir kam damals der Hinweis auf LibX.
    Das jetzige klingt echt gut und brauchbar.
    Ein kleiner Hinweis noch bei Listen (aus der Fakultät, etc.) die in Tabellen oder Textformat kommen. Die Dateien lassen sich über die Funktion „Als Webseite anzeigen“ auch im Browser anzeigen, mit Greasemonkey kann dann jetzt auch direkt eine ganze Liste abgearbeitet werden 😉
    Ich mache mich mal gleich an eine Anpassung für NRW und Alephbibliotheken dran! Vielen Dank!

    VG,
    A. López

  3. Danke für den Tipp, die Möglichkeit kannte ich noch gar nicht.

    Anpassung für Aleph-Kataloge ist wahrscheinlich nicht so kompliziert, hatte ich mit dem ursprünglichen serverbasierten Tool auch mal gemacht (mit dem Beispiel der UB Siegen).

    • Stefan Fangmeier auf 6. Juli 2011 bei 16:23
    • Antworten

    Lieber Herr Tempel,

    das ist wirklich ein sehr nützliches Werkzeug. Vielen Dank dafür. Ich habe es probeweise, wie von Ihnen beschrieben, für den OPAC der UB Osnabrück „umgebogen“, würde mich aber freuen, wenn Sie das in die offizielle Version integrieren könnten.

    Beste Grüße aus Osnabrück
    Stefan Fangmeier

    1. Schon erledigt – ich hoffe, es funktioniert alles wie bisher.

      Irgendwann will ich noch etwas einbauen, woran man erkennt, welcher Katalog gerade ausgewählt ist. Die erste Idee (Kennzeichnung im Greasemonkey-Menü) scheiterte leider daran, daß die Registrierung der Menü-Befehle nur einmal pro Browser-Sitzung erfolgt. Umsetzung der zweiten Idee (zusätzliches div-Element als Overlay zu jeder geladenen Seite) scheint nicht ganz trivial umsetzbar zu sein; will auch gut überlegt sein, weil solche Elemente ganz schön nerven können.

  4. Leider gibt es keine Lizenzinformationen, weder zu den nachgenutzten Skripten anderer noch zu dem eigenen „AutoLink TIB/UB“. Es wäre schön, wenn man dies ändern könnte, damit auch andere damit weiterarbeiten können.

  5. @Gunnar Information zu den Lizenzen der verwendeten Skripte habe ich nicht vollständig gefunden und fand die Situation auch unübersichtlich. autolink.js steht unter MPL, GPL und LGPL. isbn.js steht unter MTI Licence, für den Script Update Checker ist kein spezielle Lizenz angegeben, man kann es frei verwenden, Quellenangabe erwünscht. Für das Skript von Edward Vielmetti finde ich keine Lizenzangabe.

    Was autolink.user.js betrifft, kann meinen Anteil daran gern jeder in beliebiger Weise nachnutzen. Ein Beispiel gibt es schon: http://userscripts.org/scripts/review/106077

  1. […] ISBN-Tool AutoLink TIB/UB (Bernhard Tempel – […]

  2. […] Dokumentation und Anleitung zur Anpassung an den eigenen Bibliothekskatalog: http://www.tempelb.de/autolink-tibub/ […]

Schreibe einen Kommentar zu alofro Antworten abbrechen

Deine Email-Adresse wird nicht veröffentlicht.