Skip to main content

Création et dépôt de manifestes IIIF pour des données déposées sur Nakala

Project description

La librairie niiif-niiif crée et publie le manifeste IIIF des fichiers JPEG et TIFF d'une donnée Nakala.

Nakala est un service de la TGIR (Très Grande Infrastructure de Recherche) Huma-Num permettant à des chercheurs, enseignants-chercheurs et équipes de recherche de partager, publier et valoriser tous types de données numériques documentées (fichiers textes, sons, images, vidéos, objets 3D, etc.) dans un entrepôt sécurisé afin de les publier en accord avec les principes du FAIR data (Facile à trouver, Accessible, Interopérable et Réutilisable).

Les images déposées sur Nakala sont accessibles à travers une API compatible avec IIIF Image API 3.0 mais Huma-Num ne propose pas de service de création de manifestes, ces fichiers JSON qui permettent la lecture des images par des visionneuses compatibles avec le protocole IIIF.

La librarie Python niiif-niiif propose donc de palier à ce manque.

Plus précisément, niiif-niiif :

  • Vérifie si la donnée Nakala dont l'identifiant lui est donné en paramètre existe. Le cas échéant,
  • Supprime s'il existe l'ancien fichier metadata.json des fichiers de la donnée,
  • Crée un manifeste IIIF à partir des fichiers JPEG ou TIFF de la donnée Nakala,
  • Ajoute à la donnée Nakala le fichier metadata.json contenant le manifeste.

Vous pouvez ensuite copier l'URL de téléchargement du fichier metadata.json déposé sur Nakala et la transmettre à une visionneuse IIIF (ex. Mirador).

L'URL d'un fichier déposé sur Nakala est unique, l'URL du manifeste changera donc à chaque fois que vous le créerez avec niiif-niiif. Pensez à soumettre cette nouvelle URL à la visionneuse.

Le serveur d'image IIIF Cantaloupe utilisé par Nakala n'étant compatible qu'avec IIIF Image API 3.0, niiif-niiif génère depuis sa version 0.2.0 des manifestes conformes à IIIF Presentation API 3.0.

Les manifestes de niiif-niiif ont été testés avec les visionneuses IIIF suivantes :

Installation

Pour utiliser le script, utilisez de préférence un gestionnaire d'environnement Python tel que Miniconda.

# Vous pouvez définir le nom de l'environnement Python à votre convenance avec le paramètre -n.
conda create -n niiif-niiif python=3.8
# Activez l'environnement
conda activate niiif-niiif
# Installez la librairie niiif
pip install niiif-niiif

Utilisation

Le script a besoin pour fonctionner de la clé d'API d'un compte utilisateur Nakala ayant des droits d'écriture sur la donnée Nakala pour laquelle vous souhaitez créer un manifeste. Cette clé d'API est à créer et à copier depuis le profil du compte Nakala.

Le passage en paramètre d'au moins un label est obligatoire – le label du manifeste est le titre affiché par la visionneuse. La langue du label doit être précisée (utiliser none si le label n'a pas de langue) en utilisant le code de langue BCP 47.

Il est possible de préciser en paramètre si le document doit être affiché de manière paginée (voir la propriété behavior de IIIF Presentation API 3.0).

Le label et la valeur de la propriété IIIF requiredStatement peuvent être précisés avec les paramètres -rslabel et -rsvalue.

Aucun contrôle de validité du manifeste généré à partir des données de l'utilisateur n'est effectué par niiif-niiif. Pour vérifier la validité de vos manifestes, vous pouvez utiliser le service en ligne Presentation API Validator.

En ligne de commande

# Activez l'environnement (si ce n'est pas déjà fait)
conda activate niiif-niiif 
# Pour afficher les arguments du script
python -m niiif -h
# Pour créer le manifeste de la donnée Nakala 10.34847/nkl.12121212 avec un affichage paginé dans la visioneuse IIIF de votre choix (le paramètre -behavior est optionnel) et les labels "Les Trois Petits Cochons" et "The Three Little Pigs".
python -m niiif -apikey 12345678-12345678-1234578-12345678 -dataid 10.34847/nkl.12121212 -behavior paged -label "Les Trois Petits Cochons" fr -label "The Three Little Pigs" en
# Pour créer le manifeste de la donnée Nakala 10.34847/nkl.12121212 avec le label sans langue "27B-6".
python -m niiif -apikey 12345678-12345678-1234578-12345678 -dataid 10.34847/nkl.12121212 -label "27B-6" none
# Pour créer le manifeste de la donnée Nakala 10.34847/nkl.12121212 avec le label sans langue "27B-6" et une information d'attribution de la donnée avec la propriété IIIF requiredStatement (voir https://iiif.io/api/presentation/3.0/#requiredstatement).
python -m niiif -apikey 12345678-12345678-1234578-12345678 -dataid 10.34847/nkl.12121212 -label "27B-6" none -rslabel "Attribution" en -rsvalue "Provided by the Centre de recherche bretonne et celtique" en -rslabel "Attribution" fr -rsvalue "Mis à disposition par le Centre de recherche bretonne et celtique" fr

Dans un script Python

La fonction create_data_manifest_if_data_exists(apiKey, dataIdentifier) peut être importée depuis un script Python.

# Activez l'environnement (si ce n'est pas déjà fait)
conda activate niiif-niiif 
# Lancez python
python
>>> from niiif import create_data_manifest_if_data_exists
>>> create_data_manifest_if_data_exists(apiKey='12345678-12345678-1234578-12345678', dataIdentifier='10.34847/nkl.12121212', behavior=None, required_statements=None, labels=[["Pomme", "fr"], ["Apple", "en"], ["Fruits", "fr"], ["Label sans langue", "none"]])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

niiif_niiif-0.4.0.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

niiif_niiif-0.4.0-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

Details for the file niiif_niiif-0.4.0.tar.gz.

File metadata

  • Download URL: niiif_niiif-0.4.0.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for niiif_niiif-0.4.0.tar.gz
Algorithm Hash digest
SHA256 3cd946d2316f24ba015fba20424813f7698006661cbc5f9cfdb97865614dcdd1
MD5 a3d5fdda47744145408252abfccbe577
BLAKE2b-256 efb18570f55c6b84824b55236c9b7136b03bece5d6626ca7de3e6bc7b49ae426

See more details on using hashes here.

File details

Details for the file niiif_niiif-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: niiif_niiif-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 20.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for niiif_niiif-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 503f43b3ff29dbe6c0765626f5f3235699bc993ef32f4cbefd8f15ce3c2698c4
MD5 27f73cceae9ec291d1141e59ac61d7e6
BLAKE2b-256 0fa99f4bf85f4a1519be7308820feffb495719b5bef137917b672d3210a4468b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page