Sammlungen im Viewer anlegen (nicht in Goobi workflow)

Hallo,

in der Regel wird der Sammlungsbaum im Goobi viewer (zb Sammlungen - Digitale Sammlungen der Herzogin Anna Amalia Bibliothek ) ja all jene Sammlungen enthalten, die in Goobi workflow angelegt worden sind.

Gibt es auch eine Möglichkeit, Sammlungen wirklich erst innerhalb des Goobi viewers zu erzeugen? Diese Sammlungen sollen sich so verhalten, wie es die in Goobi workflow erstellten Sammlungen auch tun. Allerdings werden sie erst im Viewer über eine SOLR-Query mit konkreten Werken/ Vorgängen verknüpft.

Ein Beispiel:
https://haab-digital.klassik-stiftung.de/viewer/Goethe_im_Almanach/
Diese “Sammlung” existiert nicht in Goobi workflow. Um die Kachel anzulegen, wurde im CMS des viewers ein Template genutzt. Über eine SOLR-Query werden bestimmte Werke angezeigt.

Im Sammlungsbaum taucht die “Sammlung” nicht auf:
https://haab-digital.klassik-stiftung.de/viewer/browse/

Hallo @Schlueter_HAAB

es ist bisher nicht möglich im Goobi viewer eigene Sammlungen anzulegen.

Technisch gesehen passiert bei den Sammlungen folgendes:

  • Ein Metadatum wird erfasst und als Sammlungsname ausgezeichnet. Zum Beispiel in Goobi workflow das Feld “Digitale Kollektion”.
  • Wird ein Werk durch den Goobi viewer Indexer analysiet und die Metadaten in den Apache Solr Suchindex geschrieben, dann wird dieser Wert genommen und in das Solr-Feld DC geschrieben. Hier ein Beispiel:
<!-- MODS -->
<mods:classification type="ivdcc">Sammlung#Untersammlung</mods:classification>
<!-- INDEXER -->
<DC>
    <list>
        <item>
            <xpath>mets:xmlData/mods:mods/mods:classification[@authority="ivdcc"]</xpath>
            <getparents>all</getparents>
            <onetoken>true</onetoken>
            <onefield>false</onefield>
            <addToDefault>false</addToDefault>
            <splittingCharacter>#</splittingCharacter>
            <addUntokenizedVersion>false</addUntokenizedVersion>
            <lowercase>true</lowercase>
            <addToChildren>true</addToChildren>
            <addToPages>true</addToPages>
        </item>
    </list>
</DC>
  • Jeder indexierte Datensatz hat also das potentielle Feld DC in dem eine oder mehrere digitale Sammlungen stehen können zu denen der Datensatz gehört.
  • Öffnet ein Besucher den Goobi viewer wird serverseitig eine Nutzersession erzeugt. Diese ist standardmäßig 30 Minuten lang gültig. Innerhalb dieser Session werden unter anderem die Zugriffslizenzen gespeichert. Zum Beispiel ob der Besucher von einem bestimmten freigeschalteten Lesesaal PC kommt etc. Diese Zugriffslizenzen entscheiden darüber welche Datensätze der Besucher sehen darf.
  • Öffnet der Besucher den Sammlungsbaum wird dann der Solr Suchindex geöffnet und
    • Alle Datensätze ermittelt für die eine Zugriffslizenz vorliegt
    • Von diesen Datensätzen alle Werte aus dem Solr Feld DC ermittelt
    • Duplikte herausgefiltert
    • An potentiellen Trennzeichen (# → .) aufgeteilt um eine Baumstruktur zu erstellen
    • Die Anzahl der Datensätze pro Sammlung und Untersammlung ermittelt
    • Die messages Dateien geöffnet um die potentiell vorhandenen Übersetzungen auszulesen
    • Potentiell vorhandene Sammlungsbeschreibungen ausgelesen

Anschließend wird der Sammlungsbaum alphabetisch sortiert von oben nach unten basierend auf den einzigartigen Werten erzeugt. All das passiert in der Regel innerhalb von wenigen Millisekunden. Nur in Einzelfällen kann das auch sehr lange dauern

Es ist bisher nicht vorgesehen diese Liste an Werten aus dem Solr Suchindex mit eigenen Werten zu ergänzen und in den Baum einzupflegen. Gerne erstellen wir dafür aber ein Konzept und ermitteln dafür einmal die Aufwände.

Viele Grüße von

Jan :slight_smile:

Hallo Jan,

wie verhält sich dazu diese Funktion im Goobi viewer “2.2.8 Neuer Datensatz - Goobi viewer (Deutsch)” (deren Sinn ich nie ganz verstanden habe)? Hier kann ich ja, wenn ich einen neuen Datensatz anlege, auch eine neue Digitale Kollektion angeben. Und diese neue Kollektion erscheint ja auch umgehend im Sammlungsbaum.

Hier wird im Hintergrund aus den eingegebenen Daten ein Dublin Core Datensatz erstellt. Der Inhalt des Feldes “Sammlung” wird intern auf “dc:subject” gemappt und dann in das Feld DC geschrieben: