Le lab : le conseil « les mains dans la donnée »

Pour moi, le conseil repose sur une conviction : on comprend mieux un écosystème quand on a soi-même construit quelque chose avec. « Wait a minute » est né de cette envie – un petit assistant de trajets qui découvre et affiche les prochains passages de bus et de métro aux arrêts que j’emprunte, branché sur les API publiques d’Île-de-France Mobilités (la plateforme PRIM) et sur les jeux de données ouverts franciliens.

C’est un objet modeste mais qui m’a permis de me plonger au coeur de la donnée, d’en comprendre la structure, la complexité,, les qualités et défauts. Après avoir piloté à Île-de-France Mobilités la stratégie d’investissement dans les systèmes d’information voyageurs et l’ouverture des données, et confronté désormais à des besoins équivalents pour d’autres territoires, j’ai voulu reprendre la matière première brute – du point de vue de celui qui la consomme. Voici quelques apprentissages.

Une seule vérité, plusieurs identifiants

Le premier obstacle n’est pas la donnée elle-même : c’est sa mise en cohérence. Un même arrêt existe sous plusieurs identifiants selon la source – identifiant de zone dans l’open data, identifiant dans le référentiel de calcul d’itinéraire, identifiant dans le flux temps réel, identifiants de quai. Aucun n’est directement l’autre. Les libellés varient également d’une source à l’autre pour un même point d’arrêt. Construire un service impose donc de bâtir et d’entretenir sa propre table de correspondance – un travail invisible, jamais valorisé, et pourtant déterminant pour la fiabilité perçue.

Une fois mis en qualité, les référentiels ouverts – liste des arrêts, dessertes, couleurs officielles des lignes, position géographique et leur déclinaison en données topologiques et en plans de transport – sont une ressource précieuse : ils permettent d’implémenter des fonctionnalités comme l’autocomplétion, la géolocalisation, l’affichage aux bonnes couleurs. Les mobiliser, c’est concevoir un service riche, avec néanmoins la préoccupation permanente de la frugalité des appels aux API, particulièrement sensible pour une Région qui fait face à de très gros consommateurs (Google, Apple, Citymapper…).

Au delà de la qualité, la documentation. Un détail, vécu : une fonction de recherche censée filtrer sur un préfixe s’est révélée sensible à la casse – une saisie en minuscules ne renvoyait rien. La qualité perçue d’un référentiel ne dépend pas que de la donnée : elle dépend aussi de l’outil d’accès, de sa documentation et de ses pièges.

Interpréter le temps réel demande du métier

C’est le cœur de l’exercice. La donnée « temps réel » francilienne est hétérogène – en couverture, en fraîcheur, en fiabilité – et il faut le savoir pour concevoir un service honnête. Quelques situations rencontrées :

  • Couverture inégale. Tous les réseaux ne diffusent pas de temps réel, et ceux qui le font ne le font pas partout ni sur toutes les lignes. Encore faut-il distinguer une ligne sans flux d’une ligne… qui ne circule pas ce jour-là (travaux programmés) : une donnée absente n’a pas la même signification selon le contexte.
  • Du théorique déguisé en temps réel. Sur certains réseaux, seul le véhicule en approche est réellement suivi ; les passages suivants sont « complétés » à l’horaire théorique et réémis dans le flux comme s’ils étaient observés. Le seul indice fiable est alors la fraîcheur de l’horodatage d’enregistrement – pas les secondes affichées, qui peuvent être figées.
  • Doublons. Une même course peut être publiée sous deux identifiants – un classique, un synthétique horodaté. L’usager voit alors « deux bus » à la même minute. Il faut les fusionner.
  • Incohérences non résolues. Un départ annoncé supprimé à son terminus mais « à l’heure » quelques arrêts plus loin : la donnée se contredit, et le service doit arbitrer plutôt qu’afficher les deux.

La conséquence produit est simple : ne jamais présenter une estimation incertaine comme une certitude. J’ai introduit des statuts nuancés – « théorique », « information à confirmer », « vient de passer » -, réservé le clignotement d’un passage imminent aux seules données confirmées, et tenu une note interne recensant les défauts observés, source par source, pour les opérateurs des réseaux que j’ai étudiés.

En réalité, plonger dans ces données, c’est photographier un écosystème où les systèmes d’aide à l’exploitation, l’agrégation et la normalisation des flux sont d’une maturité inégale d’un opérateur à l’autre. Ce constat n’a rien d’anecdotique : c’est précisément ce qui se pilote par les spécifications, les contrats d’exploitation et les appels d’offres, mais aussi par un travail constant d’examen et d’exploitation de la donnée, qui, pour un gros réseau urbain ou un réseau régional, peut nécessiter des ressources spécialisées qui interviennent quotidiennement en lien avec les fournisseurs, dont les opérateurs, les réutilisateurs, les usagers et les territoires.

Penser en usager, pas en réseau

Le prototype a été l’occasion de dérouler quelques partis pris qui se déclinent dans la conception d’un service digital pensé pour l’usager du réseau :

  • afficher par arrêt, puis par ligne, puis par sens – l’inverse de la logique d’exploitant ;
  • bannir le vocabulaire interne (« aller », « retour ») au profit de la destination réelle, seule information qui parle à l’usager ;
  • assumer deux régimes distincts : « je pars maintenant » (temps réel) et « je planifie » (horaires théoriques à x jours), qui ne répondent pas au même besoin.

Enfin, la frugalité : une API, même ouverte, a un coût – pour celui qui l’expose comme pour celui qui l’appelle. Le prototype adopte une approche économe (cache partagé entre visiteurs, interrogation du seul écran regardé, arrêt du rafraîchissement quand la page n’est plus au premier plan). Un bon réflexe de réutilisateur : la sobriété d’accès fait partie du cahier des charges.

Scope

  • Réutilisation de données ouvertes (open data IDFM, plateforme PRIM)
  • API temps réel (SIRI Lite), calcul d’itinéraire, référentiels
  • Qualité et gouvernance de la donnée voyageur
  • Information voyageurs multimodale
  • Prototypage assisté par IA
  • Stratégie d’appels d’offres SAEIV / billettique / information voyageurs

En bref

  • Réseaux : bus (plusieurs réseaux avec des exploitants différents) et métro parisien
  • Sources : plateforme PRIM d’Île-de-France Mobilités, open data francilien
  • Techno : PHP et JavaScript, sans dépendance ; application web installable (PWA)
  • Développement : best effort, assisté par IA
Écran métro · temps réel
Panneau métro « Wait a minute » - premier relevé Panneau métro - deuxième relevé, les minutes ont diminué Panneau métro - troisième relevé
Le métro, façon panneau lumineux : deux prochains passages par sens, rien d'autre. D'un relevé à l'autre, les minutes défilent et un passage imminent (« 0 min ») apparaît - ce qui est affiché n'est fiable que si la donnée l'est.
Info-trafic intégrée
Panneau métro ligne 13 avec bandeau info-trafic : bus de remplacement
Le message d'exploitation (ici un bus de remplacement pour travaux) est rattaché à la ligne concernée, sous le panneau - au format et à la fraîcheur près de ce que publie la source.
Écran bus
Écran bus « Wait a minute » : un bloc par arrêt, puis par ligne, puis par sens
Le bus : un bloc par arrêt, puis par ligne, puis par sens - la destination réelle. À droite, un badge de correspondance ferrée (« vers B », « vers C N U ») généré automatiquement lors de l'ajout dynamique d'un arrêt.

Sur smartphone - métro. Le passage imminent clignote. Rien ne clignote tant que la donnée n'est pas confirmée.

Sur smartphone - bus. Chaque passage porte une pastille de statut : ondes vertes « à l'heure », horloge grise « théorique », ondes ambrées « +4 min de retard ».
La règle : ne pas confondre estimation et certitude
  • à l'heure (temps réel confirmé)
  • retard
  • avance
  • horaire théorique
  • information à confirmer
  • vient de passer
Six statuts, parce que la donnée reçue n'a pas toujours la même valeur. Un passage ne clignote - signal « dépêchez-vous » - que lorsqu'il est confirmé en temps réel.

Ce que l’IA change – et ce que cela dit aux décideurs

Ce prototype a été développé sur mon temps libre, en quelques soirées, avec l’aide d’un assistant de programmation par IA. Il y a trois ans, le même résultat aurait mobilisé une petite équipe pendant plusieurs semaines. C’est une opportunité pour challenger la donnée et les opérateurs de façon plus simple que par des indicateurs contractuels, ou convaincre les décideurs de l’intérêt de la donnée et de sa qualité.

Ce qui était réservé à une poignée de réutilisateurs aguerris devient accessible à un développeur seul – voire à un agent d’une collectivité, d’un bureau d’études, d’une association d’usagers. La barrière technique du réemploi s’effondre. Mécaniquement, la valeur d’une politique d’open data se déplace : la question n’est plus « est-ce que des gens vont s’en servir » – ils vont s’en servir, et de plus en plus -, mais « la donnée ouverte est-elle complète, à jour, normalisée, fiable ? »

Ouvrir la donnée ne suffit donc pas. Il faut l’ouvrir en qualité, ce qui suppose trois conditions cumulatives :

  1. un cadre – réglementaire et légal – qui pose l’obligation (la loi d’orientation des mobilités en a fixé les bases) ;
  2. des systèmes conçus pour produire, normaliser et exposer cette donnée, avec des niveaux de service définis ;
  3. des contrats d’exploitation qui imposent aux opérateurs la production et la transmission d’une donnée temps réel de qualité – couverture, fraîcheur, complétude, formats ;
  4. une cellule d’exploitants de la donnée, au plus proche de l’AOM.

Le corollaire est très opérationnel : ces exigences doivent figurer noir sur blanc dans les appels d’offres des systèmes d’aide à l’exploitation, de billettique et d’information voyageurs. C’est là, en amont, que se joue la démultiplication des réemplois en aval – MaaS, information voyageur tierce, accessibilité, recherche, aménagement. À l’heure où l’IA fait tomber le coût de la réutilisation, un euro investi dans la qualité de la donnée à la source produit un rendement collectif sans commune mesure.

« Wait a minute » n’est pas un produit et n’a pas vocation à le devenir. C’est un banc d’essai – une manière de garder la main sur la matière, pour continuer à parler juste avec les autorités organisatrices, les exploitants et les industriels : gouvernance de la donnée voyageur, définition contractuelle du « temps réel », niveaux de service de l’information, feuille de route MaaS. Le terrain nourrit la stratégie.