6.2 Series and convolutes

The Goobi viewer can depict groups of several independent records of art - regardless of the overall record and collection to which they belong - and present them as a logical, navigable unit. Such a logical unit can, for example, be an omnibus volume.

These groups are identified by index fields whose names begin with GROUPID_ (for example, GROUPID_SERIES) and whose values are the same for several records. Thus, all records that have the value GROUPID_SERIES:12345 belong to group 12345, records with another record belong to another group.

The sequence of the record within a group is determined by index fields with the prefix GROUPORDER_. After the prefix, the index field must have the same name as the corresponding field with the GROUP-ID, in the above example GROUPORDER_SERIES. The value must be an integer. A record with GROUPORDER_SERIES:34 would therefore be listed before a record with the value GROUPORDER_SERIES:98.

The index fields must be configured in the configuration file of the Goobi viewer indexer for corresponding MODS expressions. If the fields have these prefixes, they are automatically treated accordingly.

The data model of the Goobi viewer also allows records to belong to any number of groups.

Example of configuration in a Goobi workflow ruleset:

/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>

Example of mapping and indexing in the Goobi viewer Indexer configuration file:

/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>

Example of activation in the Goobi viewer Core:

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

Using the fields defined as group identifiers, the hierarchies created by group membership are displayed in the table of contents. The part of the field name behind GROUPID_ represents a concrete group (here: SERIES). The GROUPORDER_SERIES field defines the sequence of the record within the group and is used accordingly in the table of contents.

If a field with the naming scheme MD_TITLE_<GROUP> exists (for example, MD_TITLE_SERIES), the label of the group is formed from it. In addition, all fields with the pattern MD_*_<GROUP> are written to the Colr doc of the group so that they can be displayed there as metadata (without group suffix, for example, MD_PUBLISHER_SERIES becomes MD_PUBLISHER).