Réflexion sur l’accès au contenu pertinent de manière personnalisé sur diaspora*

Cet article de blog deviendra certainement une discussion sur loomio lorsque j’aurais le temps de le traduire. Pour l’instant, l’écrire en Français est plus facile pour moi. Comme mes réflexions peuvent tout de même intéresser (et qu’on peut préférer lire en Français), je les partage ici. Voir aussi cet ancien article sur le même sujet.

Il y a trop de messages dans nos flux

Un réseau social sert majoritairement à partager et à échanger. S’il est correctement utilisé, il peut même permettre une veille efficace et devenir la principale source d’informations. Il suffit pour cela de suivre suffisamment de personnes postant du contenu intéressant. Malheureusement, il peut vite devenir compliqué de faire le tri dans la montagne de messages qui s’entassent dans notre flux. Le nombre de messages qui nous semblent pertinent peut décroître, jusqu’à tomber bien bas, ce qui fait perdre un temps précieux voire nous fait quitter le service.

L’automatisation n’est pas la solution

La solution de Facebook (je ne sais pas pour Twitter, mais j’imagine qu’il y a une pratique similaire) à ce problème consiste à étudier notre usage et notre activité pour filtrer de manière automatique notre flux en nous proposant principalement les personnes et sujets avec lesquels nous interagissons majoritairement. Cette approche pose un problème de cercle vicieux : nous sommes bien évidemment moins susceptible de cliquer sur un contenu qui ne nous est pas présenté, comme nous n’interagissons pas avec lui il nous sera moins souvent présenté, etc. De plus, elle implique de faire de l’analyse des usages et des données, ce que nous essayons de limiter dans le logiciel Libre pour des raisons de respect de la vie privée. À cela, il faut rajouter le fait qu’un ordinateur peut se tromper. Finalement, personne mieux que nous même n’est capable de savoir si un contenu ne nous intéresse ou pas.

Les hashtags, une solution partielle

Nous avons vu que suivre des personnes intéressantes n’est pas une solution suffisante. Ces personnes peuvent parfois poster du contenu qui ne nous intéresse pas. Pire, certaines personnes peuvent parfois poster un contenu qui nous intéresserait, mais poster majoritairement du contenu sans intérêt. Nous pouvons aussi ignorer complètement l’existence d’une personne qui nous intéresserait beaucoup et ne jamais la découvrir. La solution de Twitter et diaspora* à ce problème est le système de hashtag. On peut ainsi se mettre à suivre non pas des personnes mais des sujets, ce qui résout le problème évoqué ci-dessus. Malheureusement, certaines personnes peuvent squatter un hashtag, voir en ajouter systématiquement des dizaines pour tenter de donner de la visibilité à leur message (cas moins régulier sur Twitter où les tweets sont limités à 140 caractères pour le moment). De plus, il est aussi possible d’utiliser un hashtag pour parler de son contraire. Par exemple, une personne postant un article parlant d’un problème sous #windows pourra accompagner son message d’un commentaire comme « Ca ne serait pas arrivé sous #linux ! ». Si nous sommes intéressé par les messages parlant de #linux et donc nous suivons ce hashtag, ce message apparaîtra dans notre flux, alors même qu’il ne parle que du système de Microsoft.

Les expressions booléennes, une suggestion pour diaspora*

Cette idée me trotte dans la tête depuis des années. En fait, je la décris déjà dans la première suggestion de cet article qui date de 2012 ! Il s’agirait de permettre à l’utilisateur d’écrire une requête avec trois entités différentes : les utilisateurs, les aspects et les tags, ainsi qu’avec trois opérateurs (en plus des parenthèses pour déterminer la priorité) : le ou, le et et le non. Un utilisateur pourrait ainsi rechercher #linux && !#microsoft. La réponse à cette requête serait un flux de tous les messages contenant le tag #linux et ne contenant pas le tag #microsoft. Si on se rend compte en plus qu’un utilisateur spamme le tag #linux, on peut aussi l’enlever de ce flux en rajoutant && !@userSpammer. Et voilà, un flux tout propre avec juste ce qui nous intéresse !

Ces requêtes doivent ensuite pouvoir être épinglées pour se retrouver dans la colonne de gauche de la page des flux, afin de pouvoir être sélectionnée facilement sans avoir à réécrire la requête. On pourrait même vouloir lui donner un nom et la définir comme flux par défaut, et, pourquoi pas, combiner les requêtes entre elle toujours avec les trois opérateurs.

Les questions qu’il reste à trancher pour avoir des spécifications complètes :

  • # pour les tags et @ pour les personnes sont devenus des standards de fait. Qu’utiliser pour désigner un aspect ?
  • &&, || et ! sont bien connus des développeurs. Ce sont cependant des symboles techniques. Doit-on les utiliser ou bien chercher quelque chose d’autres ? Google utilise l’espace pour dire &&, OR pour dire || et – pour dire ! dans sa barre de recherche par exemple.
  • Qu’est-ce que vous allez bien pouvoir offrir à Marien et Taratatach pour qu’ils m’aident à implémenter ça ?

{3} Thoughts on “Réflexion sur l’accès au contenu pertinent de manière personnalisé sur diaspora*

  1. Du pour et du contre

    Étant moi-même programmeur les opérations booléennes, évidemment, ça me parle et je trouve ça facile à utiliser, c’est presque une langue maternelle pour moi. Par contre, pour travailler avec des artistes, je peut dire que c’est vraiment pas le cas de tout le monde (et c’est bien normal, ils ne me demandent pas de chanter, je ne leur demande pas de coder).

    Ceci dit, on peut faire un éditeur de formules booléennes, ce qui rendrait l’édition de telles formules beaucoup plus accessible.

    L’autre problème de FB, G+ et D*, c’est qu’il n’y a pas de distinction entre ajouter un contact et suivre un contact. Si tu ajoutes un contact parce que tu veux juste discuter avec lui, tu dois suivre tout ce qu’il poste, même si c’est pas super intéressant. On arrive donc à la pollution du flux.

    Je trouve que la solution de G+ est pas trop mal: les collections (à ne pas confondre avec les communautés). Un utilisateur peut créer autant de collections qu’il veut et lui donner le titre qu’il veut. Les autres utilisateurs peuvent s’abonner uniquement à cette collection.

    Pour rejoindre ta solution Flaburgan, c’est un peu comme si tous les posts de la collection avaient le même hashtag et qu’on utilisait la formule booléenne: #TitreDeLaCollection && @user.

  2. « && », « || », « ! » et « ~ » ne parlent aux non informaticiens, il ne me semble donc être une mauvaise idée de les utiliser. Pourquoi tout simplement ne pas s’inspirer de Python et donc d’utiliser des mots ? Dans une première version, on peut imaginer ne gérer que seulement les versions anglaises, mais dans une version supérieure un système de traduction pourrait être introduit pour ceux que même quelques mots simples en anglais rebutent.
    Parmi les opérateurs, il pourrait être intéressant d’avoir aussi le ou exclusif (xor). Il m’arrive d’utiliser le tag « windows », mais aussi « windaube » et « windows10 », il pourrait donc être également intéressant d’introduire les expressions régulières.
    On peut probablement imaginer plein d’autres extensions pour les utilisateurs avancés. À terme, si de nombreuses étaient implémentés, cela ferait un énième nouveau langage. Une idée pourrait donc être de proposer un langage basique comme proposé dans l’article et ensuite utiliser SQL avec de fausses tables, dit d’une autre manière des tables symboliques qui ne représentent pas nécessairement l’implémentation réelle en terme de base de données. Ainsi ça évite de faire un énorme parseur étant donné qu’il y aurait « juste » à faire des « tables virtuelles » et les utilisateurs ont juste à apprendre les tables et leurs relations plutôt qu’un nouveau langage similaire à tant d’autres mais probablement bien moins évolué et extensible que SQL.

  3. Et si on couplait à la fois l’idée du suivi d’un contact/aspect en affinant sur un ou des tags précis afin de mieux cibler le continu intéressant ?

    Exemple concret :
    Je ne suis pas Vegan et ça ne m’intéresse pas, mais dans mes contacts j’ai des Vegan qui postent autant du #vegan #no-meat (etc) que du #firefoxos ou #python (par exemple)

    Ben j’aimerai bien pouvoir filtrer le contenu de cette personne en particulier en fonction des tags qui m’intéressent uniquement et qu’il publie lui même.

    Est-ce selon vous tous, pertinent ? réalisable (et en quelle mesure) ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>