Auf dieser Seite finden Sie

BagIt



BagIt File Packaging Format allgemein

BagIt ist ein File Packaging Format, also eine einfache hierarchische Verzeichnisstruktur - ein „Bag“ - zur Speicherung und Übertragung von Dateien und dazugehörigen Metadaten. BagIt ist also kein eigenes Dateiformat, sondern eine Ablagestruktur für Dateien mit beliebigen Dateiformaten. 

Weiterführende Infos

Auf den Seiten der Internet Engineering Task Force (IETF) findet sich die Dokumentation zur BagIt-Version 1.0.



BagIt-Struktur allgemein

Die BagIt-Struktur basiert auf einer definierten hierarchischen Anordnung von Verzeichnissen (Directories). Zum einen befinden sich darin Nutzdateien, die in der BagIt-Terminologie als Payload Files bezeichnet werden. Ebenso fester Bestandteil der BagIt-Struktur sind als Tag Files bezeichnete Plain-Text-Dateien mit der Dateiendung .txt. Diese beinhalten unter anderem Metadaten zu den Nutzdateien.

Folgend ist die allgemeine BagIt-Struktur mit den obligatorischen und den ausgewählten optionalen Bestandteilen eines BagIt-Bags sowie deren hierarchische Anordnung grafisch dargestellt.









Base Directory (obligatorisch) 

Ein BagIt-Bag verfügt über ein Oberverzeichnis (Base Directory), in dem sich alle zum Bag gehörenden Unterverzeichnisse, Nutz- und Metadatendateien befinden.

Der Name des Base Directories kann nach Belieben gewählt werden.


/data - Payload Directory und Payload Files (obligatorisch)

Eine Ebene unterhalb des Base Directories jedes BagIt-Bags befindet sich ein Unterverzeichnis mit dem Namen „data“. Dieser auch als Payload Directory bezeichneter Unterordner beinhaltet alle Nutzdateien (Payload Files) des BagIt-Bags.

Payload Files können in beliebigen Dateiformaten vorliegen.


bagit.txt - Bag Declaration  (obligatorisch)

Eine Ebene unterhalb des Base Directories jedes BagIt-Bags befindet sich die sogenannte Bag Declaration, die angibt, dass es sich bei der vorliegenden Ablagestruktur um das BagIt-Format handelt.

Die Bag Declaration befindet sich in einer UTF-8 kodierten Text-Datei namens bagit.txt. Diese besteht aus zwei Zeilen, welche die jeweilige BagIt-Version sowie die Codierung der Tag Files innerhalb des BagIt-Bags beinhalten.


manifest-[algorigthm].txt - Payload Manifest (obligatorisch) 

Eine Ebene unterhalb des Base Directories befindet sich mindestens eine manifest-[algorithm].txt-Datei. Diese auch als Payload Manifest bezeichnete Datei enthält eine Liste aller Checksummen und die relativen Pfade aller Dateien im Payload Directory. Das Payload Manifest dient dazu, die Integrität und Vollständigkeit der Payload Files beim Datenaustausch zu kontrollieren.    

Im Dateinamen jedes Payload Manifests wird der Name des jeweiligen Algorithmus aufgeführt, mit dem die Checksummen erzeugt worden sind z. B. sha256. Je nachdem, wie viele verschiedene Algorithmen zur Checksummen-Erzeugung genutzt wurden, variiert auch die Anzahl der manifest-[algorithm].txt-Dateien. Beispiele für Payload Manifests sind manifest-md5.txt oder manifest-sha256.txt.


bag-info.txt  - Bag Metadata (optional)

Eine Ebene unterhalb des Base Directories eines BagIt-Bags kann sich die optionale Datei bag-info.txt befinden, die auch als Bag Metadata bezeichnet wird. Die Datei beinhaltet deskriptive Metadaten, die das gesamte BagIt-Bag oder die Dateien im Payload Directory beschreiben.

Jede Zeile innerhalb der Datei bag-info.txt beinhaltet jeweils den Namen eines Metadatenelements und den dazugehörigen Wert. Die BagIt-Syntax schreibt hierbei vor, dass beide Angaben durch einen Doppelpunkt und ein Leerzeichen voneinander getrennt werden, z. B. "Titel: Meine Erinnerungen".




BagIt in Rosetta

Der BagIt-Ingest ist eines von mehreren Ingest-Verfahren zur Überführung digitaler Ressourcen in das LZV-System Rosetta. Dabei dient die BagIt-Verzeichnisstruktur als Struktur für jeweils ein Submission Information Package (SIP), das in Rosetta eingeliefert wird. In Rosetta wird dieses SIP als jeweils eine Intellectual Entity (IE) mit maximal einer Representation weiterverarbeitet.  

Für einen erfolgreichen BagIt-Ingest nach Rosetta müssen verschiedene Aspekte hinsichtlich BagIt-Struktur und Konfiguration des Material Flows beachtet werden, die im Folgenden näher beschrieben werden.



Obligatorische Bestandteile eines BagIt-Bags für den Rosetta-Ingest

Die Pflichtbestandteile eines BagIts, das in Rosetta eingeliefert werden soll, sind: 

  • Base Directory 
  • Payload Directory - /data
  • Payload File(s)
  • Bag Declaration - bagit.txt
  • Payload Manifest - manifest_[algorithm].txt
  • Bag Metadata - bag-info.txt

In der allgemeinen BagIt-Spezifikation gilt Bag Metadata, das durch die Datei bag-info.txt repräsentiert wird, als optionales Element. Im Rosetta-Kontext ist diese Datei jedoch notwendig, da sie die digitale Ressource beschreibende Metadaten enthält. Um zu gewährleisten, dass die digitale Ressource langfristig von der Designated Community verstanden werden kann, werden diese Metadaten beim BagIt-Ingest von Rosetta aus der bag-info.txt extrahiert und in verschiedene Sektionen der Rosetta-METS-Datei geschrieben.

Die Datei bag-info.txt, inklusive der deskriptiven Metadaten, ist daher ein Pflichtbestandteil eines BagIt für den Rosetta-Ingest.




Abbildung der BagIt-Struktur in Rosetta

Beim BagIt-Ingest in Rosetta wird aus jedem BagIt-Bag genau ein Submission Information Package (SIP) gebildet. Jedes SIP stellt wiederum genau eine Intellectual Entity (IE) dar. Beim BagIt-Ingest darf eine IE maximal über eine Representation verfügen, die sich wiederum aus 1-n Files zusammensetzt. Die Master-Representation sowie die Files, aus denen sie sich zusammensetzt, werden von Rosetta aus dem Payload Directory bzw. den sich darin befindenden Payload Files extrahiert. 




Warnhinweis

Das BagIt-Ingest-Verfahren eignet sich ausschließlich für den Ingest von Intellectual Entities (IEs) mit einer Representation.




BagIt-Metadaten in Rosetta

Metadaten, die sich in einem BagIt-Bag befinden, werden beim BagIt-Ingest in verschiedene Sektionen der Rosetta-METS-Datei übertragen:

Deskripitve Metadaten werden über die Konfiguration der Content Structure aus der Bag Metadata bag-info.txt nach Rosetta überführt, indexiert und damit recherchierbar gemacht.
Source Metadaten werden aus den BagIt-Tag-Dateien bag-info.txt, bagit.txt und manifest-[algorithm].txt extrahiert.
Strukturelle Metadaten werden aus der Struktur des Payload Manifests manifest-[algorithm].txt extrahiert. 

Im Folgenden werden die Voraussetzungen für die Übertragung verschiedener Metadaten aus einem BagIt-Bag nach Rosetta näher beschrieben.

Gut zu wissen

Nach erfolgtem Ingest werden die ursprünglichen Tag-Dateien eines BagIts zwar von Rosetta gelöscht, deren Inhalt kann aber über entsprechende Konfigurationseinstellungen und über Metadaten-Mappings in der Rosetta-METS-Datei abgebildet werden.

Im Vergleich zu anderen Ingest-Verfahren wie z. B. METS sind die Möglichkeiten des Metadaten-Mappings beim BagIt-Ingest-Verfahren eingeschränkt. So ist es bspw. nicht möglich, technische, administrative oder rechtliche Metadaten aus einem BagIt-Bag auf die entsprechenden DNX-Feldern der <amdSec> in Rosetta zu mappen. Derartige Metadaten können lediglich als Source Metadaten in der Rosetta-METS-Datei abgebildet werden. 

Weiterführende Infos

Mehr zum Thema Metadaten in Rosetta erfahren Sie auf diesen Wiki-Seiten:



Übertragung deskriptiver Metadaten aus einem BagIt-Bag nach Rosetta (via Content Structure)

Die Übertragung von deskriptiven Metadaten erfolgt durch die Extraktion von Metadaten aus der Datei bag-info.txt, welche Pflichtbestandteil eines für den Ingest vorgesehenen BagIts ist. Der Übernahme deskriptiver Metadaten liegt ein Mapping zugrunde, das in Rosetta über die BagIt-Content Structure - Deposits: Deposit Arrangements → Content Structure - des jeweiligen Material Flows festgelegt wird.


Gut zu wissen

Das hbz empfiehlt, deskriptive Metadaten zu digitalen Ressourcen möglichst vollständig nach Rosetta zu überführen und auf das Metadatenschema Dublin Core (DC) zu mappen.

Gemäß den hbz-Minimalanforderungen an deskriptive Metadaten muss die Datei bag-info.txt jedoch mindestens einen Identifikator und einen Rechtehinweis zur digitalen Ressource beinhalten, welche über die Content Structure auf die Rosetta-Elemente dc:identifier und dc:rights bzw. dcterms:license gemapped werden. Erfolgt in der Content Structure kein Mapping auf dc:title, wird beim BagIt-Ingest automatisch der Verzeichnisname der BagIt Base Directory als dc:title von Rosetta weiterverarbeitet.

Weiterführende Infos

Mehr Infos zu Dublin Core-Metadaten und Mapping-Tipps erhalten Sie auf dieser Wiki-Seite:

Deskriptive Metadaten in Rosetta



Bei der Konfiguration der Content Structure wird unter Tag File die Quelle der deskriptiven Metadaten angegeben, also die Datei bag-info.txt. Als Tag wird der ursprüngliche Bezeichner des jeweiligen Metadatums aus der bag-info.txt-Datei eingefügt, also das, was zu Beginn jeder Zeile vor dem Doppelpunkt steht. Als Property wird über ein Drop-Down-Menü das jeweilige Rosetta-Metadatenfeld ausgewählt, auf das gemapped werden soll.


Metadaten, die hierbei auf Dublin Core-Elemente gemapped werden, werden in der Rosetta-METS-Datei in die <dmdSec> geschrieben und sind damit feldbasiert in Rosetta recherchierbar.




Gut zu wissen

Unter Property sollen keine DC-Metadaten auf SIP-Ebene, sondern nur Metadaten auf IE-Ebene ausgewählt werden. Metadaten auf SIP-Ebene werden bei der Übernahme in den Permanent-Speicher nicht auf die IE übertragen. Stattdessen sollten DC-Metadaten auf IE-Ebene gemappt werden, indem lediglich der allgemeine Bezeichner des Dublin Core-Metadatums ausgewählt wird, z. B. Identifier (DC) anstatt SIP - Identifier (DC).








Übertragung von Metadaten als Source Metadata 


Die Übertragung von Source Metadaten aus einem BagIt in die Sektion <sourceMD> der Rosetta-METS-Datei erfolgt über ein entsprechend gesetztes Häkchen in der Konfiguration der Content Structure in Rosetta. Weitere Metadaten können bei Bedarf auch mit ihrem ursprünglichen Bezeichner über den CDATA Wrapper in die bag-info.txt integriert und von dort als Source Metadaten nach Rosetta übertragen werden.




Übertragung von deskriptiven Metadaten aus der bag-info.txt als Source Metadata

Für die Übertragung als Source Metadata ist dabei unerheblich, ob die Metadaten in der Content Structure auf Dublin Core-Felder gemapped werden - dies ist nur relevant für die Übertragung von Metadaten in die <dmdSec>.

Auf diese Weise lassen sich auch weitere Metadaten als Source Metadaten aus der Datei bag-info.txt nach Rosetta überführen.




Gut zu wissen

Metadaten aus der Datei bag-info.txt, die im Mapping der jeweiligen Content Structure in Rosetta auf Dublin Core-Felder gemapped werden, werden in die <dmdSec> der Rosetta-METS-Datei übertragen.

Sofern das entsprechende Häkchen in der Content Structure gesetzt wurde, werden alle Metadaten aus der bag-info.txt-Datei vollständig und mit ihren ursprünglichen Bezeichnern in die Sektion <sourceMD> der Rosetta-METS-Datei übertragen - darunter auch die Metadaten, die nicht auf Dublin Core gemapped wurden.




Übertragung von technisch-administrativen Metadaten aus der Bag Declaration und dem Payload Manifest als Source Metadata

Technisch-administrative Metadaten aus der Datei bagit.txt (Bag Declaration) und der Datei manifest-[algorithm].txt (Payload Manifest) werden beim Ingest automatisch und gebündelt in die Sektion <sourceMD> der Rosetta-METS-Datei übertragen, sofern in der Content Structure das Häkchen bei Store Tags as Source Metadata gesetzt ist. Die Übertragung erfolgt unabhängig davon, ob ein Mapping in der Content Structure angelegt wurde.




Gut zu wissen

Es ist nicht möglich technische, administrative oder rechtliche Metadaten auf die entsprechenden DNX-Sections in Rosetta zu mappen. So können bspw. Prüfsummen aus dem Payload-Manifest nicht als Teil der technischen Metadaten auf die entsprechende DNX-Section fileFixity gemapped werden, sondern lediglich als Source Metadata in der Rosetta METS-Datei abgebildet werden. 




Integration von Source Metadaten aus einer separaten XML-Datei in die bag-info.txt-Datei via CDATA Wrapper

Es ist außerdem mittels CDATA Wrapper möglich, Metadaten aus externen Dateien in die Datei bag-info.txt zu integrieren und sie damit als Source Metadata nach Rosetta zu überführen. Dies ist z. B. sinnvoll, wenn umfassende Metadaten zu den digitalen Ressourcen vorliegen, diese aber nicht vollständig auf Dublin Core gemappt wurden und damit nicht in die <dmdSec> der Rosetta METS-Datei übertragbar sind.

Zusätzlich zu den Metadaten in der Datei bag-info.txt könnte bspw. ein MODS-Metadatensatz in einer separaten XML-Datei existieren, mit dem Ziel, diese Metadaten ebenfalls nach Rosetta zu übertragen, da sie wichtige Informationen zur IE enthalten und dementsprechend langfristig erhalten bleiben sollen.

Beim BagIt-Ingest werden derartige XML-Metadatendateien nicht unter /data im Payload Directory abgelegt, da es sich hierbei nicht um Nutzdateien handelt, sondern um Metadatendateien. Stattdessen ist es möglich, den gesamten Inhalt der XML-Datei in die Datei bag-info.txt zu kopieren und mit einem eigenen Tag zu versehen, z. B. "MODS-Metadaten aus Quellsystem". Dadurch landen die Metadaten – zusammen mit den anderen Tags der bag-info.txt - in der Sektion <mets:sourceMD>.

Damit die <>-Klammern aus der XML-Datei von Rosetta nicht als Steuerungszeichen interpretiert werden, müssen die Metadaten im Beispiel-Tag „MODS-Metadaten aus Quellsystem“ mittels CDATA gewrapped werden. Der CDATA-Wrapper umschließt beim Ingest automatisch die Metadaten, die sich im Tag „MODS-Metadaten aus Quellsystem“ der Datei bag-info.txt befinden. Voraussetzung dafür ist, dass sich zwischen den XML-Tags keine Zeilenumbrüche mehr befinden, da diese als Bagit-Steuerungszeichen interpretiert werden.



Inhalt der bag-info.txt
Titel: Meine Erinnerungen
Autor: Smith, John
Erscheinungsdatum: 2015
Identifikator: 263712
Sprache: Deutsch
DDC-Notation: 800
Thema: Literatur
MODS-Metadaten aus Quellsystem: <![CDATA[<?xml version='1.0' encoding='UTF-8' ?> <mods version='3.3' xmlns='http://www.loc.gov/mods/v3' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-3.xsd'> <titleInfo> <title> Meine Erinnerungen</title> </title Info> <name type='personal'> <namePart>Smith, John</namePart> <role> <roleTerm type='text'>creator</roleTerm> </role> </name> [...] </mods>]]>

 




Warnhinweis

Achtung, beim Exportieren von als BagIt geingesteten IEs mit CData-Wrapper geht dieser beim Export verloren. Die XML-Tags werden in der Export-ie.xml nicht mehr korrekt angezeigt. 




Übertragung struktureller Metadaten aus einem BagIt-Bag nach Rosetta


Bei der Einlieferung eines Bags wird in Rosetta jeweils nur eine Representation erzeugt. Strukturelle Metadaten bilden die Reihenfolge der Nutzdateien des Bags ab, um diese in Rosetta zu einer sinnvollen Einheit anordnen und entsprechend darstellen zu können. Sie werden beim BagIt-Ingest aus dem Payload Manifest manifest-[algorithm].txt extrahiert und in die Sektionen <fileSec> und <structMap> in die Rosetta METS-Datei geschrieben. Rosetta liest die Reihenfolge der Files aus der Reihenfolge im Payload Manifest ab.

Weiterführende Infos

Mehr zu strukturellen Metadaten erfahren Sie auf dieser Wiki-Seite:

Strukturelle Metadaten in Rosetta



Gut zu wissen

Befindet sich im Payload Directory des BagIt-Bag mehr als ein einzelnes File, ist darauf zu achten, dass die Reihenfolge der referenzierten Files im Payload Manifest manifest-[algorithm].txt die sinnhafte Reihenfolge der Files widerspiegelt, z. B. Seite 1 kommt vor Seite 2 eines Buches.

Das File, das in der ersten Zeile des Payload Manifest referenziert wird, wird von Rosetta als das erste File der Representation verarbeitet, das zweite File steht an zweiter Stelle usw. .




  • Inhalt der manifest-md5.txt-Datei:

  • entsprechende Übertragung ins Rosetta METS:

  • Anzeige im Rosetta-Viewer


  • Anzeige im Rosetta-Editor:








Besonderheiten der Konfigurationen des Material Flows für einen BagIt-Ingest 

Content Structure

Beim Anlegen der Content Structure muss der BagIt-Converter ausgewählt werden, über den das Metadaten-Mapping konfiguriert wird.

  • Hinzufügen einer neuen BagIt-Content Structure über Depsosits: Deposit Arrangements → Content Structure:



  • Hinzufügen des Mappings von Metadaten aus der bag-info.txt auf die entsprechenden Rosetta DC-Metadaten-Felder
  • ggf. Häkchen bei Store Tags as Source Metadata setzen: Alle Metadaten aus der bag-info.txt werden in die SourceMD-Section im Rosetta-METS geschrieben.





  • Keine Stichwörter