Zum Hauptinhalt springen
Version: 7.0

Metadaten

Die wohl wichtigsten Dateien für die Konfiguration und Speicherung von Metadaten sind das mets.xml und das levels.xml. Das levels.xml befindet sich unter docuteam-packer/config. Es dient dazu, die Metadatenfelder zu bestimmen. Das mets.xml befindet sich in jedem SIP auf oberster Ebene neben dem Root-Element und enthält die Metadaten eines SIP.

mets.xml

Wird mit docuteam packer ein SIP erstellt, wird automatisch eine Datei angelegt, die sämtlichen Metadaten des Pakets enthält. Die Datei befindet sich im SIP auf der obersten Stufe neben dem Root-Element. Sie heisst mets.xml und ist nach den Vorgaben des Standards Matterhorn METS aufgebaut.

Speicherort des mets.xml

Der Standard Matterhorn METS kombiniert die Standards METS, PREMIS und EAD. Er gibt vor, wie diese drei Standards für die Beschreibung eines SIP eingesetzt werden können. Weitere Informationen zu Matterhorn METS finden sich hier.

Technische und administrative Metadaten werden von docuteam packer automatisch extrahiert und erfasst. Die beschreibenden Metadaten muss der Nutzer in der Detailansicht des geöffneten SIP von Hand eingeben. Welche Metadatenfelder für welche Stufe zur Verfügung stehen und welche Werte darin erlaubt sind, wird in der Konfigurationsdatei levels.xml definiert.

levels.xml

Im levels.xml werden Einstellung vorgenommen, die einen Einfluss haben auf die Darstellung und Nutzung der Felder unter dem Tab "Beschreibung" in der Detailansicht eines SIP. Es befindet sich unter docuteam-packer/config. Hier kann Beispielsweise festgelegt werden, welche Felder bei welcher Verzeichnungsebene angezeigt werden sollen, ob ein einzelnes Feld zwingend auszufüllen ist, ob Standardwerte verwendet werden oder wie ein eingegebener Wert validiert wird.

Im Ordner docuteam-packer/config liegen verschiedene vorkonfigurierte levels.xml Konfigurationsdateien. packer verwendet stets die Datei levels.xml; durch Umbenennen einer anderen Datei in levels.xml kann die Konfiguration angepasst werden:

  • levels.xml: Standardversion mit einer Verzeichnungsstufe (Undefiniert) mit allen Metadatenfeldern die in packer verwendet werden können.
  • levels_BAR.xml: Version um Matterhorn METS Pakete into eCH-0160 umzuwandeln.
  • levels_cmi_de.xml Version angepasst für das Archivinformationssystem CMI AIS.
  • levels_isad-g_de.xml Version mit Verzeichnungsstufen und Feldauswahl/-bezeichnungen nach ISAD(G) in Deutsch.
  • levels_isad-g_en.xml Version mit Verzeichnungsstufen und Feldauswahl/-bezeichnungen nach ISAD(G) in Englisch.
  • levels_isad-g_fr.xml Version mit Verzeichnungsstufen und Feldauswahl/-bezeichnungen nach ISAD(G) in Französisch.

In der ersten Sektion von levels.xml (LEVELS:MetadataElements) werden alle zur Verfügung stehenden Metadaten-Elemente und gegebenenfalls erlaubte Werte definiert. Für eine Übersicht aller Metadaten-Elemente in packer siehe die Liste der Metadaten-Elemente.

In der zweiten Sektion von levels.xml (LEVELS:Levels) werden die Verzeichnungsebenen sowie die Zuweisung von Metadaten-Elementen zu diesen Verzeichnungsebenen definiert.

Metadaten-Elemente

Ein LEVELS:MetadataElement wird durch die folgenden 6 Attribute definiert:

accessorNameId
BeispielaccessNr
obligatorischja
ErklärungDer eindeutige Name des Metadatenfelds. Dieses muss den unten ersichtlichen Akzessoren entsprechen, mit welchen in packer auf die Daten zugegriffen wird. Über die i18n-Konfiguration kann im Bedarfsfall einem Metadaten-Feld ein individuelles Label zugewiesen werden für die Anzeige im GUI.
defaultExpression
Beispielenew java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date()), ((ch.docuteam.darc.mets.structmap.NodeAbstract)object1).getMimeType(), "false"
obligatorischnein
ErklärungEin Java-Ausdruck, um dieses Feld beim Erstellen des Knotens mit einem Wert zu initialisieren. Der aktuelle Knoten wird referenziert durch: (ch.docuteam.darc.mets.structmap.NodeAbstract)object1. Für Beispiele siehe Liste der defaultExpressions.
validatorClassName
Beispielch.docuteam.darc.mdconfig.MetadataElementValidatorDate
obligatorischnein
ErklärungEine Java-Klasse, die den Inhalt dieses Metadaten-Elementes beim Setzen validiert. Falls die Validierung den eingegebenen Wert nicht erlaubt, wird eine Fehlermeldung angezeigt und das Feld mit dem vorigen Wert gefüllt. Für eine Liste der Validatoren siehe Liste der validatorClassNames.
postActionClassName
Beispielch.docuteam.darc.mdconfig.
MetadataElementSetterPostActionSysOut
obligatorischnein
ErklärungEine Java-Klasse, die beliebige Aktionen ausführt, nachdem der Wert dieses Feldes gesetzt wurde. Diese Aktion wird nicht ausgeführt, wenn die Validierung des eingegebenen Werts fehlschlägt. Für eine Liste der möglichen postActions siehe Liste der postActionClassNames.
allowedValues
Beispiel*;Deutsch;English;Français;Italiano, file:///config/skos/retentions.rdf
obligatorischnein
ErklärungEine Liste von Werten, die in packer als DropDown-Liste dargestellt wird. Ist das erste Element dieser Liste ein Asterisk "*", können zusätzlich zu den Listenelementen auch beliebige andere Begriffe eingegeben werden. \ Die Liste von Werten darf ebenfalls in einer Datei, welche das SKOS-Schema ("Simple Knowledge Organization System") respektiert, vordefiniert werden. Der relative Pfad zu dieser RDF-Datei muss in diesem Fall geliefert werden.
allowedValuesType
BeispielstringList
obligatorischnein
ErklärungAngabe zum Typ der Auswahlliste erlaubter Werte. Unterstützt sind stringList, skosFile und csvFile.

Ein Beispiel:

<LEVELS:MetadataElement
accessorNameID="retentionPolicy"
defaultExpression='"Confidential"'
allowedValues="OpenAccess;EmbargoPeriod30Years;EmbargoPeriod50Years;Confidential"
allowedValuesType="stringList"/>

Mit dem Element LEVELS:AllowedValuesSeparator kann der Separator der allowedValues-Liste eingestellt werden. Dieser kann auch aus mehreren Zeichen bestehen, wie folgendes Beispiel zeigt:

<LEVELS:MetadataElements>
<LEVELS:AllowedValuesSeparator>::</LEVELS:AllowedValuesSeparator>
<LEVELS:MetadataElement
accessorNameID="language"
allowedValues="*::Deutsch::English::Français::Italiano"/>
...
</LEVELS:MetadataElements>

Verzeichnungsebenen

Ein LEVELS:Level (Verzeichnungsebene) wird durch folgende 4 Attribute definiert:

nameID
BeispielArchiv
obligatorischja
ErklärungDer eindeutige Name dieser Verzeichnungsebene
iconFileName
Beispielresources/images/LevelSerie.png
obligatorischja
ErklärungDer Pfad zur Icon-Datei dieser Ebene. Wenn diese Datei nicht existiert, wird ein gelbes Warn-Icon angezeigt.
allowedSublevelNameRefs
BeispielAbteilung Bestand Undefiniert
obligatorischnein
ErklärungDie Liste der für diese Verzeichnungsebene erlaubten Unterebenen. Die Elemente dieser Liste müssen in dieser Datei spezifiziert sein (als nameID) und durch ein Leerzeichen getrennt werden. Das erste Element dieser Liste wird bei neuen Unterelementen als Standardebene gesetzt.
isTrash
Beispieltrue
obligatorischnein
ErklärungMarkiert die entsprechende Verzeichnungsstufe als zu löschende Knoten, die beispielsweise nach einem Review durch die abliefernde Stelle kassiert werden sollen.

Ein Beispiel:

<LEVELS:Level
nameID="Archiv"
iconFileName="resources/images/LevelSerie.png"
allowedSublevelNameRefs="Abteilung Bestand Undefiniert">
...
</LEVELS:Level>

Zuweisung von Metadaten-Elementen zu Verzeichnungsebenen

Die Zuweisung von Metadaten-Elementen zu Verzeichnungsebenen wird durch eine Liste von LEVELS:LevelMetadataElement definiert. Dieses Element verfügt über die folgenden 7 Attribute:

accessorNameRef
Beispiellanguage
obligatorischja
ErklärungDie accessorNameID des Metadaten-Elementes; referenziert eine accessorNameID aus der Liste der <LEVELS:MetadataElements> (siehe oben)
isMandatory
Beispieltrue
obligatorischja
ErklärungWenn true, ist dieses Metadaten-Element obligatorisch. Obligatorische Elemente werden immer in der Metadaten-Liste angezeigt. Wenn ein obligatorisches Element leer ist, wird das Element mit einem Ausrufezeichen markiert.
isRepeatable
Beispielfalse
obligatorischja
ErklärungWenn true, ist dieses Metadaten-Elemente wiederholbar und kann entsprechend mehrfach nach Bedarf zugefügt werden.
isAlwaysDisplayed
Beispieltrue
obligatorischnein
ErklärungWenn true, wird dieses Metadaten-Element immer in der Metadaten-Liste angezeigt und muss nicht zuerst manuell hinzugefügt werden.
isReadOnly
Beispielfalse
obligatorischnein
ErklärungWenn true, kann dieses Metadaten-Element manuell nicht geändert werden. Ist eine "defaultExpression" angegeben, wird das Metadaten-Element beim Erstellen damit initialisiert.
keepInTemplate
Beispielfalse
obligatorischnein
ErklärungWenn true, wird dieses Metadaten-Element beim Erstellen einer Vorlage nicht gelöscht.
displayRows
Beispiel5
obligatorischnein
ErklärungGibt die Anzahl der Zeilen bei der Darstellung dieses Metadaten-Elementes in der Metadaten-Liste an.

Ein Beispiel:

<LEVELS:LevelMetadataElement
accessorNameRef="PID"
isMandatory="false"
isRepeatable="false"
isAlwaysDisplayed="true"
isReadOnly="true"/>

Je nach dem wie die Attribute im levels.xml definiert sind, werden die Metadatenfelder in der Detailansicht eines SIP entsprechend angezeigt.

Werden Beispielsweise dynamische Metadaten-Elemente definiert, können diese im Tab "Beschreibung" aus der Dropdownliste unten links ausgewählt und durck Klicken auf das Pluszeichen zur Liste hinzugefügt werden.

Metadatenfelder dynamisch hinzufügen

Die erste Spalte in der Liste enthält in codierter Form Informationen zu den einzelnen Elementen, die im levels.xml definiert wurden:

  • Ein * bedeutet, dass dieses Element ein Pflichtfeld ist und bereits ausgefüllt wurde. Pflichtfelder sind immer sichtbar.
  • Ein ! bedeutet, dass das Element ein Pflichtfeld ist, das noch nicht ausgefüllt wurde.
  • Ein O bedeutet, dass das Element immer sichtbar ist, aber nicht zwingend ausgefüllt werden muss.
  • Ein + bedeutet, dass das Element mehrmals vorkommen kann.
  • Ein X bedeuted, dass das Element nicht editiert werden kann.

Liste der Metadaten-Elemente

Für eine Liste aller Metadaten-Elemente, die in packer verwendet werden können, siehe die Dokumentation zu Matterhorn METS.

Liste der defaultExpressions

  • '"Abc"': Initialisiert das Feld mit dem Inhalt "Abc".
  • 'new java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date())': Initialisiert das Feld mit dem aktuellen Datum im Format yyyy-MM-dd.
  • '((ch.docuteam.darc.mets.structmap.NodeAbstract)object1).getMimeType()': Initialisiert das Feld mit dem MIME-Typ der Datei.
  • 'ch.docuteam.tools.string.DateFormatter.getDateTimeString(object1.getFile().lastModified(), DateFormatter.Short)': Initialisiert das Feld mit dem Datum der letzten Änderung einer Datei.
  • 'ch.docuteam.tools.file.FileUtil.getHumanReadableFileSize(object1.getFile())': Initialisiert das Feld mit der Dateigrösse.
  • 'object1.isFile() ? ch.docuteam.tools.file.FileUtil.asFileNameExtension(((ch.docuteam.darc.mets.structmap.NodeAbstract)object1).getFile()) : null': Initialisiert das Feld mit der Dateiendung.

Liste der validatorClassNames

  • 'MetadataElementValidatorInteger.java': Akzeptiert nur Ganzzahlen zwischen -2147483648 und 2147483647.
  • 'MetadataElementValidatorShort.java': Akzeptiert nur positive Ganzzahlen zwischen 0 und 32767.
  • 'MetadataElementValidatorYear.java': Akzeptiert nur Daten im Format yyyy.
  • 'MetadataElementValidatorDate.java': Akzeptiert nur Daten im Format yyyy-MM-dd.
  • 'MetadataElementValidatorDateCH.java': Akzeptiert nur Daten im Format dd.MM.yyyy.
  • 'MetadataElementValidatorDateYYYYMMDD.java': Akzeptiert nur Daten im Format yyyyMMdd.
  • 'MetadataElementValidatorDateYYYYMMDDPartial.java': Akzeptiert nur Daten im Format yyyyMMdd, yyyyMM oder yyyy.
  • 'MetadataElementValidatorDateRangeCH.java': Akzeptiert nur Daten oder Datumsbereiche im Format dd.MM.yyyy oder dd.MM.yyyy - dd.MM.yyyy
  • 'MetadataElementValidatorDateHierarchyRangeCH.java': Akzeptiert nur Daten oder Datumsbereiche im Format dd.MM.yyyy oder dd.MM.yyyy - dd.MM.yyyy und prüft zusätzlich ob der Datumsbereich im Datumsbereich der Vorfahren enthalten ist und die Datumsbereiche der Nachkommen enthält.
  • 'MetadataElementValidatorDateHierarchyYear.java': Akzeptiert nur Daten oder Datumsbereiche im Format yyyy oder yyyy - yyyy und prüft zusätzlich ob der Datumsbereich im Datumsbereich der Vorfahren enthalten ist und die Datumsbereiche der Nachkommen enthält.
  • 'MetadataElementValidatorUniqueValueAmongSiblings.java': Prüft ob ein Metadatenelement innerhalb der Geschwister nur einmal vorkommt.

Liste der postActionClassNames

  • 'MetadataElementSetterPostActionAddValueInParents.java': Fügt eine Kopie eines neu eingefügtes Metadaten-Element in alle Vorfahren ein.
  • 'MetadataElementSetterPostActionAddStartDateInParents.java': Fügt eine Kopie eines Startdatum-Felds in alle Vorfahren ein, falls das gleiche Datum in den Vorfahren leer oder später ist als das neu eingegebene Datum. Unterstützt veschiedene Datumsformate.
  • 'MetadataElementSetterPostActionAddEndDateInParents.java': Fügt ein Kopie eines neu eingefügtes Enddatum-Felds in alle Vorfahren ein, falls das gleiche Datum in den Vorfahren leer oder früher ist als das neu eingegebene Datum. Unterstützt veschiedene Datumsformate.
  • 'MetadataElementSetterPostActionAddValueInChildrenOfDossiers.java': Vererbt (hinzufügen/aktualisieren/entfernen) einen neuen Wert an Unterobjekte (wenn Stufe "Dossier" oder "Document" und Feld nicht wiederholbar ist).