Koha und alte Drucke

== Grundlagen ==
Der Informationsverbund Deutschweiz (IDS) publizierte 1999 Regeln für alte Drucke. Sie basieren auf der DCRB (Descriptive Cataloging of Rare Books) und wurden auf die Schweizer Verhätlnisse angepasst. Sie umfassen Kapitel 2A des aktuellen Regelwerkes.
== Das wichtigsten Änderungen gegenüber dem Standard-Framework ==
* Die Regeln definieren in MARC 21 zwei neue Felder:
** 901 für Personen, die mit dem Werk oder dem zu katalogisierenden Exemplar verbunden sind (z.B. Autographen, Marginalienverfasser, Vorbesitzer etc.).
** 902 für Institutionen, die mit dem Werk oder dem zu katalogisierenden Exemplar verbunden sind (z.B. Buchbinder, Verleger, Papierhersteller, Vorbesitzer etc.). 
* Sie sehen Feld 752 $d für die normierte Ansetzung des Druckerortes vor.
* Alle drei Felder sollen durch Verweise auf Normdaten kontrolliert vergeben werden.
== Das neue bibliographische MARC-Framework für alte Drucke ==
Es sind die neuen MARC-Felder 901 und 902 zu definieren. Dabei können die Unterfelder von Feld 100 und Feld 110 kopiert werden.
Feld 901 $a ist mit dem Thesaurus PERSO_NAME zu verbinden.
Feld 902 $a ist mit dem Thesaurus CORPO_NAME zu verbinden.
Feld 752 $d ist mit einem neu zu definierenden Thesaurus (DRUCK_ORT) zu verbinden. Feld 752 $9 ist für das Intranet sichtbar zu machen (Fortgeschrittene Beschränkungen->versteckt auf 0 einstellen), sonst funktioniert die Verbindung Normdatensatz->bibliographischer Datensatz nicht.
== Neuer Normdatentyp für Druckorte ==
Für den Druckort ist eine Normierung angezeigt. Unter Adminstration->Normdatentypen wird deshalb ein neuer Thesaurus angelegt (DRUCK_ORT). Als Vorlage bietet sich GEOGR_NAME, der Thesaurus für geographische Namen, an.
* Die Felder 151 und 181 sind zu löschen.
* Ein neues Feld 152 wird eingerichtet mit folgenden Unterfeldern:
** $6 Verknüpfung (NR)
** $8 Feldverknüpfung und Reihenfolge (R)
** $a Land oder größere Einheit
** $b Politische Zuständigkeit erster Instanz
** $c Mittlere politische Zuständigkeit
** $d Ortschaft
** $f Ortsteil
* Ein neues Feld 452 für den Siehe-Verweis wird eingerichtet:
** $6 Verknüpfung (NR)
** $8 Feldverknüpfung und Reihenfolge (R)
** $d Vorlagenform Ort
(gemäss Feld 752 im bibliographischen MARC-Framework).
== Anpassungen in der Konfiguration von Zebra ==
=== Für den neuen Normdatentyp Druckort ===
Da die Normdatentypen DOM-basiert sind ist die Datei /etc/koha/zebradb/marc_defs/marc21/authorities/authority-koha-indexdefs.xml anzupassen.
Nach den Definitionen für geographische Namen wird eingefügt:
 <!-- Druckort -->
 <kohaidx:index_subfields tag="152" subfields="abcdf">
 <kohaidx:target_index>Name-geographic:w</kohaidx:target_index>
 <kohaidx:target_index>Name-geographic:p</kohaidx:target_index>
 </kohaidx:index_subfields>
 <kohaidx:index_heading tag="152" subfields="abcdf" subdivisions="bcdf">
 <kohaidx:target_index>Name-geographic-heading:w</kohaidx:target_index>
 <kohaidx:target_index>Name-geographic-heading:p</kohaidx:target_index>
 <kohaidx:target_index>Name-geographic-heading:s</kohaidx:target_index>
 <kohaidx:target_index>Heading:w</kohaidx:target_index>
 <kohaidx:target_index>Heading:p</kohaidx:target_index>
 <kohaidx:target_index>Heading:s</kohaidx:target_index>
 </kohaidx:index_heading>
 <kohaidx:index_heading tag="152" subfields="a">
 <kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
 <kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
 <kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
 </kohaidx:index_heading>
 <kohaidx:index_match_heading tag="152" subfields="abcdf" subdivisions="bcdf">
 <kohaidx:target_index>Match:w</kohaidx:target_index>
 <kohaidx:target_index>Match:p</kohaidx:target_index>
 <kohaidx:target_index>Match-heading:p</kohaidx:target_index>
 <kohaidx:target_index>Match-heading:s</kohaidx:target_index>
 </kohaidx:index_match_heading>
 <kohaidx:index_heading tag="452" subfields="d" subdivisions="">
 <kohaidx:target_index>Name-geographic-see-from:w</kohaidx:target_index>
 <kohaidx:target_index>Name-geographic-see-from:p</kohaidx:target_index>
 <kohaidx:target_index>Name-geographic-see-from:s</kohaidx:target_index>
 <kohaidx:target_index>See-from:w</kohaidx:target_index>
 <kohaidx:target_index>See-from:p</kohaidx:target_index>
 <kohaidx:target_index>See-from:s</kohaidx:target_index>
 </kohaidx:index_heading>
 <kohaidx:index_match_heading tag="452" subfields="d" subdivisions="">
 <kohaidx:target_index>Match:w</kohaidx:target_index>
 <kohaidx:target_index>Match:p</kohaidx:target_index>
 <kohaidx:target_index>Match-heading-see-from:p</kohaidx:target_index>
 <kohaidx:target_index>Match-heading-see-from:s</kohaidx:target_index>
 </kohaidx:index_match_heading> 
diese neuen Definitionen werden mittels: 
 xsltproc ../../../xsl/koha-indexdefs-to-zebra.xsl authority-koha-indexdefs.xml > authority-zebra-indexdefs.xsl
(im obigen Verzeichnis ausführen!) Zebra bekannt gemacht. 
=== Für das bibliographische Framework Alte Drucke ===
Folgende Datein sind anzupassen:
==== /etc/koha/zebradb/biblios/etc/bib1.att ====
Als neue Indices werden definiert:
# Koha Local-Use Biblio Indexes
[...]
att 9021 AD-Personen
att 9022 AD-Koerperschaften
att 9023 AD-Orte
==== /etc/koha/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml ====
Folgende Felder werden den Indices zugeordnet:
<!--melm 901$9 Cross-Reference,Koha-Auth-Number -->
<index_subfields tag="901" subfields="9">
 <target_index>Cross-Reference:w</target_index>
 <target_index>Koha-Auth-Number:w</target_index>
</index_subfields>
<!--melm 901$a AD-Personen -->
<index_subfields tag="901" subfields="a">
 <target_index>AD-Personen:w</target_index>
 <target_index>AD-Personen:p</target_index>
</index_subfields>
<!--melm 901 AD-Personen -->
<index_data_field tag="901">
 <target_index>AD-Personen:w</target_index>
 <target_index>AD-Personen:p</target_index>
</index_data_field>
<!--melm 902$9 Cross-Reference,Koha-Auth-Number -->
<index_subfields tag="902" subfields="9">
 <target_index>Cross-Reference:w</target_index>
 <target_index>Koha-Auth-Number:w</target_index>
</index_subfields>
<!--melm 902$a AD-Koerperschaften -->
<index_subfields tag="902" subfields="a">
 <target_index>AD-Koerperschaften:w</target_index>
 <target_index>AD-Koerperschaften:p</target_index>
</index_subfields>
<!--melm 902 AD-Koerperschaften -->
<index_data_field tag="902">
 <target_index>AD-Personen:w</target_index>
 <target_index>AD-Personen:p</target_index>
</index_data_field>
<!--melm 752$9 Cross-Reference,Koha-Auth-Number -->
<index_subfields tag="752" subfields="9">
 <target_index>Cross-Reference:w</target_index>
 <target_index>Koha-Auth-Number:w</target_index>
</index_subfields>
<!--melm 752$d AD-Orte -->
<index_subfields tag="752" subfields="a">
 <target_index>AD-Orte:w</target_index>
 <target_index>AD-Orte:p</target_index>
</index_subfields>
<!--melm 752 AD-Orte -->
<index_data_field tag="752">
 <target_index>AD-Orte:w</target_index>
 <target_index>AD-Orte:p</target_index>
</index_data_field>
Da ich in Feld 541 $f die Besitzereinträge transkibiere und in 563 $f Angaben zum Einband mache, ergänze ich auch noch:
 <index_data_field tag="541">
 <target_index>Note:w</target_index>
 <target_index>NOte:p</target_index>
 </index_data_field>
 <index_data_field tag="563">
 <target_index>Note:w</target_index>
 <target_index>Note:p</target_index>
 </index_data_field>
Diese Änderungen müssen mittels:
xsltproc /etc/koha/zebradb/xsl/koha-indexdefs-to-zebra.xsl /etc/koha/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml > /etc/koha/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl
wirksam gemacht werden.
==== /etc/koha/zebradb/ccl.properties ====
# Koha Local-Use Biblio Indexes
[...]
AD-Personen 1=9021
AD-Koerperschaften 1=9022
AD-Orte 1=9023
==== /usr/share/koha/lib/C4/Search.pm ====
sub getIndexes{
 my @indexes = (
 # biblio indexes
 [...]
 'AD-Personen',
 'AD-Koerperschaften',
 'AD-Orte',
==== /usr/share/koha/intranet/htdocs/intranet-tmpl/prog/de-DE/includes/search_indexes.inc ====
(auch in de-CH)
<option value="AD-Personen">Alte Drucke, Personen</option>
 <option value="AD-Koerperschaften">Alte Drucke, Körperschaften</option>
 <option value="AD-Orte">Alte Drucke, Orte</option>
vor: </select>
== Leistung und Grenzen der vorgeschlagenen Lösung ==
Die obigen Vorschläge sind im Versuch-Irrtum-Verfahren mit vielen Analogieschlüssen entstanden. Sie müssen sicher von jemandem korrigiert und erweitert werden, der das Funktionieren von Zebra und Koha besser versteht.
==== Was funktioniert? ====
* Die Daten lassen sich erfassen und wiederfinden. Eine spezifische Suche über die drei durch den IDS definierten Felder funktioniert.
* Es ist möglich, beim Anlegen eines neuen bibliographischen Datensatzes neue Normdatensätze anzulegen.
* Vom der MARC-Ansicht eines bibliographischen Datensatzes aus ist der Zugriff auf den zugeordneten Normdatensatz möglich.
* Von den Normdatensätzen aus ist der Zugriff auf die bibliographischen Datensätze möglich.
==== Wo liegen die Probleme? ====
* Diese Lösung verändert Dateien, die bei einem Update vermutlich überschrieben werden (ziemlich sicher: search_indexes.inc, vermutlich auch: Search.pm).
* Es wird jeweils nur Unterfeld $a (bzw. $d) für die Suche berücksichtigt.
* Die Definitionen für die Zebra-Indices sind rudimentär.
* Bei den Anzeige der Normdatensätze des neuen Typs Druckort werden die Namen der Ortschaften nicht angezeigt. Vermutlich muss dafür die Datei /usr/share/koha/lib/C4/AuthoritiesMarc.pm angepasst werden. (Eine Möglichkeit, dies zu umgehen, ist es, Feld 151 nicht zu löschen und den Eintrag von 152 $d jeweils in 151 $a ein zweites Mal einzutragen - nicht so schön).
* Für die Suche nach dem Normdatensatz für den Druckort kann im Pop-Up-Fenster (auth_finder.pl) die erste Option (Haupteintrag (nur $a)) nicht gewählt werden. Auch hier weden die Einträge nicht angezeigt. (Mit dem im vorigen Punkt angegebenen schmutzigen Trick funktionieren sowohl die Suche unter $a, wie auch die Anzeige).
==== Versionen ====
Diese vorgeschlagene Lösung wurde mit der Version Koha 3.12 entwickelt, die auf einem Debian-Squeeze-Server installiert wurde (koha-common).
Category:Tips_&_Tricks/Customising_Notices_and_Slips