Dokumentation: Spezialimport in der Vorlassdomain
Inhaltsverzeichnis
Vorbereitung und Upload
- Ein Verzeichnis mit Subverzeichnissen und darin befindlichen Ressourcen gemäß der folgenden Spezifikation erstellen und verzippen. Dieses ZIP per SFTP in
/upload/wbrvor, also im Domain-Uploadverzeichnis des VL-Servers, hochladen.
Grundlegende Struktur
Der Importprozess beginnt mit einem einzelnen Stammverzeichnis (sourcePath).
- Namenskonvention des Stammverzeichnisses: Der Name des Stammverzeichnisses (
idn) muss mit dem PräfixACbeginnen (z.B.AC12345). Andernfalls wird der Import mit einem Fehler abgebrochen. - Zentrale Steuerdateien: Direkt im Stammverzeichnis müssen sich zwei entscheidende Dateien befinden:
<ID>.index: Eine XML-Datei, die Metadaten zu den einzelnen Dateien enthält (optional, empfohlen).<ID>.inventory: Eine Textdatei, die eine logische Gliederungsstruktur (Findbuch) definiert (optional).- Optional zusätzlich:
<Verzeichnisname>.indexin beliebigen Unterverzeichnissen (siehe unten).
Beispiel-Struktur (Root-Index optional, Subdir-Index möglich):
AC12345/
├── AC12345.index *(optional, empfohlen)*
├── AC12345.inventory
├── Unterverzeichnis_1-1/
│ ├── Unterverzeichnis_1-1.index *(optional)*
│ ├── ...
├── Dokument_A.pdf
├── Bild_B.jpg
└── ...
Die .index-Datei (optional / empfohlen)
Diese XML-Datei ist die Quelle für Metadaten wie Erstellungsdatum und Dateigröße.
- Optional: Eine
.index-Datei ist nicht mehr zwingend im Stammverzeichnis erforderlich. - Konsequenz ohne passende Index-Einträge: Für Dateien, für die kein Datum/keine Größe aus einer
.index-Datei ermittelt werden kann, wird keinitemerzeugt (das Verzeichnis-Strukturelement wird weiterhin angelegt). -
Index-Vererbung: Eine
.index-Datei in einem Unterverzeichnis überschreibt die Metadaten-Quelle für diesen Teilbaum (Subtree) und wird statt der übergeordneten.indexverwendet. -
Format: Die Datei enthält ein Wurzel-Element mit mehreren
<File>-Einträgen. Jeder<File>-Eintrag muss folgende Kind-Elemente haben:<RelativePath>: Der relative Pfad zur Datei aus Sicht der jeweiligen.index-Datei (d.h. relativ zum Verzeichnis, in dem die.indexliegt). Pfadtrenner müssen Slashes (/) sein.<FirstSavedDate>: Das Erstellungsdatum der Datei.<Size>: Die Dateigröße in Bytes.
Beispiel (AC12345.index):

Die .inventory-Datei (optional)
Aus dieser Textdatei erstellt der Import eine bereits extern definierte hierarchische Gliederung (Findbuch). Wenn vorhanden, versucht das Skript, die Unterverzeichnisse im Stammverzeichnis dieser Gliederung zuzuordnen.
- Format: Eine einfache Textdatei, bei der jede Zeile einen Gliederungspunkt darstellt.
- Jede Zeile hat das Format:
<Identifier>:<Titel> - Der
<Identifier>ist eine eindeutige Kennung, die eine Punkt-Notation verwendet (z.B.AC12345:1.1.2). - Der
<Titel>ist die Bezeichnung für diesen Gliederungspunkt.
- Jede Zeile hat das Format:
Beispiel (AC12345.inventory):
AC12345:1:Hauptkapitel 1
AC12345:1.1:Korrespondenz
AC12345:1.2:Manuskripte
AC12345:2:Hauptkapitel 2
Verzeichnis-Regeln
Jedes Unterverzeichnis innerhalb der Struktur wird zu einem eigenen Strukturelement (doctype='digital_inventory') in der Import-Datei.
- Titel: Der Name des Verzeichnisses wird als Titel für das Strukturelement verwendet.
- Zuordnung zur Gliederung: Unterverzeichnisse, die sich direkt im Stammverzeichnis befinden, können mit Einträgen aus der
.inventory-Datei verknüpft werden. Die Zuordnung erfolgt über den Verzeichnisnamen:- Ein Verzeichnisname wie
AC12345_1-2wird zum GliederungspunktAC12345:1.2zugeordnet. Das Skript wandelt dabei die Bindestriche (-) im Namen in Punkte (.) um.
- Ein Verzeichnisname wie
- Spezialdateien innerhalb eines Verzeichnisses:
<verzeichnisname>.iso: Wenn eine ISO-Datei mit dem gleichen Namen wie das Verzeichnis existiert, wird sie alsisoimagediesem Strukturelement zugeordnet.<verzeichnisname>.content: Der Inhalt dieser Textdatei wird als Beschreibung (Abstract) für das Strukturelement verwendet.
Datei-Regeln und -Gruppierung
Dateien werden zu digitalen Objekten (doctype='item') in der Import-Struktur zusammengefasst.
- Dateigruppierung: Das Skript gruppiert Dateien, die den gleichen Basisnamen (Dateiname ohne Erweiterung) haben.
- Beispiel:
MeinDokument.doc,MeinDokument.pdfundMeinDokument.jpgwerden als ein einziges Objekt behandelt. Auch Derivate, die die originale Dateierweiterung zusätzlich im Namen tragen, werden diesem Objekt zugeschlagen, zum BeispielMeinDokument.doc.pdf.
- Beispiel:
- Objekt-Titel: Der Basisname (
MeinDokument) wird zum Titel des Objekts. - Primärdatei und Metadaten: Die Datei mit dem kürzesten Namen innerhalb einer Gruppe gilt als "Primärdatei". Ihr relativer Pfad wird verwendet, um Datum und Größe aus der
.index-Datei abzurufen.- Wenn im aktuellen Verzeichnis oder einem Elternverzeichnis eine
.indexexistiert, wird diese verwendet. - Wenn im aktuellen Verzeichnis eine
<verzeichnisname>.indexexistiert, hat diese Vorrang für diesen Teilbaum.
- Wenn im aktuellen Verzeichnis oder einem Elternverzeichnis eine
- Behandlung von Dateitypen:
- Bekannte Formate: Dateien mit den folgenden Erweiterungen werden als zugehörige Dateien (
ImportFile) zum Objekt hinzugefügt:.pdf,.mp3,.mp4,.zip,.eml,.musicxml,.txt. - Bildformate (
.jpg,.png,.tif,.tiff): Diese werden gesondert behandelt, um ein "Archiv-Masterbild" zu bestimmen, das als digitalisierte Seite (Page) in die METS-Datei eingebettet wird. Die Auswahl-Logik ist:- Wenn
bild.jpgundbild.jpg.tifexistieren, wirdbild.jpgbevorzugt (da das TIFF als Derivat angesehen wird). Dasselbe gilt für PNG. - Ansonsten gilt die Priorität: TIFF > PNG > JPG.
- Wenn
- Unbekannte Formate: Wenn mehrere Dateien mit unbekannten Erweiterungen in einer Gruppe sind, wird nur die erste angetroffene als generische Datei (
generic file) berücksichtigt.
- Bekannte Formate: Dateien mit den folgenden Erweiterungen werden als zugehörige Dateien (
- Ignorierte Dateien: Dateien, deren Name mit einem Unterstrich
__beginnt, werden vom Importprozess ignoriert (nützlich für temporäre oder interne Dateien).
Aktualisierungen
Für Erweiterungen des ursprünglichen Imports wird ein Stammverzeichnis mit derselben AC-Nummer hochgeladen.-Nummer hochgeladen werden. Dieselben Verzeichnisnamen und Dateinamen, die sich am selben hierarchischen Ort befinden wie beim Erstimport, matchen den bisherigen VL-Datensatz und überschreiben ihn. Änderungen, die an dem Datensatz in VL vorgenommen worden sind, werden grundsätzlich ebenfalls überschrieben.
Erweiterungen
Wenn die bisherige Einspielung unabhängig vom aktuellen neuen Import erhalten bleiben soll, wird ein Stammverzeichnis mit einer fingierten IDN, am besten einem Zeitstempel, hochgeladen. Dieses und seine Unterverzeichnisse werden in VL als eigener neuer Ast im Baum angelegt.
Dabei werden neue idn generiert. Es entstehen dann neue Metadatenobjekte, die per Verschiebeaktion im Baum ggf. an die bisherige Stelle verschoben werden können.