-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ajouter explications sur les séparateurs et Table Schema #117
Comments
Merci de soulever ce point ! Métaphoriquement, je pense qu'on est sur une boite de Pandore remplie de 🍿. Néanmoins le sujet mérite d'être adressé. Je voudrais notamment écrire un guide ou enrichir notre page de doc.data.gouv.fr (cf existant https://doc.data.gouv.fr/a-propos/que-publier-et-comment-le-publier/#données-tabulaires) sur "comment produire un CSV" à destination du "grand public" et cette question y a toute sa place. Je vais commencer par essayer de lister les "problèmes":
Mon avis à chaud :
Je ne suis pas sûr qu'être parfaitement libéral dans notre documentation facilite la vie des producteurs et réutilisateurs. Etre très libéral dans les outils que nous écrivons, en revanche, oui. Mais malheureusement ou heureusement nous ne maitrisons pas l'ensemble de la chaîne de production et je pense que nous gagnerions à faire la promotion de bonnes pratiques qui seraient une balance entre contraintes et libertés. |
Je commente car ça a un impact chez nous sur Transport (et dans ma vie en générale haha!).
2, 3, 4: historiquement tout cela (de mémoire) me semble venir quasi uniquement du comportement par défaut des tableurs en "culture française". Je ne sais pas si ça vient de Quattro Pro, de Excel ou de Lotus 123, mais bon l'idée est là. Il y a bien le RFC 4180 mais ce n'est qu'informatif (https://chriswarrick.com/blog/2017/04/07/csv-is-not-a-standard/). À titre personnel, je trouve qu'on peut avoir un rôle relativement éducatif et un effet de levier en incitant le plus de monde, tant que possible, à standardiser sur UTF-8, séparateur |
J'oubliais l'encodage ! UTF-8 of course ;-) |
J'ajouterais aussi le retour chariot à la liste des variations possibles :P Ce qui est fait avec https://contribuer.transport.data.gouv.fr/, c'est que théoriquement, un contributeur peut produire son csv comme il le veut (séparateurs, guillemets, retours chariots), que sa contribution est parsée avec la librairie papaparse, puis remise en csv avec la même librairie, mais en utilisant toujours les mêmes conventions. Ce qui nous permet d'avoir une cohérence dans le temps de notre base nationale, mais sans être trop tatillon sur ce que soumet le contributeur. Il y a un point assez clair sur ce qu'on ne doit pas faire (et que l'on fait actuellement 🤦 ), c'est dire dans la doc du schéma qu'on veut des |
On voit bien avec le guide Etalab et la doc SCDL (entre autres) qu'en terme de recommandations (CSV, séparateur Ma position était en effet d'enlever au maximum les règles qui n'ont pas lieu d'être dans le cadre - bien spécifique - de l'ouverture sur datagouv des données conformes à des schémas Table Schema. Processus qui, à long terme, tendrait à se généraliser et qui permet de se concentrer dès à présent sur l'essentiel du travail : le contenu et faire en sorte qu'il soit conforme au schéma. Dans ce cadre, les règles de formatage font, au mieux, perdre du temps pour rien car les logiciels majoritairement utilisés par les producteurs (Excel, Calc... bientôt publier.etalab.studio !) s'en chargent et, au pire, bloquent des utilisateurs qui ne sauront pas comment les respecter. De toute façon les fichiers CSV vont continuer à être publiés suivant différentes caractéristiques (séparateur, dialecte, encodage...). C'est inévitable et ça serait contre-productif de punir les producteurs de données qui ne respectent pas des règles plus contraignantes. Par conséquent, celles-ci n'ont pas lieu d'être et il faut que l'outillage s'adapte. En fait on est déjà dans cette situation, mais ça irait mieux en le disant. 🙂 |
Le problème d'interprétation de ces recommandations est souvent dû aux difficultés rencontrées par les réutilisatrices ou réutilisateurs français de fichiers csv qui ouvrent ces fichiers avec Excel. En effet il me semble que par défaut excel ne gère pas bien l'ouverture des fichiers csv utilisant comme séparateur la virgule ni dans certains cas, l'encodage en utf-8. Pour leur simplifier la vie, certains producteurs ou prescripteurs ont préconisé d'utiliser le ; comme séparateur de champs afin de rendre plus accessible les fichiers csv En retour cela peut gêner certains outils comme CKAN qui par défaut utilisent le séparateur , pour la librairie de prévisualisation recline.js ou d'autres extensions utilisées pour cette fonctionnalité. Préconiser la virgule comme séparateur de champs ne me semble pas ajouter de confusion pour les productrices ou producteurs de données à condition bien sûr que tout le monde préconise la même chose ;) Je n'avais pas compris que tableSchema s'appliquait à la production de données en .xsl, .xslx ou .ods. Je pensais que c'était exclusivement réservé à la production de données en .csv. Ça m'a toujours semblé bizarre de publier des fichiers opendata en utilisant les formats propriétaires de Microsoft et j'ai pu constater que cela posait parfois des problèmes dans les chaînes de traitement de données. Côté OpendataFrance on a longuement hésité sur le séparateur à recommander et finalement on opterai plutôt pour une recommandation en faveur de l'utilisation de la virgule. Si c'est contre-productif on peut l'enlever. |
(J'ai hésité sur le lieu pour avoir cette discussion, au final ici me paraît le plus adapté. En effet, les guides Etalab ont vocation à mon avis à faire référence en la matière et s'appliquer de façon canonique aux différents projets et produits *.data.gouv.fr)
Les séparateurs dans les fichiers tabulaires sont un sujet de désaccords récurrent. Pourtant, pour les producteurs de données, les séparateurs ne devraient avoir aucune espèce d'importance. Par exemple, l'utilisation des schémas Table Schema permet justement de supprimer certaines de ces préoccupations qui sont autant de frictions à l'ouverture des données.
La conversation qui a lieu depuis le 28 avril sur la page de la Base nationale consolidée des lieux de covoiturage illustre bien les différents problèmes.
Premièrement, il y a à la base l'éternel débat du point-virgule contre la virgule et la croyance qu'il y aurait un "standard CSV" à respecter. Il serait possible sur ce point de compléter le guide d'Etalab afin de casser les idées reçues sur le CSV. Les utilisateurs pourraient ainsi s'y référer.
Deuxièmement, le plus important pour moi serait d'expliquer que les séparateurs n'ont la plupart du temps pas d'importance. En particulier, documenter le fait que la spécification Table Schema n’a aucune notion de séparateur puisqu'on travaille sur des données tabulaires et pas que des CSV. En clair, un fichier sera valide s'il respecte le schéma, quel que soit le séparateur utilisé et même quel que soit son format tant qu'il est supporté (
.csv
,.xlsx,
.xls
,.ods
...).La documentation du SCDL, avec ses "recommandations pour le formatage des fichiers" rédigées par OpenDataFrance, entretient également cette confusion. Nous allons tâcher d'y remédier : https://git.opendatafrance.net/scdl/documentation/-/issues/12, mais je pense que ça sera plus facile de convaincre OpenDataFrance si Etalab montre la voie.
Enfin, il faudrait enlever toutes les mentions de séparateurs dans la documentation des schémas, en l'occurence celle du schéma des lieux de covoiturage. Pour clarifier encore davantage, il faudrait préciser que les producteurs peuvent choisir le séparateur (et le format tabulaire) qu'ils préférent.
Qu'en pensez-vous ? @geoffreyaldebert @abulte @fchabouis
The text was updated successfully, but these errors were encountered: