4.6.6. Metadatentyp-Mapping
Last updated
Last updated
Hauptbestandteil der Konfiguration für diese Serialisierungsklasse ist jedoch das Mapping der Metadatentypen in bestimmte Tabellen und Tabellenspalten. Für das Verständnis der unten beschriebenen Erläuterungen ist die Kenntnis des AGORA-Datenbankschemas daher sinnvoll.
Für jeden Metadatentyp existiert ein <Metadata>
Element. Innerhalb dieses Elements wird die Tabelle, die Spalte oder sogar ein Wert ausgewählt. Jedes <Metadata>
Element muss ein Unterelement <InternalName>
und <TableName>
besitzen. <InternalName>
enthält den internen Namen des Metadatentyps und <TableName>
enthält den Namen der Tabelle, in welcher der Wert des Metadatums gespeichert werden soll. Je nach Datenbankmanagementsystem ist hier evtl. auf Groß/Kleinschreibung zu achten. Entsprechend der Relation zwischen Struktureinheit und Metadatum gibt es mehrere Möglichkeiten, das Metadatum zu speichern:
Zusätzlich können nicht nur die Typen konvertiert werden, sondern auch die Werte eines Metadatums. Dazu dienen Wertelisten, die innerhalb des <AGORADATABASE>
Elements definiert sein müssen. Eine solche Werteliste kann für die Wertkonvertierung durch einfügen des Elements <ValueList>
genutzt werden. Dieses Element muss den Namen der Werteliste enthalten. Es ist sicherzustellen, dass eine entsprechende Werteliste mit diesem Namen auch existiert.
Beispiel: Nutzung einer Werteliste für die Wertkonvertierung
Relation
Beschreibung
1:1
Metadaten des entsprechenden Typs dürfen max. einmal pro Struktureinheit auftreten, das Metadatum wird daher in der gleichen Tabelle gespeichert wie die Struktureinheit. Dies ist in dem AGORA-Datenbankschema die DOC
-Tabelle für Struktureinheiten der logischen Struktur und die ISET
-Tabelle für Struktureinheiten der physischen Struktur. Hierzu muss lediglich die entsprechende Tabellenspalte im Element <TableColumn>
angegeben werden. Zu beachten ist jedoch, dass die entsprechende Relation zwischen Strukturtyp und Metadatum im Regelsatz (num-Attribut) auf 1m
, 1o
oder +
steht.
Beispiel:
<Metadata>
<InternalName>CatalogIDDigital</InternalName>
<TableName>Doc</TableName>
<TableColumn>CatalogIDDigital</TableColumn>
</Metadata>
1:n
Das Metadatum kann mehrmals für eine Struktureinheit vorkommen. In diesem Fall gibt es zwei Tabellen. Die DocAttribute-Tabelle enthält den Typ des Metadatums, die DocAttribValue
-Tabelle verknüpft zzgl. des Metadatumwerts mit der Tabelle für die Struktureinheit (DOC-Tabelle). In diesem Fall ist in <TableName>
der Wert DocAttribute
anzugeben. Das Element <FieldValue>
muss dann den Wert des internen Attributnamen besitzen, wie er in der DocAttribute
Tabelle gespeichert ist. Das Element <TableColumn>
existiert nicht.
Beispiel:
<Metadata>
<InternalName>PublisherName</InternalName> <TableName>DocAttribute</TableName>
<FieldValue>Publisher</FieldValue>
</Metadata>
m:n
Ein Metadatum kann mehrmals für eine Struktureinheit vorkommen. Im Gegensatz zu der 1:n Verknüpfung wird allerdings der Metadatenwert mehrmals für unterschiedliche Struktureinheiten verwendet. Dieses Modell findet für die DigitalCollection
- und die PlacePublication
-Tabelle Anwendung. Sollen Daten in einer dieser beiden Tabellen gespeichert werden, muss das <Metadata>
Element lediglich ein <TableName>
Element enthalten. Dieses muss den Wert PlacePublication oder DigitalCollection enthalten.
Beispiel:
<Metadata>
<InternalName>PlaceOfPublication</InternalName> <TableName>PlacePublication</TableName>
</Metadata>
Personen
Personen werden in einer eigenen Tabelle gespeichert. Dies ist notwendig, da die zusätzlichen Merkmale eines Person-Objekts keinen Platz in den herkömmlichen Metadatentabellen haben. Das <FieldValue>
Element gibt in diesem Fall den Rollennamen an, den dieser Personentyp in der Datenbank besitzt. Dieser wird in der Datenbank in der CreatorType
-Tabelle gespeichert. Das Element <TableName>
muss dazu zwingend den Wert Creator
besitzen.
Beispiel:
<Metadata>
<InternalName>Author</InternalName>
<TableName>Creator</TableName>
<FieldValue>AUTHOR</FieldValue>
</Metadata>