Page tree
Skip to end of metadata
Go to start of metadata

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)TitelAnmerkung
GBVhttp://katalog.ub.uni-rostock.de/DB=1/XMLPRS=N/PPN?PPN=806993723Druck- und Online Ausgabe im lokalen Bestand
GBVhttp://katalog.ub.uni-rostock.de/DB=1/XMLPRS=N/PPN?PPN=814446566Online-Ausgabe wird in den GVK verlinkt
DNBhttp://katalog.ub.uni-rostock.de/DB=1/XMLPRS=N/PPN?PPN=828850585Online-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:

Rewrite4243 screenshot01.jpg

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:

Rewrite4243 screenshot02.jpg

Beispiele

Einige Beispiele zur Veranschaulichung der Funktionsweise. Zum Vergleich auch ein Titel aus dem Katalog der SUB Göttingen ohne Rewrite4243.

OPC4 / PPNKAT4243RewriteResultErläuterung
UB Rostock
813662885
Druckausg.: Kurz, Susanne: Digital humanities N=GBV *787898406*JAhttp://gso.gbv.de/DB=2.1/PPNSET?PPN=787898406PPN 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*JAhttp://gso.gbv.de/DB=2.1/PPNSET?PPN=823623750PPN in KAT4243, Druckausgabe nicht im Bestand, Rewrite to GVK
HSB Neubrandenburg
680343318
Online-Ausg.: Skulschus, Marco: XML: Technologien und Techniken N=GBV *684790319*JAhttp://gso.gbv.de/DB=2.1/PPNSET?PPN=684790319PPN 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*NEINhttp://katalog.ub.uni-rostock.de/DB=1/MAT=/NOMAT=T/CLK?IKT=12&TRM=793973279PPN in KAT4243, Druckausgabe im Bestand, NoRewrite to GVK
UB Rostock
715254154
Print version: Enterprise Software Architecture and Design : Entities, Services, and ResourcesNEINhttp://katalog.ub.uni-rostock.de/DB=1/MAT=/NOMAT=T/CLK?IKT=1016&TRM=Enterprise+Software+Architecture+and+DesignKeine PPN in KAT4243, Verlinkung ueber IKT1016, Damit keine DAIA-Abfrage möglich
UB Rostock
772515557
Online-Ausg.: Die Belasteten N=DNB *103855554X*NEINhttp://katalog.ub.uni-rostock.de/DB=1/SET=21/TTL=1/MAT=/NOMAT=T/CLK?IKT=8607&TRM=103855554XKeine 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*NEINhttps://opac.sub.uni-goettingen.de/DB=1/MAT=/NOMAT=T/CLK?IKT=12&TRM=623731711PPN 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("&nbsp;<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)

  • Diese Seite wurde zuletzt am 6. Januar 2016 um 08:52 Uhr geändert.
  • No labels