An der Stelle springe ich gerne ein. Das ganze hat mit der Kombination aus den vorhandenen Funktionen und der Datenspeicherung zu tun.
Folgende Funktionen sollen bei den Sammlungen abgebildet werden können:
- Ein Werk soll einer oder mehrerer digitaler Sammlungen zugehören können
- Digitale Sammlungen sollen Unterkollekektionen enthalten können
- Digitale Sammlungen sollen in verschiedenen Sprachen unterschiedliche Übersetzungen haben können.
Zu 1:
Damit das erreicht wird muss sichergestellt sein, dass im Solr Suchindex, in dem die Daten gespeichert werden, jede Kollektion die angegeben wurde als ein Wert auftaucht. Das Feld in dem die Sammlungen enthalten sind soll mehrere Werte erlauben, es muss ein sogenanntes MultiValuedField
sein. Solr selbst splittet intern die Werte in mehrere Token
auf. Das würde bei der Sammlungsanzeige zu Problemen führen. Deswegen muss sichergestellt werden, dass ein Wert für eine Sammlung nur einen Token hat.
In der Konfigurationsdatei des Goobi viewer Indexers wird deswegen das Feld DC
(steht für DigitalCollections) so konfiguriert, das alles als ein Token geschrieben wird (<onetoken>true</onetoken>
/ Beispiel). Intern bedeutet das, dass alles zu Kleinbuchstaben gemacht wird und alles was NICHT [a-z] entspricht gelöscht wird. Aus dem Wert Schöner Sammlungsname
wird dementsprechend schnersammlungsname
.
Zu 2:
Damit Unterkollektionen erlaubt sind wurde sich vor 10 Jahren als Trennzeichen die Raute (#
) ausgedacht. Es war wichtig, dass das Zeichen so gut wie nie in regulären Sammlungsnamen auftaucht damit es dabei nicht zu Problemen kommt. Auch lässt sich die Raute gut visuell erfassen und ist deswegen von Menschen in dem Kontext gut les- und schreibbar.
Es besteht nun aber das Problem, dass Solr an einer Raute auftrennt und verschiedene Token daraus erzeugt. Deswegen ist für das Feld DC
in der Goobi viewer Indexer Konfiguration auch konfiguriert, dass die Raute als Trennzeichen für Untersammlungen fungiert (<splittingCharacter>#</splittingCharacter>
/ Beispiel). Dieses Zeichen wird dann gegen einen Punkt ersetzt. Solr trennt nämlich Zeichenketten an einem Punkt nicht automatisch auf. Es verbleibt bei einem Token. Aus dem Wert Schöner Sammlungsname#Erste Unterkollektion
wird dementsprechend schnersammlungsname.ersteunterkollektion
.
Zu 3:
Da wir pro Sammlung eindeutige Token ohne Sonderzeichen haben (siehe 1) und sich Unterkollektionen anhand von Punkten im Sammlungsnamen dekodieren lassen (siehe 2) können wir nun im Goobi viewer relativ einfach Sammlungen und Untersammlungen anzeigen und auch in unterschiedlichen Sprachen angepasst übersetzen. Der Goobi viewer muss nun nur noch wissen, dass er die Untersammlungen anhand der Punkte auftrennen muss (<splittingCharacter>.</splittingCharacter>
/ Beispiel) und dann können die Sammlungen in den messages Dateien übersetzt werden. Dabei gilt die Übersetzung immer für den Teil hinter dem letzten Punkt. Beispiel:
messages_de.properties
schnersammlungsname=Sch\u00F6ner Sammlungsname
schnersammlungsname.ersteunterkollektion=Erste Unterkollektion
messages_en.properties
schnersammlungsname=Nice collection name
schnersammlungsname.ersteunterkollektion=First sub collection
Frage am Ende: WO in der Dokumentation würden diese Ausführungen WIE erwartet werden, damit das in der Zukunft klarer ist? 