6.2 Serien und Konvolute

Der Goobi viewer kann - unabhängig von Gesamtwerks- und Kollektionszugehörigkeit - Gruppen von mehreren voneinander unabhängigen Werken abbilden und diese als eine logische, navigierbare Einheit darstellen. Eine solche logische Einheit kann zum Beispiel ein Sammelband sein.

Die Erkennung dieser Gruppen erfolgt anhand von Indexfeldern, deren Name mit GROUPID_ beginnen (zum Beispiel GROUPID_SERIES) und deren Wert bei mehreren Werken übereinstimmt. So gehören alle Werke, die den Wert GROUPID_SERIES:12345 haben, zur Gruppe 12345, Werke mit einem anderen Werk zu einer anderen Gruppe.

Die Reihenfolge des Werkes innerhalb einer Gruppe wird durch Indexfelder mit dem Präfix GROUPORDER_ bestimmt. Hinter dem Präfix muss das Indexfeld so heißen, wie das dazugehörige Felder mit der Gruppen-ID, im o.g. Beispiel also GROUPORDER_SERIES. Der Wert muss dabei eine Ganzzahl sein. Ein Werk mit GROUPORDER_SERIES:34 stünde also in der Auflistung vor einem Werk, das den Wert GROUPORDER_SERIES:98 hat.

Die Indexfelder müssen in der Konfigurationsdatei des Goobi viewer Indexers für entsprechende MODS Ausdrücke konfiguriert werden. Besitzen die Felder die genannten Präfixe, werden sie automatisch entsprechend behandelt.

Das Datenmodell des Goobi viewers sieht außerdem vor, dass Werke beliebig vielen Gruppen angehören können.

Beispiel für die Konfiguration in einem Goobi workflow Regelsatz:

/opt/digiverso/goobi/rulesets/ruleset.xml
<MetadataType>
<Name>CatalogIDMainSeries</Name>
<language name="de">Identifier der Reihe</language>
<language name="en">Main series identifier</language>
</MetadataType>
<MetadataType>
<Name>SeriesOrder</Name>
<language name="de">Reihenfolge in der Schriftenreihe (Sortierung)</language>
<language name="en">Order in series (sorting)</language>
</MetadataType>
<MetadataType>
<Name>TitleDocMainSeries</Name>
<language name="de">Titel der Reihe</language>
<language name="en">Main series title</language>
</MetadataType>
<MetadataType>
<Name>CatalogIDMainSeries2</Name>
<language name="de">Identifier der weiteren Reihe</language>
<language name="en">Other main series identifier</language>
</MetadataType>
<MetadataType>
<Name>SeriesOrder2</Name>
<language name="de">Reihenfolge in der weiteren Schriftenreihe (Sortierung)</language>
<language name="en">Order in other series (sorting)</language>
</MetadataType>
<MetadataType>
<Name>TitleDocMainSeries2</Name>
<language name="de">Titel der weiteren Reihe</language>
<language name="en">Other main series title</language>
</MetadataType>
[...]
<metadata num="1o">CatalogIDMainSeries</metadata>
<metadata num="1o">SeriesOrder</metadata>
<metadata num="1o">TitleDocMainSeries</metadata>
<metadata num="1o">CatalogIDMainSeries2</metadata>
<metadata num="1o">SeriesOrder2</metadata>
<metadata num="1o">TitleDocMainSeries2</metadata>
[...]
<Metadata>
<InternalName>CatalogIDMainSeries</InternalName>
<WriteXPath>./mods:mods/mods:relatedItem[@type='series'][@otherType='series']/mods:recordInfo/#mods:recordIdentifier</WriteXPath>
</Metadata>
<Metadata>
<InternalName>SeriesOrder</InternalName>
<WriteXPath>./mods:mods/mods:relatedItem[@type='series'][@otherType='series']/mods:part/@order</WriteXPath>
</Metadata>
<Metadata>
<InternalName>TitleDocMainSeries</InternalName>
<WriteXPath>./mods:mods/mods:relatedItem[@type='series'][@otherType='series']/mods:titleInfo/#mods:title</WriteXPath>
</Metadata>
<Metadata>
<InternalName>CatalogIDMainSeries2</InternalName>
<WriteXPath>./mods:mods/mods:relatedItem[@type='series'][@otherType='second series']/mods:recordInfo/#mods:recordIdentifier</WriteXPath>
</Metadata>
<Metadata>
<InternalName>SeriesOrder2</InternalName>
<WriteXPath>./mods:mods/mods:relatedItem[@type='series'][@otherType='second series']/mods:part/@order</WriteXPath>
</Metadata>
<Metadata>
<InternalName>TitleDocMainSeries2</InternalName>
<WriteXPath>./mods:mods/mods:relatedItem[@type='series'][@otherType='second series']/mods:titleInfo/#mods:title</WriteXPath>
</Metadata>

Beispiel für das Mapping und Indexieren in der Goobi viewer Indexer Konfigurationsdatei:

/opt/digiverso/indexer/solr_indexerconfig.xml
<!-- Group 1 -->
<GROUPID_SERIES>
<list>
<item>
<xpath>mets:xmlData/mods:mods/mods:relatedItem[@type='series' and @otherType='series']/mods:recordInfo/mods:recordIdentifier</xpath>
<addToDefault>true</addToDefault>
<addUntokenizedVersion>false</addUntokenizedVersion>
</item>
</list>
</GROUPID_SERIES>
<GROUPORDER_SERIES>
<list>
<item>
<xpath>mets:xmlData/mods:mods/mods:relatedItem[@type='series' and @otherType='series']/mods:part/@order</xpath>
<addUntokenizedVersion>false</addUntokenizedVersion>
</item>
</list>
</GROUPORDER_SERIES>
<MD_TITLE_SERIES>
<list>
<item>
<xpath>mets:xmlData/mods:mods/mods:relatedItem[@type='series' and @otherType='series']/mods:titleInfo/mods:title</xpath>
<addUntokenizedVersion>false</addUntokenizedVersion>
</item>
</list>
</MD_TITLE_SERIES>
<!-- Group 2 -->
<GROUPID_SERIES_2>
<list>
<item>
<xpath>mets:xmlData/mods:mods/mods:relatedItem[@type='series' and @otherType='second series']/mods:recordInfo/mods:recordIdentifier</xpath>
<addToDefault>true</addToDefault>
<addUntokenizedVersion>false</addUntokenizedVersion>
</item>
</list>
</GROUPID_SERIES_2>
<GROUPORDER_SERIES_2>
<list>
<item>
<xpath>mets:xmlData/mods:mods/mods:relatedItem[@type='series' and @otherType='second series']/mods:part/@order</xpath>
<addUntokenizedVersion>false</addUntokenizedVersion>
</item>
</list>
</GROUPORDER_SERIES_2>
<MD_TITLE_SERIES_2>
<list>
<item>
<xpath>mets:xmlData/mods:mods/mods:relatedItem[@type='series' and @otherType='second series']/mods:titleInfo/mods:title</xpath>
<addUntokenizedVersion>false</addUntokenizedVersion>
</item>
</list>
</MD_TITLE_SERIES_2>

Beispiel für die Freischaltung in dem Goobi viewer Core:

/opt/digiverso/viewer/config/config_viewer.xml
<toc>
<recordGroupIdentifierFields>
<field>GROUPID_SERIES</field>
<field>GROUPID_SERIES_2</field>
</recordGroupIdentifierFields>
</toc>

Anhand der als Gruppen-Identifier definierter Felder werden im Inhaltsverzeichnis die durch die Gruppenzugehörigkeit entstandenen Hierarchien abgebildet. Der Teil des Feldnamens hinter GROUPID_ bildet dabei eine konkrete Gruppe ab (hier: SERIES). Über das Feld GROUPORDER_SERIES wird dabei die Reihenfolge des Werks innerhalb der Gruppe definiert und entsprechend im Inhaltsverzeichnis verwendet.

Ist ein Feld mit dem Namensschema MD_TITLE_<GRUPPE> vorhanden (z.B. MD_TITLE_SERIES), wird daraus das Label des Gruppe gebildet. Zusätzlich werden alle Felder mit dem Muster MD_*_<GRUPPE> in das Solr Doc der Gruppe geschrieben, um dort als Metadaten angezeigt werden zu könne (ohne Gruppen-Suffix, also ausMD_PUBLISHER_SERIES wird z.B. MD_PUBLISHER).