1.19.1 Haupt-Metadaten

Die Haupt-Metadaten werden auf der Seite "Bibliographische Daten" angezeigt.

Sie können wie folgt konfiguriert werden:

<metadata>
    <metadataView index="0" label="metadata" url="" condition="">
        <template name="_DEFAULT">
            <metadata label="MD_TITLE" hideIfOnlyMetadataField="true">
                <param type="field" key="MD_TITLE" />
            </metadata>
            <metadata label="MD_AUTHOR" value="MASTERVALUE_WIKINORM" sortField="SORT_NAME" group="true">
                <param type="field" key="MD_VALUE" />
                <param type="wikifield" key="MD_VALUE" />
                <param type="normdatauri" key="NORM_URI" />
                <param type="normdatasearch" key="NORM_IDENTIFIER" />
            </metadata>
            <metadata label="DC" topstructOnly="true">
                <param type="translatedfield" key="DC" />
            </metadata>
            <metadata label="DOCSTRCT_TOP">
                <param type="translatedfield" key="DOCSTRCT_TOP" />
            </metadata>
            <metadata label="DOCSTRCT_SUB" hideIfOnlyMetadataField="true">
                <param type="translatedfield" key="DOCSTRCT_SUB" />
            </metadata>
            <metadata label="URN">
                <param type="field" key="URN" />
            </metadata>
            <metadata label="MD_COPYRIGHT">
                <param type="field" key="MD_COPYRIGHT">
                    <replace string="[year]">2019</replace>
                    <!--
                    <replace char="X">Y</replace>
                    <replace regex="..."></replace>
                    -->
                </param>
            </metadata>
            <metadata label="MD_LICENSELABELFIELD">
                <param type="translatedfield" key="MD_LICENSELABELFIELD">
                    <replace condition="-MDNUM_PUBLICRELEASEYEAR:[* TO NOW/YEAR]" regex=".+">MESSAGE_LICENCEINFORMATION</replace>
                </param>
            </metadata>
            <metadata label="DATECREATED">
                <param type="millisfield" key="DATECREATED" />
            </metadata>
            <metadata label="label__citation_style_apa-6th-edition" citationTemplate="apa-6th-edition">
                <param type="citeproc" dest="title" key="MD_TITLE"/>
                <param type="citeproc" dest="author" key="MD_AUTHOR"/>
                <param type="citeproc" dest="publisher" key="MD_PUBLISHER"/>
                <param type="citeproc" dest="placepublish" key="MD_PLACEPUBLISH"/>
                <param type="citeproc" dest="issued" key="MD_YEARPUBLISH"/>
                <param type="citeproc" dest="isbn" key="MD_ISBN"/>
                <param type="field" key="MD_RELATED_RECORD_ID" value="MASTERVALUE_RELATED_RECORD_LINK" condition="PI:{0}"/>
            </metadata>
            <metadata label="MD_RELATIONSHIP_PERSONS" value="LINK_RELATIONSHIPS_PERSONS">
                <param key="MD_PROCESSID" type="field" removeHighlighting="true" />
            </metadata>
            <metadata label="CREATED" value="{0}">
                <param type="datefield" pattern="dd/MM/yyyy" key="MD_DATESTART" />
            </metadata>
        </template>
        <template name="monograph">
            <metadata label="MD_TITLE" >
                <param type="field" key="MD_TITLE" />
            </metadata>
            <metadata label="MD_AUTHOR" value="MASTERVALUE_WIKINORM" group="true">
                <param type="field" key="MD_VALUE" />
                <param type="wikifield" key="MD_VALUE" />
                <param type="normdatauri" key="NORM_URI" />
                <param type="normdatasearch" key="NORM_IDENTIFIER" />
            </metadata>
        </template>
    </metadataView>
    <metadataView index="1" label="label__metadata_special" url="_special" condition="DC:specialcollection">
            <metadata label="MD_SPECIAL" >
                <param type="field" key="MD_SPECIAL" defaultValue="---" />
            </metadata>
    </metadataView>
</metadata>

Es können beliebig viele <metadataView> Elemente definiert werden. Jedes Element erzeugt eine eigenständige Metadaten-Seite mit eigenem Link in der Seitenleiste.

Folgende Attribute sind enthalten:

Attribut

Beschreibung

index

Reihenfolge des Views innehalb der Auflistung. Fehlende Werte werden implizit auf 0 gesetzt. Sind mehrere Views konfiguriert, muss jeder allerdings einen einzigartigen Wert besitzen.

label

Optionaler Message Key für die Bezeichnung dieses Metadatenfeldes (die Übersetzung für diesen Key muss in der jeweiligen messages.properties vorhanden sein).

url

URL Pattern für die Seite. Der Wert wird als Suffix an das Standard-Pattern /metadata drangehängt. Sind mehrere Views konfiguriert, darf maximal ein Element einen leeren Wert dieses Attributs besitzen, alle anderen benötigen jeweils einen einzigartigen Wert.

condition

Optionale Bedingung für die Anzeige der Verlinkung in der Seitenleiste. Erlaubt sind entweder ein Solr-Feldname ("MD_FOO") oder ein Feld-Wert-Paar ("MD_FOO:bar"), das das Hauptelement des geöffneten Werkes besitzen muss.

Innerhalb eines Views können abhängig von dem angezeigten Strukturtyp unterschiedliche Konfigurationen verwendet werden. Die Konfigurationen werden dabei jeweils in einem Element <template> platziert. Im obigen Beispiel ist für den Strukturtyp monograph eine eigene Metadatenliste konfiguriert.

Metadaten für LIDO-Events werden ebenfalls über diese Liste konfiguriert. Gewünschte Event-Metadaten müssen hier also ebenfalls aufgelistet sein.

Jedes Element <metadata> beschreibt ein Metadatenfeld, das angezeigt werden soll. Die Reihenfolge der Auflistung entspricht dabei der Reihenfolge, in der diese Metadaten (falls vorhanden) angezeigt werden. Das Element hat folgende Attribute:

Attribut

Beschreibung

label

Der Key für die Bezeichnung dieses Metadatenfeldes (die Übersetzung für diesen Key muss in der jeweiligen messages.properties vorhanden sein)

value

Standardwert des Metadatums. Dieser Wert kann etwa eine URL sein, die in der messages.properties definiert ist und Platzhalter enthält, die durch tatsächliche Werte aus dem Metadatum ersetzt werden (siehe die Konfiguration von MD_AUTHOR im obigen Beispiel). Für einfache Metadaten sollte dieses Attribut leer gelassen werden (siehe die Konfiguration von MD_TITLE im obigen Beispiel).

sortField

Hier kann optional ein sortierbares Feld (z.B. SORT_VALUE) definiert werden, anhand dessen mehrere Werte innerhalb eines gruppierten Metadatenfeldes sortiert werden können.

type

Der Wert des Attributs type enthält die Nummer des Widgets oder Blöcke, in dem das Metadatum angezeigt werden soll (beginnend mit 0). Fehlt dieses Attribut, wird automatisch der Wert 0 verwendet.

group

Optionales Attribut das angibt, ob es sich um ein gruppiertes Metadatum handelt. Standard ist false.

citationTemplate

Optionales Attribut das nur für die Anzeige von Zitierempfehlungen benötigt wird. Hier wird dann ein für Citeproc valider Zitierstil angegeben.

hideIfOnlyMetadataField

Metadaten, die hier mit true gekennzeichnet sind, gelten als entbehrlich. Sind in einem Strukturelement nur Metadatenfelder vorhanden, die dieses Attribut besitzen, wird der ganze Metadatenblock für dieses Strukturelement ausgeblendet. Ist hingegen mindestens ein Metadatenfeld vorhanden, welches den Attributwert false hat, wird der Block mit allen Metadaten angezeigt (auch Metadate, mit Attributwert true werden dann angezeigt). Standardwert ist false.

Titel für die einzelnen Widgets oder Blöcke werden in der messages_*.properties nach dem Muster metadataTab<Nummer> konfiguriert:

metadataTab0=Beschreibung
metadataTab1=Inhalt
metadataTab2=Weitere Informationen

Metadaten aus LIDO Events werden automatisch in zusätzlichen Widgets pro Event dargestellt.

Jedes Element <metadata> muss mindestens ein Element <param> enthalten. Diese definieren die Quelle der tatsächlichen Werte für diesen Metadatentyp. Folgende Attribute sind dabei zu konfigurieren:

Attribut

Beschreibung

type

Der Typ des Werts beschreibt die Art, ob und wie der Wert behandelt wird. Mögliche Typen sind:

  • field- Der Wert wird so wie er ist übernommen

  • translatedfield- Der Wert wird in die aktuelle Sprache übersetzt, falls eine Übersetzung existiert

  • unescapedfield- es wird kein HTML-Unescaping am Wert vorgenommen

  • wikifield- Anpassung des Werts für eine Suchanfrage bei Wikipedia: Klammern werden entfernt, Leerzeichen durch Unterstriche ersetzt

  • wikipersonfield- Wie wikifield, aber wenn der Wert ein Komma enthält, werden zusätzlich die Strings vor und nach dem Komma vertauscht, so dass Personennamen in das Muster first name_last name für korrektes Wikipedia Resolving überführt werden

  • urlescapedfield- Hierbei werden speziell für URLs codierte Zeichen wie der Slash Unicode-Escaped

  • normdatauri- Es wird ein Button gerendert, der mithilfe der hier enthaltenen Normdaten-URI die Normdaten einholt und öffnet

  • normdatasearch- Es wird ein Button gerendert, der mit dem konfigurierten Indexefeld in key eine Suche startet, die alle Werke mit dieser Feld:Wert-Kombination auflistet (zum Beispiel NORM_IDENTIFIER).

  • hierarchicalfield - Erzeugt einen Link für jedes Hierarchielevel. Für die Verwendung mit dem Solr Feld DC gedacht.

  • millisfield - Formatiert Millisekunden-Zeitstempel als Datum (dd.MM.yyyy wenn Locale = DE, ansonsten MM/dd/yyyy).

  • citeproc - Zeigt an, dass eine Zitierempfehlung mittels Citeproc erstellt werden soll.

  • datefield - Datumsangaben im ISO-Format yyyy-MM-dd werden im für die Browse-Locale passenden Format ausgegeben (zum Beispiel: "31.12.2023" oder "12/31/2023").

key

Das Feld im Solr Index, dass den gewünschten Wert enthält

prefix

Zeichenkette, die unmittelbar vor dem Wert des Metadatums stehen soll (Leerzeichen werden mit _SPACE_ kodiert).

suffix

Zeichenkette, die unmittelbar nach dem Wert des Metadatums stehen soll (Leerzeichen werden mit _SPACE_kodiert).

value

Das Attribut value in <param> bietet optional die Möglichkeit, für den jeweiligen Parameter zusätzlich ein Master Value (Zeichenkette oder Message Key) zu definieren, in das der Wert des Parameters eingesetzt ist (zum Beispiel value="foo {0} bar"). Der Gesamte Ausdruck wird dann in den jeweiligen Platzhalter des Master Values des gesamten Metadazums eingesetzt (wenn der Parameter den Index 0 hat, wird der gesamte Ausdruck in den Platzhalter {0} des Metadatums eingesetzt). Ist ein value-Attribut definiert, werden evtl. gesetzte prefix- und suffix-Parameter ignoriert.

Beispiel:

<metadata label="MD_LOREMIPSUM" value="LOREMIPSUM_MASTER_KEY">

<param type="field" key="MD_LOREM" value="LOREM_MSG_KEY" />

<param type="field" key="MD_DOLOR" />

</metadata>

messages.properties:

MD_LOREMIPSUM=LI

LOREMIPSUM_MASTER_KEY={0} ipsum {1} sit amet.

LOREM_MSG_KEY=<a href="https://example.com/?search={0}>{0}</a>

Ausgabe:

LI: Lorem ipsum dolor sit amet.

topstructOnly

Wenn das Attribut den Wert true hat, werden Metadaten, die in allen Strukturelementen vorkommen nur beim Hauptwerk aufgelistet. Das ist in der Regel bei dem Feld DC, in dem die Sammlungen gespeichert sind, der Fall. Standard ist false

dest

Wird nur im Zusammenhang mit dem type="citeproc" benötigt und gibt dann an, wohin die Werte aus den im key="" Attribut konfigurierten Solr-Feld innerhalb von Citeproc gemappt werden sollen.

condition

Optional kann in condition für den Parameter eine einfache Solr-Query definiert werden. In dem Fall wird der Wert nur verwendet, wenn die Abfrage Treffer ergibt. Dabei wird der Platzhalter {0} in der Query durch den Wert des Parameters (in der Regel der Wert des Feldes im Parameter key) ersetzt. Folgendes Beispiel zeigt die Verlinkung zu einem anderen Werk (mit dem Identifier in MD_RELATED_RECORD_ID) nur an, wenn dieses Werk auch im Index existiert: <param type="field" key="MD_RELATED_RECORDID" value="MASTERVALUE_RELATED_RECORD_LINK" condition="PI:{0}" />

removeHighlighting

Das Suchtreffer-Highlighting wird nicht auf den Wert angewandt, wenn das Attribut auf true steht. Dadurch kann man diesen Wert etwa für URL-Konstruktion verwenden. Standard ist false

pattern

Funktioniert nur mit dem type datefield. Dann kann eine Wunschformatierung für das Datum konfiguriert werden (Java-kompatible Notation). In dem Fall wird die konfigurierte Formatierung anstatt der Locale-basierten auf validen Datumsangaben angewandt. Beispiele für das pattern sind dd/MM/yyyy oder dd.MM.yyyy

defaultValue

Wenn der konfigurierte Parameter leer ist, wird der im defaultValue genannte Wert ausgegeben. Wenn kein defaultValue angegeben ist, wird der Parameter übersprungen.

Unterhalb von einem <param> Element können <replace /> Regeln definiert werden. Über die Attribute string, char oder regex lassen sich Werte definieren die aus dem Metadatum extrahiert und dann durch den im replace Block angegeben Wert ersetzt werden sollen. Über das Attribut condition kann eine optionale Solr Query formuliert werden. In dem Fall werden nur Metadaten von Werken, auf die die Bedingungen zutreffen, entsprechend behandelt.

Im folgenden Beispiel wird in Monographien in dem Metadatum aus dem Feld MD_COPYRIGHT der Platzhalterstring [year] gesucht und durch 2019 ersetzt:

<metadata>
    <mainMetadataList>
        <template name="_DEFAULT">
            <metadata label="MD_COPYRIGHT">
                <param type="field" key="MD_COPYRIGHT">
                    <replace string="[year]" condition="DOCSTRCT:monograph">2019</replace>
                </param>
            </metadata>
        </template>
    </mainMetadataList>
</metadata>

Die Reihenfolge der <param> Elemente entspricht der Reihenfolge, in der die Platzhalter im Standardwert (falls konfiguriert) ersetzt werden.

Beispiel:

MASTERVALUE_WIKINORM={1} <a href\="http\://de.wikipedia.org/wiki/{3}" target\="_blank" title\="Wikipedia" alt\="Wikipedia" data-trigger\="hover" data-placement\="top" data-toggle\="tooltip"><i class\="fa fa-wikipedia-w" aria-hidden\="true"></i></a> {5}

Der Key MASTERVALUE_WIKINORM enthält ein vollständiges HTML Fragment mit einer Wikipedia URL, die wiederum zwei Platzhalter {1} und {3} enthält. Am Ende wird der Platzhalter für den dann automatisch generierten Link zur GND konfiguriert.

Die Metadaten-Konfiguration für MD_AUTHOR (siehe erstes Beispiel) enthält drei <param> Elemente: ein field, einwikifield und ein normdatauri. Der unveränderte Wert in field ersetzt dabei {1} (der angezeigte Name). Derselbe Wert als wikifield wird für Wikipedia Konformität formatiert und ersetzt {2} (Teil der URL). Das Ergebnis besteht dann aus dem Namen des Autors, gefolgt von einem Wikipedia Icon, das nach folgender URL verlinkt:

http://en.wikipedia.org/wiki/Georges_Grosjean

Die Parameter werden mit {0}, {1}, ... angesprochen. Ist allerdings group="true" gesetzt, dann sind es {1}, {3}, ...

Optional kann auch eine Bedingung angegeben werden um Metadatenwerte zu ersetzen. Damit ist es zum Beispiel möglich wenn ein Werk öffentlich mit einer Moving Wall beschränkt ist aber intern an einem Leseplatz betrachtet werden kann für den Zeitraum der Moving Wall eine alternative Lizenz anzuzeigen. Die Syntax der Bedingung ist hier die gleiche Solr-Syntax wie sie auch als Bedingung bei der Definition von Lizenzen verwendet werden kann:

<metadata>
    <mainMetadataList>
        <template name="_DEFAULT">
            <metadata label="MD_LICENSELABELFIELD">
                <param type="translatedfield" key="MD_LICENSELABELFIELD">
                    <replace condition="-MDNUM_PUBLICRELEASEYEAR:[* TO NOW/YEAR]" regex=".+">MESSAGE_LICENCEINFORMATION</replace>
                </param>
            </metadata>
        </template>
    </mainMetadataList>
</metadata>

Mehrstufige gruppierte Metadaten

Sind im Index gruppierte Metadaten vorhanden, die wiederum weitere gruppierte Metadaten beinhalten (siehe Kapitel 2.5), können innerhalb eines <metadata> Elements weitere <metadata> Elemente konfiguriert werden, die diese abbilden (theoretisch beliebig tief).

<metadata label="MD_EVENT" value="MASTERVALUE_EVENT" group="true" singleString="false" labelField="EVENTTYPE" type="3">
    <param type="field" key="EVENTTYPE" value="MASTERVALUE_NULL">
    <param type="field" key="MD_MATERIAL"/>
    <param type="field" key="MD_DESCRIPTION" />
    <metadata label="MD_ARTIST" value="MASTERVALUE_EVENT_ACTOR" singleString="false"  group="true">
        <param type="field" key="MD_NAME" value="MASTERVALUE_EVENT_ACTOR_NAME" />
        <param type="field" key="MD_DISPLAYNAME" />
        <param type="field" key="MD_ROLE" />
        <param type="field" key="MD_STARTDATE" />
        <param type="field" key="MD_ENDDATE" />
        <param type="field" key="MD_URI_GETTY" value="MASTERVALUE_URI_GETTY" />
        <param type="field" key="MD_URI_SIKART" value="MASTERVALUE_URI_SIKART" />
        <param type="normdatauri" key="NORM_URI"/>
    </metadata>
    <metadata label="MD_DESIGNER" value="MASTERVALUE_EVENT_ACTOR" singleString="false"  group="true">
        <param type="field" key="MD_DISPLAYNAME" />
        <param type="field" key="MD_ROLE" />
        <param type="field" key="MD_STARTDATE" />
        <param type="field" key="MD_ENDDATE" />
        <param type="field" key="MD_URI_GETTY" value="MASTERVALUE_URI_GETTY" />
        <param type="field" key="MD_URI_SIKART" value="MASTERVALUE_URI_SIKART" />
        <param type="normdatauri" key="NORM_URI"/>
    </metadata>
</metadata>

Das Attribut singleString="true" definiert, dass gruppierte Parameter über ein Master Value in den messages_XX.properties ausgegeben werden (wie in den Beispielen weiter oben). Steht das Attribut hingegen auf false, werden Parameter-Werte tabellarisch als Paare aus Label und Wert ausgegeben. Standardwert ist true.

Soll als Überschrift des gruppierten Metadatums nicht der Feldname (im obigen Beispiel die Übersetzung von MD_EVENT), sondern etwa der Typ des Events angezeigt werden, kann über das Attribut labelField ein untergeordnetes Feld des gruppierten Metadatums angegeben werden, aus dem die Überschrift bezogen werden soll (im Beispiel EVENTTYPE). Achtung: In dem Fall muss das ausgewählte Unterfeld auch als <param> konfiguriert sein, da ansonsten kein Wert hierfür geladen werden kann! Soll das Unterfeld nicht noch zusätzlich als Parameter angezeigt werden, kann mit dem reservierten Attributwert value="MASTERVALUE NULL" der Parameter wieder geleert werden, nachdem sein Wert für die Überschrift verwendet wurde.

Last updated