Graph & wot : petite contribution

Salut à tous !

Tout récent sur ce forum, je me passionne comme vous pour le sujet d’une monnaie libre.
Et en voyant le graph de la toile de confiance sur le client sakia, je me suis dit que j’allais vous parler d’un petit logiciel que j’avais codé pour simuler des réseaux d’inter-dépendances.
Le temps de reprendre le code afin de vous le présenter, j’ai lu l’excellente contribution de greyzlii, et je me suis senti tout petit face à la maîtrise qu’il semble avoir de la chose.

Mais bon, il n’y a pas de honte. Peut-être que ça vous intéressera ! Il s’agit donc d’un logiciel écrit en Java sur Processing, et faisant appel à une base de donnée MySQL. (j’imagine que ça peut en faire sourire plus d’un, mais bon je ne suis pas un vrai progammeur :yum:)

Le principe
Logiciel écrit lors d’un stage de recherche en paysage, il s’agissait d’établir des liens d’inter-dépendance ou d’impact entre différents composantes du territoire (composantes écologiques ou culturelles).
Bref. L’idée est de pouvoir créer des noeuds de manière graphique, rattachés à des arborescences (qui servent à rien mais rassurent les chercheurs). Ensuite, toujours de manière graphique, de renseigner des relations entre noeuds (en rouge ici) :

Enfin, de « lacher » la structure hiérarchique des arborescences, pour ne retenir que la structure en rhizome des relations d’inter-dépendance ou d’impact (en pointillés ici) :

Les noeuds en bleu sont seulement « impactés », en rouge ils sont seulement « impactant », et les bleu-rouge sont impactés-impactants.

En poussant un peu, j’ai pu rendre visuel le réseau de chaque noeud en y faisant survoler la souris (en rouge ce qui est impacté par le noeud survolé, en bleu ce qui l’impacte, en opacifié les noeud qui n’ont rien à voir avec le noeud survolé) :



C’est normal si vous comprenez pas la langue sur l’image, c’est du portugais ! :grin:

Pourquoi je vous raconte ça

Même si mon sujet de base n’avait rien à voir (le paysage), il me semble que les dernières images pourraient très bien illustrer la toile de confiance de Duniter. On pourrait notamment se rendre compte de la résilience de la communauté en faisant apparaître les noeuds isolés et ceux qui sont intégrés dans un plus grand réseau (dans mon appli, les impacts en cercle sont colorés en vert automatiquement). Ou même deviner si une sorte de hiérarchie apparaît ou non.
Voilà c’était juste un exemple de comment rendre visuel les propriété d’un réseau.


Petit tuto si vous voulez essayer

  1. installer java et mysql ou mariadb sur votre ordi, et y créer une base de donnée nommée « graphlab_db » (peut aussi se nommer autrement mais je vous conseille ce nom)
  2. télécharger l’éxécutable (linux ou windows, pas de version Mac OS pour le moment)
  3. ouvrir l’éxécutable (sur ma distrib je le lance depuis un terminal sinon ça ne marche pas) et renseigner les identifiants qui vont bien
  4. cliquer sur « créer », renseigner un nom, et voici un nouveau graphe !
  5. le logiciel propose tout de suite de créer une nouvelle arborescence…
  6. après il faut renseigner de nouveaux noeuds en jouant de la souris autour du premier noeud. (pour tester, peut importe la forme de votre arbre)
  7. l’important c’est ensuite de créer des relations « rhizomatiques » (rouge) entre noeuds : cliquer une première fois sur un noeud, et une seconde fois sur un 2ème noeud.
  8. quand vous en avez fait assez, cliquez sur « mode « rhizome » » pour jouer avec le réseau créé.

Il y a quelques menus plantages, :confused: soyez indulgents ! Dites-moi si vous ne comprenez pas comment faire marcher tout ça !

6 « J'aime »

Juste une remarque :
Une toile de confiance Duniter est très dense (beaucoup de certifications).
Je pense que visualiser une telle toile en mode graph ne donne pas grand chose (trop fouilli…)

Par exemple si je te sors le graph de la toile actuelle avec Neo4j, ça donne :

Soit il faut filtrer et/ou agréger les informations soit trouver un mode de visualisation plus approprié (ex: matrice d’adjacence, radial tree, etc…)

En tout cas, bravo pour l’initiative, c’est en pratiquant que l’on va approfondir notre compréhension de la toile de confiance.

1 « J'aime »

@greyzlii a raison, c’est d’ailleurs pour ça que la toile de confiance de Sakia n’est pas une vrai visualisation du réseau, mais juste la liste des certificateurs à gauche, et des certifiés à droite. La vue globale est dans l’explorateur, plus complet, mais plus fouilli en l’absence de filtres.

En tout cas merci de donner de ton temps à la compréhension de la toile de confiance. Élément clef de Duniter.

1 « J'aime »

Moi j’adore tout vos travaux sur la WoT, merci à tous, c’est vraiment important pour la suite :slight_smile: Continuez comme ça !

Oui en effet.
D’ailleurs la proposition de mettre en évidence le réseau d’influence d’un noeud survolé n’est peut-être pas pertinente mathématiquement, ou rationellement parlant. Malheureusement je peine à comprendre la portée d’analyse des matrices d’adjacence ou des « radial tree ».
À mon avis faudrait trouver les critères d’analyse objectifs permettant de donner une idée de la « qualité » d’une toile de confiance… Et ceci en même temps que de chercher les bonnes visualisations.
À chaud, je dirais que les qualités recherchées sont un rythme « équilibré » des certifications (ni trop d’un coup, ni trop peu souvent) et une résilience face à la perturbation d’une communauté.
Comment alors retrouver objectivement ces qualités dans un graphe ?
À mon avis il faut mettre en avant les boucles croisées (en prenant en compte leur échelle : plus est sont grandes, plus elle sont précieuses) !!
Par exemple, pour chaque noeud (personne), comptabiliser le nombre d’appartenance à une boucle de 2 personnes, 3 personnes, 4, 5, etc… Et ainsi trouver les zones du graphe où l’entre-soi fragilise la résilience. C’est peut-être un peu simpliste, mais que pensez-vous de l’idée ?
Après pour le rendre visuellement lisible, c’est sûr que ce n’est pas simple.

Illustration des boucles sur mon « graphlab » : elle ressortent en vert pour le noeud survolé (contrairement au rouge et bleu qui représentent un chemin d’influence en impasse)

1 « J'aime »