2.19.1 Haupt-Metadaten

Die Liste der Haupt-Metadaten (das heißt Metadaten, die auf der Seite “Bibliographische Daten” angezeigt werden) können wie folgt konfiguriert werden:

config_viewer.xml
<metadata>
<mainMetadataList>
<template name="_DEFAULT">
<metadata label="MD_TITLE" value="" type="">
<param type="field" key="MD_TITLE" />
</metadata>
<metadata label="MD_AUTHOR" value="MASTERVALUE_WIKINORM" group="true" type="" >
<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" value="" type="">
<param type="translatedfield" key="DC" topstructOnly="true" />
</metadata>
<metadata label="URN " value="" type="">
<param type="field" key="URN" />
</metadata>
<metadata label="MD_COPYRIGHT" value="" type="">
<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" value="" type="">
<param type="translatedfield" key="MD_LICENSELABELFIELD">
<replace condition="-MDNUM_PUBLICRELEASEYEAR:[* TO NOW/YEAR]" regex=".+">MESSAGE_LICENCEINFORMATION</replace>
</param>
</metadata>
</template>
<template name="monograph">
<metadata label="MD_TITLE" value="" type="">
<param type="field" key="MD_TITLE" />
</metadata>
<metadata label="MD_AUTHOR" value="MASTERVALUE_WIKINORM" group="true" type="" >
<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>
</mainMetadataList>
</metadata>

Hier kann 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).

type

Der Wert des Attributs type enthält die Nummer des Reiters oder Blocks, 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.

Titel für die einzelnen Reiter werden in der messages_*.properties nach dem Muster metadataTab<Nummer> konfiguriert:

messages_de.properties
metadataTab0=Beschreibung
metadataTab1=Inhalt
metadataTab2=Weitere Informationen

Metadaten von Events (nur aus LIDO-Datensätzen) werden in der musealen Ansicht als zusätzliche Reiter hinter den regulären Metadaten Reitern dargestellt.

Bibliographische Daten

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 (z.B. NORM_IDENTIFIER).

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

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 (z.B. 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

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.

Im folgenden Beispiel wird 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" value="" type="">
<param type="field" key="MD_COPYRIGHT">
<replace string="[year]">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:

messages_de.properties
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:

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