You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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.
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.xmletfragments_register.xmlà partir du fichiermetadata/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 :
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.xmletfragments_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.
Points d'attention
schema.orgrisque 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)
generate_registers.sh, une variable d'environnement particulière (fn:environment-variable()) ou autre que DoTS détecte à la création.