Comment on page
1.19.1 Haupt-Metadaten
Die Haupt-Metadaten werden auf der Seite "Bibliographische Daten" angezeigt.

Metadaten
Sie können wie folgt konfiguriert werden:
config_viewer.xml
<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:messages_de.properties
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:
|
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: |
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:config_viewer.xml
<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:
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">
<param type="translatedfield" key="MD_LICENSELABELFIELD">
<replace condition="-MDNUM_PUBLICRELEASEYEAR:[* TO NOW/YEAR]" regex=".+">MESSAGE_LICENCEINFORMATION</replace>
</param>
</metadata>
</template>
</mainMetadataList>
</metadata>
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 modified 1mo ago