Bonjour,
Je ne suis malheureusement pas d’accord pour dire que les données CSV sont structurées. Il s’agit simplement d’une liste de valeurs, séparées par 1 caractère.
Il n’y a pas de schéma définissant formellement les types, les contraintes. Même si certaines initiatives sont intéressantes comme csvlint (1) ou CSV schema (2), il n’y a pas de spécifications officielles par le W3C, l’OMG, l’IETF… Et puis très peu utilisent les initiatives existantes.
Par ailleurs, il n’y a pas de structuration des données (sous forme hierarchique) possible, tout est à plat.
Dans SCDL (3), il y a des informations sur les données, comme des regex sur les prénoms, 1 json utilisable avec goodtables pour les subventions, 1 document pour les adresses locales, etc. Ces informations sur les données sont très intéressantes mais elles ne sont pas systématiques et utilisables par 1 programme informatique pour valider les données (à l’image d’1 schema XSD, ou relaxng ou autre).
Pour les données référentiels, il me semble qu’il y aurait 1 grand intérêt à avoir 1 serveur de terminologies national exposant de façon non ambigue les données.
Par exemple, un service qui exposerait les codes APE/NAF en données :
- le code system (défini de façon univoque permettant de d’attacher les valeurs du jeu de valeurs à l’espace de noms NAFv2 de l’insee)
- le code de la valeur
- le libellé
Il s’agit là de la définition classique des code systems.
Ainsi le code 01.41Z associé à 1 OID ou 1 URL du jeu de valeurs est défini de façon non ambigue, fiable et sémantiquement solide.
Pour former un ensemble national de données qui peuvent se lier et donc avoir une valeur plus grande, tout le monde pointerait sur le ce jeu de valeurs et plus besoin de passer du temps à traiter 0141Z, 141Z, 1.41Z, 01.41Z, etc.
De même une valeur 04, ne veut rien dire toute seule, sortie de son contexte. En associant un espace de noms à cette valeur, elle a une signification non ambigue.
Si l’on prend 1 autre exemple avec le finess, il y a 1 jeu de valeurs activite/modalite/formes (4).
Dans un fichier CSV, la valeur 04 peut representer :
- Psychiatrie pour l’activité
- Réanimation néonatale pour la modalité
- ou Hospitalisation à temps partiel de nuit pour la forme
Je pense qu’il serait bien plus solide d’avoir 3 jeux de valeurs avec 3 OID/URL différentes permettant de spécifier à quoi se rapporte cette valeur 04.
Le mouvement open data est formidable et nous allons avoir de plus en plus de données, mais n’allons nous pas être noyés dans ces données, qui sont redéféfinies sans cesse, qui n’ont pas de signification univoque ? Ne perd-t-on pas une valeur immense sous pretexte qu’il est plus facile de lire 1 CSV que des données structurées (et valides).
Ma question concernant les data scientists était de comprendre si cela ne pose pas question de faire parler des données faibles de sens/de structure, sans définition sémantique et d’en déduire des strategies ?
(1) https://csvlint.io/about
(2) http://digital-preservation.github.io/csv-schema/csv-schema-1.1.html
(3) https://git.opendatafrance.net/scdl
(4) http://finess.sante.gouv.fr/fininter/jsp/pdf.do?xsl=ActModFor.xsl