<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OpenBibBlog &#187; Einblicke und Konzepte</title>
	<atom:link href="http://blog.openbib.org/category/einblicke-und-konzepte/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.openbib.org</link>
	<description>Das Blog zu OpenBib und OPAC 2.0</description>
	<lastBuildDate>Mon, 16 Jan 2012 07:13:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Literaturvorschläge für den Katalog aus der Wikipedia</title>
		<link>http://blog.openbib.org/2011/12/27/literaturvorschlage-fur-den-katalog-aus-der-wikipedia/</link>
		<comments>http://blog.openbib.org/2011/12/27/literaturvorschlage-fur-den-katalog-aus-der-wikipedia/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 22:58:25 +0000</pubDate>
		<dc:creator>Oliver Flimm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Einblicke und Konzepte]]></category>
		<category><![CDATA[Kataloganreicherung]]></category>
		<category><![CDATA[Literaturlisten]]></category>
		<category><![CDATA[Wikipedia]]></category>

		<guid isPermaLink="false">http://blog.openbib.org/?p=529</guid>
		<description><![CDATA[Die Wikipedia beinhaltet sein jeher viele Informationen, die sich &#8211; gerade wegen des offenen Charakters und der Zugänglichkeit aller Daten als Vollabzug &#8211; für eine Integration in einen Katalog eignen. Sehr interessant sind die zugehörigen Literaturnachweise mit ISBNs in den einzelnen Artikeln als Startpunkt für eine weitere Beschäftigung mit dem jeweiligen Thema. Vor mehr als [...]]]></description>
			<content:encoded><![CDATA[<p>Die Wikipedia beinhaltet sein jeher viele Informationen, die sich &#8211; gerade wegen des offenen Charakters und der Zugänglichkeit aller Daten als <a title="Index aller Wikimedia Dumps" href="http://dumps.wikimedia.org/backup-index.html" target="_blank">Vollabzug</a> &#8211; für eine Integration in einen Katalog eignen. Sehr interessant sind die zugehörigen Literaturnachweise mit ISBNs in den einzelnen Artikeln als Startpunkt für eine weitere Beschäftigung mit dem jeweiligen Thema.</p>
<p>Vor mehr als vier Jahren haben wir im KUG damit begonnen einzelne Titel mit den Namen der sie referenzierenden Artikel aus der Wikipedia anzureichern. Für den Nutzer liegen die Vorteile auf der Hand. Er bekommt ausgehend von einem einzelnen Titel einen zielgenauen Einsprung in die thematisch passenden Artikel der Wikipedia. Darüber hinaus wird auch die Recherche mit den zugehörigen Artikelnamen angereichert. Somit wird die Menge an Suchbegriffen, unter denen ein Titel gefunden werden kann sinnvoll erweitert. Ein gutes Beispiel ist der Titel <a title="Angereicherter Katalogsatz mit Wikipedia-Artikelnamen" href="http://kug.ub.uni-koeln.de/portal/connector/permalink/inst503/20791/1/kug/index.html" target="_blank">Vergleichende Primatologie</a> von Thomas Geissmann, den man auch finden kann, wenn man eine der vielen Affenarten sucht, die in den bibliographischen Daten nicht genannt wurden und die nur durch die Wikipedia für die Recherche angereichert werden konnten.</p>
<p><a href="http://blog.openbib.org/wp-content/uploads/2011/12/geissmann.jpg"><img class="alignnone size-medium wp-image-534" title="Anreicherung mit Wikipedia-Artikelnamen" src="http://blog.openbib.org/wp-content/uploads/2011/12/geissmann-300x210.jpg" alt="" width="300" height="210" /></a></p>
<p>Diese von der Wikipedia bereitgestellten Literaturlisten in den einzelnen Artikeln bilden zusätzlich aber auch &#8211; gerade wegen ihres relativ engen Themen-Fokus &#8211; eine recht gute Grundlage für die Vernetzung eben jener Titel in einem Katalog. Durch sie können neue thematische Verbindungen zwischen verschiedenen Titeln nachträglich angereichert werden und den Nutzer auf andere relevante Literatur verweisen.</p>
<p>Nach einer einfachen Literaturanalyse in der Wikipedia werden OpenBib und KUG mit diesem Netz an Literaturverweisen angereichert, das beim Aufruf eines einzelnen Titels in Echtzeit mit dem davon tatsächlich vorhandenen Bestand im aktuellen Katalog abgeglichen wird. Die Grundlage bildet das bereits für die Artikel- und Recherche-Anreicherung verwendete Programm <a title="Anreicherungen durch Literaturnennung in der Wikipedia" href="http://code.google.com/p/openbib/source/browse/branches/devel-2_4-branch/conv/enrichmnt/wikipedia2enrich.pl" target="_blank">wikipedia2enrich.pl</a>, welches nur geringfügig erweitert werden musste, um die Mengen thematisch benachbarter Titel per ISBN in einer neuen Tabelle <em>related_isbn</em> der Anreicherungsdatenbank abzulegen.</p>
<p>Die Schritte zur Bestimmung der ISBN-Mengen sind:</p>
<ol>
<li>Bestimme die Artikelnamen, in denen eine gegebene ISBN referenziert wird</li>
<li>Fasse alle weiteren in diesen Artikeln genannten ISBNs zusammen</li>
<li>Kopple diese gefundenen ISBNs zur gegebenen ISBN zur Anfragezeit mit dem lokalen Bestand</li>
</ol>
<p>Während 1 und 2 durch wikipedia2enrich.pl durchgeführt werden, ist die Rückkopplung in den lokalen Bestand im Modul OpenBib::Record::Title angesiedelt.</p>
<p>Sicherlich lässt sich diese Analyse der Literaturnennungen in der Wikipedia weiter verfeinern, aber auch so sind die Ergebnisse für unsere Nutzer vielversprechend, wie z.B. folgende Beispieltitel zeigen:</p>
<ul>
<li><a title="Beispieltitel" href="http://kug.ub.uni-koeln.de/portal/connector/permalink/inst526/6026/1/kug/index.html" target="_blank">James Rumbaugh: Objektorientiertes Modellieren und Entwerfen</a></li>
<li><a title="Beispieltitel" href="http://kug.ub.uni-koeln.de/portal/connector/permalink/inst401/11057/1/kug/index.html" target="_blank">Andreas Paul: Von Affen und Menschen</a></li>
<li><a title="Beispieltitel" href="http://kug.ub.uni-koeln.de/portal/connector/permalink/inst427/35686/1/kug/index.html" target="_blank">Marion Meyer: Die Personifikation der Stadt Antiocheia</a></li>
</ul>
<p><a href="http://blog.openbib.org/wp-content/uploads/2011/12/rumbaugh.jpeg"><img class="alignnone size-medium wp-image-536" title="Anreicherung mit Literatur aus der Wikipedia" src="http://blog.openbib.org/wp-content/uploads/2011/12/rumbaugh-300x171.jpg" alt="" width="300" height="171" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openbib.org/2011/12/27/literaturvorschlage-fur-den-katalog-aus-der-wikipedia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ein mobiler Katalog mit jQuery Mobile</title>
		<link>http://blog.openbib.org/2011/09/13/ein-mobiler-katalog-mit-jquery-mobile/</link>
		<comments>http://blog.openbib.org/2011/09/13/ein-mobiler-katalog-mit-jquery-mobile/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 07:51:56 +0000</pubDate>
		<dc:creator>Oliver Flimm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Ankündigungen]]></category>
		<category><![CDATA[Einblicke und Konzepte]]></category>
		<category><![CDATA[iWebKit]]></category>
		<category><![CDATA[jQuery Mobile]]></category>
		<category><![CDATA[Mobiler OPAC]]></category>

		<guid isPermaLink="false">http://blog.openbib.org/?p=445</guid>
		<description><![CDATA[Jakob Voss hatte bereits Anfang 2010 in einem Blog-Artikel die Entwicklungen im Bereich mobiler OPACs skizziert und eine eigene Design-Studie für PICA-Systeme vorgestellt. Diese basiert auf der bekannten Schnittstelle Z39.50/SRU sowie dem Toolkit iWebKit, das für diverse Smartphone-Betriebssysteme und -Browser optimiert ist. Auch Christian Hauschke hat diesen OPAC kurz darauf für den Gesamtkatalog Hannover eingesetzt. [...]]]></description>
			<content:encoded><![CDATA[<p>Jakob Voss hatte bereits Anfang 2010 in einem <a title="Artikel: Bibliothekskataloge für mobile Endgeräte" href="http://jakoblog.de/2010/01/27/bibliothekskataloge-fur-mobile-endgerate/" target="_blank">Blog-Artikel</a> die Entwicklungen im Bereich mobiler OPACs skizziert und eine eigene <a title="Mobiler Test-OPAC im GBV" href="http://ws.gbv.de/mtest/" target="_blank">Design-Studie</a> für PICA-Systeme vorgestellt. Diese basiert auf der bekannten Schnittstelle Z39.50/SRU sowie dem Toolkit <a title="iWebKit" href="http://snippetspace.com/projects/iwebkit/" target="_blank">iWebKit</a>, das für diverse Smartphone-Betriebssysteme und -Browser optimiert ist. Auch Christian Hauschke hat diesen OPAC kurz darauf für den Gesamtkatalog Hannover <a title="Mobiler Hobsy Katalog" href="http://bibhann.wordpress.com/2010/02/12/mobiler-hobsy-katalog/" target="_blank">eingesetzt</a>.</p>
<p>In der Zwischenzeit machten mobile OPAC&#8217;s jedoch eher dadurch von sich reden, dass sie quasi kaum genutzt werden. Im offiziellen <a title="Mobil-Portal der Universität zu Köln" href="http://mobil.uni-koeln.de/" target="_blank">mobilen Portal der Universität zu Köln</a> brachte es die Buchrecherche gerade einmal auf <a title="Vortrag Peter Koestaedt: Jeder Klick zählt" href="https://eldorado.tu-dortmund.de/handle/2003/27153" target="_blank">knapp 5 Benutzer pro Tag</a>.</p>
<p>Seit ich selbst mit einem einfachen Smartphone (Nokia 5230, Symbian) unterwegs bin, weiss ich jedoch &#8211; unabhängig von der immer wieder postulierten Sinnlosigkeit eines mobilen OPACs &#8211; die Vorzüge von Webseiten und Inhalten zu schätzen, die für mobile Endgeräte mit kleinerem Bildschirm ausgelegt sind. Um möglichst viele Nutzer zu erreichen, wurde mir &#8211; gerade mit meiner bald obsoleten Smartphone-Plattform Symbian &#8211; sehr schnell klar, dass dies mit vertretbarem Aufwand nur mit Web-Applikationen und keinesfalls mit nativen Apps gelingen kann.</p>
<p>Nachdem der Mensaspeiseplan &#8211; sozusagen &#8220;die Killer-WebApp des mobilen Uni-Portals&#8221; &#8211; aus eben jenem verschwunden war, stolperte ich letztes Wochenende über die <a title="Mobiler Mensaspeiseplan" href="http://www.kstw.de/handy" target="_blank">mobile Version der Speisepläne</a> auf den Webseiten des Kölner Studentenwerks. Diese war als Web-App mit dem mobilen Ableger des altbekannten JavaScript-Toolkits <a title="Homepage von jQuery" href="http://jquery.com/" target="_blank">jQuery</a> umgesetzt &#8211; <a title="Homepage von jQuery Mobile" href="http://jquerymobile.com/" target="_blank">jQuery Mobile</a>.</p>
<p>Wie iWebKit unterstützt jQuery Mobile verschiedene Smartphone-Betriebssysteme und -Browser, wenn auch in einer <a title="Unterstützte Plattformen von jQuery.Mobile" href="http://jquerymobile.com/gbs/" target="_blank">Mehr-Klassen-Gesellschaft</a>. Nach einer kurzen Web-Recherche zeigte es sich jedoch schnell, dass bereits andere mobile OPACs auf dieses Toolkit gesetzt haben, darunter <a title="VuFind Homepage" href="http://vufind.org/" target="_blank">vuFind</a> und <a title="Projektseite bei Google Code" href="http://code.google.com/p/evergreen-mobile-opac/" target="_blank">Evergreen</a>.</p>
<p>Da OpenBib bereits jQuery nutzte, erschien jQuery Mobile als sinnvolle Wahl für einen mobilen OPAC. Zu dieser Wahl hat auch beigetragen, dass der HTML-Seitenaufbau von jQuery Mobile sehr übersichtlich war und die Online-Dokumentation einen guten Eindruck machte.</p>
<p>Für die eigentliche Umsetzung wurde dann mit OpenBib-Mitteln ein neues <a title="Basis-Templates std_header u. std_footer des Mobile-Profils" href="http://cvs.berlios.de/cgi-bin/viewvc.cgi/openbib/openbib/portal/perl/templates/profile/mobile/?pathrev=devel-2_4-branch" target="_blank">Mobil-Profil</a> erstellt und eine kleine Untermenge aller vorhandenen Templates &#8211; <a title="Für jQuery.Mobile angepasste Templates" href="http://cvs.berlios.de/cgi-bin/viewvc.cgi/openbib/openbib/portal/perl/templates/profile/mobile/views/richtermobile/?pathrev=devel-2_4-branch" target="_blank">derzeit insgesamt 16</a> &#8211; für ein Beispiel Mobil-Portal prototypisch angepasst. Die Wahl fiel dabei auf das Demo-Portal <a title="Standard Beispiel-Portal: Die Bibliothek Elise und Helene Richter" href="http://www.richter-bibliothek.de/" target="_blank">www.richter-bibliothek.de</a>. Mit der Spezialisierung dieser wenigen Templates gelang &#8211; mit entsprechend geringem Aufwand &#8211; an nur einem Abend bereits der Aufbau eines einfachen mobilen Recherche-Portals. Durch Hinzunahme und Anpassung weiterer OpenBib-Templates könnte dieses sukzessive um alle Funktionen erweitert werden, die ein Standard-OpenBib-Portal mitbringt &#8211; insbesondere Nutzerkonten, Verlängerungen usw.</p>
<p><a href="http://blog.openbib.org/wp-content/uploads/2011/09/richtermobile.png"><img class="alignnone size-medium wp-image-459" title="Startseite der mobilen Richter-Bibliothek" src="http://blog.openbib.org/wp-content/uploads/2011/09/richtermobile-256x300.png" alt="" width="256" height="300" /></a></p>
<p>Die Mobil-Version des Demo-Portals Richter-Bibliothek befindet sich unter</p>
<p><a title="Mobiles Beispiel-Portal der Bibliothek Elise und Helene Richter" href="http://m.richter-bibliothek.de/" target="_blank"><strong>http://m.richter-bibliothek.de/</strong></a></p>
<p>Sicherlich kann in diesem mobilen Portal noch das eine oder andere verbessert werden, insgesamt zeigt es jedoch, dass mobile Katalog-Portale nicht zwangsläufig mit riesigem Implementationsaufwand einhergehen &#8211; wie auch ich es anfangs befürchtete.</p>
<p>Und bei so einem geringen Aufwand lässt es sich dann auch sehr leicht verschmerzen, dass die Nutzerschaft eventuell nicht direkt in die Abertausende geht&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openbib.org/2011/09/13/ein-mobiler-katalog-mit-jquery-mobile/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Experimente mit dem YAML-Framework</title>
		<link>http://blog.openbib.org/2011/07/10/experimente-mit-dem-yaml-framework/</link>
		<comments>http://blog.openbib.org/2011/07/10/experimente-mit-dem-yaml-framework/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 21:39:02 +0000</pubDate>
		<dc:creator>Oliver Flimm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Einblicke und Konzepte]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Demo-Portal]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Richter-Bibliothek]]></category>
		<category><![CDATA[YAML]]></category>

		<guid isPermaLink="false">http://blog.openbib.org/?p=379</guid>
		<description><![CDATA[Das Motto der kommenden Version 2.4 von OpenBib könnte lauten &#8220;weg von handoptimierten Sonderlösungen und hin zu weiter verbreiteten Frameworks und Web-Standards&#8220;. Das bringt viele Vorteile mit sich &#8211; sowohl beim Einstieg anderer in die Nutzung oder Erweiterung von OpenBib, wie auch für mich als Entwickler: Das Rad muß nicht immer neu erfunden werden (&#8220;building [...]]]></description>
			<content:encoded><![CDATA[<p>Das Motto der kommenden Version 2.4 von OpenBib könnte lauten &#8220;<em>weg von handoptimierten Sonderlösungen und hin zu weiter verbreiteten Frameworks und Web-Standards</em>&#8220;. Das bringt viele Vorteile mit sich &#8211; sowohl beim Einstieg anderer in die Nutzung oder Erweiterung von OpenBib, wie auch für mich als Entwickler:</p>
<ul>
<li>Das Rad muß nicht immer neu erfunden werden (&#8220;building on the shoulder of giants&#8221;)</li>
<li>Die Anwendung wird wartbarer</li>
<li>Nach der Beschäftigung mit verbreiteten Frameworks lassen sich auch zukünftige Probleme an anderer Stelle einfacher lösen.</li>
<li>Wichtig ist für mich aber: So ein Framework sollte nicht zu abstrakt und die learning curve nicht zu steil sein, so dass man immer noch sehen kann, was dahinter denn eigentlich passiert. Gerade bei kontraproduktiver &#8220;Eigenintelligenz&#8221; von Frameworks wird einem dadurch einiges an Unbill erspart.</li>
</ul>
<p>Neben der <a title="Das Recherche-Portal ist der WebService" href="http://blog.openbib.org/2011/03/16/das-recherche-portal-ist-der-webservice/" target="_blank">bereits erwähnten Neuausrichtung </a>im Bereich Web-Standards (&#8220;Cool URI&#8217;s&#8221;, Semantic Web, REST) und -Frameworks (CGI::Application für die Web-Anwendung, DBIx::Class als ORM) kommt nun der nächste Schritt im Bereich (X)HTML/CSS.</p>
<p>Gerade beim Layout mit CSS macht es Sinn, sich nicht immer wieder mit den neuesten Problemen des IE (oder anderer Browser) auseinander setzen zu müssen, sondern die Browser-Unabhängigkeit des Layouts mit einem geeigneten Framework sicher zu stellen.</p>
<p>Für OpenBib fiel dabei die Wahl auf das mächtige und exzellent dokumentierte CSS-Framework <a title="YAML Homepage" href="http://www.yaml.de/" target="_blank">YAML</a> von Dirk Jesse, das schon vielfach erfolgreich eingesetzt wird &#8211; z.B. bei der <a title="DigiBib Homepage" href="http://www.digibib.net/" target="_blank">DigiBib</a> mit IPS.</p>
<p>Um dieses Framework im Rahmen der Version 2.4 erst einmal in einem überschaubaren Bereich auszutesten, wurde &#8216;<em>Die Bibliothek Elise und Helene Richter</em>&#8216; als <a title="Demonstrations-Portal der Bibliothek von Elise und Helene Richter" href="http://www.richter-bibliothek.de/" target="_blank">Demonstrations-Portal</a> komplett neu aufgesetzt. Denn dort wird nur eine kleine Teilmenge der insgesamt knapp 380 Basis-Templates von OpenBib verwendet, die durch die Vererbungseigenschaften von Templates  in verschiedenen Sichten (=Portalen) einfach für die Sicht &#8220;richter&#8221; spezialisiert wurde &#8211; ohne die anderen bereits existierenden Nicht-YAML-Sichten zu stören.</p>
<p>Die in diesem Demo-Portal recherchierbaren Katalog-Daten wurden von der USB Köln im letzten Jahr als Open Bibliographic Data freigegeben und es zeigt gerade in diesem Bereich, wie quasi jeder aus offenen bibliographischen Daten eine Rechercheanwendung mit eigenen oder gemeinfreien Texten und Bildern im Netz realisieren kann.</p>
<p><a href="http://blog.openbib.org/wp-content/uploads/2011/07/richterbibliothek-yaml2.jpg"><img class="alignnone size-medium wp-image-388" title="richterbibliothek-yaml" src="http://blog.openbib.org/wp-content/uploads/2011/07/richterbibliothek-yaml2-300x171.jpg" alt="" width="300" height="171" /></a></p>
<p>Neben der Umstellung auf YAML werden mit diesem Portal weitere Besonderheiten der Version 2.4 demonstriert. Ganz wesentlich ist die Fähigkeit, dass einzelne Portalsichten in einer OpenBib-Installation fortan auch unter eigenen Host- und Domainnamen  im Web erscheinen können. Das mag selbstverständlich klingen, ist es aber nicht.</p>
<p>Bisher muss man sich bei OpenBib für einen Servernamen pro Installation entscheiden und andere Host/Domainnamen wie z.B. portrait.ub.uni-koeln.de können lediglich über den Weg eines umgebenden Frames umgesetzt werden, das dann für den Nutzer in der Location-Zeile des Browsers unbemerkt doch wieder den Servernamen wie kug1.ub.uni-koeln.de usw. aufruft.</p>
<p>Ab Version 2.4 können Sichten durch interne Konfiguration in OpenBib selbst, wie durch entsprechendes URL-Rewriting komplett als unabhängige Portale im Web in Erscheinung treten. Dieser Umstand wird perfekt durch das Portal www.richter-bibliothek.de mit der Sicht &#8220;richter&#8221; demonstriert, das ebenso wie search.openbib.org in nur einer einzigen OpenBib-Installation bereitgestellt wird.</p>
<p>Konkret findet bei der Richter-Bibliothek eine URI-Verkürzung statt, bei der z.B. aus der generischen URI-Form</p>
<p>/portal/:sicht/home</p>
<p>der Sicht-Name via URL-Rewriting nach aussen in den Hostnamen gezogen wird und der Sicht-Name effektiv aus dem URI verschwindet. Aus dem Start-URL wird somit aus intern</p>
<p>/portal/richter/home</p>
<p>nach aussen</p>
<p>http://www.richter-bibliothek.de/portal/home</p>
<p>Die URI-Verkürzung muss natürlich in den Templates für alle aufrufenden URI-Pfade automatisch angepasst werden. So etwas wird einfach über die Web-Administration konfiguriert.</p>
<p>Ein Beispiel für die interne Konfiguration zeigt der nächste Screenshot:</p>
<p><a href="http://blog.openbib.org/wp-content/uploads/2011/07/richterbibliothek-admin.jpg"><img class="alignnone size-medium wp-image-394" title="richterbibliothek-admin" src="http://blog.openbib.org/wp-content/uploads/2011/07/richterbibliothek-admin-300x176.jpg" alt="" width="300" height="176" /></a></p>
<p>Einher mit der eher technischen Umstellung auf das YAML-Framework gehen Experimente mit einfacher strukturierten Nutzerführung. Bewusst wurde daher ein simples 2-Spalten-Layout gewählt. Ziel ist eine visuelle Reduzierung und das lässt sich im Demo-Portal Richter-Bibliothek sehr gut austesten, um es dann auch in den großen umfassenden Sichten umzusetzen.</p>
<p>Wie die Version 2.4 ist auch das Demo-Portal &#8220;Richter-Bibliothek&#8221; noch alpha. Sukzessive wird sich die Fehlerquote &#8211; z.B. durch noch nicht angepasster Templates- aber sicherlich verbessern&#8230;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openbib.org/2011/07/10/experimente-mit-dem-yaml-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ausleihkonto als Kalender und QR-Code</title>
		<link>http://blog.openbib.org/2011/04/29/ausleihkonto-als-kalender-und-qr-code/</link>
		<comments>http://blog.openbib.org/2011/04/29/ausleihkonto-als-kalender-und-qr-code/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 09:52:44 +0000</pubDate>
		<dc:creator>Oliver Flimm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Ankündigungen]]></category>
		<category><![CDATA[Einblicke und Konzepte]]></category>
		<category><![CDATA[Ausleihkonto]]></category>
		<category><![CDATA[iCalendar]]></category>
		<category><![CDATA[QR-Code]]></category>

		<guid isPermaLink="false">http://blog.openbib.org/?p=363</guid>
		<description><![CDATA[Nach der Integration von QR-Codes in den KUG vor wenigen Tagen haben wir nach weiteren praktischen Verwendungsmöglichkeiten im Umfeld eines Bibliothekskatalogs gesucht. Neben Text und URL&#8217;s lassen sich mit QR-Codes auch andere Inhalte transportieren. Besonders interessant erschien uns der Transport von Kalenderdaten, da sich diese in einem Kernbereich eines Katalogs &#8211; dem Ausleihkonto &#8211; befinden. [...]]]></description>
			<content:encoded><![CDATA[<p>Nach der Integration von <a title="QR-Codes im KUG" href="http://blog.openbib.org/2011/04/21/qr-codes-im-kug/">QR-Codes in den KUG</a> vor wenigen Tagen haben wir nach weiteren <a title="Blog-Artikel: QR-Codes im bibliothekarischen Einsatz" href="http://log.netbib.de/archives/2011/04/29/qr-codes-im-bibliothekarischen-einsatz/" target="_blank">praktischen Verwendungsmöglichkeiten im Umfeld eines Bibliothekskatalogs</a> gesucht. Neben Text und URL&#8217;s lassen sich mit QR-Codes auch andere Inhalte transportieren. Besonders interessant erschien uns der Transport von Kalenderdaten, da sich diese in einem Kernbereich eines Katalogs &#8211; dem Ausleihkonto &#8211; befinden.</p>
<p>Vorgemacht hatte die Kopplung eines Ausleihkontos mit einem (eigenen) Kalender die Anwendung <a title="EDsync" href="http://www.elbedev.com/EDsync/EDsync.html" target="_blank">EDsync</a>, die neben der Anzeige der Entleihungen u.a. auch Anzeige von Gebühren, Verlängerung per Knopfdruck sowie VoiceOver für sehbehinderte Menschen bietet. EDsync ist jedoch nur für MacOS und iPhone verfügbar.</p>
<p>Damit unsere Nutzer die Leihfristenden ihrer entliehenen Medien besser im Blick behalten können, haben wir für das Ausleihkonto unseres Katalogs zunächst eine weitere Ausgabemöglichkeit im <a title="Englischer Wikipedia-Artikel" href="http://en.wikipedia.org/wiki/ICalendar" target="_blank">iCalendar</a>-Format integriert. Das war schnell gemacht, da lediglich ein weiterer Übergabeparameter für das neue Format und ein korrespondierender Abschnitt im <a title="ics-Definition für Leihfristenden" href="http://cvs.berlios.de/cgi-bin/viewvc.cgi/openbib/openbib/portal/perl/templates/circulation?revision=1.19&amp;view=markup&amp;pathrev=HEAD" target="_blank">Ausgabetemplate für die Entleihungen</a> hinzugefügt werden musste.</p>
<div id="attachment_367" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.openbib.org/wp-content/uploads/2011/04/ical-ausleihkonto.png"><img class="size-medium wp-image-367" title="ical-ausleihkonto" src="http://blog.openbib.org/wp-content/uploads/2011/04/ical-ausleihkonto-300x164.png" alt="Ausleihkonto als iCalendar und per QR-Code" width="300" height="164" /></a><p class="wp-caption-text">Ausleihkonto als iCalendar und per QR-Code</p></div>
<p>Ein Nutzer kann damit per Knopfdruck einen Kalender seiner Entleihungen  herunterladen und &#8211; dank der Verwendung des iCalendar-Standards &#8211; in ein  beliebiges Kalender-Programm importieren. Um eine bestmögliche Kompatibilität sicherzustellen, wurde das von OpenBib generierte iCalendar-Format mit einem <a title="iCalendar Validator" href="http://icalvalid.cloudapp.net/" target="_blank">besonders kritischen Validator</a> überprüft und konnte dort einen Kompatiblität von 100% erreichen. Wichtig ist u.a.:</p>
<ul>
<li>Standard-Zeichenkodierung ist UTF8</li>
<li>Zeilenenden sind mit CRLF kodiert</li>
<li>Zeilen dürfen nicht länger als 78 Octets sein, können aber über spezielle Zeichen in der nächsten Zeile weitergehen</li>
<li>Doppelpunkte und Kommas müssen mit Backslash escaped werden</li>
<li>PRODID ist zwingend</li>
</ul>
<p>Bei der Erzeugung des Kalenders wurde aus Gründen der Unaufdringlichkeit bewusst auf das Setzen eines Erinnerungs-Alarms verzichtet.</p>
<p>Um in einem zweiten Schritt auch mobil einen möglichst schnellen und unkomplizierten Snapshot der Leihfristenden in den eigenen Smartphone-Kalender anbieten zu können, fiel unsere Wahl sofort auf den QR-Code. Kein Abtippen, kein Rumsurfen &#8211; einfach abknipsen und gut.</p>
<p>Auf die Problematik von QR-Codes und Kalenderdaten hatte kürzlich Christian Hauschke im Kontext <a title="Blog-Artikel: QR-Codes: Weitere Anwendungsmöglichkeiten" href="http://infobib.de/blog/2011/04/26/qr-codes-weitere-anwendungsmoglichkeiten/" target="_blank">weiterer Anwendungsmöglichkeiten von QR-Codes</a> berichtet. Sie liegt darin, dass</p>
<ul>
<li>es keinen definierten Standard für die Kodierung von Kalenderdaten in QR-Codes gibt. Neben der Möglickeit einen normalen standardkonformen iCalendar zu verwenden, wird z.B. <a title="Überblick verschiedener Inhalte in QR-Codes" href="http://code.google.com/p/zxing/wiki/BarcodeContents" target="_blank">vorgeschlagen</a> BEGIN/END:VCALENDAR wegzulassen</li>
<li>es zwar QR-Code-Generatoren <a title="Sehr umfrangreicher QR-Code-Generator" href="http://keremerkan.net/qr-code-and-2d-code-generator/" target="_blank">gibt</a>, die iCalendar generieren, aber nicht jede Readersoftware kommt damit zurecht. Oft (i-nigma, kaywa Reader) wird der Kalendereintrag dann nur als einfacher Text angezeigt und kann nicht in den Smartphone-Kalender übernommen werden.</li>
<li>QR-Codes für manche Ausleihkontos mit mehreren hundert Medien schlicht zu klein sein können (ja, das gibts&#8230;)</li>
</ul>
<p>All das spricht dagegen, die Kalenderinformationen direkt in einen QR-Code zu packen. Die direkte Platzierung der Information wäre sonst eigentlich der bevorzugte Weg gewesen. Andererseits verarbeiten die Smartphones einen per Web-Browser aufgerufenen iCalendar mit Mime-Type text/calendar normalerweise problemlos. Als QR-Code muss dann nur der URL zum Kalender kodiert werden.</p>
<p>Da die Ausleihdaten sehr privat und dementsprechend sensibel zu handhaben sind, darf nur ein autorisierter Zugriff auf den Kalender ermöglicht werden. Hier gab es zwei Varianten. Entweder sitzungsbasiert (SessionID) oder zustandslos (HTTP). Um dem Nutzer eine weitere Authentifizierung mit Benutzername und Passwort zu ersparen, haben wir den Weg über die SessionID gewählt.</p>
<p>Jenseits dieses neuen Betriebssystem- und Smartphone-übergreifenden Angebots im KUG steht der zusätzlichen Integration in dedizierte iPhone, Android, Symbian, etc. Anwendungen ala EDsync eigentlich nur die Schnittstellenproblematik entgegen. Bei der Definition oder Einigung auf konkrete <em>offene und frei verwendbare Schnittstellen</em> ist eine noch intensivere mobile Kopplung mit dem Katalog sicherlich zukünftig mit wenig Aufwand möglich.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openbib.org/2011/04/29/ausleihkonto-als-kalender-und-qr-code/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>QR-Codes im KUG</title>
		<link>http://blog.openbib.org/2011/04/21/qr-codes-im-kug/</link>
		<comments>http://blog.openbib.org/2011/04/21/qr-codes-im-kug/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 12:43:31 +0000</pubDate>
		<dc:creator>Oliver Flimm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Ankündigungen]]></category>
		<category><![CDATA[Einblicke und Konzepte]]></category>
		<category><![CDATA[Bibliotheksinformation]]></category>
		<category><![CDATA[Exemplarinformation]]></category>
		<category><![CDATA[QR-Code]]></category>

		<guid isPermaLink="false">http://blog.openbib.org/?p=343</guid>
		<description><![CDATA[Ein QR-Code (QR steht für englisch: quick response = schnelle Antwort) ist entsprechend Wikipedia ein zweidimensionaler (2D) Code, der durch geeignete Programme mit einem Photohandy (oder PDA oder Tab) verarbeitet werden kann. Das Handy kann so bequem als &#8220;Merkzettel&#8221; für recherchierte Katalog- und Bibliotheksinformationen genutzt werden. Seit ich vor rund einem Jahr das erste Mal [...]]]></description>
			<content:encoded><![CDATA[<p>Ein QR-Code (QR steht für englisch: quick response = schnelle Antwort) ist entsprechend <a title="Mehr zu QR-Code in der Wikipedia" href="http://de.wikipedia.org/wiki/QR-Code" target="_blank">Wikipedia</a> ein zweidimensionaler (2D) Code, der durch geeignete Programme mit einem Photohandy (oder PDA oder Tab) verarbeitet werden kann.</p>
<p>Das Handy kann so bequem als &#8220;Merkzettel&#8221; für recherchierte Katalog- und Bibliotheksinformationen genutzt werden.</p>
<p>Seit ich vor rund einem Jahr das erste Mal die Einbindung von QR-Codes im Heidelberger Katalog <a title="Heidelberger Katalog Heidi" href="http://www.ub.uni-heidelberg.de/helios/kataloge/heidi.html" target="_blank">Heidi</a> gesehen hatte, wanderte das Thema relativ schnell auf meine ToDo-Liste für OpenBib, blieb dort aber aus Zeitmangel bisher liegen. Erst durch die umfangreiche Zusammenstellung des QR-Code Einsatzes in diversen Bibliotheken, die Viola Voß in einer <a title="Viola Voß: QR-Codes in Bibliotheken?" href="http://www.ub.uni-dortmund.de/listen/inetbib/msg44703.html" target="_blank">Mail an InetBib</a> vor zwei Tagen verschickte, rückte das Thema wieder in meinen Fokus.</p>
<p>Für OpenBib wurde ich mit dem Perl-Modul GD::Barcode, in dem auch <a title="Dokumentation des Perl-Moduls" href="http://search.cpan.org/~kwitknr/GD-Barcode-1.15/Barcode/QRcode.pm" target="_blank">GD::Barcode::QRcode</a> enthalten ist, relativ schnell fündig. Mit diesem Modul konnte dann umgehend ein neuer <a title="Programmcode des QRCode-Konnektors" href="http://cvs.berlios.de/cgi-bin/viewvc.cgi/openbib/openbib/portal/perl/modules/OpenBib/Handler/Apache/Connector/QRCode.pm?revision=1.1&amp;view=markup&amp;pathrev=HEAD" target="_blank">QR-Code-Dienst</a> &#8211; in OpenBib-Sprache &#8220;Konnektor&#8221; genannt &#8211; umgesetzt werden. Die Essenz des Dienstes steckt in nur 4 Zeilen:</p>
<p><code><br />
use GD::Barcode::QRcode;</code><br />
<code>my $code = GD::Barcode::QRcode-&gt;new($text,{ECC =&gt; 'M', Version =&gt; 12, ModuleSize =&gt; 5});</code><br />
<code>$r-&gt;content_type("image/png");</code><br />
<code>$r-&gt;print($code-&gt;plot-&gt;png);<br />
</code></p>
<p>Dieser Dienst ist USB- und Uni-intern insbesondere auch dafür gedacht, erst einmal mit QR-Codes experimentieren zu können und diese dann gegebenenfalls vermehrt auch produktiv einzusetzen. Dabei geht es ganz zentral darum, Akzeptanz für den Nutzen der QR-Codes zu schaffen, denn hier liegt sicherlich das größte Problem: Aus der Niche &#8216;technische Spielerei, die sowiso niemand braucht&#8217; herauszukommen und als sinnvolles Werkzeugt aus dem bibliothekarischen Dienste-Werkzeugkasten akzeptiert zu werden.</p>
<p>Der Basis-URL des Dienstes lautet:</p>
<p><a title="Basis-URL" href="http://kug.ub.uni-koeln.de/portal/connector/qrcode" target="_blank">http://kug.ub.uni-koeln.de/portal/connector/qrcode</a></p>
<p>Mit dem Parameter &#8216;<em>text</em>&#8216; wird dann der Text angehängt, der in einen QR-Code umgewandelt werden soll. Dieser ist derzeit (mit dem verwendeten ECC-Level M und der QR-Code Version 12) auf 419 aphanumerische Zeichen begrenzt, um die Größe des QR-Code-Bildes in einem erträglichen Rahmen zu halten. Weitere Informationen über die Kapazität von QR-Codes abhängig von ECC-Level und Version stellt der &#8216;QR-Code Erfinder&#8217; Denso Wave auf seiner <a title="Kapazitäten von QR-Codes" href="http://www.denso-wave.com/qrcode/vertable1-e.html" target="_blank">Webseite</a> zur Verfügung.</p>
<p>Der QR-Code-URL für den Text &#8217;123&#8242; ist somit z.B.</p>
<p><a title="QR-Code für 123" href="http://kug.ub.uni-koeln.de/portal/connector/qrcode?text=123" target="_blank">http://kug.ub.uni-koeln.de/portal/connector/qrcode?text=123</a></p>
<p>Der KUG bedient mit QR-Codes zwei typische Szenarien: Informationen über Exemplare und Bibliotheken</p>
<h3>Exemplarinformationen</h3>
<p>Der Nutzer recherchiert im KUG verschiedene Titel und möchte diese dann im Regal finden. Wesentliche Informationen, die er sich für das jeweilige Exemplar merken muss, sind &#8216;Titel&#8217;, &#8216;Standort&#8217; (gegebenenfalls auch den Namen der Bibliothek) und &#8216;Signatur&#8217;.</p>
<p>Bei jedem relevanten Exemplar geht er mit der Maus im KUG über das QR-Code-Icon und fotographiert den dann erscheinenden QR-Code mit einem QR-Code-Reader-Programm auf seinem Handy (ohne aktiviertes JavaScript klickt er einfach auf das Icon). Mit der sukzessiv anwachsenden Bücher-Liste auf seinem Handy kann er dann zu den Regalen gehen und die jeweiligen Bücher heraussuchen.</p>
<p>Ein Beispiel ist z.B. folgender Titel aus dem Europäischen Dokumentationszentrum (EDZ) in der USB:<br />
<a title="Titel aus dem Katalog des EDZ" href="http://kug.ub.uni-koeln.de/portal/connector/permalink/edz/4687797/1/kug/index.html" target="_blank"></a></p>
<div id="attachment_345" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.openbib.org/wp-content/uploads/2011/04/edz-qrcode.png"><img class="size-medium wp-image-345" title="edz-qrcode" src="http://blog.openbib.org/wp-content/uploads/2011/04/edz-qrcode-300x148.png" alt="QR-Code mit relevanten Exemplar-Informationen" width="300" height="148" /></a><p class="wp-caption-text">QR-Code mit relevanten Exemplar-Informationen</p></div>
<p>Permalink:<a title="Titel aus dem Katalog des EDZ" href="http://kug.ub.uni-koeln.de/portal/connector/permalink/edz/4687797/1/kug/index.html" target="_blank"> http://kug.ub.uni-koeln.de/portal/connector/permalink/edz/4687797/1/kug/index.html</a></p>
<p>Wesentlich ist hier neben der Signatur insbesondere auch die Sachgruppen-Nummer als weitere Standortangabe, da der Nutzer über diese erst den relevanten Regalabschnitt finden muss, bevor er dort mit der Signatur weitersucht.</p>
<h3>Bibliotheksinformationen</h3>
<p>Ein Nutzer möchte eine (Instituts-)Bibliothek aufsuchen. Wesentliche Informationen, die er sich hier merken muss, sind &#8216;Institutsname&#8217;, &#8216;Adresse&#8217; (gegebenfalls mit Gebäudeteilangaben) und &#8216;Öffnungszeiten&#8217;.</p>
<p>Auch diese Informationen kann er bequem mit seinem Handy über den QR-Code abfotographieren und verarbeiten.</p>
<p>Ein Beispiel ist z.B. die Instituts-Sicht des Instituts für Ethnologie im KUG:</p>
<div id="attachment_346" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.openbib.org/wp-content/uploads/2011/04/inst431-qrcode.png"><img class="size-medium wp-image-346" title="inst431-qrcode" src="http://blog.openbib.org/wp-content/uploads/2011/04/inst431-qrcode-300x174.png" alt="Bibliotheksinformationen als QR-Code" width="300" height="174" /></a><p class="wp-caption-text">Bibliotheksinformationen als QR-Code</p></div>
<p>&nbsp;</p>
<p>Link:<a title="KUG-Sicht des Instituts für Ethnologie" href="http://kug.ub.uni-koeln.de/portal/lastverteilung?view=inst431" target="_blank"> http://kug.ub.uni-koeln.de/portal/lastverteilung?view=inst431</a></p>
<p>Im &#8216;Steckbrief der Bibliothek&#8217; findet er den QR-Code mit den relevanten Informationen.</p>
<p>Zusätzlich wird der QR-Code auch in der vollständigen Informationsseite zu einer jeden (Instituts-)Bibliothek im KUG angeboten. Dieser ist u.a. bei den Exemplaren über die besitzende Bibliothek oder im Steckbrief unter <em>[Mehr]</em> verlinkt.</p>
<h3>Benötigte Software für das Handy</h3>
<p>Um QR-Codes mit dem Handy zu verarbeiten benötigt man eine entsprechende Software für das Handy, wie z.B.</p>
<ul>
<li> den <a title="Link zum Download" href="http://www.i-nigma.com/Downloadi-nigmaReader.html" target="_blank">i-nigma Reader</a></li>
</ul>
<ul>
<li> oder den <a title="Link zum Download" href="http://reader.kaywa.com/" target="_blank">Kaywa Reader</a>.</li>
</ul>
<p>Beide Programme sind gratis. Speziell der i-nigma Reader unterstützt eine Vielzahl von Handy-Modellen (iPhone, Android, Symbian, Java-fähige Handys)</p>
<p>Gegenüber dem einfachen Abfotographieren hat der QR-Code den wesentlichen Vorteil, dass nicht einfach nur &#8216;ein Bild&#8217; abgespeichert wird, sondern der tatsächliche Text. Diesen Text kann man weiter verarbeiten, auflisten, abspeichern, weiterleiten oder &#8211; falls es ein URL ist &#8211; z.B. auch automatisch diesen über den Web-Browser im Smartphone aufrufen.</p>
<p>Wir sind froh das Thema QR-Codes ausgehend vom KUG nochmals aufgegriffen zu haben und überlegen uns gerade weitere <em>sinnvolle</em> Anwendungen innerhalb und außerhalb des KUG.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openbib.org/2011/04/21/qr-codes-im-kug/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Das Recherche-Portal ist der WebService</title>
		<link>http://blog.openbib.org/2011/03/16/das-recherche-portal-ist-der-webservice/</link>
		<comments>http://blog.openbib.org/2011/03/16/das-recherche-portal-ist-der-webservice/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 18:13:32 +0000</pubDate>
		<dc:creator>Oliver Flimm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Einblicke und Konzepte]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Linked Open Data]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[Web Service]]></category>

		<guid isPermaLink="false">http://blog.openbib.org/?p=253</guid>
		<description><![CDATA[oder: Wie können Recherche-Portal(e), WebServices und die Publikation von Daten im Semantic Web zusammengefasst werden. Was bisher geschah Seit der Umstellung des Kölner UniversitätsGesamtkatalogs KUG auf die aktuelle OpenBib-Version 2.3 im April 2009 sind nun fast zwei Jahre vergangen. Diese Version zeichnete sich vor allem durch ein moderneres Design und eine verbesserte Nutzerführung aus. In [...]]]></description>
			<content:encoded><![CDATA[<p><strong>oder: Wie können Recherche-Portal(e), WebServices und die Publikation von Daten im Semantic Web zusammengefasst werden.<br />
</strong></p>
<h2>Was bisher geschah</h2>
<p>Seit der Umstellung des Kölner UniversitätsGesamtkatalogs KUG auf die aktuelle OpenBib-Version 2.3 im April 2009  sind nun fast zwei Jahre vergangen. Diese Version zeichnete sich vor allem durch ein moderneres Design und eine verbesserte Nutzerführung aus.</p>
<p>In ihren Grundfunktionen war jedoch über die Jahre inzwischen eine spürbare Sättigung erreicht, so dass für den Endanwender seither nur noch kleinere Erweiterungen (<a title="Kataloganreicherung mit Schlagworten" href="http://blog.openbib.org/2009/11/09/kataloganreicherung-mit-schlagworten/" target="_blank">Kataloganreicherung mit Schlagworten</a>, <a title="Verweise auf aktuelle Zeitschriftenartikel mit TicTocs im KUG" href="http://blog.openbib.org/2009/12/10/verweise-auf-aktuelle-zeitschriftenartikel-mit-tictocs-im-kug/" target="_blank">TicTocs</a>, <a title="PaperC im KUG" href="http://blog.openbib.org/2010/03/02/paperc-im-kug/" target="_blank">PaperC</a>) und Optimierungen (<a title="Schnellere Kataloge mit YSlow" href="http://blog.openbib.org/2010/06/11/schnellere-kataloge-mit-yslow/" target="_blank">YSlow</a>) sichtbar wurden. Umso mehr hat sich unterhalb der Oberfläche abgespielt, so dass auf Grundlage von OpenBib &#8211; jenseits des Einsatzes als Recherche-Portal KUG &#8211; viele neue Dienstleistungen innerhalb der USB Köln und der Universität realisiert werden konnten.</p>
<p>Vieles von dem, &#8220;wofür man OpenBib auch noch sonst so verwenden kann&#8221;, hatte ich im März 2010 beim 11. Bibliothekskongress in dem Vortrag &#8220;<a title="Folien des Vortrags im PDF-Format" href="http://www.opus-bayern.de/bib-info/volltexte/2010/819/" target="_blank">Der Kölner UniversitätsGesamtkatalog &#8211; Praktischer Einsatz des KUG mit OpenBib an der USB Köln</a>&#8221; ausgeführt. Dort lag der Fokus gerade nicht ausschließlich bei  dem klassischen Einsatz  als Recherche-Portal, sondern speziell dem Vernetzungsaspekt (Mashups, Offene Schnittstellen, Daten) und den Dienstleistungen (automatisch generierte ZDB-Listen für Institutsbibliotheken, E-Book des  Bibliotheksführers, Bestands- und Erwerbungskoordination , Approval plans usw.). Ausführliche Informationen hierzu finden sich auch in meinem Beitrag &#8220;<a title="Link zum Open Access Artikel" href="http://www.reference-global.com/doi/pdfplusdirect/10.1515/9783110232103.293" target="_blank">Anreicherungen, Mashups und Vernetzungen von Titeln in einem heterogenen Katalogverbund am Beispiel des Kölner UniversitätsGesamtkatalogs KUG</a>&#8221; (Open Access, CC-BY) zum <a title="Link zum gesamten Buch (Open Access)" href="http://www.reference-global.com/doi/pdfplusdirect/10.1515/9783110232103" target="_blank">Handbuch Bibliothek 2.0</a> von Julia und Patrick.</p>
<p>In der Vergangenheit gab es aber nicht nur Licht, sondern auch Schatten. Sehr problematisch war z.B. die Lastverteilung mit verschiedenen Servern (kug1.ub&#8230;, kug2.ub&#8230;, &#8230;) und der Einsatz der SessionID in den URLs. Beides hat dazu beigetragen, dass der Nutzer im KUG nicht einfach jeden URL bookmarken konnte, sondern eine eigene künstlich aufgepfropfte PermaLink-Funktion nutzen musste &#8211; die aber auch nur für einzelne Titel und Literaturlisten angeboten wurde.</p>
<p>Andere prominente Portale machen das ähnlich, indem sie dem Nutzer z.B. einen künstlichen URL für copy-and-paste anbieten. Das kann aber nicht der Weg sein. Eines der wenigen Portale, die es richtig machen ist <a title="VuFind Homepage" href="http://vufind.org/" target="_blank">VuFind</a>. Dort kann jeder aufgerufene URL direkt im Browser gebookmarked werden. Hier und an anderen Stellen zeigt sich, dass VuFind eine ausgezeichnete Portal-Software ist &#8211; und auch noch Open Source.</p>
<p>Bewährt hat sich in OpenBib der Weg, über sogenannte <a title="Wiki-Artikel" href="http://wiki.openbib.org/index.php?title=Konnektoren" target="_blank">Konnektoren</a>, <strong>ausgewählte Daten oder Funktionen</strong> über (Standard-)Schnittstellen (SeeAlso, UnAPI, DigiBib, &#8230;) für die Integration in externe Dienste bereitzustellen. Aber auch hier wäre es wünschenswert, wenn  <strong>alle Funktionen und Daten</strong>, mit denen der Endanwender im Recherche-Portal interagiert, auch direkt für eine externe Vernetzung bereitständen.</p>
<h2>Der Weg zu einer neuen Architektur, oder: Das gesamte Portal ist der WebService</h2>
<p>Seit der Freigabe der letzten OpenBib-Version hat sich das Augenmerk für eine Weiterentwicklung genau auf diese Problembereiche gerichtet und die bestehende Architektur wurde kritisch analysiert.  Maßgeblich für eine mögliche Lösung war die Beschäftigung mit den Grundprinzipien des Semantic Web, die insbesondere durch die Tagung &#8220;Semantic Web in Bibliotheken&#8221; (<a title="SWIB09 Homepage" href="http://www.swib09.de/">SWIB09</a>) von hbz und der ZBW im November 2009 entscheidend weiter befördert wurde.</p>
<p>Es ist eine sinnvolle Herangehensweise des Semantic Web, einzelne Resourcen durch feste HTTP <a title="W3C: Cool URIs for the Semantic Seb" href="http://www.w3.org/TR/cooluris/" target="_blank">&#8220;Cool&#8221; URI&#8217;s</a> referenzierbar zu machen, dann aber die verschiedenen möglichen &#8220;Repräsentationen&#8221; oder Beschreibungen in diversen Formaten davon zu trennen und z.B. über 303er-Content-Weichen automatisch dahin weiterzuleiten. Diese Orientierung an Standard-HTTP-Mechanismen  mit &#8220;Cool URI&#8217;s&#8221; findet auch in anderen Bereichen statt, z.B in RESTful WebServices. Session-IDs sind in solchen URIs dann eher hinderlich&#8230; Weitere Vorteile einer klaren Strukturierung der URI&#8217;s im genannten Sinn sind u.a.</p>
<ul>
<li>für eine Lastverteilung kann auf etablierte Standard-Software wie z.B. <a title="HAProxy Homepage" href="http://haproxy.1wt.eu/" target="_blank">HAproxy</a> zurückgegriffen werden</li>
<li>mit einfachem URL-Rewriting und ProxyPass können Teile der Anwendung bei Bedarf durch andere Software-Lösungen ersetzt werden.</li>
</ul>
<p>Für die Weiterentwicklung von OpenBib mit dem Ziel einer maximalen Vernetzbarkeit von Diensten und Daten bedeutete dies somit: Man nehme das bestehende Portal, dazu eine Prise</p>
<ul>
<li>Semantic Web (HTTP-URI&#8217;s zum Referenzieren von Resourcen, Content-Weichen, Trennung der HTTP-URI&#8217;s von den verschiedenen Daten-Repräsentationen wie HTML,JSON,RDF,RSS) und</li>
<li>RESTful WebServices mit definierten &#8220;Cool URI&#8217;s&#8221; und CRUD (Create, Read, Update, Delete) über Standard-HTTP Methoden (POST, GET, PUT, DELETE),</li>
<li>vereinheitliche und entschlacke mit geeigneten <em>übersichtlichen</em> Frameworks (CGI::Application, DBIx::Class) den Programm-Code für eine einfachere Anpassbarkeit, und</li>
<li>setzte einen flexiblen Dispatcher für die URI&#8217;s ein (CGI::Application::Dispatch), damit sie &#8220;cooler&#8221; werden,</li>
</ul>
<p>dann kräftig schütteln und heraus kommt: OpenBib Version 2.4alpha.</p>
<p>Durch diese Kombination wird erreicht, dass <strong>das gesamte Recherche-Portal selbst zu einem WebService</strong> wird und sich mit allen seinen Funktionen und Informationen in beliebige andere Dienste integrieren lässt. Zusätzlich besteht weiterhin der bereits etablierte Mechanismus, beliebige Informationen über (neue) Konnektoren mit definierten Standardschnittstellen (s.o.) bereitzustellen.</p>
<p>Das OpenBib-Portal ist somit gleichzeitig ein herkömmliches Recherche-Portal, das Endanwender über Ihre Web-Browser nutzen, wie auch eine grundlegende Infrastruktur, die Programme als WebService und Web-Crawler als Linked Open Data ansprechen können.</p>
<p>Wie immer ist es auch hier nicht zielführend in jedem Bereich evangelistisch der &#8220;reinen Lehre&#8221; zu folgen, vielmehr muß bei den sich zum Teil ergebenden Widersprüchen ein pragmatischer Mittelweg gefunden werden. Dies betrifft z.B. Cookie based authentication (nicht stateless, aber gut für Endanwender, die sich abmelden können) vs. HTTP Basic Authentication (stateless, aber schlecht für Endanwender, die zum Abmelden immer den Browser schließen müssen) oder den Einsatz von Cookies überhaupt, die im Umfeld von RESTful WebServices eher verpönt sind.</p>
<p>Folgende Repräsentationen von Information bietet das Portal derzeit an verschiedenen Stellen an. Eine Erweiterung um zusätzliche Daten-Repräsentationen ist mit wenig Aufwand möglich.</p>
<dl>
<dt>HTML</dt>
<dd>Der Endanwender, der im Portal recherchieren möchte, erhält eine bekannte Ausgabe im HTML-Format. Die entsprechenden URI&#8217;s enden auf <em>.html</em>.<br />
[<a href="http://search.openbib.org/portal/openbib/cloud/year/openbib.html" target="_blank">Beispiel: Wortwolke</a>]</dd>
<dt>JSON</dt>
<dd>Für eine bestmögliche Integration in externe Anwendungen werden standardmäßig alle verfügbaren Informationen im JSON-Format bereitgestellt. Damit lässt sich insbesondere auch jede Information direkt über AJAX (via JSON) integrieren. Die entsprechenden URI&#8217;s enden auf <em>.json</em>.<br />
[<a href="http://search.openbib.org/portal/openbib/litlist/2.json" target="_blank">Beispiel: Literaturliste</a>]</dd>
<dt>RDF</dt>
<dd>Als lingua franca des Sematic Web können die Informationen &#8211; wenn geeignete Ontologien zu ihrer Beschreibung existieren &#8211; im RDF-XML-Format bereitgestellt werden. Die entsprechenden URI&#8217;s enden auf <em>.rdf</em><br />
[<a href="http://search.openbib.org/portal/openbib/title/openbib/532.rdf" target="_blank">Beispiel: Titel-Resource</a>]</dd>
<dt>RSS</dt>
<dd>Verschiedene Informationen lassen sich direkt als RSS-Feed abonnieren, wie z.B. die Literaturlisten zu einem Themengebiet. Die entsprechenden URI&#8217;s enden auf <em>.rss</em><br />
[<a href="http://search.openbib.org/portal/openbib/litlist/subject/15/recent.rss" target="_blank">Beispiel: Literaturlisten in einem Themengebiet</a>]</dd>
<dt>HTML Include</dt>
<dd>Zur noch einfacheren Integration kann der effektive Nutzinhalt im HTML-Format ohne das ihn umgebende Layout abgerufen und in externe Webseiten oder -anwendungen eingebettet werden. Die entsprechenden URI&#8217;s enden auf <em>.include</em><br />
[<a href="http://search.openbib.org/portal/openbib/litlist/subject/15/recent.include?num=5" target="_blank">Beispiel: Letzte 5 Literaturlisten in einem Themengebiet</a>]</dd>
</dl>
<p>Zusätzlich zum Aufruf des eine Resource referenzierenden HTTP-URI und anschließender Weiterleitung über eine 303-Redirect-Weiche kann jede Repräsentation der Resource auch direkt über das Anhängen der jeweiligen Endung aufgerufen werden. Die für einen URI verfügbaren Repräsentationen werden dabei in der HTML-Repräsentation als Links über Icons (RDF, JSON) dargestellt [<a title="Beispiel-Titel Perl cookbook" href="http://search.openbib.org/portal/openbib/title/openbib/462.html" target="_blank">Beispiel: Titel</a>].</p>
<h3>Beispiel</h3>
<p>Der Titel <em>Perl cookbook</em> in der Datenbank <em>&#8216;openbib&#8217;</em> und der dortigen internen (aber persistenten) ID-Nr <em>462</em> bekommt so einen fest definierten HTTP-URI</p>
<pre><span class="attribute-value">http://search.openbib.org/portal/openbib/title/openbib/462</span></pre>
<p>Ein Browser akzeptiert &#8216;text/html&#8217; und wird bei der Referenzierung des HTTP-URI auf die zugehörige HTML-Repräsentation mit dem URL</p>
<pre><span class="attribute-value">http://search.openbib.org/portal/openbib/title/openbib/462.html</span></pre>
<p>weitergeleitet.</p>
<p>Eine Web-Anwendung möchte die Daten verarbeiten und hätte sie gerne im praktischen JSON-Format, akzeptiert also &#8216;application/json&#8217; und wird an den URL</p>
<pre><span class="attribute-value">http://search.openbib.org/portal/openbib/title/openbib/462.json</span></pre>
<p>weitergeleitet.</p>
<p>Ein WebCrawler (Google, etc.) sieht in der HTML-Version  die Information</p>
<pre>&lt;<span class="start-tag">link</span><span class="attribute-name"> rel</span>=<span class="attribute-value">"alternate" </span><span class="attribute-name">type</span>=<span class="attribute-value">"application/rdf+xml" </span><span class="attribute-name">title</span>=<span class="attribute-value">"RDF Representation"
</span><span class="attribute-name">href</span>=<span class="attribute-value">"http://search.openbib.org/portal/openbib/title/openbib/462.rdf"</span><span class="error"><span class="attribute-name">/</span></span>&gt;</pre>
<p>oder hat den HTTP-URI bereits woanders geharvested und kann nun die Informationen im RDF/XML-Format und beschrieben durch &#8220;geeignete Ontologien&#8221; strukturiert unter</p>
<pre><span class="attribute-value">http://search.openbib.org/portal/openbib/title/openbib/462.rdf</span></pre>
<p>ansprechen.</p>
<p>Problematisch und mit durchweg viel Aufwand verbunden ist die Modellierung aller vorhandenen Dienste und Informationen im Portal durch &#8220;geeignete Ontologien&#8221;. Aus pragmatischen Gründen wird daher für eine möglichst einfache Integration in externe Dienste als Repräsentation das  verbreitete  JSON-Format bevorzugt.</p>
<p>Realisiert werden die verschiedenen Daten-Repräsentationen durch den Einsatz einer Weiche in den bereits vorhandenen Basis-Templates [<a title="Template resource_title im CVS" href="http://cvs.berlios.de/cgi-bin/viewvc.cgi/openbib/openbib/portal/perl/templates/resource_title?revision=1.2.2.8&amp;view=markup&amp;pathrev=devel-2_4-branch" target="_blank">Beispiel: Titel-Resource</a>], die nun nicht mehr für eine Ausgabe der Informationen im HTML-Format, sondern je nach gewünschter Repräsentation auf das zuständige Template im gewünschten Ausgabeformat weiterreichen. Vorgeschaltet ist eine 303er-Content-Weiche  für den grundlegenden HTTP-URI (ohne Endung).</p>
<p>Die neue URL-Struktur bildet nun auch direkt die Portal-Sicht ab, über deren Name verschiedene Portale auf OpenBib-Basis für den Endanwender angesprochen werden können. Ein URL beginnt immer mit</p>
<pre><span class="attribute-value">/portal/[Name der Portalsicht]/[Rest-URL]</span></pre>
<p>und bietet sich somit für URL-Rewriting/Proxying an.</p>
<p>Bis zur offiziellen Freigabe dieser neuen OpenBib-Version wird es sicherlich noch etwas dauern, aber den aktuellen Entwicklungsstand kann man bereits jetzt in einem neuen Demo-Portal mit einem kleinen Datenbestand besichtigen:</p>
<p><a title="Demonstrations-Portal für die Weiterentwicklung von OpenBib" href="http://search.openbib.org/" target="_blank">http://search.openbib.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openbib.org/2011/03/16/das-recherche-portal-ist-der-webservice/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PaperC jetzt mit CSV-Gesamtexport</title>
		<link>http://blog.openbib.org/2010/06/28/paperc-jetzt-mit-csv-gesamtexport/</link>
		<comments>http://blog.openbib.org/2010/06/28/paperc-jetzt-mit-csv-gesamtexport/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 10:59:15 +0000</pubDate>
		<dc:creator>Oliver Flimm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Einblicke und Konzepte]]></category>
		<category><![CDATA[CSV-Export]]></category>
		<category><![CDATA[Mashups]]></category>
		<category><![CDATA[PaperC]]></category>
		<category><![CDATA[Zentrale Kataloganreicherung]]></category>

		<guid isPermaLink="false">http://blog.openbib.org/?p=208</guid>
		<description><![CDATA[Entsprechend einer Mail von Lukas Rieder stellt PaperC nun einen CSV-Export mit rudimentären Metadaten aller dort verfügbaren E-Books unter http://paperc.de/documents/export.csv für eine weitere interne Verarbeitung in anderen Plattformen &#8211; wie z.B. dem KUG mit OpenBib &#8211; zur Verfügung. In dieser CSV-Datei befindet sich die ISBN13 der E-Book- und  Print-Ausgabe (die Print-ISBN leider noch nicht überall), [...]]]></description>
			<content:encoded><![CDATA[<p>Entsprechend einer Mail von Lukas Rieder stellt PaperC nun einen CSV-Export mit rudimentären Metadaten aller dort verfügbaren E-Books unter</p>
<blockquote><p><a title="Export des PaperC-Bestandes im CSV-Format" href="http://paperc.de/documents/export.csv" target="_blank">http://paperc.de/documents/export.csv</a></p></blockquote>
<p>für eine weitere interne Verarbeitung in anderen Plattformen &#8211; wie z.B. dem KUG mit OpenBib &#8211; zur Verfügung.</p>
<p>In dieser CSV-Datei befindet sich die ISBN13 der E-Book- und  Print-Ausgabe (die Print-ISBN leider noch nicht überall), der Titel und der URL des Buches bei PaperC. Damit lässt sich PaperC nun noch einfacher für eine Anreicherung der lokalen Katalogdaten im KUG nutzen. Obwohl die Titel weiterhin in der PaperC-Webseite selbst nicht &#8211; weder mit der ISBN10, noch mit der ISBN13 der Print-Ausgabe &#8211; über das Suchfeld in einem URL der Form</p>
<p><a title="Suche mit der Print-ISBN10 " href="http://paperc.de/search?query=0596002068&amp;commit=Suchen" target="_blank">http://paperc.de/search?query=0596002068&amp;commit=Suchen</a></p>
<p>auffindbar sind, so kann nun zumindest über das <a title="PaperC API" href="http://blog.paperc.de/api/" target="_blank">PaperC JSON-API</a> mit der ISBN13 die Existenz der Print-Ausgabe verifiziert werden:</p>
<p><a title="Titel mit Print-ISBN13 über das PaperC-API" href="http://paperc.de/9780596002060.json" target="_blank">http://paperc.de/9780596002060.json</a></p>
<p>Für einen Mashup rein über JavaScript reicht dies aus. Im Artikel <a title="Blog-Artikel PaperC im KUG" href="http://blog.openbib.org/2010/03/02/paperc-im-kug/" target="_blank">PaperC im KUG</a> habe ich einen anderen Weg skizziert, der ohne JavaScript auskommt, der aber von der Recherchierbarkeit des Titels in PaperC mit der ISBN aus den lokal erfassten bibliographischen Daten abhängt. Das ist weiterhin nicht möglich.</p>
<p>Bei der Entwicklung des KUG verfolgen wir seit jeher die Strategie, dass jede Funktion auch ohne aktiviertes JavaScript nutzbar sein soll. Die jeweilige Funktion im KUG ist dann zwar gegebenenfalls nicht ganz so bedienungsfreundlich eingebunden wie die JavaScript-Variante, prinzipiell aber immer verfügbar.</p>
<p>Vor diesem Hintergrund der weiterhin nicht mehr funktionierenden Einbindung via Recherche-URL der Print-ISBN, kommt der CSV-Export gerade Recht.</p>
<p>Jetzt können wir aus der Export-Datei die PaperC-URL der jeweiligen Titel  mit den verfügbaren ISBNs einfach in unsere <a title="Blog-Artikel zur Zentralen Kataloganreicherung im KUG" href="http://blog.openbib.org/2008/06/18/zentrale-kataloganreicherung/" target="_blank">Zentrale Anreicherungsdatenbank</a> zu den <a title="Inhalte in der zentralen Anreicherungsdatenbank" href="http://wiki.openbib.org/index.php?title=Zentrale_Kataloganreicherung" target="_blank">dort bereit vorhandenen Inhalten</a> einspielen. Dafür verwenden wir ein einfaches Skript paperc2enrich.pl, mit dem wir über einen Cron-Job die PaperC-Daten alle 14-Tage automatisch aktualisieren. Zusätzlich musste dann nur noch das entsprechende Ausgabe-Template angepasst werden. Wenn ein PaperC-URL in der Kategorie E4122 (in der steckt der PaperC-URL des Titels) vorhanden ist, dann wird das bereits bekannte &#8220;PaperC-Verfügbarkeits-Bild&#8221; ausgegeben.</p>
<p>Konkret verwenden wir nun diesen Abschnitt im Template</p>
<blockquote><p>[% IF normset.${"E4122"} %]<br />
&lt;p&gt;<br />
&lt;a href=&#8221;[% config.get('redirect_loc') %]/[% sessionID %]/512/[% normset.${"E4122"}.first.content %]&#8221; target=&#8221;_blank&#8221; title=&#8221;Online Lesen bei PaperC&#8221;&gt;&lt;img src=&#8221;/images/openbib/paperc.png&#8221; alt=&#8221;Bei PaperC vorhanden&#8221; border=&#8221;0&#8243; /&gt;&lt;/a&gt;&lt;br/&gt;<br />
&lt;/p&gt;<br />
[% END %]</p></blockquote>
<p>anstelle von</p>
<blockquote><p>&lt;p&gt;<br />
&lt;a href=&#8221;[% config.get('redirect_loc') %]/[% sessionID %]/512/http://paperc.de/search?query=[% isbn %]&amp;commit=Suchen&#8221; target=&#8221;_blank&#8221; title=&#8221;Online Lesen bei PaperC&#8221;&gt;&lt;img src=&#8221;[% config.get('connector_availabilityimage_loc') %]?action=lookup;id=[% isbn %];target=paperc&#8221; alt=&#8221;Bei PaperC vorhanden?&#8221; border=&#8221;0&#8243; /&gt;&lt;/a&gt;&lt;br/&gt;<br />
&lt;/p&gt;</p></blockquote>
<p>Für die Bereitstellung der PaperC-Informationen aus unserer Anreicherungsdatenbank für andere lokale Dienste, wie unser USB-Portal, bieten wir diese zusätzlich mit dem <a title="Informationen zu SeeAlso Abfrageprotokoll" href="http://wiki.openbib.org/index.php?title=SeeAlso_Abfrageprotokoll" target="_blank">SeeAlso-Abfrageprotokoll</a> über unseren <a title="Wiki-Seite zum SeeAlso-Konnektor von OpenBib" href="http://wiki.openbib.org/index.php?title=Konnektor:_SeeAlso" target="_blank">SeeAlso-Konnektor</a> an. Für die ISBN10 des Beispiel-Titels lautet die Abfrage</p>
<p><a title="SeeAlso-Abfrage zur ISBN10" href="http://kug.ub.uni-koeln.de/portal/connector/seealso/isbn2paperc?id=0-596-00206-8&amp;format=seealso" target="_blank">http://kug.ub.uni-koeln.de/portal/connector/seealso/isbn2paperc?id=0-596-00206-8&amp;format=seealso</a></p>
<p>Durch die automatische Anreicherung eines jeden Titels in den verschiedenen KUG-Katalogen, der eine Print- oder E-Book-ISBN aus dem PaperC Export enthält, haben wir wieder eine funktionierende Einbindung von PaperC für unsere Nutzer &#8211; und auch der Beispiel-Titel <a title="Beispieltitel mit Verfügbarkeit bei PaperC" href="http://kug.ub.uni-koeln.de/portal/connector/permalink/inst006/6588/1/kug/index.html" target="_blank">Programming Web-Services with Perl</a> aus dem vorangegangenen Blog-Artikel zu PaperC zeigt die Verfügbarkeit dort wieder richtig an.</p>
<p>Vielen Dank an Lukas Rieder für die Bereitstellung der CSV-Exporte!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openbib.org/2010/06/28/paperc-jetzt-mit-csv-gesamtexport/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Schnellere Kataloge mit YSlow</title>
		<link>http://blog.openbib.org/2010/06/11/schnellere-kataloge-mit-yslow/</link>
		<comments>http://blog.openbib.org/2010/06/11/schnellere-kataloge-mit-yslow/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 14:38:00 +0000</pubDate>
		<dc:creator>Oliver Flimm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Einblicke und Konzepte]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[YSlow]]></category>

		<guid isPermaLink="false">http://blog.openbib.org/?p=173</guid>
		<description><![CDATA[Manchmal verwundert es, warum sich die eine oder andere Web-Anwendung oder -Seite so langsam, geradezu zäh &#8220;anfühlt&#8221;. Für Kataloge gilt das gleiche. Welche Gründe das haben &#8211; und wie man mit wenig Aufwand die gefühlte Performance für den Endanwender verbessern kann, hat Steve Souders für die Platform Engineering Group von Yahoo bereits vor einigen Jahren [...]]]></description>
			<content:encoded><![CDATA[<p>Manchmal verwundert es, warum sich die eine oder andere Web-Anwendung oder -Seite so langsam, geradezu zäh &#8220;anfühlt&#8221;. Für Kataloge gilt das gleiche.</p>
<p>Welche Gründe das haben &#8211; und wie man mit wenig Aufwand die gefühlte Performance für den Endanwender verbessern kann, hat Steve Souders für die Platform Engineering Group von Yahoo bereits vor einigen Jahren bei den Top 10 Web-Sites in den USA untersucht und in seinem Buch &#8220;<a title="Das Buch kostenlos lesen bei PaperC" href="http://paperc.de/5336-high-performance-web-sites-9780596517922" target="_blank">High Performance Web Sites</a>&#8221; zusammengefasst. Inzwischen gibt es in Buchform  bereits den Nachfolger &#8220;<a title="Noch nicht bei PaperC, aber beim Verlag" href="http://oreilly.com/catalog/9780596522308/" target="_blank">Even faster Web Sites</a>&#8221; mit noch mehr Optimierungs-Tips.</p>
<p>Sein Fazit: Schuld an der Zähigkeit vieler Seiten ist selten das Backend mit dem die Inhalte generiert werden, sondern das Frontend, also die Auslieferung und die Art, wie Seiten aufgebaut sind und im Browser gerendert werden. Nach seiner Erfahrung entfallen durchschnittlich nur 20 Prozent der Gesamtzeit auf das Backend, aber 80 Prozent auf das Frontend.</p>
<p>Optimierungen des Backends sind typischerweise mit viel Aufwand verbunden, erreichen dann aber doch meist nur Beschleunigungen im 1-stelligen Prozentbereich. Demgegenüber kann man mit vernachlässigbarem Einsatz die 80 Prozent in großen Teilen reduzieren. Selbstverständlich gilt das nur, wenn man nicht das langsamste Recherche-Backend aller Welten hat, wie es bei Recherchen in klassischen SQL-basierten Katalogen bei Begriffen wie &#8220;Deutschland&#8221; oder &#8220;Geschichte&#8221; auch heute manchmal immer noch der Fall ist &#8211; mal abgesehen, wie sinnlos so eine Recherche eigentlich ist&#8230;</p>
<p>Aufbauend auf dem angesprochenen Buch gibt es ein Firefox-Add-on von Yahoo! mit dem sinnigen Namen <a title="Add-On bei Yahoo!" href="http://developer.yahoo.com/yslow/" target="_blank">YSlow</a> &#8211; &#8220;Why Slow?&#8221;, das in das beliebte Firebug-Add-on integriert ist.</p>
<p>Nach der Installation des YSlow Add-ons kann man es auf eine beliebige Webseite, sei sie aus einer statischen Web-Präsenz oder einem Bibliothekskatalog anwenden. Entsprechend der Optimierungsbereiche aus dem erstgenannten Buch wird der jeweiligen Webseite zunächst eine erreichte Bewertungs-Punktzahl und eine allgemeine Note von A (sehr gut) bis F (sehr schlecht) gegeben. Darauf folgen die &#8220;Einzelwertungen&#8221; in den jeweiligen Bereichen. Wie im Buch sind die Bereiche von &#8220;bringt viel&#8221; bis &#8220;bringt auch noch etwas&#8221; von oben nach unten geordnet &#8211; daraus gibt sich dann automatisch die Reihenfolge, mit der man potentielle Defizite angehen kann.</p>
<p>Sehr gelungen ist hier, dass neben den Bewertungen unter &#8220;Read more&#8221; direkt per Mausklick weitergehende Informationen auf den Webseiten von Yahoo!s Developer Network mit einer Kurzfassung der Tips aus dem Buch angeboten werden.</p>
<p>Nach Lektüre des Buches habe ich dann auch sofort YSlow installiert und auf den KUG und weitere Kataloge losgelassen. Das Ergebnis war dann jedoch etwas enttäuschend. Gerade mal ein D-E hatte der KUG erreicht. Angemäkelt wurde insbesondere folgendes</p>
<ul>
<li>Weniger HTTP-Request machen</li>
<li>Ein Content Delivery Network verwenden</li>
<li>Für viele statische Inhalte langlebige Expires-Header hinzufügen</li>
<li>Auslieferung mit gzip komprimieren</li>
<li>ETags konfigurieren</li>
</ul>
<p>Bei vielen anderen Bibliothekskatalogen, die ich mir mit YSlow angeschaut habe, sind es oft die gleichen Optimierungsbereiche. Die Behebung der gravierendsten Mängel war danach sehr einfach, auch wenn wir uns z.B. nicht in ein CDN wie Akamai mit dem KUG einkaufen werden&#8230;</p>
<p>Zuerst haben wir CSS- und JavaScript Files reduziert und so gut es ging zusammenfasst. Die Verwendung von CSS-Sprites für die Icons steht noch aus, da hier auch noch der Bereich Barrierefreiheit mit bedacht werden muss.</p>
<p>Für den KUG verwenden wir ein Setup mit gestaffelten Web-Servern. Das eigentliche Applikations-Backend bildet ein Apache2. Vor diesen haben wir einen weiteren Web-Server postiert, der alle statischen Inhalte ausliefert, also Stylesheets, JavaScript, Bilder usw. Alle Anfragen an die KUG-Anwendung werden per ProxyPass an den Apache2 weitergereicht. Auf diese Weise muss sich der &#8220;dicke&#8221; Apache2 mit mod_perl</p>
<ol>
<li>nicht mit den statischen Anfragen abplagen und kann</li>
<li>seine Inhalte schnell an den vorgeschalteten Webserver ausliefern. Damit wird er nicht von Anfragen über langsame Datenverbindungen blockiert.</li>
</ol>
<p>Als vorgeschaltete Web-Server setzen wir hier teils noch den Apache 1.3, teils lighttpd ein. Dementsprechend müssen dort die weiteren Optimierungen erfolgen.</p>
<p><strong>Expires</strong></p>
<p>Da wären dann die Expires-Header für die statischen Inhalte. Diese sollten auf mehr als 30 Tage gesetzt werden.</p>
<p>Bei Apache 1.3 geht das mit mod_expire und den Direktiven</p>
<blockquote><p>&lt;IfModule mod_expires.c&gt;<br />
&lt;LocationMatch &#8220;^/(js|styles|images)/&#8221;&gt;<br />
ExpiresActive on<br />
ExpiresDefault &#8220;access plus 30 days&#8221;<br />
&lt;/LocationMatch&gt;<br />
&lt;/IfModule&gt;</p></blockquote>
<p>Bei lighttpd mit:</p>
<blockquote><p>server.modules   += ( &#8220;mod_expire&#8221; )</p>
<p>expire.url = ( &#8220;/images/&#8221; =&gt; &#8220;access plus 30 days&#8221;, &#8220;/styles/&#8221; =&gt; &#8220;access plus 30 days&#8221;, &#8220;/js/&#8221; =&gt; &#8220;access plus 40 days&#8221; )</p></blockquote>
<p><strong>Komprimierte Auslieferung</strong></p>
<p>Ein weiterer Bereich ist die komprimierte Auslieferung der Daten mit gzip.</p>
<p>Bei Apache 1.3 geht das sehr einfach mit mod_gzip:</p>
<blockquote><p>&lt;IfModule mod_gzip.c&gt;<br />
mod_gzip_on                   Yes<br />
mod_gzip_can_negotiate        Yes<br />
mod_gzip_static_suffix        .gz<br />
AddEncoding              gzip .gz<br />
mod_gzip_update_static        No<br />
mod_gzip_command_version      &#8216;/mod_gzip_status&#8217;<br />
mod_gzip_temp_dir             /tmp<br />
mod_gzip_keep_workfiles       No<br />
mod_gzip_minimum_file_size    500<br />
mod_gzip_maximum_file_size    500000<br />
mod_gzip_maximum_inmem_size   60000<br />
mod_gzip_min_http             1000<br />
mod_gzip_handle_methods        GET POST<br />
mod_gzip_item_exclude         reqheader  &#8220;User-agent: Mozilla/4.0[678]&#8221;<br />
mod_gzip_item_include         file       \.html$<br />
mod_gzip_item_include         file       \.js$<br />
mod_gzip_item_include         file       \.css$<br />
mod_gzip_item_include         file       \.pl$<br />
mod_gzip_item_include         handler    ^cgi-script$<br />
mod_gzip_item_include         mime       ^text/html$<br />
mod_gzip_item_include         mime       ^text/plain$<br />
mod_gzip_item_include         mime       ^text/css$<br />
mod_gzip_item_include         mime       ^application/javascript$<br />
mod_gzip_item_include         mime       ^application/x-javascript$<br />
mod_gzip_item_include         uri       ^/styles/<br />
mod_gzip_item_include         uri       ^/js/<br />
mod_gzip_item_exclude         mime       ^image/<br />
mod_gzip_dechunk              Yes<br />
LogFormat                     &#8220;%h %l %u %t \&#8221;%V %r\&#8221; %&lt;s %b mod_gzip: %{mod_gzip_result}n In:%{mod_gzip_input_size}n -&lt; Out:%{mod_gzip_output_size}n = %{mod_gzip_compression_ratio}n pct.&#8221; common_with_mod_gzip_info2<br />
CustomLog                     /var/log/apache/mod_gzip.log common_with_mod_gzip_info2<br />
mod_gzip_add_header_count     Yes<br />
mod_gzip_send_vary            On<br />
&lt;/IfModule&gt;</p></blockquote>
<p>Entsprechendes geht bei lighttpd mit mod_compress und</p>
<blockquote><p>compress.cache-dir          = &#8220;/var/cache/lighttpd/compress/&#8221;<br />
compress.filetype           = (&#8220;text/plain&#8221;, &#8220;text/html&#8221;, &#8220;application/x-javascript&#8221;, &#8220;text/css&#8221;, &#8220;application/javascript&#8221;)</p></blockquote>
<p>Diese Direktiven stehen so bereits in der Konfigurationsdatei lighttpd.conf und müssen dort nur aktiviert werden.</p>
<p><strong>ETags</strong></p>
<p>Weiter geht es mit der Konfiguration von ETags. Hier bietet es sich an, diese komplett zu deaktivieren</p>
<p>In Apache 1.3 geht das mit:</p>
<blockquote><p>&lt;LocationMatch &#8220;^/(js|styles|images)/&#8221;&gt;<br />
FileEtag None<br />
&lt;/LocationMatch&gt;</p></blockquote>
<p>Entsprechend in lighttpd:</p>
<blockquote><p>static-file.etags = &#8220;disable&#8221;</p></blockquote>
<p>Mit diesen wenigen Maßnahmen konnten wir uns von D-E im KUG auf eine Bewertung von B steigern. Auf unserem Entwicklungssystem für die nächste KUG-Version konnten wir die HTTP-Request weiter minimieren und haben es sogar auf ein A geschafft.Und das alles durch minimale Konfigurationsänderungen, die nicht wirklich Arbeit gekostet haben.</p>
<p>Selbstverständlich gibt es auch Bereiche, wo man mehr oder weniger machtlos ist, weil man z.B. externe Cover einbindet und der Lieferant keine Expires setzt oder nicht komprimiert oder &#8230; Manchmal kann man aber auch selbst dann noch optimieren. So ist bei uns auf allen Rechercheseiten der BIX-Zählpixel eingebunden, der natürlich prompt angemäkelt wurde. Da dieser aber ohnehin nur für einen definierten Zeitraum von wenigen Wochen pro Jahr aktiv ausgewertet wird, haben wir dessen Integration in die KUG-Seiten einfach parametrisiert. So wird er jetzt nur noch im Auswertungszeitraum aktiviert und erscheint sonst auf unseren Seiten nicht mehr.</p>
<p><a href="http://blog.openbib.org/wp-content/uploads/2010/06/yslow-kug.png"><img class="alignnone size-medium wp-image-174" title="Der KUG unter der Lupe von YSlow" src="http://blog.openbib.org/wp-content/uploads/2010/06/yslow-kug-300x165.png" alt="" width="300" height="165" /> </a></p>
<p>Insgesamt hat das YSlow Add-on bei der Optimierung des KUG als Beispiel für einen Bibliothekskatalog gute Dienste geleistet. Gerade durch die Adressierung konkreter Optimierungsbereiche und seine Evaluationmöglichkeiten deckt es den Frontendbereich sehr gut ab. Weitere Blog-Artikel zu YSlow finden sich <a title="Using YSlow to optimize web site perfomance" href="http://blog.shadypixel.com/using-yslow-to-optimize-web-site-performance/" target="_blank">hier</a> und <a title="Fortsetzung" href="http://blog.shadypixel.com/using-yslow-to-optimize-web-site-performance-continued/" target="_blank">hier</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openbib.org/2010/06/11/schnellere-kataloge-mit-yslow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PaperC im KUG</title>
		<link>http://blog.openbib.org/2010/03/02/paperc-im-kug/</link>
		<comments>http://blog.openbib.org/2010/03/02/paperc-im-kug/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 09:39:46 +0000</pubDate>
		<dc:creator>Oliver Flimm</dc:creator>
				<category><![CDATA[Ankündigungen]]></category>
		<category><![CDATA[Einblicke und Konzepte]]></category>
		<category><![CDATA[E-Books]]></category>
		<category><![CDATA[Mashups]]></category>
		<category><![CDATA[PaperC]]></category>

		<guid isPermaLink="false">http://blog.openbib.org/?p=112</guid>
		<description><![CDATA[Hinweis: Seit dem 11.3.2010 werden in PaperC nicht mehr die ISBNs der Print-Ausgabe indexiert. Damit sind die Titel aus einem Bibliothekskatalog &#8211; wo eben diese vorhanden ist &#8211; nicht mehr auffindbar. Lukas Rieder von PaperC hat jedoch angekündigt, dass die Print-ISBNs zukünftig wieder erfasst werden sollen. Der Online-Dienst PaperC (Pay-per-Copy) bietet seinen Nutzern die Möglichkeit [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><strong>Hinweis:</strong> Seit dem 11.3.2010 werden in PaperC nicht mehr die ISBNs der Print-Ausgabe indexiert. Damit sind die Titel aus einem Bibliothekskatalog &#8211; wo eben diese vorhanden ist &#8211; nicht mehr auffindbar. Lukas Rieder von PaperC hat jedoch angekündigt, dass die Print-ISBNs zukünftig wieder erfasst werden sollen.</p></blockquote>
<p>Der Online-Dienst <a title="Startseite von PaperC" href="http://paperc.de/" target="_blank">PaperC</a> (Pay-per-Copy) bietet seinen Nutzern die Möglichkeit kostenlos Fachbücher im Internet zu lesen und wurde mit dieser Idee &#8220;Startup des Jahres&#8221;. Will der Nutzer Seiten aus einem Fachbuch weiter verarbeiten, so zahlt er dafür 10 Cent pro Seite  und kann fortan laut PaperC-Startseite</p>
<ul>
<li>Seiten herunterladen und ausdrucken</li>
<li>Textstellen einfach kopieren und zitieren</li>
<li>eigene Notizen anfügen und online verwalten</li>
</ul>
<p>Für Rechercheplattformen wie dem KUG mit seinen Nutzern ist PaperC damit ein sehr nützlicher Dienst, stellt er doch eine interessante Alternative zu teuer erworbenen E-Books dar. Gerade in der letzten Woche  schlug der Dienst in der Blogsphäre einige <a title="PaperC und die Verbünde" href="http://andreaarndt.wordpress.com/2010/03/01/paperc-mal-wieder/" target="_blank">Wellen</a>, als der Verlag O&#8217;Reilly 600 Bücher zu PaperC beisteuerte und die Einbindung von PaperC in Verbundkataloge thematisiert wurde. Sehr erfreulich ist die Bereitschaft von PaperC seine Metadaten zur Kataloganreicherung zu liefern. Ebenso wurde auf <a title="API-Wunsch im Feedback Forum" href="http://feedback.paperc.de/forums/7110-paperc-feedback/suggestions/300640-api-f-r-mashups?ref=title" target="_blank">breiten Wunsch</a> ein API fertig gestellt, dass allerdings bisher noch nicht öffentlich im Blog dokumentiert ist.</p>
<p>Um unseren Nutzern die Vorteile von PaperC schon jetzt anbieten zu können &#8211; und weil die Implementierung eine Sache von knapp 3 Minuten war &#8211; zeigt der KUG nun bei den Vollanzeigen derjenigen Titeln, die in PaperC vorhanden sind, deren Verfügbarkeit direkt an &#8211; wie im Beispiel-Titel &#8220;<a title="PermaLink zum Beispieltitel im KUG" href="http://kug.ub.uni-koeln.de/portal/connector/permalink/inst006/6588/1/kug/index.html" target="_blank">Programming web services with Perl</a>&#8220;.</p>
<p><a href="http://blog.openbib.org/wp-content/uploads/2010/03/paperc-example1.png"><img class="alignnone size-medium wp-image-124" title="paperc-example" src="http://blog.openbib.org/wp-content/uploads/2010/03/paperc-example1-300x178.png" alt="" width="300" height="178" /></a></p>
<p>Der schon für die Einbindung von Google Books verwendete Mashup-Mechanismus im KUG ist sehr einfach und verzichtet bewusst auf die Verwendung von JavaScript. Stattdessen wird lediglich ein Bild mit einem URL verlinkt, der die Recherche bzw. den Einsprung in den jeweiligen Dienst (über die in der Titelaufnahme enthaltene ISBN) aufruft. Im Fall von PaperC ist das einfach</p>
<pre><a title="Recherche-Link des Titels in PaperC" href="http://paperc.de/search?query=0596002068&amp;commit=Suchen" target="_blank">http://paperc.de/search?query=0596002068&amp;commit=Suchen</a></pre>
<p>Das &#8220;Verfügbarkeits-Bild&#8221; wird dynamisch über einen <a title="Konnektor zur Erzeugung des Verfügbarkeitsbildes" href="http://cvs.berlios.de/viewvc/openbib/openbib/portal/perl/modules/OpenBib/Handler/Apache/Connector/AvailabilityImage.pm?view=log" target="_blank">Konnektor</a> erzeugt. Dieser überprüft &#8211; ebenfalls über eine einfache Recherche &#8211; die Verfügbarkeit. Ist der jeweilige Titel bei PaperC enthalten, so wird das PaperC-Bild ausgegeben und der Recherche-Link ist nutzbar, falls nicht wird stattdessen ein transparenter Pixel ausgegeben und der Link ist unsichtbar.</p>
<p>Wichtig ist bei dieser Art der Nutzung  für den konnektorseitigen Aufruf &#8211; z.B. bei Google Books &#8211; die Weiterreichung der IP des aufrufenden Nutzers über den auch in Proxies gesetzten X-Forwarded-For-Header, um einem generellen Blocking der IP des Portal-Rechners zu entgehen. Da bei PaperC darüber hinaus ein Buch nicht über seine korrespondierende ISBN13 recherchierbar zu sein scheint, falls nur die ISBN10 ursprünglich vorhanden ist,  konnten wir für den Konnektor nicht die sonst übliche Normierung auf ISBN13 nutzen, sondern mussten 1:1 die in der KUG Titelaufnahme enthaltene ISBN10 verwenden.</p>
<p>Stehen später dann irgendwann einmal die Metadaten oder das API wirklich zur Verfügung, kann für den KUG im Hintergrund problemlos &#8211; und für den Nutzer weitgehend unsichtbar &#8211; eine Umstellung darauf erfolgen.</p>
<p><strong>Update 2.3.2010</strong>: Nach einer Anregung in einem <a title="PaperC Anfrage" href="http://twitter.com/paper_c/status/9870029936" target="_blank">Tweet</a> geht aus dem PaperC-Verfügbarkeitsbild nun eindeutig hervor, dass die Lehrbücher kostenlos gelesen werden können.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openbib.org/2010/03/02/paperc-im-kug/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Verweise auf aktuelle Zeitschriftenartikel mit TicTocs im KUG</title>
		<link>http://blog.openbib.org/2009/12/10/verweise-auf-aktuelle-zeitschriftenartikel-mit-tictocs-im-kug/</link>
		<comments>http://blog.openbib.org/2009/12/10/verweise-auf-aktuelle-zeitschriftenartikel-mit-tictocs-im-kug/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 22:13:22 +0000</pubDate>
		<dc:creator>Oliver Flimm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Ankündigungen]]></category>
		<category><![CDATA[Einblicke und Konzepte]]></category>
		<category><![CDATA[Mashups]]></category>
		<category><![CDATA[SeeAlso]]></category>
		<category><![CDATA[TicTocs]]></category>
		<category><![CDATA[Zeitschriftenartikel]]></category>

		<guid isPermaLink="false">http://blog.openbib.org/?p=64</guid>
		<description><![CDATA[Der TicTocs Journal Tables of Contents Dienst wurde konsortial unter Führung der University of Liverpool Library erschaffen, um den Nutzern mit wenig Aufwand eine Übersicht der zuletzt in einer Zeitschrift veröffentlichten Artikel zu geben. Der Nutzer sucht zunächst nach den ihn interessierenden Zeitschriften und kann diese dann mit nur einem &#8220;Tic&#8221; anhaken und dauerhaft abonnieren. [...]]]></description>
			<content:encoded><![CDATA[<p>Der <a title="TicTocs Webseite" href="http://www.tictocs.ac.uk/" target="_blank">TicTocs Journal Tables of Contents Dienst</a> wurde konsortial unter Führung der University of Liverpool Library erschaffen, um den Nutzern mit wenig Aufwand eine Übersicht der zuletzt in einer Zeitschrift veröffentlichten Artikel zu geben. Der Nutzer sucht zunächst nach den ihn interessierenden Zeitschriften und kann diese dann mit nur einem &#8220;Tic&#8221; anhaken und dauerhaft abonnieren.</p>
<p>Kernstück dieses Dienstes sind RSS-Feeds der entsprechenden Zeitschriften auf Verlagsseite, die die gewünschten Informationen zum Artikel wie Titel, URL zum Volltext sowie Abstract bereitstellen. In diesem Sinne werden im TicTocs-Dienst eben jene RSS-Feeds zu möglichst vielen Zeitschriften gesammelt. Derzeit umfasst der Dienst die aktuellsten Inhaltsverzeichnisse zu 12719 Zeitschriften von 448 Verlagen.</p>
<p>Interessant wird dieser Dienst für einen Katalog, wie z.B. den Kölner UniversitätsGesamtkatalog (KUG), dadurch, daß die Betreiber des TicTocs-Dienstes die von ihnen gesammelten RSS-Feeds für jedermann als Tabulator-separierte Tabelle unter <a title="RSS-Feeds mit Informationen" href="http://www.tictocs.ac.uk/text.php" target="_blank">http://www.tictocs.ac.uk/text.php</a> zur weiteren Nutzung bereitstellen.</p>
<p>Sehr vorteilhaft ist dabei, daß zu den Feeds &#8211; wenn immer möglich &#8211; sowohl die ISSN der Printausgabe wie auch der elektronischen Ausgabe mitgeliefert werden. Edlef Stabenau hatte bereits im März im netbib-Weblog darüber <a title="TicTocs für den eigenen Katalog" href="http://log.netbib.de/archives/2009/03/18/tictocs-fur-den-eigenen-katalog/" target="_blank">berichtet</a>, aber leider hatte ich das damals wohl überlesen und bin erst vor drei Wochen auf diesen Dienst gestoßen&#8230;</p>
<p>Die Integration in den KUG war dann schnell erledigt. Die Anreicherung der Titelaufnahmen geschieht &#8211; wie immer &#8211; katalogübergreifend in unserer zentralen Anreicherungsdatenbank, wobei der Identifizierungsschlüssel diesmal die ISSN ist. Die Einspielung der RSS-Feeds zu den ISSN&#8217;s in diese Datenbank übernimmt unser Skript <a title="Programm im CVS" href="http://cvs.berlios.de/viewvc/openbib/openbib/conv/enrichmnt/tictocs2enrich.pl" target="_blank">tictocs2enrich.pl.</a> Der Aufruf dieser Feeds und die Anzeige in den Titelaufnahmen kann auf verschiedene Weisen erfolgen. Am ehesten Web 2.0-artig ist sicherlich die Einbindung ausschließlich via JavaScript mit dem JQuery-Plugin <a title="jFeed-Plugin" href="http://plugins.jquery.com/project/jFeed" target="_blank">jFeed</a> (funktioniert wegen der JavaScript-Sandbox aber nur mit Proxy) oder mit <a title="AJAX Feed API von Google" href="http://code.google.com/intl/de-DE/apis/ajaxfeeds/" target="_blank">Googles AJAX Feed API</a>.</p>
<p>Stattdessen haben wir den noch fehlende RSS-Reader mit effektiv 2 Zeilen Perl-Code in einer eigenen Methode <a title="Utilities-Klasse zur Nutzung in Templates" href="http://cvs.berlios.de/viewvc/openbib/openbib/portal/perl/modules/OpenBib/Template/Utilities.pm" target="_blank">load_rss_feed</a> für die Nutzung in unserem Templating-System realisiert: So können wir für die JavaScript-Nutzer alles via AJAX anbieten, für die anderen &#8211; mit aus Sicherheitsgründen deaktiviertem JavaScript &#8211; die Informationen aber dennoch einfach als weitere Seite verlinken. Die eigentliche Ausgabe übernimmt das Informations-Template <a title="Template sowohl für die Ausgabe des Feeds" href="http://cvs.berlios.de/viewvc/openbib/openbib/portal/perl/templates/info_62" target="_blank">info_62</a>, das sowohl die Ausgabe via AJAX, wie auch als eigenständige Webseite übernimmt.</p>
<p>Hier nun zwei konkrete Beispiel im KUG.</p>
<p>Zunächst die Zeitschrift <a title="PermaLink des Titels im KUG" href="http://kug.ub.uni-koeln.de/portal/connector/permalink/inst001/6396839/1/kug/index.html" target="_blank">Remote Sensing</a></p>
<div class="mceTemp">
<dl id="attachment_69" class="wp-caption alignnone" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://blog.openbib.org/wp-content/uploads/2009/12/tictocs-remotesending.png"><img class="size-medium wp-image-69" title="tictocs-remotesending" src="http://blog.openbib.org/wp-content/uploads/2009/12/tictocs-remotesending-300x216.png" alt="Die Zeitschrift Remote Sensing" width="300" height="216" /></a></dt>
</dl>
</div>
<p>und danach die Zeitschrift <a title="PermaLink des Titels im KUG" href="http://kug.ub.uni-koeln.de/portal/connector/permalink/inst001/79794/1/kug/index.html" target="_blank">Nature</a></p>
<div class="mceTemp">
<dl id="attachment_68" class="wp-caption alignnone" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://blog.openbib.org/wp-content/uploads/2009/12/tictocs-nature.png"><img class="size-medium wp-image-68" title="tictocs-nature" src="http://blog.openbib.org/wp-content/uploads/2009/12/tictocs-nature-300x215.png" alt="Die Zeitschrift Nature" width="300" height="215" /></a></dt>
</dl>
</div>
<p>Mit der Integration von TicTocs können wir unseren Nutzern fortan sinnvolle Zusatzinformationen zu den abgedeckten Zeitschriften geben. Gemessen an dem geringen Integrationsaufwand wünschen wir TicTocs den Einzug in möglichst viele weitere Kataloge.</p>
<p><strong>Update 21.12.2009:</strong></p>
<p>Damit andere Interessierte den TicTocs-Dienst noch einfacher als Mashup in ihre eigenen Kataloge einbinden können &#8211; unter anderem auch wir selbst mit unserem <a title="USB Portal = Integration Webseiten und Rechercheanwendung" href="http://www.ub.uni-koeln.de/" target="_blank">USB-Portal</a> &#8211; bieten wir ihn selbst via <a title="SeeAlso Abfrageprotokoll" href="http://wiki.openbib.org/index.php?title=SeeAlso_Abfrageprotokoll" target="_blank">SeeAlso-Protokoll</a> an. Der Dienst hat den Namen <em>issn2tictocs</em> und kann sehr einfach mit einem Formatparameter <em>seealso</em> sowie dem Namen einer optionalen Callback-Funktion aufgerufen weden. Als Standard-Darstellung wir JSON zurückgeliefert.</p>
<p>Hier beispielsweise der Aufruf für die Zeitschrift <a title="SeeAlso Aufruf mit Callbackfunktion callme" href="http://kug.ub.uni-koeln.de/portal/connector/seealso/issn2tictocs?id=2072-4292&amp;format=seealso&amp;callback=callme" target="_blank">Remote Sensing</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.openbib.org/2009/12/10/verweise-auf-aktuelle-zeitschriftenartikel-mit-tictocs-im-kug/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

