Open AntoineAugusti opened 1 year ago
Je suis retombé là dessus en constatant des logs d'erreurs ("Resource XYZ failed to load") trop nombreux dans la console javascript sur la page https://transport.data.gouv.fr/explore, du coup je rajoute mes éléments.
En copiant collant les ids et en faisant une requête, et en filtrant pour éliminer ce qui contient "PROTOBUF", j'obtiens ceci.
Il y a des choses sans rapport (lien qui ne répond pas), mais ça permettra de recouper.
select id, url, dataset_id, format, title from resource where
id in (81307,
81129,
81037,
81312,
81305,
81149,
81311,
79742,
81313,
81061,
65913,
81151,
81319,
81317,
81063,
79034,
81133,
81121,
36515,
81123,
81323,
81325,
80731,
81045,
79037,
81047,
80723,
80730,
81141,
80975,
81135,
81143,
81301,
81299,
80732,
81039,
81127,
79746,
78902)
and title not ilike '%PROTOBUF%'
Résultat:
Le PAN s'attache à référencer des données standardisées. Les JDD suivants publient des ressources GTFS-RT renvoyant du JSON et non du Protobuf.
Est-il possible de faire supprimer ces ressources aux producteurs ? Si on décide que ce n'est pas une tâche de nettoyage et qu'on ne veut jamais l'autoriser on peut aussi modifier notre code pour ignorer ces ressources (par exemple règle `format = 'gtfs-rt' et 'lower(titre) contient 'json').
@etalab/transport-bizdev j'ajoute qu'en tant que réutilisateur, c'est très pénible à gérer : on se retrouve avec N flux, il faut comprendre qu'il y a un souci sur chacun / l'identifier, puis finir par créer un "filtre" plus ou moins bricolé pour enlever ce qu'on devine qui n'est pas du "vrai GTFS-RT", filtre qui a tendance à être fragile (= sur la description, le titre, comme on peut). Donc important à traiter en terme d'utilisabilité de la donnée, en particulier pour ceux qui vont travailler avec l'API "en masse".
J'ai re-cogité à ça et je me le note pour le point d'équipe.
En pratique j'aimerais avoir un moyen de différencier le format sémantique (GTFS-RT), d'un éventuel format physique (= sous forme classique protobuf par défaut auquel cas on ne spécifierait rien, ou sous forme JSON), car les deux pourraient avoir leur utilité dans un cas "binaire".
On pourrait aussi les éliminer purement et simplement, mais fournir une page qui fait cette conversion à la demande ("petit proxy" spécialisé), en étant toutefois attentif à ne pas faire péter la RAM car actuellement, la lecture protobuf n'est pas faite de façon streamée par notre librairie !!!
Bref c'était un peu de "brain-dump", à discuter en équipe, mais ça ne me paraît pas acceptable à titre personnel d'indiquer "gtfs-rt" dans le format sans plus de précisions, quand au final la personne doit "deviner" que c'est du JSON etc.
Une liste actualisée des JDDs qui semblent avoir du GTFS-RT publié en JSON.
pour info, il ne restera plus que Ruban et Isère (38) qui ont été alertés tous les autres sont Oise Mobilité et on déjà été modifiés ce jour (cf mon message initial dans Mattermost)
@etalab/transport-bizdev Il ne reste que Ruban si quelqu'un est motivé pour leur dire de supprimer cette ressource.
@AntoineAugusti je leur envoie un mail. Si jamais ils souhaitent garder le format JSON sur data.gouv.fr, ils peuvent indiquer le format "json" dans le formulaire de data.gouv au lieu de 'gtfsrt' et ça n'apparaitra pas dans transport.data.gouv ?
De ce que je lis dans le code lib/transport à partir de la ligne 436, j'ai l'impression que les JSON ne sont pas importés mais je ne suis pas sûr (et je ne suis pas sûr que ce soit le bon code pour l'import depuis data.gouv.fr)
Merci 👌 Effectivement indiquer le format json
sur data.gouv.fr devrait bien faire disparaitre cette ressource sur le PAN.
Toutefois on peut leur indiquer que les réutilisateurs souhaitent généralement utiliser des standards et que l'usage est bien du Protobuf pour GTFS-RT. Du Protobuf peut se convertir en JSON (ou XML ou autre).
Le code qui ne retient que certains formats pour la catégorie public-transit
est là, pour ta curiosité
Le PAN s'attache à référencer des données standardisées. Les JDD suivants publient des ressources GTFS-RT renvoyant du JSON et non du Protobuf.
Est-il possible de faire supprimer ces ressources aux producteurs ? Si on décide que ce n'est pas une tâche de nettoyage et qu'on ne veut jamais l'autoriser on peut aussi modifier notre code pour ignorer ces ressources (par exemple règle `format = 'gtfs-rt' et 'lower(titre) contient 'json').
Pour trouver ces ressources