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
Le guide data.gouv.fr lié à la qualité des données open-data présente les 6 thèmes principaux pour bien documenter un jeu de données et notamment celui dédié au "modèle de données".
Il rappelle notamment qu'un modèle de données (modèle entité-association) est avant tout un outil de dialogue entre les différents intervenants en agrégeant sur un même support d'une part les concepts métier/client/utilisateur (ex. les entités manipulées et les relations entre ces entités) et d'autre part la traduction de ces concepts en structures physiques et logiques (ex. les attributs, les cardinalités) que l'on retrouve en partie dans le schéma de données.
Application aux IRVE
Les données IRVE correspondent à une structure de données complexe (concepts de 'point de charge', 'station', 'opérateur', 'aménageur', 'enseigne', 'localisation') qui se traduit par un ensemble de champs important (une cinquantaine pour le schéma statique).
Cette structure est décrite principalement dans les schémas de données statiques et dynamiques.
Cependant les schémas décrivent clairement comment chaque champ doit être documenté mais ne décrivent pas la cohérence qui doit être assurée entre certains champs ou entre certaines lignes.
Les jeux de données partagés sont donc constitués de données unitairement bien documentées (grace au schéma de données) mais qui peuvent être globalement difficilement exploitables.
Par exemple, comment représenter sur une carte une station qui a deux coordonnées géographiques différentes ou bien comment interpréter qu'une même station soit indiquée ouverte 24h/24h et en même temps 9h-19h ?
Evolution proposée
La proposition est d'une part de compléter la documentation des jeux de données IRVE conformément au guide data.gouv.fr avec:
un modèle de données composé d'une partie 'utilisateur' qui présente sous forme simplifiée et didactique (exemples) la structure des données (les entités et les relations entre ces entités) et d'une partie 'technique' sous une forme standardisée (modèle entité-association),
l'ajout dans le schéma de données des relations entre champs qui découlent du modèle de données (voir méthodologie) en suivant les spécifications TableSchema (Data Package V1, Data Package V2),
une association explicite entre modèle de données et schéma de données (ex. nom des attributs identique, versions du schéma et du modèle identiques),
et d'autre part d'adapter la chaine de contrôle des jeux de données aux évolutions du schéma.
Ces dispositions permettent d'améliorer et de garantir la qualité des jeux de données IRVE en amont (par une meilleure compréhension des informations à documenter) et en aval par un contrôle complet des données.
Elles permettront également de réduire notablement la charge de travail récurrente liée à la recherche et à la correction des erreurs.
Mise en oeuvre
Trois aspects sont à prendre en compte : l'existant, la chaîne de contrôle et les futures évolutions.
Documentation existantes:
Une premier travail de modélisation a été effectué pour la partie statique (voir modèle de données en Annexe ci-dessous). Il reste à le compléter (partie "utilisateur") et à le valider.
Le schéma de données est à compléter avec l'ajout de la propriété relationships qui exprime les dépendances entre champs (elle se déduit du modèle de données et est identifiée).
L'analyse reste également à effectuer pour la partie dynamique (mais celle-ci est beaucoup plus simple).
Chaîne de contrôle:
Le contrôle de la propriété relationships est intégré dans le package python tab-analysis accessible via le gestionnaire PyPI.
Il fait l'objet d'une intégration FrictionLess (custom_check FrictionLess) et d'une intégration Validata (custom_check Validata en cours).
Il reste donc à intégrer ce custom_check dans la chaîne de contrôle.
futures évolutions:
La structure de données IRVE n'est pas figée et des hypothèses de modification sont à prendre en compte.
Il serait donc intéressant d'intégrer ces hypothèses dans un modèle de données qui servirait à la fois de capitalisation de celles-ci et de support de partage et de décision.
L'utilisation de l'éditeur de modèles de données mermaid utilisable dans les structure de document markdown et notamment sous Github (cf exemple ci-dessous) facilite l'élaboration et le partage des modèles de données.
Contexte
Le guide
data.gouv.fr
lié à la qualité des données open-data présente les 6 thèmes principaux pour bien documenter un jeu de données et notamment celui dédié au "modèle de données".Il rappelle notamment qu'un modèle de données (modèle entité-association) est avant tout un outil de dialogue entre les différents intervenants en agrégeant sur un même support d'une part les concepts métier/client/utilisateur (ex. les entités manipulées et les relations entre ces entités) et d'autre part la traduction de ces concepts en structures physiques et logiques (ex. les attributs, les cardinalités) que l'on retrouve en partie dans le schéma de données.
Application aux IRVE
Les données IRVE correspondent à une structure de données complexe (concepts de 'point de charge', 'station', 'opérateur', 'aménageur', 'enseigne', 'localisation') qui se traduit par un ensemble de champs important (une cinquantaine pour le schéma statique).
Cette structure est décrite principalement dans les schémas de données statiques et dynamiques.
Cependant les schémas décrivent clairement comment chaque champ doit être documenté mais ne décrivent pas la cohérence qui doit être assurée entre certains champs ou entre certaines lignes.
Les jeux de données partagés sont donc constitués de données unitairement bien documentées (grace au schéma de données) mais qui peuvent être globalement difficilement exploitables.
Par exemple, comment représenter sur une carte une station qui a deux coordonnées géographiques différentes ou bien comment interpréter qu'une même station soit indiquée ouverte 24h/24h et en même temps 9h-19h ?
Evolution proposée
La proposition est d'une part de compléter la documentation des jeux de données IRVE conformément au guide
data.gouv.fr
avec:un modèle de données composé d'une partie 'utilisateur' qui présente sous forme simplifiée et didactique (exemples) la structure des données (les entités et les relations entre ces entités) et d'une partie 'technique' sous une forme standardisée (modèle entité-association),
l'ajout dans le schéma de données des relations entre champs qui découlent du modèle de données (voir méthodologie) en suivant les spécifications
TableSchema
(Data Package V1, Data Package V2),une association explicite entre modèle de données et schéma de données (ex. nom des attributs identique, versions du schéma et du modèle identiques),
et d'autre part d'adapter la chaine de contrôle des jeux de données aux évolutions du schéma.
Ces dispositions permettent d'améliorer et de garantir la qualité des jeux de données IRVE en amont (par une meilleure compréhension des informations à documenter) et en aval par un contrôle complet des données.
Elles permettront également de réduire notablement la charge de travail récurrente liée à la recherche et à la correction des erreurs.
Mise en oeuvre
Trois aspects sont à prendre en compte : l'existant, la chaîne de contrôle et les futures évolutions.
Documentation existantes:
Une premier travail de modélisation a été effectué pour la partie statique (voir modèle de données en Annexe ci-dessous). Il reste à le compléter (partie "utilisateur") et à le valider.
Le schéma de données est à compléter avec l'ajout de la propriété
relationships
qui exprime les dépendances entre champs (elle se déduit du modèle de données et est identifiée).L'analyse reste également à effectuer pour la partie dynamique (mais celle-ci est beaucoup plus simple).
Chaîne de contrôle:
Le contrôle de la propriété
relationships
est intégré dans le package pythontab-analysis
accessible via le gestionnairePyPI
.Il fait l'objet d'une intégration
FrictionLess
(custom_check FrictionLess) et d'une intégrationValidata
(custom_check Validata en cours).Il reste donc à intégrer ce
custom_check
dans la chaîne de contrôle.futures évolutions:
La structure de données IRVE n'est pas figée et des hypothèses de modification sont à prendre en compte.
Il serait donc intéressant d'intégrer ces hypothèses dans un modèle de données qui servirait à la fois de capitalisation de celles-ci et de support de partage et de décision.
L'utilisation de l'éditeur de modèles de données
mermaid
utilisable dans les structure de documentmarkdown
et notamment sousGithub
(cf exemple ci-dessous) facilite l'élaboration et le partage des modèles de données.Annexe : modèle de données proposé
The text was updated successfully, but these errors were encountered: