Présentation finale du projet réalisé en collaboration avec la Haute Autorité pour la Transparence de la Vie Publique et Latitudes, pour améliorer l'accessibilité aux données du répertoire des déclarations des représentants d'intérêts.
Documentation et code source du projet : https://gitlab.com/latitudes-exploring-tech-for-good/hatvp/1819_hatvp
https://www.hatvp.fr/
http://www.latitudes.cc/
Contributeurs : Thibaud Aschbacher, Romain George, Camille Shang
Remerciements : HATVP (Marion Delatronchette, Ted Ramoni, Elodie Cuerq, Yann Adusei), Latitudes (Yannick Morel et notre mentor Pierre-Alain Jachiet)
2. Agenda
Contexte et objectifs de la HATVP
2
Restitution de la phase d’exploration
Architecture fonctionnelle du projet
Méthodologie et gestion de projet
Présentation du travail réalisé
Suites données au projet
21/03/2019 CentraleSupélec – Soutenance finale OSY
3. La HATVP, une institution jeune et dynamique
3
Données clés
Autorité publique
indépendante
Créée en 2013
(Loi relative à la transparence de la
vie publique)
Membre du « Network
for Integrity »
50 personnes
Réception et collecte
d’informations (données
patrimoniales, d’intérêts et
déclarations des lobbies)
Transparence et diffusion
des informations auprès
des citoyens
Vérification et contrôle
(détection de fraudes,
recommandations)
Pédagogie et
sensibilisation (good
practices déontologiques)
• Obligation de déclaration
des activités de lobbying
depuis janvier 2018
(obligation de recensement
depuis 07/2017)
• Enregistrement et
déclaration des actions des
représentants d’intérêts
sur la plateforme AGORA
(télé-service)
• Génération d’un ensemble
de données par la base de
données HATVP, après
contrôles et vérifications
à Il s’agit d’améliorer
l’accessibilité de ces
données aux citoyens
4 missions
Le répertoire des
représentants d’intérêts
21/03/2019 CentraleSupélec – Soutenance finale OSY
4. Promouvoir le potentiel des données concernant les représentants
d’intérêts en les rendant accessibles et utiles pour le public
La HATVP souhaite donner au public les clés de
compréhension du répertoire
4
Tableau de bord permettant aux citoyens de disposer d’informations
compréhensibles et utiles sur les représentants d’intérêts
§ Outils de compréhension
dans le but d’expliquer la
portée des données
• Outils de recherche
• Analyse et mise en
relation des données
§ Outils de visualisation des
données
• Echelle macro :
tendances globales,
synthèse des activités
• Echelle micro : synthèse
par entité, historique
1 2
21/03/2019 CentraleSupélec – Soutenance finale OSY
5. Le répertoire est un JSON contenant les
déclarations des représentants d’intérêts
5
Représentant d’intérêts
• Caractéristiques
• Catégorie d’organisation
• Dirigeants et collaborateurs
• Clients
• Affiliations
• Secteurs d’activité
• Exercices
• Actions
Action
• Caractéristiques
• Domaines d’intervention
• Objet (champ libre)
• Détails
• Responsables publiques
• Décisions concernées
• Actions menées
• Tiers
~ 1 800 ~ 7 500 ~ 31%
représentants d’intérêts
inscrits au répertoire
actions de lobbying menées
et déclarées
des inscrits n’ont rien déclaré
en 2017 et en 2018
+7% depuis septembre 2018 +30% depuis septembre 2018
21/03/2019 CentraleSupélec – Soutenance finale OSY
6. Les solutions existantes montrent qu’une
approche par l’expérience client est nécessaire
6
ONG et Associations
Les plus des solutions existantes Les limites des solutions existantes
Solutions souvent incomplètes, ou trop
centrées sur un unique axe
d’exploitation des données
Disponibilité des données brutes sous
plusieurs formats différents (JSON,
Excel, CSV)
Institutions publiques
Européennes Nationales
Exemples de
solutions
existantes
Visualisation des données sous des
formes pertinentes
Tour d’horizon des indicateurs
pertinents et intéressants à mettre en
valeur Une expérience « client » trop peu
commode, qui restreint l’accessibilité
des données
21/03/2019 CentraleSupélec – Soutenance finale OSY
7. Le répertoire doit être facile d’utilisation et
d’accès tout en donnant du sens aux données
7
Citoyens
Représentants d’intérêts
Responsables publics
Un accès simple et pragmatique
Des cas d’usages multiples … … mais des besoins similaires
Des données ayant du sens
Mieux comprendre le
processus d’élaboration de la
décision publique
Mieux qualifier les
sollicitations en identifiant et
retraçant les contacts établis
Mieux coordonner les actions
(parole commune) et
promouvoir la profession
• Mettre en avant les informations
utiles au public
• Proposer des exploitations
pertinentes des données (Le
Monde, Contexte)
• Visualiser les données
• Faciliter l’accès aux données
notamment à travers un format
tourné vers les analyses (Regards
Citoyens)
1
2
21/03/2019 CentraleSupélec – Soutenance finale OSY
8. 21/03/2019 CentraleSupélec – Soutenance finale OSY 8
L’architecture fonctionnelle du projet conduit à
des livrables bien définis
Extraire les
données
Traiter les
données
Générer les
tables
Charger la
BDD
Générer les
tableaux de
bord
Dataframes
bruts
Dataframes
nettoyés
Tables
CSV à destination
du citoyen
Répertoire
au format
JSON
Tableaux de bord
accessibles sur
metabase.hatvp.fr
BDD
PostgreSQL
Technologies utilisées
Tables CSV pour
Metabase
9. 21/03/2019 CentraleSupélec – Soutenance finale OSY 9
1ère étape : extraire les données
Extraire les
données
Traiter les
données
Générer les
tables
Charger la
BDD
Générer les
tableaux de
bord
Dataframes
bruts
Dataframes
nettoyés
Tables
CSV à destination
du citoyen
Répertoire
au format
JSON
Tableaux de bord
accessibles sur
metabase.hatvp.fr
BDD
PostgreSQL
Technologies utilisées
Tables CSV pour
Metabase
10. L’extraction automatise la mise à plat des
données imbriquées et hétérogènes du JSON
10
61
Caractéristiques du JSON
Profondeur maximale
1 entrée du JSON
1 représentant d’intérêts
Des types de données aux nœuds et
feuilles variés
Enjeux et objectifs de l’extraction
Mise à plat des données,
davantage manipulables
2
3
Préservation de l’intégrité
des données (pas de perte,
pas d’altération)
Indépendance du processus
vis-à-vis du fichier JSON, pour
pérennisation
- Unitaires
- Listes
- Dictionnaires
21/03/2019 CentraleSupélec – Soutenance finale OSY
11. Différents processus et traitements composent
la phase d’extraction pour aboutir à 15 CSV
11
1ère étape
2ème étape
3ème étape
Téléchargement du fichier JSON et conversion en Dataframe
Packages : requests, pandas
Identification des colonnes du Dataframe contenant des données au
format « liste » et « dictionnaire »
Méthodes : get_dict_columns, get_list_columns
• Pour les colonnes contenant des dictionnaires : mise à plat de
l’arborescence au sein du Dataframe lui-même (chaque clé du
dictionnaire devient une colonne du Dataframe)
Méthode : flatten_dict_column
• Pour les colonnes contenant des listes : création d’un Dataframe
« fils » permettant de développer les listes, création d’un « id » liant
les 2 Dataframes, et suppression des colonnes concernées dans le
Dataframe « père »
Méthode : extract_related_table_from_list_column
4ème étape
Itération du processus d’extraction sur les Dataframes et colonnes qui
ont été créés
21/03/2019 CentraleSupélec – Soutenance finale OSY
12. A l’issue de la phase d’extraction, nous
obtenons un ensemble de tables brutes liées
21/03/2019 CentraleSupélec – Soutenance finale OSY 12
13. 21/03/2019 CentraleSupélec – Soutenance finale OSY 13
2ème étape : traiter les données
Extraire les
données
Générer les
tables
Charger la
BDD
Générer les
tableaux de
bord
Dataframes
bruts
Tables
CSV à destination
du citoyen
Répertoire
au format
JSON
Tableaux de bord
accessibles sur
metabase.hatvp.fr
BDD
PostgreSQL
Technologies utilisées
Traiter les
données
Dataframes
nettoyés
Tables CSV pour
Metabase
14. 21/03/2019 CentraleSupélec – Soutenance finale OSY 14
Une démarche itérative a permis de procéder à
un traitement de données pertinent
Trier les données
• Identifier les données à garder
• Comprendre le sens des données
Choisir le format des données
• Analyser le format de sortie des
données requis pour la suite du
projet
• Valider le format des données
1
2
Traiter les données
• Modifier les Dataframes
• Optimiser la durée du traitement
de données
3
Traitement des données
Livrables attendus :
- Tables CSV
- Tableaux de bord
Démarche itérative
Traiter les
données
15. 21/03/2019 CentraleSupélec – Soutenance finale OSY 15
Le traitement des données s’est fait sous trois
volets : trier, re-classifier et re-formater
Trier Re-classifier Re-formater
• Extraire les années des
champ Dates afin de pouvoir
filtrer les exercices par année
dans Metabase
Package : datetime
• Re-formater Montant
dépensé en intervalle
numérique [min, max] depuis
la valeur texte
Méthode : montant_to_min_max
• Re-formater Chiffre
d’affaires en intervalle
numérique [min, max] depuis
la valeur texte
Méthode : ca_to_min_max
• Renommer les noms de
colonnes afin de faciliter la
compréhension et la
manipulation des données
Méthode : rename_df
• Supprimer certaines
colonnes contenant des
informations non nécessaires
pour la visualisation du
répertoire
Méthode : drop_columns
• Remonter les champs
Autres en fusionnant Autres
avec la colonne originale
Méthode : reclassify_label
• Remonter les
Départements
ministériels contenus dans
le champ « Responsables
Publics » en créant une
nouvelle colonne
Méthode :
flattened_responsables_publics
16. 21/03/2019 CentraleSupélec – Soutenance finale OSY 16
3ème étape : générer les tables
Extraire les
données
Charger la
BDD
Générer les
tableaux de
bord
Dataframes
bruts
Répertoire
au format
JSON
Tableaux de bord
accessibles sur
metabase.hatvp.fr
BDD
PostgreSQL
Technologies utilisées
Traiter les
données
Dataframes
nettoyés Générer les
tables
Tables
CSV à destination
du citoyen
Tables CSV pour
Metabase
17. 3 formats de tables sont à créer pour répondre
aux besoins des utilisateurs
21/03/2019 CentraleSupélec – Soutenance finale OSY 17
15 tables granulaires, à
plat et nettoyées
Intérêt : utilisation par
des personnes aguerries
souhaitant comprendre
l’architecture des
données et réaliser leur
propre merge
9 tables de niveau
d’agrégation
intermédiaire
Intérêt : permettre une
bonne lisibilité et une
bonne utilisation via un
tableur
à Travail de fusion des
tables et de
réorganisation des
données à réaliser
2 tables agrégées
Intérêt : utilisation via
l’outil de data-
visualisation : tout le
répertorie est accessible
à travers deux tables
seulement, l’une
statique, l’autre
dynamique
à Travail de fusion des
tables à réaliser
Tables csv à destination du citoyen Tables pour Metabase
18. Pour ces deux derniers formats de tables, des
fusions de tables ont dues être réalisées…
21/03/2019 CentraleSupélec – Soutenance finale OSY 18
Informations générales
Secteur activité
Niveau intervention
Affiliation
Clients
Collaborateurs
Dirigeants
Exercices
Activité
Domaine
d’intervention
Action représentation intérêt
Action menée Resp. public
Décision concernée Tier de l’action
1
2
3
4 4
5
2
2
2
2
2
2
5
55
x Profondeur de la table
Fusion réalisée pour le format agrégé
Fusion réalisée pour le format intermédiaire
Tables granulaires
19. … employant 2 approches, pour une meilleure
représentation des données du répertoire
21/03/2019 CentraleSupélec – Soutenance finale OSY 19
id lobby adresse domaine_intervention
1 Total adresse1 Energies fossiles
1 Total adresse1 Electricité
2 Danone adresse2 Agroalimentaire
2 Danone adresse2 Agriculture
id lobby adresse domaine_inte
rvention :
Energies
fossiles
domaine_inter
vention :
Electricité
domaine_int
ervention :
Agroalimenta
ire
domaine_int
ervention :
Agriculture
1 Total adresse1 1 1 0 0
2 Danone adresse2 0 0 1 1
id lobby adresse
1 Total adresse1
2 Danone adresse2
id domaine_intervention
1 Energies fossiles
1 Electricité
2 Agroalimentaire
2 Agriculture
Table 1
Table 2
Option 1 : utilisation de merge sur les id, cette option a l’inconvénient
d’augmenter considérablement le nombre de lignes de la table
Option 2 : utilisation de merge sur les id et de get_dummies, cette option a
l’avantage de réduire le nombre de ligne à une par lobby lorsqu’elle est
utilisée. En revanche, le nombre de colonne augmente considérablement
20. 21/03/2019 CentraleSupélec – Soutenance finale OSY 20
4ème étape : produire les tableaux de bord
Charger la
BDD
Générer les
tableaux de
bord
Tableaux de bord
accessibles sur
metabase.hatvp.fr
BDD
PostgreSQL
Technologies utilisées
Extraire les
données
Dataframes
bruts
Répertoire
au format
JSON
Traiter les
données
Générer les
tables
Dataframes
nettoyés
Tables
CSV à destination
du citoyen
Tables CSV pour
Metabase
21. La solution « base Postgres – outil de dataviz »
s’est imposée pour la visualisation des données
21
1 2 3
Les outils de visualisation de données offrent des caractéristiques cohérentes
vis-à-vis de notre projet, et nous ont même permis d’approfondir la solution
Solutions clé-en-main
Déploiement rapide de
tableaux de bord, de
manière intuitive,
interactive et modulable
Outils accessibles
Exploration des données par
les plus novices grâce à une
manipulation de tables à la
manière d’un Tableau Croisé
Dynamique (possibilité de
réaliser ses propres analyses)
Dispositifs collaboratifs
Réalisation, partage et
publication dans un catalogue
des data visualisations
réalisées par les utilisateurs,
qu’un administrateur peut
ensuite choisir de déployer
publiquement
Le système de gestion de BDD (nécessaire pour l’utilisation des outils de dataviz) Postgres
était le choix le plus naturel :
Solution déjà utilisée en interne à la
HATVP (facilitation de l’intégration
de notre projet)
Compatibilité du système avec un
grand nombre d’outils de
visualisation
21/03/2019 CentraleSupélec – Soutenance finale OSY
22. Au regard de notre étude, Metabase nous a
semblé être la solution la plus adaptée
Metabase
22
Superset Redash
Application
gratuite et
opensource
Compatibilité
bases de
données
Manipulation des données
à la manière d’un
Tableau Croisé Dynamique
et/ou requête BDD
Exploration des
données
Manipulation des
données via requêtes
Base de Données
uniquement
Manipulation des données
à la manière d’un
Tableau Croisé Dynamique
et/ou requête BDD
Les bases de données les
plus courantes sont
compatibles
Les bases de données les
plus courantes sont
compatibles
Les bases de données les
plus courantes sont
compatibles
L’application est
gratuite à condition
d’afficher « Powered by
Metabase » en bas de la
page du dashboard
Modèle Freemium
disponible
Oui
Proposition riche de
visualisations : tables,
charts, histo., etc.
Tableaux de
bord et
visualisations
Proposition riche de
visualisations : tables,
charts, histo., etc.
Proposition riche de
visualisations : tables,
charts, histo., etc.
Remarques API, gestion des
utilisateurs et mise en
place d’alertes possibles
API, gestion des
utilisateurs et mise en
place d’alertes possibles
Des problèmes de
stabilité à l’usage
Validé par la HATVP
21/03/2019 CentraleSupélec – Soutenance finale OSY
23. L’analyse des données nous amène à proposer 3
visualisations distinctes des données (démonstration)
21/03/2019 CentraleSupélec – Soutenance finale OSY 23
Vue macroscopique
Vue par représentant
d’intérêts
Vue par bénéficiaire d’actions
de représentation d’intérêts
24. Synthèse : 3 livrables offrant une meilleure
accessibilité aux données du répertoire
2421/03/2019 CentraleSupélec – Soutenance finale OSY
Mise à disposition d’un lab
HATVP (metabase.hatvp.fr) à
destination du citoyen
permettant :
• L’exploration des données
• La création de visualisations
à Le lab permettra de
recueillir les attentes des
citoyens et de ne proposer que
les visuels les plus pertinents
Mise à disposition des
données sous la forme
de tables CSV
Création de tables CSV
téléchargeables par le
citoyen :
• Traitement au préalable
afin de faciliter l’analyse
de données
• Proposition de plusieurs
niveaux de granularité
pour rendre accessible
les données
Tableaux de bord pour
visualiser les données
du répertoire
Lab HATVP permettant
aux citoyens de
contribuer à la dataviz
Proposition de trois
tableaux de bord validés par
la HATVP :
• Vue macroscopique
• Vue par représentant
d’intérêts
• Vue par bénéficiaire
d’action de
représentation d’intérêts
25. Les suites données au projet permettront une
intégration totale sur le site officiel de la HATVP
25
Connexion directe à la BDD interne
HATVP
La production des tables devra se faire à
partir de la base de données interne HATVP
(vs. à partir du JSON aujourd’hui)
Mise en conformité des tableaux de
bord à la charte graphique HATVP
Un travail de développement devra être
mené, afin de permettre une meilleure
intégration des tableaux de bord sur le site
21/03/2019 CentraleSupélec – Soutenance finale OSY
26. La transparence et les échanges entre l’équipe
et la HATVP ont été la clé du succès du projet
26
Principaux outils de gestion de projet utilisés
Phase d’exploration Phase de développement
1ère
étape 2ème
étape
• Familiarisation et prise en main des
premiers éléments (JSON, …)
• Benchmark des dispositifs existants
(gouvernementaux et associatifs, en France et
en Europe)
• Identification des besoins clients
avec des premiers échanges et une
journée d’immersion à la HATVP
• Production des différents éléments
définis dans la roadmap (en groupe ou
en silos, selon la nature du travail)
Roadmap & Timeline projet
• Stand-up meetings hebdomadaires
et réunions de travail avec la HATVP
et notre mentor pour baliser
l’avancée du projet et statuer sur les
arbitrages
• Comité de pilotage de la HATVP pour
validation et pérennisation de la
production finale
21/03/2019 CentraleSupélec – Soutenance finale OSY
28. Latitudes x HATVP
Merci pour votre attention
Thibaud Aschbacher, Romain George, Camille Shang
29. Annexe : le planning du projet
2921/03/2019 CentraleSupélec – Soutenance finale OSY
31/10 14/11 28/11 12/12 26/12 9/1 23/1 6/2 20/2 6/3 20/3
Semaines S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16 S17 S18 S19 S20 S21 S22
Phase 1 : conversion du JSON/table & analyses
Version fonctionnelle du script
Analyses du JSON
Intégration des fonctionnalités
Accompagnement pour la mise en production
Phase 2 : visualisation des données
Proposition de maquettes de tableau de bord
Choix de la technologie/Etude de faisabilité
Prototypes de tableaux de bord et d’analyses
Finalisation et transfert
Réunions
Scope Review Point
intermédiaire
Revue
d’avancement
Fin du
projet