Das Skript erstellt Ordner im DSpace Simple Archive Format für den Batch-Upload in ein DSpace-Repositorium. Entwickelt wurde das Skript für das Open-Access-Repositorium der Medienwissenschaft media/rep/
- Administrativer Zugang zu einer DSpace-Instanz
- Tabelle mit Metadaten
- Python3
- Abhängigkeiten: Pyexcel-Modul ggf. mit den Ergänzungen für ODS-, XSLX-Dateien
Eine Metadaten-Tabelle (.csv, .ods, .xlsx) wird nach folgendem Schema angelegt:
SourceFile | collection | dc.element1 | dc.element2 | dc.element1 … |
---|---|---|---|---|
pfad-zu-datei1 | Name der sammlung (optional) | Wert | Wert | Wert … |
pfad-zu-datei2 | Name der sammlung (optional) | Wert1||Wert2 | Wert | Wert |
Die Spalten mit den Metadaten werden wie folgt benannt:
dc.element
oderdc.element.qualifier
oderdc.element.qualifier[language]
. [Anmerkung: Aktuell sind hier nur 'de' oder 'en' als Werte erlaubt. Weitere Sprachen können im Skript aber ergänzt werden.]
DSpace schreibt vor, dass Dublin Core-Elemente genutzt werden müssen; weitere zusätzliche Metadatenschemata sind erlaubt.
Das Skript unterstützt beliebige weitere (auch lokale) Metadatenschemata. Diese müssen im Skript in die Variable schema_dict
eingetragen werden.
Beispiel
SourceFile | collection | dc.creator | dc.title | local.deutschertitel[de] | dc.date.issued |
---|---|---|---|---|---|
/home/files/life-of-brian.pdf | Drehbuecher | Jones, Terry | The Life of Brian | Das Leben des Brian | 1979 |
/home/files/holy-grail.pdf | Drehbuecher | Jones, Terry||Gilliam, Terry | Monty Python and the Holy Grail | Die Ritter der Kokosnuss | 1975 |
/home/files/altenloh_soziologie.pdf | Filmsoziologie | Altenloh, Emilie | Zur Soziologie des Kino | 1913 |
-
Die Spalten SourceFile und collection müssen vorhanden sein.
-
In der Spalte SourceFile muss ein Wert vorhanden sein.
-
Der Wert in der Spalte collection ist optional. Falls vorhanden, wird er Teil des Ordner-Namens
-
Mindestens eine Spalte sollte das prefix "dc." für Dublin Core enthalten.
-
Mehrere Werte in einem Feld werden durch die Double Pipe '||' getrennt (Alternativ kann im Skript ein anderer Wert als Separator gesetzt werden).
Das DSpace Simple Archive Format (SAV) erlaubt den Batch Ingest von mehreren Items (Dokumente + Metadaten) in eine DSpace-Sammlung. Für jede Zeile in einer Tabelle erstellt das Skript einen Ordner (_item_0, _item_1, _item_2…). GGf. wird der Ordnername durch den jeweiligen Wert in 'collection" ergänzt (Drehbuecher_item_0, Drehbuecher_item_1, Filmsoziologie_item_0) Durch die einheitliche Benennung können anschließend mehrere Items, die in eine Sammlung hochgeladen werden sollen, auf einfache Weise in einer ZIP-Datei zusammengefasst werden.
Pro Ordner werden folgende Dateien angelegt:
- dublin_core.xml -- Dublin Core Metadaten für Temadaten-Felder, die mit "dc." beginnen (muss vorhanden sein)
metadaten-schema
.xml -- Metadaten aus anderen Schemata, z.B. dcterms, local usw. (optional. Diese Schemata in der DSpace-Instanz registriert sein.)- contents -- Textdatei, gibt die hochzuladenden Dateien an. Je eine Zeile pro Dateiname.
- file_1, file2 -- Eine oder mehrere Dateien für den Upload.
In der XML-Datei dublin_core.xml erhält jedes vergebene Metadaten-Element seinen eigenen Eintrag in einem -Tag, mit den Attributen:
- element - Dublin Core Element
- qualifier - Qualifier des Elements
- language - (optional) Angabe der Sprache nach ISO
Beispiel <dublin_core> Jones, Terry The Life of Brian 1979 </dublin_core>
Entsprechendes gilt für optionale weitere XML-Dateien zu anderen Metadaten-Schemata.
python packager.py pfad-zu-tabelle.csv
bzw.
python3 packager.py pfad-zu-tabelle.csv
Nach dem Aufruf erstellt das Skript einen Ordner für jede Metadaten-Zeile / jedes Item in der Tabelle. Alle Ordner müssen anschließend (manuell) gezippt werden. Ordner, die in die selbe DSpace-Sammlung hochgeladen werden sollen, können in einem ZIP-Archiv verbunden werden.
Beispiel
-
Drehbuecher_item_0
-
Drehbuecher_item_1
→ drehbuecher.zip
-
Filmsoziologie_item_2
→ filmsoziologie.zip
Der UI Batch Import in DSpace wird hier erklärt
Das Skript liest lle Tabellen (Sheets) in einer Excel-Datei aus (Ausname: Tabellen, deren Namen mit einem Unterstrich '_' beginnen). Auf diese Weise ist es möglich, verschiedene Dokumenttypen (etwa Artikel, Buch, Graue Literatur usw.), die jeweils verschiedene Metadatenfelder benötigen, auf verschiedene Tabellen in einer Datei zu verteilen. Tabellen, die nicht ausgelesen werden sollten, werden '_NAME'
benannt.
Da media/rep/ auch Videos (Vortragsaufzeichnungen, Vorlesungen, Videoessays) sammelt, können Videodateien gemeinsam mit einem Thumbnail hochgeladen werden. In diesem Fall werden die Pfade zur Videodatei (.mp4, .webm) und zum Thumbnail (.jpg, .png, .gif) gemeinsam in die Spalte SoureFile (getrennt durch '||') eingetragen.