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>
         <template name="lidoobject">
               <metadata label="MD_TITLE" value="" type="0">
                     <param type="field" key="MD_TITLE" />
               </metadata>
               <metadata label="MD_AUTHOR" value="LINK_WIKIPEDIA" type="0">
                     <param type="field" key="MD_AUTHOR" />
                     <param type="wikifield" key="MD_AUTHOR" />
               </metadata>
               <metadata label="MD_LOCATION" value="" type="2">
                     <param type="field" key="MD_LOCATION" />
               </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:

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:

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:

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