Recherche globale fédérée

J’ai vu l’issue anglophone sur ce sujet :


Et les annonce du sujet sur la roadmap de JoinPeerTube et sur FramaBlog.

J’ai croisé des solutions centralisante mais ayant le mérite d’exister : TrouveMaVideo et peertube-index

J’ai aussi oui-dire qu’à Aquilenet, il ont développé un script pour s’auto-abonner à toutes les instances publique pour nourrir leur moteur de recherche d’instance peer-tube. Il y a peut-être des choses à mutualiser de ce coté aussi.

Mais dans tout ce que j’ai lu, l’annuaire, l’index me semble toujours centralisé.

J’ai décris l’an dernier dans les grande ligne comment je verrais un annuaire décentralisé et de quoi effectuer des recherches dedans. Ce n’est probablement pas 100% réutilisable pour le cas de PeerTube, mais si ça peu nourrir les réflexions sur le sujet :

Mon annuaire idéal :

  • est fédéré par un service d’annuaire de service
  • se contente d’exposer des fiches et laisse à une autre service le soin de les agréger pour y rechercher selon ses algorithmes
  • découple l’api et les interfaces d’utilisation
  • dispose de mécanisme d’encouragement à l’unicité (qui utilise un services de recherche dans la fédération pour annoncer les doublon exacte ou proche, et ceux à chaque renouvellement également)
  • permet de signer ses contenu avec une (voir plusieurs) identités membre de la toile de confiance (pour augmenter la confiance porté à cette fiche, et peut-être sa visibilité dans les recherches
  • dispose de contenus périssable, renouvelable, avec notification d’approche de péremption à l’auteur
  • dispose d’un mécanisme de signalement des résultats proche, d’antériorité, et de dernière actualisation pour faciliter l’ajustement d’algo de pertinence de résultat comme de jugement humain de pertinence avec les info fourni
  • dispose d’un mécanisme de transmission de plainte à destination de l’auteur de tout contenu publié (pour placer les gestionnaire d’annuaire en position d’intermédiaire technique et non d’éditeur)
  • disposant d’un mécanisme de suppression ou de déréférencement de contenu par l’administrateur d’un nœud d’annuaire (raison légal entre autre)

Un service d’annuaire de services inclurait :

  • des fiches de services avec essentiellement :
    • le type de service (annuaire de services, annuaire d’usager, moteur de recherche spécialisé ou générique, annuaire d’offres de bien et services, annuaire de demandes, moteur de conversion inter-monnaies (change), annuaire d’offre ou de demande de change…),
    • l’url de l’api du service,
    • la signature numérique de qui propose ce service (et donc la possibilité d’identifier si c’est un membre ou non et d’ajuster sa confiance et la visibilité du service pour qui utilisera cette fiche dans des index),
    • la signature numérique de l’auteur de la fiche (est-ce le gestionnaire de l’annuaire ou l’auteur du service)
    • le logiciel assurant le service (et donc potentiellement les interfaces disponible pour en tirer profit, avec des tags par exemple)
    • la version du logiciel assurant le service
    • la date de première soumission de la fiche
    • la date de dernière mise à jour manuelle de la fiche
    • la date de dernière mise à jour automatique de la fiche
    • des tags libres d’usage
    • des conditions d’utilisation (ouvert à la consultation, ouvert à l’édition (création de compte, ajout de contenu), utilisable sous conditions (et probablement un jour l’émergence d’un format pour exprimer de manière formelle des conditions))
  • des mécanismes de signalement / demande de suppression à l’attention du gestionnaire de l’annuaire
  • des mécanismes de synchronisation / fédération inter nœud (ajout, modification, suppression)
  • un mécanisme de déréférencement automatique des services non disponible (voir un suivi du taux de disponibilité)

Mon algo de recherche idéal :

  • s’appuie sur des données fédérées
  • est capable d’identifier des résultats proches (CaSsE différente, phonétiquement identique ou proche, inversion de lettre, l33t style…) et de privilégier l’exactitude (avec une pondération ajustable)
  • est capable de croiser avec des données géographique quand disponible et désiré, (pertinence selon distance, limite de distance…)
  • m’indique si les données sont signées numériquement par un membre ou non (ou si elles sont signées par une signature elle même signé par des membres), et me permet d’influencer le tri de mes résultat avec se critère ou de ne pas le faire.
  • est capable de filtrer par tags, avec la possibilité de combiner ces tags avec des ET et de OU et des () et d’affecter une pondération aussi bien qu’un caractère rédhibitoire au respect de ces conditions.
  • propose une pondération inter critère par défaut tout en permettant à l’usager (de l’api au moins) de l’ajuster à ses préférences.

PS : si besoin de clarification, dite le moi !

PS2 : si quelqu’un est motivé et suffisement à l’aise en anglais pour voir si ce que je propose fait doublon et si ce n’est pas le cas indiquer ma proposition d’architecture décentralisée sur le github de PeerTube, j’en serait ravi !

1 Like