Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Lexique : Phase de construction
La phase de construction consiste à implémenter techniquement le schéma de données obtenu après la phase de concertation. Pour cela, il est nécessaire de choisir un standard technique, créer les fichiers requis, les tester et les diffuser.
Durant cette phase, il est nécessaire de mobiliser des personnes possédant des compétences techniques. Cette phase consiste à transcrire les décisions prises lors de la phase de concertation en un ou plusieurs schémas de données suivant le découpage en fichiers retenu.
Lexique : Standard
On utilise les termes « normes » et « standards » pour décrire un référentiel commun et documenté destiné à harmoniser l’activité d’un secteur.
Il existe plusieurs standards techniques pour les schémas de données.
Le standard est à choisir en fonction :
de la nature des données concernées ;
des habitudes de l’écosystème produisant ou réutilisant les données liées au schéma.
Les principaux standards techniques sont les suivants :
Table Schema : adapté pour la description de données tabulaires (sous forme de tableurs ou de CSV). Ce standard technique utilise le format JSON ;
JSON Schema : adapté pour la description de données avec une notion de hiérarchie. Ce standard utilise le format JSON ,
XML Schema Definition (XSD) : adapté pour la description de données avec une notion de hiérarchie. Ce standard utilise le format XML.
Tous ces standards techniques sont supportés par schema.data.gouv.fr.
Conseil : Aller au-delà de la documentation texte
Un schéma de données décrit uniquement par du texte ou par un tableau se prive de nombreux avantages, notamment celui de l'interopérabilité entre différents systèmes informatiques.
Les schémas de données décrits par des standards techniques permettent, en plus d’une documentation textuelle ou sous forme d’un tableau, de valider que des données correspondent à un modèle de données, d’agréger des données similaires, de générer automatiquement des données respectant un schéma.
Une fois un standard technique choisi, il faudra créer les fichiers requis pour modéliser les données.
La documentation de chaque standard technique décrit le contenu des fichiers à renseigner. Reportez-vous aux documentations respectives pour tirer parti des fonctionnalités avancées offertes : types de données et contraintes sur les valeurs en particulier.
Il est possible de vérifier qu’un fichier correspond à un standard à l’aide d’outils en ligne ou en ligne de commande. Utilisez ces outils pour vérifier que vos productions correspondent au standard.
Exemples à votre disposition
Pour un schéma au format Table Schema, un modèle de départ est mis à disposition pour créer un dépôt Git contenant un schéma au format Table Schema.
Pour les autres formats de schémas, il est conseillé de consulter les schémas et dépôts Git listés sur schema.data.gouv.fr.
En complément du fichier du schéma de données, il est recommandé de rédiger a minima deux documents complémentaires :
Une documentation générale qui indique le contexte, les modalités de production des données, le cadre juridique, la finalité, les cas d’usage etc. Ce fichier est traditionnellement rédigé en Markdown et nommé README.md
;
Un fichier répertoriant les changements permettant de suivre les modifications, d’une version à une autre. Ce fichier est traditionnellement rédigé en Markdown et nommé CHANGELOG.md
.
La présence de ces fichiers représente un package complet (documentation, liste des changements et schéma de données décrit dans un standard technique), apprécié des réutilisateurs. schema.data.gouv.fr se repose sur ces éléments pour intégrer votre documentation et votre liste de changements sur une page web.
Exemple : La documentation et la liste des changements du schéma des lieux de stationnement.
Une fois votre schéma de données créé, il est nécessaire de le publier et de le diffuser pour que d’autres personnes puissent en bénéficier.
Il est recommandé de publier vos schémas de données en tant que logiciels libres, sur votre forge de développement ou par le biais de GitLab ou GitHub.
Vous bénéficierez alors des avantages habituels des dépôts de code Git en ligne :
Historique des modifications
Fonctionnalités de tickets
Demandes de modifications.
etc.
Il est conseillé d'utiliser un compte d’organisation (dédié à votre entreprise, direction, service, ministère) et non un compte personnel afin d’assurer une URL stable dans le temps.
Exemples à votre disposition : Plusieurs dépôts Git de schémas sont disponibles sur schema.data.gouv.fr (exemple : le dépôt Git décrivant les lieux de stationnement à l’aide d’un schéma TableSchema sur GitHub).
Pour faciliter la découverte de votre schéma de données et des données sous-jacentes, il est recommandé de le faire référencer sur schema.data.gouv.fr. La marche à suivre est détaillée ici.
À l’issue de cette phase, vous devriez :
Lexique : Schéma de données
Les schémas de données (ou simplement schémas) permettent de décrire la structure d'un fichier d'un jeu de données.
Ils indiquent clairement quels sont les différents champs, comment sont représentées les données, quelles sont les valeurs possibles, leur format, etc.
Notion clef : Le cycle de vie de la donnée ouverte de qualité
Le cycle de vie de la donnée ouverte de qualité se compose de 5 étapes principales :
Fédérer une communauté ayant pour objectif de produire en open data des données aisément consolidables
Il est essentiel que des acteurs ayant pour ambition de produire le même type de données se réunissent afin de définir ensemble un standard commun : un .
Référencer le schéma de données
Une fois le schéma établi, il s’agit de le référencer, notamment sur , la plateforme nationale de référencement qui permet un accès aux schémas et facilite l’intégration avec des systèmes informatiques.
Saisir les données
Un consensus ayant été atteint sur le schéma des données, il est temps de saisir les données en elles-même conformément au schéma.
Valider les données par rapport au schéma
Pour valider la conformité de ses données par rapport à un schéma particulier, il est possible d'utiliser l'outil , développé par à l’initiative .
Publier les données en open data
Les données désormais validées, il ne reste plus qu’à les publier !
Dans cette section, vous apprendrez à réaliser l'ensemble des étapes du cycle de vie de la donnée ouverte de qualité, notamment :
Merci à eux !
La création d'un schéma de données se décompose en 4 phases :
: envisager de créer un schéma de données ;
: rassembler plusieurs parties prenantes pour créer un schéma de données ;
: implémenter le schéma de données obtenu après la phase de concertation ;
: faire la promotion d'un schéma auprès d'autres parties prenantes et le faire évoluer si besoin.
Dans cette section sont proposés pour chaque phase un processus à suivre, des bonnes pratiques et des outils.
Conseil de lecture
Nous vous recommandons de lire une première fois cette section sur la création de schémas de données en intégralité afin de prendre connaissance des différentes phases. Vous pourrez ensuite vous référer aux pages pertinentes au fur et à mesure de votre avancée.
Ce guide sur les schémas de données résulte d'une co-rédaction entre les équipes d' et d'. Il s'inspire du contenu rédigé par de nombreux partenaires, listés par ordre alphabétique :
La production de données en conformité avec un schéma de données existant présente de nombreux bénéfices :
Croisement : les données créées peuvent être facilement croisées avec d’autres données conformes au schéma de données utilisé ;
Intéropérabilité : l’interopérabilité des données et leur croisement est simplifié ;
Facilité d'agrégation : si le jeu de données créé est une agrégation de plusieurs fichiers produits par différents acteurs, la formalisation et le partage d’un schéma de données facilite le travail d’agrégation des données --> ce schéma devient un standard pour votre communauté ;
Pérennité : la formalisation d’un schéma de données assure une pérennité des fichiers dans le temps ;
Documentation : la documentation d’un schéma de données existant est déjà rédigée et accessible ;
Ouverture : la présence d'un schéma de données existant peut faciliter l'ouverture des données, les producteurs ayant directement une procédure claire à suivre ;
Qualité : la conformité d'un fichier vis à vis d'un schéma de données, qu'il est possible de vérifier, permet de valider un premier niveau de qualité.
Il est aussi possible de générer des jeux de données d’exemple ou de proposer des formulaires de saisie standardisés.
Lexique : Phase de maintien et de promotion
La phase de maintien est la dernière phase du cycle de vie d'un schéma. Elle consiste à itérer sur la version actuelle en prenant en compte des évolutions du terrain et des retours des producteurs et des réutilisateurs pour peaufiner la structure du schéma. Elle est étroitement liée à la promotion du schéma qui permettra, grâce à son adoption par le plus grand nombre de parties prenantes, une montée en qualité et en quantité d'utilisations.
Modifier ou commenter un schéma contribue à faire vivre l'écosystème open data et permettra de vous identifier comme contributeur.rice sur un schéma spécifique.
De nouveaux acteurs peuvent vouloir publier des données qui rentrent dans le cadre de votre schéma, mais peuvent ne pas en avoir connaissance, ou ne pas avoir les compétences techniques pour se l'approprier.
Pour faciliter l'adoption d'un schéma de données, il est possible de :
Des scripts ont été mis au point par les équipes d'Etalab pour permettre de vérifier et d'agréger toutes les données publiées par type de schéma et ainsi créer des fichiers consolidés à l'échelle nationale (i.e. données IRVE). Cela permet à des solutions à grande échelle d'émerger.
Aussi exhaustive qu'ait été la phase de concertation, il est probable que des corrections ou des évolutions du schéma soient nécessaires afin de le rendre plus précis ou plus accessible par exemple.
Clarifications de la documentation, corrections d’erreurs, évolutions du cadre réglementaire, etc. sont autant de raisons où il est indispensable de mettre en œuvre une nouvelle version.
schema.data.gouv.fr récupère le contenu de votre dépôt via des releases
de celui-ci, c'est à dire des versions packagées de votre code (schéma + documentation). Avec ce système, il est alors possible pour schema.data.gouv.fr de suivre l'évolution formelle de votre schéma et d'en référencer les différentes versions au cours du temps. Cela permet également aux contributeurs de considérer les branches du dépôt Github qui héberge le schéma (main
ou autre) comme un espace de développement participatif qui reste dissocié du référencement sur schema.data.gouv.fr tant qu'une nouvelle version n'est pas publiée.
Une fois que l'état de votre branche principale, main
par exemple, vous conviendra, vous pourrez sur Github ou Gitlab créer une release. Pour cela, il suffit d'ajouter un tag et une version correspondant à la nouvelle version que vous souhaitez publier. Celle-ci sera par la suite automatiquement récupérée par schema.data.gouv.fr et publiée (généralement sous 24h).
Si un schéma que vous maintenez doit être modifié, la marche à suivre peut être la suivante :
faire une nouvelle phase de concertation afin d'évoquer les problématiques qui imposent un changement et de trouver la solution la plus adaptée. Si vous n'avez pas d'espace pour cela, nous vous conseillons de publier une issue
sur le dépôt Github de schema.data.gouv.fr.
lorsqu'un accord est trouvé, mettre à jour techniquement le schéma lui-même (cf. le paragraphe ci-après);
mettre à jour la documentation du schéma ;
déployer les mises à jour sous un nouveau tag de version ;
communiquer sur cette mise à jour.
Lorsque les modifications à faire à un schéma font consensus, il est nécessaire de les implémenter et de déployer une nouvelle version. La marche à suivre peut être la suivante :
répertorier tous les changements à faire avant de les implémenter : anticiper l'impact sur les fichiers techniques et sur la documentation (notamment l'incrémentation de la version)
faire les modifications listées à l'étape précédente :
en local, puis pousser les changements avec les commandes git (add, commit et push)
ou directement sur Github
créer une release (nouvelle version) :
sur la page Github de votre schéma, cliquer sur X tags
(à côté des branches) : ici sont listées toutes les versions du schéma
cliquer sur Releases
puis Draft a new release
indiquer le nom de la nouvelle version dans Choose a tag
: par exemple si la version actuelle est v1.0.1, la nouvelle sera v1.0.2 (dans certains cas, il sera opportun de passer en 1.1.1 ou en 2.0.1)
la branche cible (target
) doit être la branche principale, si des développements ont été faits sur d'autres branches, il est nécessaire de les fusionner - merge
- avec la branche principale via une pull request
(après validation des modifications)
documenter la nouvelle version : ajouter un titre et une description exhaustive des changements dans les champs dédiés, juste avant la publication
publier la release (Publish release
)
Que ce soit pour des considérations techniques ou "conceptuelles", il est possible de solliciter les équipes de schema.data.gouv.fr qui pourront vous accompagner dans le processus de mise à jour de votre schéma.
À l’issue de cette phase, vous devriez :
La pertinence de la mise en place d'un standard de données réside dans son adéquation entre les capacités de sa mise en oeuvre par les producteurs de données et les outils permettant l'automatisation des jeux de données valides par rapport à cette spécification.
Cette standardisation doit permettre de faciliter la mise en relation des jeux de données issus de différents producteurs.
Cette page détaille des recommandations, visant à faciliter la création de nouveaux schémas et leur intégration dans une chaîne de validation et de publication généralisable, notamment :
Des recommandations pour le formatage des fichiers csv
Des recommandations de formatage des données
Des recommandations de champs obligatoires
Des recommandations pour le nommage des fichiers
Des recommandations pour le nommage des champs
Des recommandations pour la mise en conformité
Un des formats privilégiés pour les standards de données est le CSV (Comma Separated Values, valeurs séparées par des virgules). Il s'agit d'un format de données "à plat", adéquat pour les structures de données simples.
Cependant, ce format simple ne dispose pas de spécifications contraignant la saisie des données. Pour cela un schéma en Json est ajouté dont la structure est défini par le standard TableSchema. TableSchema permet d'indiquer les formats des données attendus, de spécifier des contraintes (types de valeurs, cardinalité) et de documenter les différents champs composant le schéma.
L'outil de validation utilisé pour vérifier la conformité d'un fichier csv au standard auquel il fait référence s'appuie sur la structure tabulaire des données. Elles peuvent donc être contenues dans un tableur numérique au format .xls, .xlsx ou .ods ou dans un fichier texte au format .csv, .txt ou autre.
La question du séparateur utilisé pour séparer deux champs de données dans un fichier .csv n'est donc pas essentielle. Cependant, certains outils se basent sur la valeur de ce séparateur pour traiter et publier des jeux de données. Nous vous proposons donc un certain nombre de recommandations afin de favoriser la généralisation d'un usage contribuant à l'interopérabilité des données produites.
Bien que de nombreux jeux de données en CSV utilisent le point-virgule comme séparateur de champs, il a été décidé de privilégier le séparateur virgule car plus conforme à l'esprit du format csv.
Les tableurs numériques courants (Excel et Calc) peuvent produire et lire des fichiers csv. Lors de l'enregistrement d'un fichier créé avec l'outil Calc, l'utilisatrice ou utilisateur doit spécifier le format d'encodage des données ainsi que le séparateur de champs. Lorsque le séparateur de champs retenu est la virgule, il est recommandé d'utiliser les guillemets double " comme séparateur de chaîne de caractères. De cette manière, si une virgule est présente à l'intérieur d'une cellule elle ne sera pas considérée comme un séparateur de champs.
Lors de l'ouverture d'un fichier csv dans Calc, une fenêtre modale propose plusieurs options permettant de spécifier un caractère de séparation et un encodage des données.
Dans Excel, il faut aller dans l'onglet données et sélectionner l'option Fichier texte pour accéder à l'assistant d'import des données.
L’encodage des caractères à privilégier est l'UTF-8 de manière à garantir une meilleure interopérabilité des données.
Pour faciliter la lecture des fichiers publiés en CSV il est recommandé d'y associer dans les outils de publication le type MIME ou Content-Type "text/csv".
Chaque ligne du fichier doit avoir le même nombre de champs, ce qui signifie que lorsqu'une cellule est vide elle doit quand même être présente soit avec la valeur Null, soit avec des crochets vides [] dans le cas des champs de type tableau (array), soit laissée vide mais apparaître à l'export avec 2 virgules qui se suivent ,, .
Les recommandations de formatage pour les données sont généralement issues du standard TableSchema, lui-même inspiré des spécifications du format Json, dans lequel sont exprimés les schémas de données permettant l'automatisation de leur validation.
Ce standard dispose des types de données suivants :
string : s'applique pour toutes les chaînes de caractères
number : s'applique pour les chiffres et nombres contenant éventuellement des décimales
integer : s'applique pour les chiffres et nombres entiers
boolean : s'applique pour indiquer que la valeur d'un champs ne peut être égale qu'à "vrai" ou "faux" (ou "1" et "0" ou "oui" ou "non")
object : s'applique pour les données de type objet
array : s'applique pour les tableaux de données
Les types de données peuvent être assortis de formats de données facilitant l'automatisation de leur validation.
Pour déclarer un format de données dans un schéma JSON il est possible d'utiliser différentes propriétés permettant de le caractériser :
name : le nom du champ
title : le titre du champ
description : la description des valeurs attendues dans ce champ
format : le format du champ
type : le type du champ
Il est également possible de contraindre les valeurs autorisées dans ce champ à l'aide de plusieurs proriétés :
required : indique l'obligation de la présence d'une valeur pour ce champ dans toutes les lignes du fichier
unique : indique que chaque valeur de ce champ à l'intérieur du fichier doit être unique
minLength : indique la taille minimale des valeurs de ce champ
maxLength : indique la taille maximale des valeurs de ce champ
minimum : indique la valeur minimum autorisée pour ce champ (par exemple pour une date on peut indiquer une année en deça de laquelle les valeurs ne sont pas autorisées)
maximum : indique la valeur maximale autorisée pour ce champ
pattern : indique une expression régulière à laquelle doivent être conforme les valeurs de ce champ (par exemple pour un numéro SIRET on peut indiquer ^\\d{14}$
ce qui signifie que les valeurs de ce champ doivent contenir exactement 14 chiffres)
enum : indique une liste de valeurs autorisées pour ce champ
Ci-dessous quelques exemples tirés du schéma des menus de la restauration collective.
Le champ permettant d'indiquer le numéro SIRET d'une collectivité est spécifiée de la manière suivante :
Le champ permettant d'indiquer la date de publication d'un enregistrement du jeu de données est spécifié de la manière suivante :
Les informations ci-dessous décrivent les différents types de champs disponibles dans la spécification TableSchema.
Pour le type string, les formats de données suivants sont disponibles :
default : n'importe quelle chaîne de caractère
email : une adresse email valide.
motif de validation :
uri : une URI valide
binary : une chaîne de caractère encodées en base 64 représentant des données binaires.
uuid : une chaîne de caractère représentant un identifiant unique.
Description : Les valeurs décimales doivent utiliser le point afin d'être plus facilement exploitables par les tableurs numériques.
Type : number
Exemple : 3900.50
Description : date au format AAAA-MM-JJ suivant la norme internationale ISO 8601.
Type : date
Exemple : 2017-10-15
Format : "%Y-%m-%d"
Nommage : abreviation-du-schemaDate
Description : date au format aaaa-mm-jjThh:mi:ssZZZZZZ suivant la norme internationale ISO 8601. On considérera que ZZZZZZ (+ou- décalage horaire GMT), est par défaut +01:00 en France et qu'il est inutile de le préciser dans les formats.
Type : datetime
Exemple : 1997−07−16T19:20:00
Description : date au format aaaa-mm-jjThh:mi/hh:mi suivant la norme internationale ISO 8601. Ce type de données s'applique pour un créneau horaire dans la même journée, sans les secondes. Pour une extension de ces conditions, voir la norme ISO 8601.
Type : datetime
Exemple : 1997−07−16T08:30/17:30
Description : horaires indiquant les heures d'ouverture d'un service ou d'un commerce. Ce type de données permet de préciser les différents horaires d'ouverture pour les différents jours de la semaine. Il s'agit donc d'un type de données multi-valeur au sein duquel le nom du jour de la semaine est abrégé et suivi par les heures d'ouvertures. Les abréviations pour les jours sont en anglais (Mo, Tu, We, Th, Fr, Sa, Su) et les horaires sont sous la forme HH:MM
Un assistant graphique en ligne yohours permet de générer simplement cette structure de données
Type : string (chaîne de caractères)
Exemple : Mo 08:15-13:15; Tu 03:15-06:15; We 03:15-09:30; Th 02:30-07:15; Fr 01:30-05:45; Sa 00:30-05:00; Su 02:45-08:30
Nommage : abreviation-du-schemaHoraires
La possibilité est laissée de décrire les points de géolocalisation d'une donnée à l'intérieur d'un champ unique (geopoint) ou à l'aide de 2 champs (latitude et longitude).
Description : ce type de données permet de saisir la coordonnée de latitude exprimée en WGS 84 permettant de localiser un équipement. Le signe de séparation entre les parties entière et décimale du nombre est le point. Précision : 6 décimales maximum.
Type : number
Exemple : 48.563433
Nommage : abreviation-du-schemaLat
Description : ce type de données permet de saisir la coordonnée de longitude exprimée en WGS 84 permettant de localiser un équipement. Le signe de séparation entre les parties entière et décimale du nombre est le point. Précision : 6 décimales max.
Type : number
Exemple : 2.572875
Nommage : abreviation-du-schemaLon
Description : ce type de données permet de saisir les coordonnées de latitude et de longitude exprimée en WGS 84 permettant de localiser un équipement. Le signe de séparation entre les parties entière et décimale du nombre est le point. Précision : 6 décimales max. Le séparateur de valeur est la virgule. Il est donc nécessaire d'entourer ces valeurs de guillemets. La première valeur est la latitude
Type : number
Exemple : "48.563433, 2.572875"
Nommage : abreviation-du-schemaGeo
Description : ce type de données permet de décrire la forme géographique d'un équipement. La forme est décrite à l'aide de paires de coordonnées, séparées par un espace vide et chaque paire séparée par une virgule. La description d'une ligne est exprimée à l'aide de 2 ou plus paires de points séparés par des virgules. La description d'un polygone est exprimée par 4 ou plus paires de points séparés par des virgules dont la dernière est identique à la première.
Type : string
Exemple : "48.563433 2.572875, 49.234933 2.134432, 49.885311 2.134003, 48.974635 2.1134567, 48.563433 2.572875"
Ce type de champ permet de décrire l'adresse postale d'un équipement. Il est décomposé entre 3 champs permettant de distinguer et de faciliter le tri à l'intérieur des informations de voirie, de code postal et de commune. Le numéro et le nom de la voie sont séparés par une virgule.
Description : ce type de champs permet de saisir le numéro et le nom de la voie
Type : string
Exemple : 34, rue de Latresne
Nommage : abreviation-du-schemaVoie
Description : ce type de champs permet de saisir le code postal (ou le code INSEE) de la commune
Type : number
Exemple : 45800
Nommage : abreviation-du-schemaCodePostal
Description : ce type de champs permet de saisir le nom de la commune
Type : string
Exemple : Saint-Jean-de-Braye
Nommage : abreviation-du-schemaCommune
Afin d'unifier la description des données au travers des différentes thématiques abordées par le propositions de standard de données, il est fortement recommandé de rendre obligatoire la présence d'un certains nombre de champs.
Ceux-ci contribuent à la portabilité des données (qui produit la donnée) ou à leur fiabilité (quand a été produite la donnée).
Pour l'identification des autorités publiques à l'origine de la production et de la publication des jeux de données, il est recommandé d'indiquer le nom et le numéro de SIRET sur chaque ligne de chaque jeu de données.
Description : ce champs permet de saisir le nom de l'autorité publique responsable de la production des données
Type : string
Exemple : Conseil départemental de la Creuse
Nommage : abreviation-du-schemaColl
Par exemple
Description : ce champ permet d'indiquer le numéro d'identification de l'autorité publique au sein de la base nationale des établissements.
Type : string
Exemple : 21330063500017
Motif : ^\d{14}$
Nommage : nom-ou-abreviation-du-schemaCollSiret
Par exemple :
Pour faciliter la réutilisation et la mise à jour des données, il est recommandé de fournir aux réutilisatrices et réutilisateurs potentiels des dates de première publication et de dernière modification pour chaque entité du jeu de données.
Ces informations au format Date avec horaire peuvent correspondre à la date de première publication et faire apparaître les dates de dernière modification pour l'ensemble des lignes ou en cas de mise à jour partielle pour une ligne de données particulière.
Il est également recommandé d'y associer un champ permettant de décrire la raison ayant entraîné une mise à jour des données depuis leur publication.
Description : ce champs permet de décrire la date de première publication de la donnée
Type : datetime
Exemple : 2020-05-11T14:08:32Z
Nommage : nom-ou-abreviation-du-schemaPublicationDate
Par exemple :
Description : ce champs permet de décrire la date de dernière modification de la donnée
Type : datetime
Exemple : 2020-05-11T14:08:32Z
Nommage : nom-ou-abreviation-du-schemaModificationDate
Par exemple :
Description : ce champs permet de décrire la raison d'une modification de la donnée depuis sa publication initiale
Type : string
Exemple : changement dû à un aléa de livraison
Nommage : nom-ou-abreviation-du-schemaModificationInfo
Par exemple :
Les fichiers doivent, sauf exception et autant que possible, respecter les règles de nommage suivantes :
AAAAMMJJ_idProducteur_nom-du-fichier.extension
AAAAMMJJ : Date de création du fichier
idProducteur : Numéro SIREN sur 9 chiffres pour identifier le producteur
nom-du-fichier Chaîne de caractères dont les termes, en minuscules non accentuées, sont séparés par un tiret du milieu
.extension : Si les règles de formatage sont respectées, l'extension est .csv
Les 3 éléments constitutifs de la chaîne principale avant l'extension sont assemblés en un seul tenant et séparés par un tiret du bas.
Exemple : '20180314_213502388_prenoms-nouveaux-nes-rennes-2017.csv'
Afin d'uniformiser les fichiers produits dans le cadre de schémas de standardisation, il est recommandé de normaliser les intitulés des champs composant chaque standard.
La règle générale préconisée est l'utilisation de l'écriture camelCase où chaque mot composant l'intitulé du champ est écrit avec une majuscule à l'exception du premier.
En complément il est recommandé d'utiliser un préfixe (mot complet ou abréviation) pour l'ensemble des champs d'un standard.
En conséquence, pour le standard des menus, les intitulés des champs sont préfixés par le mot menu suivi des intitulés à proprement dit. Par exemple :
menuCollNom
menuRestaurantIdType
menuRepasType
Aucun caractère accentué ou spécial ne doit être utilisé dans l'intitulé d'un champ. Il est également préconisé de ne pas dépasser 50 caractères pour l'intitulé d'un champ et d'utiliser le singulier pour les mots composant l'intitulé du champ.
Pour garantir la conformité des jeux de données, il est demandé aux producteurs de s'assurer que la structure, les champs et les contenus attendus sont effectivement respectés.
De fait, les fichiers tabulaires doivent, autant que possible, contenir :
Toutes les colonnes, y compris celles dont les cellules ne sont pas renseignées, dans le bon ordre, et avec des en-têtes correctement nommées sur la première ligne ;
Autant de lignes que nécessaire comprenant des cellules dont les valeurs peuvent être obligatoires (elles doivent être impérativement renseignées) ou optionnelles (elles sont seulement recommandées ou soumises à condition de disponibilité / pertinence).
Lexique : Phase d’investigation
La phase d’investigation est la première phase de la création d’un schéma de données. Elle permet de s’assurer que la création d’un schéma est pertinente et en confirme la nécessité.
Pour déterminer s’il est nécessaire de créer ou non un schéma de données, il est recommandé de suivre les étapes suivantes :
Lire attentivement les différentes sections de ce guide ;
Organiser une réunion réunissant des acteurs métiers, techniques et de potentiels réutilisateurs : vous débattrez de la pertinence de la création de votre schéma de données ;
Référencez votre schéma pour entrer en contact avec les équipes d'Etalab et leurs partenaires et bénéficier de conseils pour sa création, d'une visibilité accrue et d'une assistance d'experts.
Exemple 1 : Le ministère chargé des transports souhaite consolider une base nationale des lieux pouvant servir de points de covoiturage. Les collectivités territoriales sont en charge de la création, du recensement et de l'aménagement de ces lieux.
--> Il est pertinent de créer un schéma de données car un grand nombre de producteurs de données doivent produire des données dans un format homogène. Un schéma facilitera la diffusion des prérequis, permettra la validation des données et facilitera l’agrégation nationale.
Exemple 2 : L’INSEE souhaite diffuser le Code Officiel Géographique. Il rassemble des données sur des communes, des cantons, des arrondissements, des départements, des régions et des pays. Ce fichier est actualisé tous les ans.
--> Il est pertinent de créer un schéma car ces données sont des données de référence. Un grand nombre de réutilisateurs est susceptible d’utiliser ces données. Il est primordial que ces réutilisateurs aient accès à une documentation de qualité, que la structure des fichiers des données reste stable dans le temps et que les données publiées soient de bonne qualité.
Le cas des schémas de données en interne Bien qu’il ne paraisse pas nécessaire dans certaines situations de créer et de diffuser un schéma, vous pouvez choisir de le faire. En effet, les schémas de données comportent de nombreux avantages (documentation, montée en qualité, réutilisations, etc.) qui sont bénéfiques, même lorsque les données sont utilisées uniquement en interne.
Une administration centrale diffuse des statistiques d’activité d’un bureau, en open data, de manière annuelle.
--> Avec ces seules informations, il ne semble pas nécessaire de créer un schéma : il n’y a qu’un seul producteur et le potentiel de réutilisation semble limité.
À l’issue de cette phase, vous devriez :
Une fois qu'un schéma est finalisé et référencé sur , il est temps de produire des données conformes à ce schéma.
propose de multiples intégrations avec permettant de spécifier qu'une ressource présente sur est censée être conforme à un schéma.
Il est ensuite possible de procéder à la validation de la ressource par rapport au schéma ou de consulter la documentation du schéma à partir de la page d'un jeu de données.
Il est possible d'indiquer qu'une ressource d'un jeu de données correspond à un schéma depuis l'interface d'administration de data.gouv.fr.
Lorsque vous déposez ou éditez une ressource, vous pouvez sélectionner le schéma correspondant à vos données depuis une liste déroulante.
Le fait d'indiquer que votre ressource est censée respecter un schéma permet de bénéficier de vérifications de la qualité des données et d'indiquer aux réutilisateurs que vos données respectent un référentiel.
Lexique : Phase de concertation
La phase de concertation est la phase centrale de la création d’un schéma de données.
C'est l’étape où plusieurs parties prenantes (producteurs, réutilisateurs, experts métiers et techniques) se rassemblent pour définir et spécifier les éléments essentiels à la constitution du schéma.
Pour spécifier un schéma de données, il est nécessaire de définir :
Pour obtenir ce résultat, il peut être utile de réaliser au préalable un qui présente la structuration des informations. La modélisation ne prend pas en compte les contraintes d'implémentation, elle est un outil de dialogue entre les différents intervenants.
Il est conseillé de :
Référencer votre schéma de manière anticipée
Pour construire un schéma de données de qualité, il est conseillé de :
D'un côté les producteurs, qui connaissent la réalité de leurs données, de la collecte, etc. et qui ont leurs propres usages.
De l'autre les réutilisateurs, avec leurs besoins et leurs difficultés, qu’ils soient déjà connus, « sous le radar » ou en devenir.
Exemples à votre disposition
À l’issue de cette phase, vous devriez :
Qu'est-ce que schema.data.gouv.fr ?
est l’initiative de de référencement des schémas de données publiques pour la France.
Cette plateforme de référencement national permet un accès aux schémas produits par différents acteurs et facilite l’intégration avec des systèmes informatiques par le biais de standards, d’URLs stables, de processus de validation et d’API.
Des schémas de données décrivant des données publiques.
Les schémas de données sont acceptés dès lors que leur l’existence est justifiée par voie :
réglementaire : c'est une disposition réglementaire qui est à l'origine de la définition du schéma de données ;
d’usage : la réutilisation des données décrites par le schéma bénéficie à un grand nombre ou de nombreux producteurs sont amenés à utiliser ce schéma de données.
Standards techniques supportés
Les standards techniques de schémas de données actuellement supportés sont les suivants :
Lexique : Validation d’un schéma de données
Il ne faut pas confondre la validation d’un schéma avec le fait de vérifier que des données correspondent à un schéma.
Pour tous les types de schéma de données, il faut que :
Critères complets de validation
Cette page présente les grands principes de validation des schémas de données.
Pour référencer un schéma de données, vous pouvez :
ouvrir un ticket sur GitHub
Une liste de schémas de données actuellement en phase d'investigation ou de construction est tenue à jour sur cette même page.
--> La marché à suivre est détaillée .
Référencer votre schéma sur vous permettra de bénéficier de conseils de la part d’Etalab et de ses partenaires institutionnels et associatifs. --> La marche à suivre pour référencer votre schéma est détaillée .
Construire un . Il est important de disposer d'un outil visuel qui présente les entités "métier" mais surtout les dépendances et relations entre ces "entités". Ce modèle peut être enrichi de tous les attributs nécessaires au fur et à mesure de la concertation.
Profiter de l’existant. De nombreux standards existent déjà, qu’ils concernent des formats de données ou des formats de champs. Certains standards sont devenus incontournables aujourd’hui, comme pour les dates ou pour les coordonnées géographiques.
Il est possible de retrouver des fichiers de schémas sur (exemple : ).
En complément, pourrait être utile pour définir votre schéma.
Tout acteur est libre de proposer le référencement de schémas sur : administration, entreprise privée, association, citoyen, etc.
Des schémas de données décrits par un standard technique (cf. page ) : les schémas de données décrits uniquement par de la documentation textuelle ou des tableaux ne sont pas acceptés.
: adapté pour la description de données tabulaires (sous forme de tableurs ou de CSV). Ce standard technique utilise le format JSON.
: adapté pour la description de données avec une notion de hiérarchie. Ce standard utilise le format JSON.
: adapté pour la description de données avec une notion de hiérarchie. Ce standard utilise le format XML.
La validation d’un schéma de données est l’étape qui permet de vérifier si celui-ci est conforme au standard technique sélectionné et aux prérequis de . Cette étape s’intéresse uniquement au schéma de données et à la façon dont il est publié.
le dépôt Git doit comporter des tags indiquant les versions du schéma de données. Ces versions doivent respecter la , sous la forme 1.3.2
par exemple ;
Le détail des prérequis propres à chaque type de schéma de données, ainsi que des exemples, sont disponibles .
Etalab se réserve le droit de refuser le référencement de schémas en motivant son refus. Il est encouragé d' préalablement à l’ouverture d’une pull request.
Il est recommandé de référencer un schéma de données le plus tôt possible, dès .
En référençant celui-ci en amont, vous bénéficierez de l’accompagnement d’Etalab et de partenaires tout au long de la création de votre schéma de données : de l'investigation au référencement sur .
entrer en contact
.