Horizontale Verknüpfung in KAT4243/039D
OPC4 ab Version 2.8.4.0-vzg11 mit FCV-Syntax vs27
Ab OPC4 Version 2.8.4.0-vzg11 mit FCV-Syntax vs27 wird bei Angabe einer parallelen oder einer Sekundärausgabe in KAT4243 das Vorhandensein dieser im Lokalsystem geprüft. Bei Vorhandensein wird über die PPN auf die Ausgabe im lokalen Katalog verlinkt, andernfalls auf den Titel im Verbundkatalog GVK.
Die FCV-Implementierung dazu findet sich im File opc4_27_tab_HERMES_FCV_pica_webhtml.fcv.
... 01-12-2015 AG Gruppe show_ppn_link um Link in den GVK anstelle OPAC erweitert, wenn andere Ausgabe (PPN in $6) nicht im LBS vorhanden ist. ... linkanfang_gso = "https://gso.gbv.de/DB=2.1/LNG=" option("lang") "/PPNSET?PPN="; ... /* fuer indirekte PPN-Links */ show_ppn_link = if (callback("\<%ppn_exists(\"" set($6) $ "\")\>") = "TRUE") [ if target(";12;" in $) [ clk_ikt "12" trm_ cvtourl($) ] ] else [ linkanfang_gso cvtourl($) ] ; ...
Erweiterung für DNB und Anzeige weiterer Informationen
Analog der Verlinkung zum GVK bei KAT4243/$C=GBV lässt sich auch eine Verlinkung zu DNB mittels ppn_exists realisieren. Zusätzlich kann (sollte) der Aufruf einer eigenen Seite erfolgen, die dem Nutzer neben den Verlinkungen auf die anderen Kataloge auch eine Erklärung und ggf. eine Supportoption bietet. Die UB Rostock hat dieses testweise realisiert.
Beispiele aus dem Katalog der UB Rostock:
code ($C) | Titel | Anmerkung |
---|---|---|
GBV | http://katalog.ub.uni-rostock.de/DB=1/XMLPRS=N/PPN?PPN=806993723 | Druck- und Online Ausgabe im lokalen Bestand |
GBV | http://katalog.ub.uni-rostock.de/DB=1/XMLPRS=N/PPN?PPN=814446566 | Online-Ausgabe wird in den GVK verlinkt |
DNB | http://katalog.ub.uni-rostock.de/DB=1/XMLPRS=N/PPN?PPN=828850585 | Online-Ausgabe wird in den Katalog der DNB verlinkt |
Dazu wurden folgende Anpassungen vorgenommen:
- <lib>_opc4_27_tab_HERMES_FCV_pica_webhtml.fcv
... /* Auswertung ueber Javascript auf eigener Seite mit Erklaerungstexten */ linkanfang_gso = "/DB=\<\%variable(DB)\>/LNG=" option("lang") "/INFO?fc=REDIR4243&code=GBV&lang=" option("lang") "&id="; linkanfang_dnb = "/DB=\<\%variable(DB)\>/LNG=" option("lang") "/INFO?fc=REDIR4243&code=DNB&lang=" option("lang") "&id="; ... show_ppn_link = if (callback("\<%ppn_exists(\"" set($6) $ "\")\>") = "TRUE") [ if target(";12;" in $) [ clk_ikt "12" trm_ cvtourl($) ] ] else [ linkanfang_gso cvtourl($) ] ; /* fuer indirekte DNB-Links */ show_dnb_link = if (callback("\<%ppn_exists(\"" set($6) $ "\")\>") = "TRUE") [ if target(";12;" in $) [ clk_ikt "12" trm_ cvtourl($) ] ] else [ linkanfang_dnb cvtourl($) ] ; ... subject1_cmd = [reset zdb_num_cmd] or show_title_link or [ reset if ("GBV" in $C) [show_ppn_link] ] or [ reset if ("DNB" in $C) [show_dnb_link] ] or ...
Eine eigene OPC4-Seite wurde angelegt (CNT_INFO), über JavaScript erfolgt das Einlesen und Auswerten der übergebenen Parameter fc, code, lang und id. Ein Template-Beispiel für DB=1 und LNG=DU:
[HERMES#SEARCH#HTML#CNT_INFO#1#DU] \TEXT= <TABLE summary="content layout" width="100%" cellpadding="0" cellspacing="0" border="0"> <%include(HTML_H1,"TITLE=Information")> <TR><TD width="35"><%include(HTML_SPACER,"W=35")></TD> <TD width="100%"> <script type="text/javascript"><!-- var fc = get_url_param('fc'); var code = get_url_param('code'); var lang = get_url_param('lang'); var id = get_url_param('id'); switch(fc) { case "REDIR4243": document.writeln("<h3 class=\"help\">Sorry, diese Ausgabe ist nicht in unserem Bestand.</h3>"); document.writeln("<p class=\"textblockspace\">"); document.writeln("<br />Weitere Angaben zu dieser Ausgabe finden Sie im "); switch(code) { case "GBV": document.writeln("<a href=\"https://gso.gbv.de/DB=2.1/LNG=" + lang + "/PPNSET?PPN=" + id + "\" target=\"_blank\">Verbundkatalog des GBV (GVK)</a>."); break; case "DNB": document.writeln("<a href=\"http://d-nb.info/" + id + "\" target=\"_blank\">Katalog der Deutschen Nationalbibliothek (DNB)</a>."); break; default: document.writeln("--- no code specified ---"); break; } document.writeln("</p>"); document.writeln("<p class=\"textblockspace\">"); document.writeln("Bitte wenden Sie sich an uns, wenn Sie Fragen zu den Möglichkeiten der Beschaffung dieser Ausgabe haben.<br /><br />Verwenden Sie dazu bitte unser " + "<a href=\"http://www.ub.uni-rostock.de/ub/xServices/quest_xde.shtml\" target=\"_blank\">Kontaktformular</a>" + " oder senden Sie uns einen <a href=\"http://www.ub.uni-rostock.de/ub/xServices/aquisug_xde.shtml\" target=\"_blank\">Anschaffungsvorschlag</a>."); document.writeln("<form><input class=\"button\" type=\"button\" value=\"Zurück\" onClick=\"history.back();\"></form>"); document.writeln("</p>"); break; default: document.writeln("<p class=\"textblockspace\">"); document.writeln("--- no function code specified ---"); document.writeln("</p>"); break; } // --></script> </td> <td width="35"><%include(HTML_SPACER,"W=35")></td> </tr> </table> \\
Die Funktion get_url_param:
function get_url_param( name ) { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if ( results == null ) return ""; else return results[1]; }
OPC4 Standard vor Version 2.8.4.0-vzg11
Ist in KAT4243 eine parallele oder Sekundärausgabe angegeben, so wird diese im OPC4 angezeigt und in den lokalen Bestand verlinkt. Bei Angabe der PPN in KAT4243, Subfield $C wird zu dieser PPN verlinkt:
PICA3: 4243 Druckausg.: Kurz, Susanne: Digital humanities N=GBV *787898406* ---- PICA-PLUS: 039D $cDruckausg.$aKurz, Susanne: Digital humanities$CGBV$6787898406 ---- Verlinkt zu: http://katalog.ub.uni-rostock.de/DB=1/MAT=/NOMAT=T/CLK?IKT=12&TRM=787898406
Ist die PPN im lokalen Bestand nicht vorhanden, landet der Link im Index des OPC4:
OPC4 mit DAIA-Abfrage
Bei Angabe der PPN in KAT4243 kann über die DAIA-Schnittstelle das Vorhandensein einer parallelen oder Sekundärausgabe im lokalen Bestand unter Angabe von PPN und ISIL abgefragt werden.
Befindet sich die parallele oder Sekundärausgabe nicht im eigenen Bestand, kann der Link ersetzt werden, z.B. durch einen Link in den Verbundkatalog GVK.
DAIA liefert für das aufgeführte Beispiel zurück:
Abfrage: http://daia.gbv.de/isil/DE-28?format=json&id=ppn:787898406 Ergebnis: { "timestamp" : "2015-06-30T11:08:23Z", "version" : "0.5", "institution" : { "href" : "http://www.ub.uni-rostock.de/", "content" : "Universitätsbibliothek Rostock", "id" : "http://uri.gbv.de/organization/isil/DE-28" }, "message" : [ { "lang" : "en", "content" : "failed to get PICA record (404): Record with ppn \"787898406\" not found in database \"opac-de-28\".\n", "errno" : "1" } ] }
Ein in den OPC4 eingebundenes JavaScript ersetzt bei not found (404) den Link:
http://katalog.ub.uni-rostock.de/MAT=/NOMAT=T/CLK?IKT=12&TRM=787898406 durch: http://gso.gbv.de/DB=2.1/PPNSET?PPN=787898406
Damit wird auf den Titel (PPN) im GVK verlinkt und die Liste der Bibliotheken angezeigt, die über die Ausgabe in Ihrem Bestand verfügen:
Beispiele
Einige Beispiele zur Veranschaulichung der Funktionsweise. Zum Vergleich auch ein Titel aus dem Katalog der SUB Göttingen ohne Rewrite4243.
OPC4 / PPN | KAT4243 | Rewrite | Result | Erläuterung |
---|---|---|---|---|
UB Rostock 813662885 | Druckausg.: Kurz, Susanne: Digital humanities N=GBV *787898406* | JA | http://gso.gbv.de/DB=2.1/PPNSET?PPN=787898406 | PPN in KAT4243, Druckausgabe nicht im Bestand, Rewrite to GVK |
UB Weimar 823623750 | Druckausg.: Lenhard, Johannes: Mit allem rechnen - zur Philosophie der Computersimulation N=GBV *791579905* | JA | http://gso.gbv.de/DB=2.1/PPNSET?PPN=823623750 | PPN in KAT4243, Druckausgabe nicht im Bestand, Rewrite to GVK |
HSB Neubrandenburg 680343318 | Online-Ausg.: Skulschus, Marco: XML: Technologien und Techniken N=GBV *684790319* | JA | http://gso.gbv.de/DB=2.1/PPNSET?PPN=684790319 | PPN in KAT4243, Online-Ausg. nicht im Bestand, Rewrite to GVK |
UB Rostock 795300719 | Druckausg.: Schwenk, Jörg: Sicherheit und Kryptographie im Internet N=GBV *793973279* | NEIN | http://katalog.ub.uni-rostock.de/DB=1/MAT=/NOMAT=T/CLK?IKT=12&TRM=793973279 | PPN in KAT4243, Druckausgabe im Bestand, NoRewrite to GVK |
UB Rostock 715254154 | Print version: Enterprise Software Architecture and Design : Entities, Services, and Resources | NEIN | http://katalog.ub.uni-rostock.de/DB=1/MAT=/NOMAT=T/CLK?IKT=1016&TRM=Enterprise+Software+Architecture+and+Design | Keine PPN in KAT4243, Verlinkung ueber IKT1016, Damit keine DAIA-Abfrage möglich |
UB Rostock 772515557 | Online-Ausg.: Die Belasteten N=DNB *103855554X* | NEIN | http://katalog.ub.uni-rostock.de/DB=1/SET=21/TTL=1/MAT=/NOMAT=T/CLK?IKT=8607&TRM=103855554X | Keine PPN in KAT4243, Verlinkung ueber IKT8607, Damit keine DAIA-Abfrage möglich |
SUB Göttingen 688702589 | Druckausg.: Fötsch, Daniel: Adaptive anwendungsspezifische Verarbeitung von XML-Dokumenten N=GBV *623731711* | NEIN | https://opac.sub.uni-goettingen.de/DB=1/MAT=/NOMAT=T/CLK?IKT=12&TRM=623731711 | PPN in KAT4243, Druckausgabe nicht im Bestand, Verlinkung in Index |
(Stand: 30.06.15)
Sources
Die im folgenden aufgeführten Sources sind beispielhaft für den OPC4 v2.8.4.0 und müssen an die lokalen Einstellungen (Verzeichnis JavaScript-Dateien, Datenbank-ID, ISIL, Texte ...), angepasst werden.
<lib>_classprf.asc
... ! 30-06-15 NEU: \CHECK_4243=/ubscript-js/rewrite4243.js fuer rewrite 4243 auf GVK mit DAIA-Abfrage ... [HERMES#CLASSPRF##] ... \CHECK_4243=/ubscript-js/rewrite4243.js ...
<lib>_zzgbv_<version>.asc
... ! 30-06-15 NEU: [HERMES#SEARCH#HTML#CHECK_4243#], bei PPN-Angabe in 4243 DAIA-Abfrage und ggf. Rewrite Verlinkung auf GVK, include in [HERMES#SEARCH#HTML#CNT_RESULTS_TITLEDATA#] ... [HERMES#SEARCH#HTML#CNT_RESULTS_TITLEDATA#] ... <%include(CHECK_4243)> \\ ... [HERMES#SEARCH#HTML#CHECK_4243#] \TEXT= <%if not(%empty(%classoption(CHECK_4243)))> <script src="/ubscript-js/jquery/jquery-1.11.3.min.js" type="text/javascript" id="jquery_script"> </script> <script src="/ubscript-js/rewrite4243.js" type="text/javascript" id="4243rewrite_script"> </script> <script type="text/javascript"> rewrite4243(<%variable(DB)>,"<%variable(LNG)>"); </script> <%end> \\
rewrite4243.js
Realisiert wird die Verfügbarkeitsabfrage und Anpassung der Anzeige des Katalogisates mittels JavaScript unter Verwendung der jQuery-Bibliothek.
function rewrite4243(DB, LNG){
// **********************************************************************************
// OPC4: Rewrite Horizontale Verknüpfung (KAT 4243)
// Dazu PPN parsen, Verfuegbarkeit ueber DAIA abfragen
// Bei Nichtvorhandensein im lokalen Bestand Rewrite auf GVK-Titel
// **********************************************************************************
// **********************************************************************************
// Datenbank, Sprache, Sigel, Starttext setzen
// **********************************************************************************
if (DB === undefined) { DB = 1; }
if (LNG === undefined) { LNG = "DU"; }
var SIGEL;
switch (DB) {
case 1: LNG=="DU"?LIBRARY=" der UB Rostock":LIBRARY=" of the UB Rostock";
SIGEL="DE-28";
break;
case 2: LNG=="DU"?LIBRARY=" der HSB Neubrandenburg":LIBRARY=" of the HSB Neubrandenburg";
SIGEL="DE-519"
break;
default: LIBRARY=""
SIGEL="DE-28"
break;
}
// GVK-Datenbank
var DB_GBV="2.1";
// Starttext
LNG=="DU"?STARTTXT="<strong>Anzeige im GVK</strong> (nicht im Bestand":STARTTXT="<strong>Show in GVK</strong> (Not in stock";
// **********************************************************************************
// PPN parsen, Verfuegbarkeit ueber DAIA abfragen und ggf. Link auf GVK setzen
// Ex.: href='http://katalog.ub.uni-rostock.de/MAT=/NOMAT=T/CLK?IKT=12&TRM=813662885
// **********************************************************************************
$( "a[href*='IKT=12']" ).each(function() {
var PPN = $( this ).attr('href').substring($( this ).attr('href').indexOf('&TRM=')+5);
PPN = PPN.substring(0,9);
var a = this;
$.ajax({
url: "http://daia.gbv.de/isil/"+SIGEL+"?format=json&id=ppn:"+PPN,
dataType: 'jsonp',
timeout: 3000,
success: function(daia){
var content = (((daia || {}).message[0] || {}).content);
// IE: indexOf statt contains
if(content && content.indexOf('(404)')>=0){
$(a).attr("href", "http://gso.gbv.de/DB="+DB_GBV+"/LNG="+LNG+"/PPNSET?PPN="+PPN);
$(a).html(STARTTXT+LIBRARY+")");
$(a).attr("target", "_blank");
return;
}
}
});
// **********************************************************************************
// Link zur Kontrolle der Anwort des [DAIA]-Servers
// Anhängen von "&DAIA" als HTTP-Request-Parameter
// Ex.: http://katalog.ub.uni-rostock.de/DB=1/XMLPRS=N/PPN?PPN=813662885&DAIA
// **********************************************************************************
// IE: indexOf statt contains
if(window.location.href.indexOf('&DAIA')>=0){
if (!$(a).find('img').length) {
$(a).parent().append(" <a href='http://daia.gbv.de/isil/"+SIGEL+"?format=html&id=ppn:"+PPN+"'><strong>[DAIA]</strong></a>");
}
}
});
}
Ansprechpartner
- Robert Stephan (UB Rostock)
- Jörg Simanowski (UB Rostock)
Weblinks
- Diese Seite wurde zuletzt am 6. Januar 2016 um 08:52 Uhr geändert.