Speicherung
Die folgenden Operationen werden gebraucht, um Informationen vorzubereiten und ins Repository hochzuladen, defaultmässig ein Fedora Commons.
Benutzerdefinierte Metadaten zum METS RDF hinzufügen
Diese Action fügt benutzerdefinierte Metadaten zu einem SIP hinzu. Sie nimmt die Information aus einer JSON-Datei mit folgender Struktur:
{
"customMetadata": [
{"uri":"uri1", "name": "Name1", "type": "Type1", "value":"Value1"},
{"uri":"uri2", "name": "Name2", "type": "Type2", "value":"Value2"},
{"uri":"uri3", "name": "Name2", "type": "Type3", "value":"Value3"}
]
}
Die JSON-Datei wird gelesen und in RDF-Tripel transformiert.
Jede URI muss schon in der mets.nt Datei als eine Record Resource oder als Instantiation existieren.
<${uri}#custommetadata_${hash}> rdf:type <https://www.ica.org/standards/RiC/ontology#Thing>
<${uri}#custommetadata_${hash}> rico:isRelatedTo <${uri}>
<${uri}#custommetadata_${hash}> rico:hasOrHadCategory <http://docuteam.ch/vocab/thingcategory/custommetadata>
<${uri}#custommetadata_${hash}> rico:name "${name}"
<${uri}#custommetadata_${hash}> rico:type <${type}> if type is an url (starts with http:// or https://)
<${uri}#custommetadata_${hash}> rico:type "${type}" if type is not an url
<${uri}#custommetadata_${hash}> rico:textualValue "${value}"
<${uri}#custommetadata_${hash}> schema:position "${position}"
Schliesslich werden die generierten Tripel an die mets.nt-Datei des SIPs angehängt.
docuteam-actions addCustomMetadataToMets -c [/path/to/]config.json
Options:
--version Show version number [boolean]
--debug Set log level to debug [boolean]
-c, --config Configuration file path [string] [required]
--help Show help [boolean]
-d, --data Data file path, pointing to the folder package with mets.nt [string] [required]
--customMetadata Path to custom metadata JSON file [string] [required]
Eine Authenticity Note für signierte PDF Dateien erstellen
Diese Operation generiert eine JSON Datei für signierte PDF Dateien basierend auf der Präsenz eines spezifischen Metadatums in der mets.nt Datei.
Sie überprüft Ereignisse vom Typ signaturecheck und erstellt eine JSON-Datei mit dem Namen customMetadataAuthenticityNote.json im selben Verzeichnis wie die Datei mets.nt.
Falls keine solchen Ereignisse gefunden werden, wird eine leere JSON-Datei erstellt.
Die generierte JSON-Datei enthält Metadaten über die Authentizität der signierten PDF Dateien, inklusive URI, Namen, Typ, Wert.
docuteam-actions createAuthenticityNoteForSignedPdfFiles -d [/path/to/data]
Options:
--version Show version number [boolean]
--debug Set log level to debug [boolean]
-d, --data Path to the folder containing the `mets.nt` file [string] [required]
--help Show help [boolean]
Matterhorn RDF an box anhängen
Mit dieser Operation können Daten einem existierenden Fedora 6 AIP angehängt werden.
Sowohl einzelne Dateien als auch Ordnerstrukturen können an der mit appendPositionPid definierten Position angehängt werden.
Diese PID muss entweder zum Root-Ordner oder einem anderem Ordner eines existierenden AIPs gehören.
Diese Action erwartet eine N-Tripel Datei im SIP-Ordner (normalerweise erstellt mit der convertMetsToRDF Action).
Sie erstellt alle Ressourcen, die in dieser Datei aufgelistet sind im Fedora Repository mit der box append API.
Der SIP-Ordner muss in einem Ordner liegen, der als ein shared Ordner in config.json definiert ist, sodass box auf das SIP zugreifen kann.
docuteam-actions appendRDFIntoBox -c [/path/to/]config.json -d /path/to/SIP -appendPositionPid "CH-00001-X:1"
Options:
--version Show version number [boolean]
--debug Set log level to debug [boolean]
-c, --config Configuration file path [string] [required]
--help Show help [boolean]
-d, --data Data file path [string] [required]
--appendPositionPid PID where the package will be appended [string] [required]
Matterhorn METS zu Matterhorn RDF konvertieren
Während der (Pre-)Ingest Prozess standardmässig verlangt, dass das SIP dem Matterhorn METS Format entspricht. Das Repository basiert auf dem Linked Data Platform specification. Mit dieser Action wird der Inhalt und die Struktur des SIPs in RDF transformiert. Die resultierende Datei mit den N-Tripeln wird im Root-Ordner des SIPs gespeichert.
docuteam-actions convertMetsToRDF -c [/path/to/]config.json -d /path/to/SIP
Options:
--version Show version number [boolean]
--debug Set log level to debug [boolean]
-c, --config Configuration file path [string] [required]
--help Show help [boolean]
-d, --data Input file path [string] [required]
Ein AIP aus box löschen
Diese Action löscht eine Fedora AIP mittels der box delete API.
Sie löscht automatisch die Ressource, welche dem angegebenen pid-Parameter entspricht und alle ihre Kinder.
Die Löschung wird in der übergeordneten Record Resource oder Deposition festgehalten.
Zusätzlich zum pid Parameter muss eine Notiz mit dem deletionReason Parameter angegeben werden, welches das Löschen dokumentiert.
docuteam-actions deleteAIPFromBox -c [/path/to/]config.json -pid"CH-00001-X:1" -deletionReason "some note field documenting the deletion"
Options:
--version Show version number [boolean]
--debug Set log level to debug [boolean]
-c, --config Configuration file path [string] [required]
--help Show help [boolean]
--pid PID to be deleted [string] [required]
--deletionReason Note field documenting the deletion [string] [required]
DIP von box herunterladen
Basierend auf einer PID lädt diese Action ein DIP von docuteam box herunter und speichert sie am Ort, der mit dem path-Parameter spezifiziert wird.
Im Moment werden nur DIPs vom Typ MatterhornMETSv1.0 unterstützt.
docuteam-actions downloadDIPFromBox -c [/path/to/]config.json -pid 'CH-00000-X:1' -p /path/to/DIP.zip --dipType 'MatterhornMETSv1.0'
Options:
--version Show version number [boolean]
--debug Set log level to debug [boolean]
-c, --config Configuration file path [string] [required]
--help Show help [boolean]
-p, --path Path where the DIP will be stored [string] [required]
--pid PID of the AIP [string] [required]
--dipType Package format of the DIP [string] [required]
Metadaten von box herunterladen
Basierend auf einer PID lädt diese Action ein Metadatenfile von docuteam box herunter und speichert es am Ort, der vom path-Parameter spezifiziert wird.
Momentan werden nur Metadaten des Typs EAD unterstützt.
docuteam-actions downloadMetadataFromBox -c [/path/to/]config.json -pid 'CH-00000-X:1' -p /path/to/EAD.xml --metadataType 'EAD'
Options:
--version Show version number [boolean]
--debug Set log level to debug [boolean]
-c, --config Configuration file path [string] [required]
--help Show help [boolean]
-p, --path Path where the metadata file will be stored [string] [required]
--pid PID of the AIP [string] [required]
--metadataType Metadata type [string] [required]
Import von Matterhorn RDF in box
Diese Action erwartet eine N-Tripel Datei im SIP-Ordner (üblicherweise produziert von der convertMetsToRDF Action).
Alle Ressourcen, die in dieser Datei aufgelistet sind, werden im Fedora Repository durch die box insert API erstellt.
Der SIP-Ordner muss in dem Ordner sein, welcher als shared Ordner in config.json definiert wurde, sodass box auf das SIP zugreifen kann.
docuteam-actions importRDFIntoBox -c [/path/to/]config.json -d /path/to/SIP
Options:
--version Show version number [boolean]
--debug Set log level to debug [boolean]
-c, --config Configuration file path [string] [required]
--help Show help [boolean]
-d, --data Data file path [string] [required]
Import von Matterhorn RDF in Fedora
Diese Action erwartet eine N-Tripel Datei im SIP-Ordner (üblicherweise produziert von der convertMetsToRDF Action). Alle Ressourcen, die in dieser Datei aufgelistet sind, werden im Fedora Repository erstellt. Um URI-Duplikate zu verhindern, wird ein Hash-basierter Suffix an die URIs von Deposition und Record Resource gehängt. Resources werden in parallelen Anfragen gesendet. Die ursprüngliche Grösse des Batches kann manuell gesetzt werden, aber der Prozess wird sich während der Ausführung an den Response Status anpassen.
docuteam-actions importRDFIntoFedora -c [/path/to/]config.json -d /path/to/SIP
Options:
--version Show version number [boolean]
--debug Set log level to debug [boolean]
-c, --config Configuration file path [string] [required]
--help Show help [boolean]
--batch-size Initial batch size (default: 100) [number]
-d, --data Data file path [string] [required]
Fedora Instantiation ersetzen
Diese Action erwartet eine Datei und eine N-Tripel Datei (mets.nt) im SIP-Ordner (normalerweise mit der convertMetsToRDF Action erstellt).
Zusätzlich kann auch eine mets.xml Datei präsent sein, sie wird jedoch nicht verwendet.
Die Action sendet eine Binärdatei an den replace-Endpunkt der box API um die existierende Binärdatei im Fedora zu ersetzen.
Dafür wird eine neue Instantiation in Fedora erstellt (basierend auf dem RDF Metadaten in der mets.nt Datei) und die alte Instantiation wird modifiziert.
Die Operation wird die Metadaten in mets.nt auslesen um die korrekte Fedora Resource zu finden.
Der Parameter ricoIdentifierType definiert, welcher Identifikator gebraucht wird, um die existierende Instantiation zu finden.
Defaultmässig wird nach der PID (Option pid) gesucht, es können aber auch andere Identifikatoren wie refcode einer existierenden Ressource gesucht werden.
Wenn auf der Suche nach einem anderen Identifikator mehrere Dateien in Fedora gefunden werden, werden diese alle mit der neuen Datei ersetzt.
Auf der Suche nach anderen Identifikatoren ist es möglich, Fälle zu ignorieren, wo der Identifikator nicht mit einer PID verlinkt ist, indem man den ignoreEmptyResultsWhenSearchingByIdentifier Parameter zu true setzt.
Wenn man direkt nach einer PID sucht, hat dies keinen Einfluss.
Defaultmässig wird die neue Instantiation den Dateinamen der im SIP-Ordner angegebenen Datei haben.
Setzt man den Parameter keepRepositoryFileName auf true, wird die Datei im SIP-Ordner mit dem Namen der Datei in Fedora umbenannt.
docuteam-actions replaceInstantiation -c [/path/to/]config.json -d /path/to/SIP
Options:
--version Show version number [boolean]
--debug Set log level to debug [boolean]
-c, --config Configuration file path [string] [required]
--help Show help [boolean]
-d, --data Data file path [string] [required]
--ricoIdentifierType Identifier type of the existing file [string]
--keepRepositoryFileName Keep the file name of the file in the repository [boolean]
--ignoreEmptyResultsWhenSearchingByIdentifier Ignore cases where identifier is not linked to a PID [boolean]
Access-Policies in der box für Kunden 2118 aktualisieren
Diese kundenspezifische Action updatet die beschreibenden Metadaten in Record Resources, die in Fedora 6 gespeichert sind, mittels der box API.
Als Input (currentDate Parameter) wird ein Datum im ISO-Format UTC date time (z.B. 2022-05-01T08:00:00Z) erwartet.
Basierend auf diesem Datum wird eine SPARQL query ausgeführt, welche alle Pakete identifiziert, in denen das Datum im accessRestrictionClosureYear Feld kleiner ist als als das Datum im currentDate-Parameter.
Für jedes dieser Pakete wird ein API-Request in box ausgeführt, um die Access-Policy in accessPolicy mit den Werten in accessRestrictionStatus zu updaten (zukünftige Access Policy, nachdem die Schutzfrist ausgelaufen ist).
Wenn die accessPolicy und accessRestrictionStatus Felder schon die gleichen Werte enthalten, wird kein Update vorgenommen.
Wenn es kein Paket findet, das upgedatet werden kann, wird die Action ohne Fehler beendet.
docuteam-actions updateAccessPolicyInBoxFor2118 -c [/path/to/]config.json -d /path/to/metadata/file --currentDate '2022-05-01T08:00:00Z'
Options:
--version Show version number [boolean]
--debug Set log level to debug [boolean]
-c, --config Configuration file path [string] [required]
--help Show help [boolean]
--currentDate Current date in UTC date time [string] [required]
Metadata in box für Kunden 2118 aktualisieren
Diese kundenspezifische Action updatet die beschreibenden Metadaten in Record Resources, die in Fedora 6 gespeichert werden, mit der box API.
Als Input wird eine xml-Datei mit Metadaten in der Workbench erwartet.
Drei Typen von Metadatenformaten werden unterstützt: marc, fnMeta, fnRights.
Die xml-Datei wird geparst und die Record Resources, die aktualisiert werden sollen, identifiziert.
Ausgewählte beschreibende Metadatenelemente werden dann geupdatet (angenommen, die Werte, die im Repository gespeichert sind, sind anders als die Werte, die aus dem xml extrahiert werden).
Für die Metadatentypen marc und fnMeta werden die Metadaten der Root Record Resource des Pakets aktualisiert; mit dem Metadatentyp fnRights, werden die accessPolicy der Dateien im Paket aktualisiert.
Wenn keine Record Resource in box gefunden werden kann, wird eine log-Nachricht geschrieben, aber kein Fehler ausgegeben.
docuteam-actions updateMetadataInBoxFor2118 -c [/path/to/]config.json -d /path/to/metadata/file --metadataType 'marc'
Options:
--version Show version number [boolean]
--debug Set log level to debug [boolean]
-c, --config Configuration file path [string] [required]
--help Show help [boolean]
-d, --data Metadata file path [string] [required]
--metadataType Type of metadata file [string] [required]