Docuteam Dublin Core 1.0
Docuteam Dublin Core 1.0 est un format de paquet qui peut être utilisé pour la déposition avec le Deposition API de docuteam feeder.
Définition
- Un SIP docuteam Dublin Core est un fichier .zip qui contient un dossier nommé
sip
qui est un container Bagit. - Le Bagit doit être créé au minimum avec des sommes de contrôle SHA-256 (les autre algorithmes de somme de contrôle supporté par Bagit sont optionnels).
- À l'intérieur du container Bagit, une hiérarchie de dossier contient les données décrites par les métadonnée XML DublinCore.
Références
Bagit library:
- https://tools.ietf.org/id/draft-kunze-bagit-14.txt
- https://github.com/LibraryOfCongress/bagit-spec
- https://github.com/LibraryOfCongress/bagit-python
- https://github.com/LibraryOfCongress/bagit-java
DublinCore:
Spéficiation de la structure du container Bagit
À l'intérieur du Bagit compressé, le SIP est organisé de la manière suivante:
- Le container Bagit contient au minimum les sommes de contrôle SHA-256
- Le dossier racine, qui correspond à l'objet racine dans le SIP, porte le nom
data
(cela est fait automatiquement par les bibliothèques Bagit) - Les sous-dossiers peuvent nommés librement
- Les sous-dossiers peuvent être organisés de manière récursive
- Chaque dossier (à n'importe quel niveau) doit contenir un fichier de métadonnées toujours nommé
dc.xml
- Chaque dossier (à n'importe quel niveau) peut contenir l'un des éléments suivants (mais pas les deux !):
- un ou plusieurs sous-dossier
- un fichier de donnée qui peut être librement nommé (excepté
dc.xml
)
Voici une définition formelle de la structure:
<rootfolder> ::= <metadata file> <children>*
<metadata file> ::= dc.xml
<children> ::= <folder>* | <file>
<folder> ::= <metadata file> <children>*
<file> ::= filename.ext
Exemple de structure du container
- Exemple 1: container avec un seul fichier
data/
├── dc.xml
└── filename1.ext
- Exemple 2: container avec plusieurs fichiers
data/
├── dc.xml
├── folder1
│ ├── dc.xml
│ └── fileA.ext
├── folder2
│ ├── dc.xml
│ └── fileB.ext
└── folder3
├── dc.xml
└── fileC.ext
- Exemple 3: container avec une structure complexe contenant plusieurs fichiers
data/
├── dc.xml
├── folder1
│ ├── dc.xml
│ ├── folder2
│ │ ├── dc.xml
│ │ └── file3.ext
│ └── folder4
│ ├── dc.xml
│ └── folder5
│ ├── dc.xml
│ └── file5.ext
├── folder6
│ ├── dc.xml
│ └── file6.ext
└── folder7
├── dc.xml
└── folder8
├── dc.xml
└── folder9
├── dc.xml
└── file8.ext
Spécification des métadonnées
Les métadonnées sont restreintes au Dublin Core Metadata Element Set, c'est à dire à 15 éléments (terme dc 1.1, voir http://dublincore.org/documents/dcmi-terms/#section-3).
En addition, les restrictions suivantes doivent être appliquées :
- Le champ
Identifier
est obligatoire à tous les niveaux dans le fichierdc.xml
et doit contenir :- À tous les niveaux: l'identifiant de l'application cliente de l'objet avec le préfixe
clientid:
(p.ex.clientid:1234567
orclientid:d4FTw3v6T
) - Au niveau racine: l'identifiant de l'espace de nommage du client dans le repository (il s'agit le plus souvent du numéro ISIL) avec le préfixe
namespace:
, p.ex.namespace:CH-1234-1
.
- À tous les niveaux: l'identifiant de l'application cliente de l'objet avec le préfixe
- Le champ
Title
est obligatoire pour tous les niveaux dans le fichierdc.xml
. Ce champ ne peut pas être répété. Tous les autres 13 champs sont optionnels et répétables :- Creator (p.ex. les auteurs (personne ou collectivité). Si il y a plusieurs auteurs ce champ peut être répété)
- Subject (p.ex. mot-clés. Si il y a plusieurs mots-clés ce champ peut être répété)
- Description (une description textuelle de l'objet ou du dossier)
- Publisher
- Contributor
- Date (en utilisant ISO-8601, p.ex. 2018-11-30)
- Type
- Format
- Source
- Language
- Relation
- Coverage
- Rights
Exemple de métadonnées
- Exemple 1 : métadonnées minimales au niveau racine
<?xml version="1.0" encoding="UTF-8"?>
<metadata
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:title>Minimalist Example</dc:title>
<dc:identifier>namespace:CH-123456-12</dc:identifier>
<dc:identifier>clientid:12345</dc:identifier>
</metadata>
- Exemple 2 : métadonnées complète au niveau racine
<?xml version="1.0" encoding="UTF-8"?>
<metadata
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:title>All fields are set</dc:title>
<dc:creator>Atreid, Leto</dc:creator>
<dc:creator>docuteam</dc:creator>
<dc:subject>dublincore</dc:subject>
<dc:subject>package</dc:subject>
<dc:subject>format</dc:subject>
<dc:description>Description of the docuteam dublin core package format, v. 1.0.</dc:description>
<dc:publisher>docuteam</dc:publisher>
<dc:contributor>Smith, John</dc:contributor>
<dc:contributor>Jaquard, Paul</dc:contributor>
<dc:date>2018-11-05</dc:date>
<dc:type>Text</dc:type>
<dc:format>application/pdf</dc:format>
<dc:identifier>namespace:CH-123456-12</dc:identifier>
<dc:identifier>clientid:999full</dc:identifier>
<dc:source>Dublin Core Package Structure (https://docs.google.com/document/d/ 1lxqiqkmlNYVWlwJSsIe4b5DwJxN6DZqNvpo0MouAFIA/edit)</dc:source>
<dc:language>en</dc:language>
<dc:relation>docuteam bridge api for client applications)</dc:relation>
<dc:coverage>2018-2022</dc:coverage>
<dc:coverage>Baden</dc:coverage>
<dc:rights>CreativeCommons CC-By</dc:rights>
</metadata>