Vue subjective de la toile de confiance

:fr: (for english summary or TL;DR, see under :gb:)

Ça fait un moment que cette idée me trotte dans la tête, et des récents retours de la communauté m’ont encouragé à m’y mettre. Voilà le constat :

  • la toile de confiance devient de plus en plus grande, et si la wotmap permet d’en avoir une vue globale, elle devient difficile à lire quand on s’intéresse à des membres ayant peu de certifications car ils sont superposés avec d’autres noeuds
  • les outils comme wotwizard-ui sont utiles pour les organisateurs de communauté au niveau local mais sont compliqués à comprendre pour les nouveaux qui ne connaissent pas bien les règles de la toile de confiance et ont des difficultés à conceptualiser la notion de distance dans un graphe
  • un outil graphique interactif fournissant une vue locale de la toile de confiance autour de la personne intéressée (éventuellement non membre) lui permettrait de découvrir qui, dans son entourage, lui permettrait de rentrer dans la toile et respecter la règle de distance

J’ai donc imaginé un algorithme de positionnement similaire à celui que nous utilisons actuellement, mais qui positionne :

  • le sujet au centre
  • ses connaissances immédiates sur un cercle de rayon 1
  • les connaissances de ses connaissances sur un cercle de rayon 2
  • le reste dans un cercle de rayon 3

J’ai donc ajouté un prototype à DataJune qui donne ce genre de visualisations sur la toile de confiance initiale.

autour de cgeek :

autour de elois :

autour de jeanferreira :

autour de Galuel :

autour de vincentux :

autour de mathieuBize :

Voici un zip avec toutes les images intermédiaires qui montre que l’algo converge très rapidement (~ trois itérations avant d’obtenir un résultat lisible) ce qui est compatible avec une vue dynamique en js dans le navigateur. (lien temporaire https://files.datajune.coinduf.eu/cache/subjective_log.zip).

L’idée est assez simple : on garde la force attractive linéaire des certifications, la force répulsive quadratique, on ajoute un terme d’attraction sur un cercle de rayon donné, et on garde la stabilisation type forceatlas2 pour lisser la transition entre deux itérations et éviter les oscillations :

disp[:] .= 0.0
ring_attraction!(locs, disp, dist)
edge_linear!(g, locs, disp, mass, c_edge)
quadratic!(locs, disp, c_repulsion)
stabilize!(disp, o_disp)
locs .+= disp

Je pose ça là pour l’instant, mais il faudrait transformer ça en appli javascript en utilisant la nouvelle version de sigmajs avec graphology. L’idée est de pouvoir naviguer par clic de nœud en nœud. Une fois que c’est en place, on pourrait ajouter une visualisation qui montre où sont en moyenne les membres référents, ce qui guiderait l’utilisateur vers les portions de la toile dont il doit se rapprocher.

@slaivyn, @midiland, @revolunet, @smichea, @Ninlock, @trayeur, @Paidge, @davidbp845, @1000i100, @bpresles, @Philou
j’ai vu que vous aviez des compétences en JavaScript/TypeScript. L’un de vous serait-il intéressé pour que je le guide dans la conception de cet outil ?

:gb: english summary / TL;DR

I present a new layout algorithm to provide a subjective view of the web of trust allowing people to explore it in an interactive manner. I’m looking for someone to bring this algorithm to an interactive tool that can be used by average user.

5 « J'aime »

C’est une bonne idée. Ça me rappelle le prototype d’un outil de monnaie libre centralisée que j’avais commencé à développer en PHP (genre monnaie M mais déployable par n’importe qui). J’avais utilisé D3JS il me semble à l’époque. Sinon c’est vrai que depuis que j’ai vu la nouvelle release de SigmaJS et que j’ai lvl UP en javascript, le projet d’une nouvelle wotmap ou l’implémentation d’une wotmap dans wotwizard-ui me tente bien. Le pb est que jai la main droite ds le plâtre (d’où mon écriture en abbrégé) et que je suis en « vacances » tout l’été (potager, enfants, repos qd mm). Ensuite, à la rentrée, j’ai un gros projet à finaliser au boulot. Donc, je ne pourrai pas contribuer avant cet automne voir cet hiver.

1 « J'aime »