je4.github.io

gocfl / ocfl / extensions

View My GitHub Profile

English

OCFL Extensions (Erweiterungen)

OCFL ist so konzipiert, dass der Kernstandard schlank und stabil bleibt, während spezifische Funktionalitäten über Extensions (Erweiterungen) abgebildet werden. Diese ermöglichen es, das Verhalten des Archivs anzupassen, ohne die Grundkompatibilität zu gefährden.

1. Das Konzept der Erweiterungen

Erweiterungen befinden sich sowohl in der Storage Root als auch in den einzelnen OCFL-Objekten im jeweiligen extensions/-Verzeichnis.

Warum Erweiterungen?

2. Registrierte vs. Lokale Erweiterungen

3. Extensions in der Praxis

Wie wir bei der Initialisierung der Storage Root gesehen haben, legt gocfl automatisch Konfigurationsverzeichnisse an. Eine detaillierte Übersicht über die in diesem Workshop verwendeten Erweiterungen finden Sie hier:

4. Aufrufpunkte (Hooks) in gocfl

Die Implementierung von Erweiterungen in gocfl basiert auf verschiedenen Aufrufpunkten (Hooks), an denen die Logik der Erweiterung in den OCFL-Workflow eingreift. Sollte ein Interface mehrere Hooks besitzen, so muss eine Extension, die es verwendet, sämtliche darin definierten Hooks implementieren.

Diese unterscheiden sich je nach Kontext:

5. Mapping im Extension Manager

Der NNNN-gocfl-extension-manager nutzt in seiner config.json spezifische Schlüssel, um die verschiedenen Erweiterungstypen zu adressieren. Hier ist das Mapping der Go-Interfaces zu den Konfigurations-Einträgen:

Interface Schlüssel in config.json
ExtensionBuildStorageRootPath StorageRootPath
ExtensionObjectContentPath ObjectContentPath
ExtensionObjectExtractPath ObjectExtractPath
ExtensionObjectStatePath ObjectStatePath
ExtensionArea Area
ExtensionStream Stream
ExtensionContentChange ContentChange
ExtensionObjectChange ObjectChange
ExtensionFixityDigest FixityDigest
ExtensionMetadata Metadata
ExtensionNewVersion NewVersion
ExtensionVersionDone VersionDone

6. Self-Describing durch Dokumentation

Ein wichtiger Aspekt von gocfl ist, dass zu jeder aktivierten Erweiterung die entsprechende Dokumentation als Markdown-Datei (z. B. NNNN-gocfl-extension-manager.md) direkt in die Storage Root kopiert werden sollte.

Dies garantiert, dass auch in Jahrzehnten noch nachvollziehbar ist, welche Regeln für die Ablage und Verarbeitung der Daten galten, selbst wenn die ursprüngliche Software oder Webseite nicht mehr existiert.


Zurück zum Inhaltsverzeichnis Nächstes Thema: Erstellung von Objekten