Un problème des standards

Lucidiot Informatique 2017-10-05
On critique souvent les standards parce qu'ils se multiplient puisqu'ils ne satisfont personne. Mais voici une autre conséquence.


Cette année, je suis en licence professionnelle. Nous devons entre autres mener deux projets informatiques au cours de la formation et notre premier projet tourne autour de l'Open Data de la SNCF. Honnêtement, par rapport au reste des entités françaises à peu près publiques, la SNCF fait un plutôt bon Open Data. Notamment, elle propose plus que de simples tableaux Excel mal formatés, elle propose une API et respecte le standard récent dédié à l'Open Data sur les transports, le GTFS ou General Transit Feed Specification. En français, spécification générale des flux de transit. Vous pouvez en consulter la spécification complète chez Google Developers.

Cette norme n'utilise aucun format standard dans l'industrie de l'informatique comme le JSON ou le XML mais juste ce pauvre CSV (Comma-separated values ou valeurs séparées par des virgules), martyrisé par les français et leur alphabet trop compliqué et devenu en quelque sorte « valeurs séparées par des points-virgules et entourées d'apostrophes doubles. »

Le CSV a pour avantage d'être facile à traiter sous Linux : On pourra facilement récupérer les quelques premiers noms de gares d'un fichier de stations de la SNCF avec une ligne assez simple :

cat stations.txt | cut -d',' -f2 | tr -d '"' | head

Il a cependant pour gros inconvénient d'être vraiment peu utilisé dans les technologies web. Mais le pire, ce n'est pas le CSV, et de loin, c'est le format GTFS lui-même.

GTFS a été initialement conçu pour les transports en commun, comme les bus, tramways, métros, funiculaires, navettes, navettes fluviales, transports à la demande, et surtout pour l'interopérabilité (gestion de plusieurs transporteurs, des types de transports, etc.), mais pas pour quelque chose comme la SNCF.

Le problème de la SNCF est qu'elle ne propose pas un contenu dans un format "moins standard", bien mieux adapté à ses propres données. Il n'y a pas de place réellement disponible pour indiquer le numéro du train, sa « marque » (TER, Intercités, TGV, Corail Lunéa, etc.), alors la majorité du format GTFS qu'elle fournit n'est qu'un patchwork de données assez hasardeux et sans documentation aucune. Ce patchwork est suffisamment frustrant pour m'avoir donné envie d'écrire un petit article sur mon site pour relâcher un peu de ma frustration.

Ce problème que je peux actuellement constater alors que je construis un parseur GTFS pour notre base de données est un problème récurrent chez bon nombre de standards : Il est impossible de créer un standard qui conviendra à tout le monde. Je crois qu'il est bien plus préférable d'avoir des dizaines de formats différents, un pour chaque fournisseur de données, avec une documentation suffisamment bonne pour rendre le format compréhensible et faciliter l'implémentation, plutôt qu'un format unique où personne ne peut mettre ses données correctement.


Commentaires

Il n'y a pour l'instant aucun commentaire. Soyez le premier !