4.3. Collection ObjectGroup

4.3.1. Utilisation de la collection ObjectGroup

La collection ObjectGroup contient les informations relatives aux groupes d’objets.

4.3.2. Exemple de XML

Ci-après, un extrait d’un bordereau de transfert (manifest.xml) utilisé pour compléter les champs du JSON correspondant à un groupe d’objets.

<DataObjectGroupId id="ID0009">
  <PhysicalDataObject id="ID109">
      <DataObjectVersion>PhysicalMaster</DataObjectVersion>
      <PhysicalId>1 Num 1/191-3</PhysicalId>
      <PhysicalDimensions>
          <Height unit="centimetre">10.5</Height>
          <Length unit="centimetre">14.8</Length>
          <Thickness unit="micrometre">350</Thickness>
          <Weight unit="gram">3</Weight>
      </PhysicalDimensions>
      <Extent>1 carte imprimée</Extent>
      <Dimensions>10,5cm x 14,8cm</Dimensions>
      <Color>Noir et blanc</Color>
      <Framing>Paysage</Framing>
      <Technique>Phototypie</Technique>
  </PhysicalDataObject>
  <BinaryDataObject id="ID9">
      <DataObjectVersion>BinaryMaster</DataObjectVersion>
      <Uri>Content/1NUM_9.JPG</Uri>
      <MessageDigest algorithm="SHA-512">0e0cec05a1d72ee5610eaa5afbc904c012d190037cbc827d08272102cdecf0226efcad122b86e7699f767c661c9f3702379b8c2cb01c4f492f69deb200661bb9</MessageDigest>
      <Size>7702</Size>
      <FormatIdentification>
          <FormatLitteral>JPEG File Interchange Format</FormatLitteral>
          <MimeType>image/jpeg</MimeType>
          <FormatId>fmt/43</FormatId>
      </FormatIdentification>
      <FileInfo>
          <Filename>1NUM_9.JPG</Filename>
      </FileInfo>
      <Metadata>
          <Image>
              <Dimensions>117x76</Dimensions>
              <Width>117px</Width>
              <Height>76px</Height>
              <VerticalResolution>96ppp</VerticalResolution>
              <HorizontalResolution>96ppp</HorizontalResolution>
              <ColorDepth>24</ColorDepth>
          </Image>
      </Metadata>
  </BinaryDataObject>
</DataObjectGroupId>

4.3.3. Exemple de JSON stocké en base

Les champs présentés dans l’exemple ci-après ne font pas état de l’exhaustivité des champs disponibles dans le SEDA. Ceux-ci sont référencés dans la documentation SEDA disponible au lien suivant : https://redirect.francearchives.fr/seda/api_v2/doc.html

{
    "_id": "aebaaaaaaafgsz3wabcugak7ube6dxyaaabq",
    "_tenant": 0,
    "_profil": "Image",
    "FileInfo": {
        "Filename": "1NUM_9.JPG"
    },
    "_qualifiers": [
        {
            "qualifier": "PhysicalMaster",
            "_nbc": 1,
            "versions": [
                {
                    "_id": "aeaaaaaaaafgsz3wabcugak7ube6dzqaaaca",
                    "DataObjectGroupId": "aebaaaaaaafgsz3wabcugak7ube6dxyaaabq",
                    "DataObjectVersion": "PhysicalMaster_1",
                    "PhysicalId": "1 Num 1/191-3",
                    "PhysicalDimensions": {
                        "Height": {
                            "unit": "centimetre",
                            "dValue": 10.5
                        },
                        "Length": {
                            "unit": "centimetre",
                            "dValue": 14.8
                        },
                        "Thickness": {
                            "unit": "micrometre",
                            "dValue": 350
                        },
                        "Weight": {
                            "unit": "gram",
                            "dValue": 3
                        }
                    },
                    "Extent": "1 carte imprimée",
                    "Dimensions": "10,5cm x 14,8cm",
                    "Color": "Noir et blanc",
                    "Framing": "Paysage",
                    "Technique": "Phototypie",
                    "_opi": "aeeaaaaaashi422cab3gyalenej2kcyaaaaq"
                }
            ]
        },
        {
            "qualifier": "BinaryMaster",
            "_nbc": 1,
            "versions": [
                {
                    "_id": "aeaaaaaaaafgsz3wabcugak7ube6dxyaaaba",
                    "DataObjectGroupId": "aebaaaaaaafgsz3wabcugak7ube6dxyaaabq",
                    "DataObjectVersion": "BinaryMaster_1",
                    "FormatIdentification": {
                        "FormatLitteral": "JPEG File Interchange Format",
                        "MimeType": "image/jpeg",
                        "FormatId": "fmt/43"
                    },
                    "FileInfo": {
                        "Filename": "1NUM_9.JPG"
                    },
                    "Metadata": {
                        "Image": {
                            "Dimensions": "117x76",
                            "Width": "117px",
                            "Height": "76px",
                            "VerticalResolution": "96ppp",
                            "HorizontalResolution": "96ppp",
                            "ColorDepth": 24
                        }
                    },
                    "_opi": "aeeaaaaaashi422cab3gyalenej2kcyaaaaq",
                    "Size": 7702,
                    "Uri": "Content/1NUM_9.JPG",
                    "MessageDigest": "0e0cec05a1d72ee5610eaa5afbc904c012d190037cbc827d08272102cdecf0226efcad122b86e7699f767c661c9f3702379b8c2cb01c4f492f69deb200661bb9",
                    "Algorithm": "SHA-512",
                    "_storage": {
                        "_nbc": 2,
                        "offerIds": [
                            "vitam-iaas-app-02.int",
                            "vitam-iaas-app-03.int"
                        ],
                        "strategyId": "default"
                    }
                }
            ]
        }
    ],
    "_up": [
        "aeaqaaaaaafgsz3wabcugak7ube6d4qaaaaq"
    ],
    "_nbc": 0,
    "_ops": [
        "aedqaaaaachxqyktaai4aak7ube557iaaaaq"
    ],
    "_opi": "aedqaaaaachxqyktaai4aak7ube557iaaaaq",
    "_sp": "Vitam",
    "_sps": [
        "Vitam"
    ],
    "_storage": {
        "_nbc": 2,
        "offerIds": [
            "vitam-iaas-app-02.int",
            "vitam-iaas-app-03.int"
        ],
        "strategyId": "default"
    },
    "_v": 1,
    "_glpd": "2018-07-05T13:55:39.779"
}

4.3.4. Détail des champs du JSON

« _id »: identifiant du groupe d’objets.

  • Il s’agit d’une chaîne de 36 caractères correspondant à un GUID.
  • Champ peuplé par la solution logicielle Vitam.
  • Cardinalité : 1-1

« _tenant »: identifiant du tenant.

  • Il s’agit d’un entier.
  • Champ peuplé par la solution logicielle Vitam.
  • Cardinalité : 1-1

« _profil »: catégorie de l’objet.

  • Repris du nom de la balise présente dans le bloc Metadata du DataObjectPackage présent dans le bordereau de transfert au niveau du BinaryMaster. Attention, il s’agit d’une reprise de la balise et non pas des valeurs à l’intérieur.
  • Les valeurs possibles pour ce champ sont : Audio, Document, Text, Image et Video. Des extensions seront possibles (Database, Plan3D, …).
  • Cardinalité : 1-1

« FileInfo »: informations sur le fichier constituant l’objet-données numérique de référence.

  • Reprend le bloc FileInfo du BinaryMaster présent dans le bordereau de transfert.
  • L’objet de ce bloc est de pouvoir conserver les informations initiales du premier BinaryMaster pour en faciliter la recherche et augmenter la qualité des résultats en cas de recherche multi critères ne portant que sur les BinaryMaster.

« _qualifiers »: tableau de structures décrivant les objets inclus dans ce groupe d’objets. Il est composé comme suit :

  • « qualifier »: usage de l’objet.

    Il correspond à la valeur contenue dans le champ <DataObjectVersion> du bordereau de transfert. Par exemple pour <DataObjectVersion>BinaryMaster_1</DataObjectVersion>, c’est la valeur « BinaryMaster » qui est reportée.

    • « _nbc »: nombre d’objets correspondant à cet usage.

    • « versions »: tableau des objets par version (une version = une entrée dans le tableau).

      • « _id »: identifiant de l’objet. Il s’agit d’une chaîne de 36 caractères corresppondant à un GUID, généré par la solution logicielle Vitam.
      • « DataObjectGroupId »: identifiant du groupe d’objets, composé d’une chaîne de 36 caractères.
      • « DataObjectVersion »: version de l’objet par rapport à son usage.

      Par exemple, si on a BinaryMaster sur l’usage, on aura au moins un objet BinaryMaster_1. Ces champs sont renseignés si possible avec les valeurs récupérées dans les balises <DataObjectVersion> du bordereau de transfert. Chaque ajout d’un objet du même usage incrémente de un le numéro de la version, même si le bordereau de transfert indique une information contraire. Par exemple si il existe un groupe d’objets avec deux objets : BinaryMaster_1 et BinaryMaster_2, lorsqu’un nouveau SIP ajoute un objet déclaré comme un « BinaryMaster_6 » dans le bordereau de transfert, celui-ci sera enregistré comme « BinaryMaster_3 ».

      • « FormatIdentification »: contient trois champs qui permettent d’identifier le format du fichier. Une vérification de la cohérence entre ce qui est déclaré dans le XML, ce qui existe dans le référentiel PRONOM et les valeurs que porte le document est faite.

        • « FormatLitteral » : nom du format. C’est une reprise de la valeur située entre les balises <FormatLitteral> du message ArchiveTransfer.
        • « MimeType » : type Mime. C’est une reprise de la valeur située entre les balises <MimeType> du message ArchiveTransfer ou des valeurs correspondant au format tel qu’identifié par la solution logicielle Vitam.
        • « FormatId » : PUID du format de l’objet. Il est défini par la solution logicielle Vitam à l’aide du référentiel PRONOM maintenu par The National Archives (UK) et correspondant à la valeur du champ PUID de la collection FileFormat.
      • « FileInfo »: contient les informations sur le fichier.

        • « Filename »: nom de l’objet.
        • « CreatingApplicationName »: nom de l’application avec laquelle l’objet a été créé. Ce champ est renseigné avec la métadonnée correspondante portée par le message ArchiveTransfer. Ce champ est facultatif et n’est pas présent systématiquement.
        • « CreatingApplicationVersion »: numéro de version de l’application avec laquelle le document a été créé. Ce champ est renseigné avec la métadonnée correspondante portée par le message ArchiveTransfer. Ce champ est facultatif et n’est pas présent systématiquement.
        • « CreatingOs »: système d’exploitation avec lequel l’objet a été créé. Ce champ est renseigné avec la métadonnée correspondante portée par le message ArchiveTransfer. Ce champ est facultatif et n’est pas présent systématiquement.
        • « CreatingOsVersion »: Version du système d’exploitation avec lequel l’objet a été créé. Ce champ est renseigné avec la métadonnée correspondante portée par le message ArchiveTransfer. Ce champ est facultatif et n’est pas présent systématiquement.
        • « LastModified » : date de dernière modification de l’objet au format ISO 8601 YYY-MM-DD + “T” + hh:mm:ss.millisecondes « + » timezone hh:mm. Exemple : 2016-08-19T16:36:07.942+02:00 Ce champ est optionnel, et est renseigné avec la métadonnée correspondante portée par le fichier.
        • « Size »: taille de l’objet (en octet). Ce champ contient un nombre entier.
      • « PhysicalDimensions » : Ce champ contient les différentes informations concernant un objet physique (DataObjectVersion = PhysicalMaster). Il pourra donner des informations sur la taille, le poids, etc… de l’objet.

        • « Width » : largeur de l’objet. Ce champ contient 2 sous champs : « unit » (string) et « dValue » (double)
        • « Height » : hauteur de l’objet. Ce champ contient 2 sous champs : « unit » (string) et « dValue » (double)
        • « Depth » : profondeur de l’objet. Ce champ contient 2 sous champs : « unit » (string) et « dValue » (double)
        • « Diameter » : diamètre de l’objet. Ce champ contient 2 sous champs : « unit » (string) et « dValue » (double)
        • « Length » : longueur de l’objet. Ce champ contient 2 sous champs : « unit » (string) et « dValue » (double)
        • « Thickness » : épaisseur de l’objet. Ce champ contient 2 sous champs : « unit » (string) et « dValue » (double)
        • « Weight » : poids de l’objet. Ce champ contient 2 sous champs : « unit » (string) et « dValue » (double)
        • « Shape » : forme de l’objet. Ce champ contient est de type String
      • « OtherMetadata »: ce champ est renseigné avec les valeurs contenues entre les balises <OtherMetadata>, d’une extension du schéma SEDA du message ArchiveTransfer. Cardinalité 0-1.

      • « Uri »: localisation du fichier correspondant à l’objet dans le SIP.

        • Chaîne de caractères
        • Cardinalité 0 (objet physique) ou 1 (objet binaire)
      • « MessageDigest »: empreinte du fichier correspondant à l’objet. La valeur est calculée par la solution logicielle Vitam.

        • Chaîne de caractères
        • Cardinalité 0 (objet physique) ou 1 (objet binaire)
      • « Algorithm »: algorithme utilisé pour réaliser l’empreinte du fichier correspondant à l’objet.

        • Chaîne de caractères
        • Cardinalité 0 (objet physique) ou 1 (objet binaire)
      • « _storage »: contient trois champs qui permettent d’identifier les offres de stockage.

        • « strategyId »: identifiant de la stratégie de stockage.
        • « offerIds »: liste des offres de stockage pour une stratégie donnée
        • « _nbc »: nombre d’offres.
        • Cardinalité 0 (objet physique) ou 1 (objet binaire)

« _up » (unit up): tableau identifiant les unités archivistiques représentées par ce groupe d’objets.

  • Il s’agit d’un tableau de chaînes de 36 caractères correspondant au GUID contenu dans le champ _id des unités archivistiques enregistrées dans la collection Unit.
  • Champ peuplé par la solution logicielle Vitam.
  • Ne peut être vide
  • Cardinalité : 1-1

« _nbc » (nombre d’objets): nombre d’objets dans le groupe d’objets.

  • Il s’agit d’un entier.
  • Champ peuplé par la solution logicielle Vitam.
  • Cardinalité : 1-1

« _ops » (operations): tableau des identifiants d’opérations auxquelles ce groupe d’objets a participé.

  • Il s’agit d’un tableau de chaînes de 36 caractères correspondant au GUID contenu dans le champ _id d’opération enregistré dans la collection LogBookOperation.
  • Champ peuplé par la solution logicielle Vitam.
  • Ne peut être vide
  • Cardinalité : 1-1

« _opi » : identifiant de l’opération à l’origine de la création de ce GOT.

  • Il s’agit d’une chaînes de 36 caractères correspondant au GUID contenue dans le champ _id de la collection LogbookOperation.
  • Champ peuplé par la solution logicielle Vitam.
  • Ne peut être vide
  • Cardinalité : 1-1

« _sp »: service producteur responsable du groupe d’objets, qui appartient à son fond propre. Il s’agit de la valeur de la balise OriginatingAgencyIdentifier dans le message ArchiveTransfer.

  • Il s’agit d’une chaîne de caractères.
  • Champ peuplé par la solution logicielle Vitam.
  • Cardinalité : 1-1

« _sps »: services producteurs auxquels le groupe d’objets techniques a été rattaché (au titre de leurs fonds symboliques).

  • Il s’agit d’un tableau contenant tous les services producteurs référençant le groupe d’objets.
  • Il s’agit d’un tableau de chaînes de caractères.
  • Champ peuplé par la solution logicielle Vitam.
  • Ne peut être vide
  • Cardinalité : 1-1

« _storage »: contient trois champs qui permettent d’identifier les offres de stockage.

  • « strategyId »: identifiant de la stratégie de stockage.
  • « offerIds »: liste des offres de stockage pour une stratégie donnée
  • « _nbc »: nombre d’offres.
  • Cardinalité 0 (objet physique) ou 1 (objet binaire)

« _glpd »: Date de la dernière modification du graph dont l’objet dépend

  • Il s’agit d’une date.
  • Champ peuplé par la solution logicielle Vitam.
  • Cardinalité : 1-1

« _us »: Reprend l’union de tous les champs _us de toutes les unités archivistiques possédant le groupe d’objets (parentalité).

  • Tableau de chaînes de 36 caractères.
  • Champ peuplé par la solution logicielle Vitam.
  • Cardinalité : 1-1

« _v »: version de l’enregistrement décrit.

  • Il s’agit d’un entier.
  • 0 correspond à l’enregistrement d’origine. Si le numéro est supérieur à 0, alors il s’agit du numéro de version de l’enregistrement.
  • Champ peuplé par la solution logicielle Vitam.
  • Cardinalité : 1-1