Skip to content

Permettre à l'utilisateur de fournir son propre script de génération des registres #43

@philippepons

Description

@philippepons

Permettre à l'utilisateur de fournir son propre script de génération des registres


Contexte

Lors de la création d'un projet, DoTS génère automatiquement les registres resources_register.xml et fragments_register.xml à partir du fichier metadata/dots_metadata_mapping.xml, puis les ajoute à la base de données BaseX du projet.

Ce mécanisme offre déjà une certaine généricité pour déclarer les métadonnées décrivant les ressources DTS. Cependant, il montre ses limites dans certains cas d'usage avancés, par exemple :

  • fusion de plusieurs colonnes d'un fichier TSV en un seul champ ;
  • génération d'objets JSON-LD à partir d'un tableur TSV ;
  • tout traitement de données nécessitant une logique personnalisée non prise en charge par le mapping XML actuel.

Proposition

Permettre à l'utilisateur développeur de substituer le mécanisme intégré par son propre script pour générer les registres resources_register.xml et fragments_register.xml, et les injecter directement dans la base de données BaseX du projet.

Il s'agirait de définir un point d'extension clair que DoTS détecterait à la création du projet, afin de déléguer la génération des registres au script fourni plutôt que d'exécuter sa propre logique.

Bénéfice potentiel sur les performances
L'étape de création des registres est actuellement la plus coûteuse lors de l'initialisation d'un projet. Offrir la possibilité d'utiliser un script externe — potentiellement écrit dans un langage plus performant — pourrait réduire significativement ce temps. Cette hypothèse est à évaluer et à mesurer.


Points d'attention

  • Les registres générés hors DoTS devront obligatoirement être validés par les schémas DoTS prévus à cet effet, afin de garantir la cohérence et l'intégrité des données.
  • L'ajout de vocabulaires hors Dublin Core étendu et schema.org risque de poser des problèmes de déclaration de namespace — voir l'issue correspondante (Chargement dynamique des namespaces à la création des registres DoTS #44 ).

Pistes d'implémentation (à affiner)

  • Définir une convention (ex. présence d'un fichier generate_registers.sh, une variable d'environnement particulière (fn:environment-variable()) ou autre que DoTS détecte à la création.
  • Spécifier l'interface attendue du script : arguments d'entrée, format de sortie, mode d'injection dans BaseX.
  • Documenter les contraintes de validation auxquelles le script devra se conformer.
  • Évaluer l'impact sur les performances pour valider l'intérêt de cette approche.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request
No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions