[Allegro] Anwenderbeitrag: Erfahrungsbericht OPAC-Bau

Thomas Berger ThB at Gymel.com
Do Nov 19 18:45:49 CET 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Liebe Liste,

Als ich letzten Freitag beim allegro-Treffen in Braunschweig oeffentlich
ins Erzaehlen geriet, waren einige Teilnehmer schon abgereist, Pech fuer
den Rest, denn das Produkt aus Vortragszeit und Zuhoererzahl muss ja
konstant bleiben... Weil ich keine Folien hatte, die ich jetzt leicht
veroeffentlichen kann, sei hier eine Ausarbeitung nachgereicht, die ich
mir im wesentlichen selbst erzaehlt habe (und auch hier war dann das
Produkt aus ... konstant). Voila [und in eckigen Klammern das letzte Woche
ungesagte]:

Die erste Viertelstunde war ein eher spontaner Einschub, der einiges vom Tag
vorher aufgriff und auch eine von der BBF gemurmelte Frage zur Pflegbarkeit, es
war eine Art Erfahrungsbericht:

Die (in den 199ern, mit Populo 1.0x begonnene) Entscheidung, Funktionalitaet
und Layout durch Nutzung von "Templates" staerker zu trennen, ist fuer sich
gesehen immer noch nicht verkehrt [spaeter entstand dann ja PHP und Content-
Management-Systeme nach demselben Prinzip, als Populo programmiert wurde, gab
es in dem Berich nur das Microsoft-spezifische ASP]. Dieser Ansatz gab Anwendern
die Moeglichkeit, eine Kataloganbindung einfacher an die lokalen Gegebenheiten
anzupassen [und bei Wechsel der lokalen Gegebenheiten, z.B. den beliebten
"Relaunches" des Internetauftritts, umzuarbeiten]. Der Ansatz war auch insoweit
erfolgreich, dass Inkompatibilitaeten spaeterer Avanti-Versionen durch Austausch
der grundlegenden, fuer alle konkreten Kataloge identischen eigentlichen
populo-Bibliothek behoben werden konnten.

Zu kurz gedacht war der Ansatz jedoch in anderen Bereichen:
* Die Kataloganbindungen von 1997ff waren aus spaeterer Sicht nicht endgueltig,
  d.h. es gab im Laufe der Zeit viele punktuelle Verbesserungen (ich schilderte
  die diffizilen Ueberlegungen hinter der "trunkierten" Suche nach Personen-
  Namen und auch die bereits zwischen Deutschland und Oesterreich [genauer:
  alemannischem Sprachraum] bestehenden kulturellen Unterschiede bei der
  Eingabe von Namen), die jeweils unabhaengig von der Bibliothek waren, aber
  doch spezfisch fuer die "Klasse" der Kataloge (A-Schema, HANS, ...). Dem
  wurde durch erneutes Abspalten der anwenderspezifischen Anpassungen in eine
  separate "Konfigurationsdatei" begegnet

* Mehrsprachige Oberflaechen wurden damals bewusst durch Vorhalten paralleler
  Interfaces realisiert, dies koehaerent zu halten ist aufwendig [nicht
  gezeigt: < http://www.litdok.de/cgi-bin/litdok > hat tendenziell 10 Sprachen,
  Herr Janus war leider bereits abgereist, sonst haette ich das Beispiel
  einbezogen, ausgehend von den Anforderungen dieses 2005 von mir realisierten
  Katalogs (es gab einen aelteren selbstgemachten) ist viel des von mir hier
  geschilderten entstanden]. In den letzten Jahren bin ich daher zu einer
  "kleineren" Loesung uebergegangen, die in "generische" Templates die
  Textfragmente der Sprache des Benutzerinterfaces live einsetzt. Und weil durch
  denselben Mechanismus dann auch standardisierte einleitende Wendungen der
  eigentlichen, durch die Parameterdatei der Exportsprache gesteuerten Ausgabe
  wie "frueherer Titel:" und Floskeln wie "[Hrsg.]" uebersetzt werden koennen,
  entsteht sogar ein Mehrwert.

* Nicht alle Funktionalitaetserweiterungen sind rein "intern" wie das obige
  Beispiel der intuitiveren Personensuche. Meistens betreffen Verbesserungen
  und Weiterentwicklungen auch die Ausgabetemplates der Datenbank (besseres
  Layout, zusaetzliche Buttons, ...), und an dieser Stelle ("naechstes Release
  des OPACs") waren Anwender dann dem Konflikt ausgesetzt, nicht upgraden zu
  koennen bzw. ihre lokalen Anpassungen [nicht erwaehnt: intern schlecht
  dokumentiert, ohne Archivierung einer Referenzversion, von der die lokalen
  Anpassungen ihren Ausgang nahmen] von Null an erneut vornehmen zu muessen.
  Ich zeigte als Beispiel den HANS-Katalog der SUB-Hamburg, der auf Hamburger
  Anpassungen sehr alter Muensteraner Anpassungen eines noch aelteren
  "Standard-HANS"-Interfaces beruht [das soll jetzt kein Anwender-Bashing sein,
  aus einer Zwickmuehle kommt man halt nicht ungeschoren heraus und x Jahre
  abzuwarten, bis alles "ausgereift" ist, ist auch nicht fuer jeden die beste
  Empfehlung].
  Meine Antwort hierauf ist 199x nicht moeglich gewesen, sie besteht in der
  Produktion vom moeglichst sauberem (X)HTML mit extensiven Klassenbenennungen
  und die "Anpassung" durch die Benutzer sollte gar nicht in den Templates
  erfolgen sondern moeglichst mittels "Styling" durch CSS (was aber zunaechst
  eine so neue Version erfordert, dass die exzessiven Klassenbenennungen bereits
  realisiert sind). [Keine Loesung also fuer die Betreiber alter Kataloge beim
  Upgrade der Software, nur Trost und Versprechen, dass es in Zukunft leichter
  sein wird]. Insbesondere die Importfunktionen und die "Kaskade" von CSS bieten
  gute Moeglichkeiten, verschiedene, unabhaengige Schichten und Layout-
  vorstellungen simultan zu laden und beobachtete Konflikte etc. durch einen
  kleinen Satz "staerkerer" Regeln abschliessend aufzuloesen. Auch das spaetere
  Abaendern des eigenen Layouts wird durch diesen Ansatz stark erleichtert (s.a.
  den naechsten Punkt).

* [Frueher war man froh, ueberhaupt einen Katalog "im Internet" zu haben, und
  wenn der dann noch so aussah, wie die anderen eigenen Seiten, war es das
  Paradies] Kataloge sind nur eine Komponente der Internetpraesenz einer
  Institution, eine "Einbindung" erfordert nicht nur eine Anpassung des
  konkreten Layouts, sondern ein Einpassen in die konkreten Navigations-
  strukturen des Gesamtauftritts. Dieser ist ueber mehr oder weniger
  selbstgemachtes realisiert, zunehmend aber auch ueber diverse verschiedene,
  "marktgaengige" CMS-Systeme. Hier ist dann oft noch eine "Internetagentur"
  involviert, die sich zuerst laut wundert, warum es keine Kataloganbindung
  in ihrer CMS-Sprache (PHP, Python, Typo3, ...) gibt, dann vorschlagen, diese
  Anbindung mal eben schnell mit ihren Werkzeugen nachzuprogrammieren, sich
  aber zum Schluss meist davon ueberzeugen lassen, dass ein Katalog als eine
  selbstaendige "Web-Anwendung" nicht mit CMS-Mitteln nachzuprogammieren ist
  [das Budget "steht" ja meist bereits und ist weitgehend aufgebraucht, wenn
  sich irgendjemand an den Bibliothekskatalog als "auch mitzunehmen" erinnert],
  sondern eben "integriert" werden muss. Technisch sind die Wege je nach
  Ausgangslage sehr unterschiedlich, mal sind es Frames, mal Iframes, mal
  HTML-Tabellen (immer noch), mal DIV's mit CSS. In den letzteren beiden
  Faellen gibt es die Moeglichkeit, dass das CMS serverseitig einen HTTP-Request
  auf den Katalog ausloest, und das Resultat in seine eigene HTML-Ausgabe
  einsetzt [hier hilft es dann, wenn sich die HTML-Templates stark reduzieren
  lassen, so dass nur der HTML-Code mit der eigentlichen Funktionalitaet
  uebrig bleibt, im naechsten Satz "Das innere" genannt]. Ich persoenlich
  bevorzuge die Variante, dass der Katalog Aussehen und ggfls. auch
  Funktionalitaet des CMS emuliert. D.h. eine dem CMS entnommene "Blindseite"
  enthaelt Navigation und Aussehen des "Drumrum", in diese werden dann die
  generischen Templates als "Inneres" hineingesetzt, das Resultat sind dann die
  Templates, mit denen der Katalog in echt betrieben wird und die sich dann im
  Idealfall nahtlos einpassen. Aendert sich Struktur oder Aussehen es "Drumrum",
  werden die Templates einmalig neu generiert und CMS und Katalog sind wieder
  einheitlich.

Als Beispiele zeigte ich zwei Kataloge, naemlich das Dombauarchiv in Koeln <
http://www.dombau-koeln.de/index.php?id=46 > und das Deutsche Forum fuer
Kunstgeschichte in Paris < http://opac.dfkg.org/cgi-bin/dfkg.pl > (hier
sehen die Seiten bewusst anders aus als die im CMS, die "Blindseiten" sind
statische Entwuerfe der Webdesigner gewesen) [Das weiter oben benannte litdok.de
ist ein Beispiel, wo m.W. allein durch Austausch der "Blindseite" erfolgreich
ein Relaunch des Gesamtauftritts im Katalog nachvollzogen wurde]

Viel von dem oben geschilderten sind Erfahrungen, Einschaetzungen, von mir
postulierte allgemeine Designprinzipien fuer die Pflegbarkeit von
Internetkatalogen, ich habe sie stellenweise mit Populo (d.h. genauer: im
Rahmen von Populo-Anwendungen) realisiert, stellenweise auch als rein
externe Zusatzskripte, die Templates umstricken bzw. Uebersetzungstabellen
pflegbar machen. Die Realisierung solcher Designprinzipien besteht meiner
Meinung nach hauptsaechlich durch Treffen von "Verabredungen mit sich
selbst", die dann letztendlich irgendwie in Markup in Dateien und dieses
beruecksichtigender Software umgesetzt sind. Insofern gibt es auch keine
"Loesungen", die man durch "Installation" von irgendetwas uebernehmen
koennte. Zusammengefasst ist also meine Antwort auf die simple Anforderung
"Einbinden eines Katalogs in eine Webpraesenz" ein ziemliches Ausmass an
Abstraktion, die dann technisch irgendwie abgebildet wird [Fuer mich ist
das auch die "einfachste moegliche" Antwort, ich gestehe aber jedem zu,
ein anderes Konzept von "einfach" zu haben]

[Von Herrn Eversberg war bemerkt worden, dass inzwischen 5[?] Sprachen
in Webanwendungen am Werk seien, HTML, CSS, JavaScript, die Programmiersprache
der Web-Anwendung als Middleware, die Flex/Job-Sprache von Avanti und
die Exportsprache der Parameterdateien. In Wirklichkeit sind es noch
einige mehr, Templatingsysteme haben ihre eigene Syntax, server- oder
browserseitiges XSLT sollte man nicht unbeachtet lassen und es tritt
auch noch folgendes Phaenomen auf: Es wird ja nicht alles aus der Datenbank
durch die Exportsprache aufbereitet und in der Form moeglichst unmodifiziert
zum Benutzer gepruegelt: Sondern man versucht, die Daten mit moeglichst
universellen Parameterdateien halbwegs neutral aufbereitet auf die Reise
zu schicken, und in spaeteren, filternden Schichten daraus dann allmaehlich
reiches und brauchbares HTML fuer den Benutzer zu machen. Die Datenbank
(zusammen mit den Exportparametern als erste Verarbeitungsstufe gedacht)
/darf/ m.E. nicht wissen, wie eine ZDB-Verlinkung heute aussieht und
sie darf auch nicht wissen, wie die Web-Applikation Hyperlinks auf
weiterfuehrende Recherchen veranstaltet. Sie muss aber wissen, was eine
ZDB-Nummer ist und welche Inhalte sich fuer weiterfuehrende Recherechen
anbieten (z.B. angesetzte Personennamen aus den entsprechenden Kategorien)
und muss das dann "neutral" an die naechste Schicht kommunizieren, damit
die dann konkrete Links draus macht (die von folgenden Schichten evtl.
wiederum umgeschrieben oder versteckt werden). Und diese Kommunikation zwischen
den verschiedenen Komponenten oder Schichten der Anwendung erfolgt dann
mittels eines fuer diesen Zweck "mit sich selbst" verabredeten Markups.]

viele Gruesse
Thomas Berger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQCVAwUBSwWETWITJZieluOzAQJIWgP/cBw38pP/A9RttJ/3dzVKHSDZs+JTB51t
E7hVBob4Wcku4OnMaMopAgA/H1jOvZ4DBCqbt1ehQx0iv6lCDqqvMyNHyBHbtb1f
lguh0Cd4jhTPJteq9J3Hy/ecF3QZRBznYvpqiZWvonppAV99vZuhKXCAFWddVykc
j8m2tHiB7TE=
=Jc0C
-----END PGP SIGNATURE-----



Mehr Informationen über die Mailingliste Allegro