Journal Pour revenir sur les buts du projet Seeks, un moteur de recherche collaboratif et décentralisé

Posté par (page perso) .
Tags : aucun
14
5
août
2010
Un petit journal pour profiter de la sortie d'un article court rappelant les buts du projet Seeks, et remettre les idées en contexte tout en générant de la discussion. L'article, en anglais, est ici : [http://www.p2pnet.net/story/42507]

Pour rappel, Seeks est un projet en cours de développement d'un moteur de recherche collaboratif et décentralisé.

L'idée qu'il développe est simple : regrouper automatiquement les utilisateurs effectuant des requêtes identiques ou similaires sur les moteurs de recherche traditionnels, afin qu'ils puissent collaborer sur les résultats.

Cette idée relativement simple permet de mettre en place à la fois un système de filtrage collaboratif de l'information, et un système de publication directement vers les groupes de recherche automatiquement créés, tout en assurant le respect des informations privées des utilisateurs.

Aujourd'hui le projet termine le développement d'un méta-moteur libre. La prochaine mouture incorporera la recherche d'image et est prévue pour dans une dizaine de jours.
Cet automne viendra le déploiement de la DHT (Distributed Hashtable) et du réseau pair-à-pair permettant aux noeuds Seeks de communiquer entre eux.

Bien entendu l'aide est toujours la bienvenue, que ce soit en développement ou tout simplement en aidant le projet à grimper les échelons en votant pour lui sur Drumbeat ([http://www.drumbeat.org/project/seeks-project-decentralized-(...)]).

Commentaires, remarques et idées sont toujours les bienvenues !
  • # Beau travail!

    Posté par (page perso) . Évalué à 5.

    Je crois comme vous qu'un certain nombre de services aujourd'hui centralisés et donc monopolisés par les gros acteurs comme google seront à l'avenir décentralisés, et donc contrôlés directement par les utilisateurs. Bien entendu, cela pose tout un tas de questions techniques intéressantes! J'essaye moi même de développer une version décentralisée d'un site comme reddit, mais ce n'en est pour l'instant qu'à l'état d'ébauche.

    Petite remarque: un lien direct vers le site du projet aurait été judicieux :) http://www.seeks-project.info/site/
    • [^] # Re: Beau travail!

      Posté par (page perso) . Évalué à 2.

      Merci. En simplifié, Seeks a pour but de construire des sessions de recherche collaboratives qui s'apparenteraient à de petits reddit... Il y a peut être des ponts à faire !
  • # Question habituelle

    Posté par . Évalué à 5.

    Comment vous positionnez-vous par rapport à Yacy ? Le fait de ne pas avoir de Java est déjà un gros plus, mais est-ce que vous êtes en contact avec eux? Où comptez être capables de faire communiquer vos softs à moyen/long terme?
    • [^] # Re: Question habituelle

      Posté par (page perso) . Évalué à 5.

      Yacy utilise un modèle découvreur / index (crawler/indexer) conventionnel. A l'inverse Seeks ne 'découvre' (crawl) pas, il réunit les utilisateurs, rapporte les résultats des moteurs existants et permettra aux utilisateurs de proposer du contenu directement aux groupes dynamiquement créés. Ce contenu prendra la forme de résultats de recherche, qui pourront être notés, enrichis, etc... par les utilisateurs.

      Avec tout le respect dû aux développeurs de Yacy, celui-ci a des bases théoriques erronées (il ne peut calculer le pagerank à cause de sa décentralisation, et donc fournit des résultats avec un ordre très approximatif, qui le rend en pratique inutilisable). De manière générale, le modèle crawler/indexer en décentralisé est une mauvaise idée, cf. [http://pdos.csail.mit.edu/~rtm/papers/search_feasibility.pdf].

      De plus Yacy fait passer les requêtes aux autres noeuds qui recherchent dans leurs propres indexes. C'est à dire que ces noeuds là voient les requêtes en clair (de ce que je connais du projet). Seeks à l'inverse peut réunir les utilisateurs sans révéler les requêtes elles-même, ce qui est un plus.

      Donc en résumé Seeks construit directement un modèle alternatif au modèle crawler/indexer, tout en se servant des moteurs conventionnels pour mieux glisser vers un modèle complètement contrôlé par les utilisateurs.
      • [^] # Re: Question habituelle

        Posté par . Évalué à 1.

        C'est une sorte de DMOZ ?

        Depending on the time of day, the French go either way.

        • [^] # Re: Question habituelle

          Posté par (page perso) . Évalué à 4.

          Pas vraiment. Comme un moteur de recherche conventionnel mais avec des possibilités de collaboration et de traitement de l'information notamment.

          Pour mieux comprendre, il y a une petite série de documents ici :
          [http://seeks-project.info/wiki/index.php/Documents]

          Les transparents des présentations aux RMLLs offrent une entrée en matière simple et un peu illustrée.
          • [^] # Re: Question habituelle

            Posté par . Évalué à 8.

            Comme je suis un garçon un peu simplet, je vais résumer ça pour moi à : moteur classique+une sorte de dmoz.
            Comment allez-vous gérer les boites qui vont venir polluer vos résultats avec des bots pour améliorer leur classement?

            Depending on the time of day, the French go either way.

            • [^] # Re: Question habituelle

              Posté par (page perso) . Évalué à 3.

              A question simple réponse simple, il est prévu de gérer le 'spam' avec les outils existants. Un filtre Bayésien aujourd'hui a une efficacité mesurée proche de 99% de classifications correctes sur les pourriels.

              Pour aller plus loin cependant, quatre niveaux supplémentaires vont jouer :

              - un système de liste noire distribuée (et signée, voir ci-dessous).

              - le filtrage collaboratif comme son nom l'indique filtre et personnalise les résultats. L'ordre des résultats pour un utilisateur A, est influencé plus fortement par les notations des utilisateurs ayant effectué des requêtes et notations similaires aux siennes.

              - un système de confiance basé sur des signatures PGP similaire aux 'keyring' existants par ailleurs.

              - un niveau final d'élimination et de vérification par les utilisateurs. On ne trompe pas mille fois mille personnes n'est-ce pas, mais on trompe mille fois un seul algorithme. Les résultats non certifiés seront affichés sur le côté (à la place de la pub :) ), en attente de vérification.

              Au niveau réseau, des protections sont déjà en place pour contrôler la pollution rapide et les attaques de noeud par refus de service.
  • # Partage de signets

    Posté par . Évalué à 4.

    Ça n'a pas de rapport immédiat avec le sujet, mais ça fait un petit temps que je tourne pour chercher une sorte de del.icio.us installable chez moi, vu que je n'ai pas envie de mettre mes signets chez eux.
    Et par ailleurs, sur le principe, même si je ne suis pas sûr de la possibilité d'un service efficace de recherche qui puisse concurrencer google en rapidité et précision, je pense que le marquage (pourquoi pas automatique) par mots-clés des marques pages peut être un moyen de recherche efficace, et efficace pour faire participer les utilisateurs et facile pour faire tourner des serveurs persos, qui seraient autant de portes d'entrée dans la base générale, et de réplication de bouts de la base.
    En tout cas bravo pour votre travail, que j'essayerai sans doute quand la table distribuée sera au point.
  • # Essai concluant

    Posté par (page perso) . Évalué à 2.

    J'ai fait quelques essais de recherches, et le tout me semble concluant.

    Ce qui est agréable, c'est qu'on a l'impression de pouvoir chercher activement et intelligemment grâce aux fonctions de tri.

    * Le lien « similar » est étonnant, et m'a semblé plus efficace que l'équivalent chez google.
    * Le mode « cluster » n'a pas vraiment fonctionné, et ne m'a pas semblé faire un tri pertinent. Mais il est peut-être utile lorsqu'on ne sait pas vraiment ce qu'on recherche. Je ne comprends d'ailleurs pas tout à fait ce qu'il fait: est-ce un équivalent de « similar » qui affiche les groupes trouvés plutôt que le contenu d'un groupe?
    * À mi-chemin entre « cluster » et « similar », il me semblerait utile de pouvoir faire un tri par similarité à partir d'une sélection de trois ou quatre réponses (avec une case à cocher par exemple).


    En tout cas, je l'adopte pour voir ce que ça donne au quotidien. J'installerai vraisemblablement la version collaborative quand elle sera prête, histoire de lui donner toutes ses chances.
    • [^] # Re: Essai concluant

      Posté par (page perso) . Évalué à 3.

      "* Le lien « similar » est étonnant, et m'a semblé plus efficace que l'équivalent chez google."

      Effectivement, nous ne faisons pas la même chose. Là où google fait de la recommendation de liens, nous avons choisi de faire du réordonnement basé sur la similarité avec le lien choisi.

      "est-ce un équivalent de « similar » qui affiche les groupes trouvés plutôt que le contenu d'un groupe?"

      Oui c'est tout à fait ça. Le clustering est véritablement utile dans certaines situations, si l'on ne sait pas ce qu'on cherche ou bien si l'on souhaite opérer une segmentation des résultats.
      Pour un meilleur fonctionnement il faut pousser un peu la recherche avec l'expansion, puis 'clusteriser'.

      A ce propos, cf. l'aide, qui contient quelques 'trucs' :
      [http://www.seeks-project.info/wiki/index.php/User-Manual_See(...)]

      "À mi-chemin entre « cluster » et « similar », il me semblerait utile de pouvoir faire un tri par similarité à partir d'une sélection de trois ou quatre réponses (avec une case à cocher par exemple)."

      Les nouvelles idées sont les bienvenues. Il est possible de créer des tickets ici :
      [http://redmine.seeks-project.info/projects/seeks]
      ou de venir discuter et faire fermenter les idées :
      [http://seeks-project.info/wiki/index.php/Contact]
      • [^] # Re: Essai concluant

        Posté par . Évalué à 2.

        C'est vrai que cest sympa
        par contre cest terriblement instable chez moi
        erreurs de curl et plantages régulier

        mais pareil, j'utiliserai surement régulièrement dans quelques temps
        • [^] # Re: Essai concluant

          Posté par (page perso) . Évalué à 1.

          "plantages réguliers"

          A qualifier, nous n'avons aucun ticket de plantage ouvert, et aucun retour de faute terminale sur plusieurs centaines de téléchargements et plusieurs noeuds publiques administrés.

          A rapporter donc, mais c'est très probablement une erreur d'installation.
          • [^] # Re: Essai concluant

            Posté par . Évalué à 2.

            Aug 05 19:21:50.550 7f4aaa7fc710 Error: curl error: connect() timed out!
            ...
            Aug 05 19:21:51.649 7f4aabfff710 Error: curl error: Operation timed out after 3000 milliseconds with 16829 bytes received
            ...
            Aug 05 19:59:25.828 7f93457ea710 Error: curl error: transfer closed with outstanding read data remaining


            des erreurs (qui ne m'empêche pas d'obtenir des résultats à mes recherches) qui n'ont peut être rien à voir avec seeks en lui même, mais je trouve ces erreurs étonnantes, vu qu'en lançant curl en ligne de commande avec les uri précisés, je n'ai pas de probs

            mais surtout


            seeks: miscutil.cpp:781: static sp_err sp::miscutil::string_append(char**, const char*): Assertion `text_to_append' failed.
            Abandon


            ca m'arrive de temps en temps, mais je n'ai pas encore déterminé le scénario qui permette de reproduire ces erreurs à coup sur. Promis dès que je trouve, je fais un bug report
            Et l'install est le package arch
            • [^] # Re: Essai concluant

              Posté par (page perso) . Évalué à 1.

              "Aug 05 19:21:50.550 7f4aaa7fc710 Error: curl error: connect() timed out!
              ...
              Aug 05 19:21:51.649 7f4aabfff710 Error: curl error: Operation timed out after 3000 milliseconds with 16829 bytes received
              ...
              Aug 05 19:59:25.828 7f93457ea710 Error: curl error: transfer closed with outstanding read data remaining

              des erreurs (qui ne m'empêche pas d'obtenir des résultats à mes recherches) qui n'ont peut être rien à voir avec seeks en lui même, mais je trouve ces erreurs étonnantes, vu qu'en lançant curl en ligne de commande avec les uri précisés, je n'ai pas de probs"


              La raison ici :
              [http://www.seeks-project.info/wiki/index.php/Seeks_Configura(...)]

              "Et l'install est le package arch "
              Ach, Arch, nous ne sommes pas responsable :)
              • [^] # Re: Essai concluant

                Posté par . Évalué à 4.

                merci, en effet le crash est lié à ça

                si les toutes requêtes vers un moteur de recherche timeout, un buffer semble être vide et un assert dans la fonction sp::miscutil::string_append(char**, const char*) échoue, le programme quitte.

                Je testerai avec les versions de dev ce soir, et si le problème est toujours reproductible, je posterai un bug report

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.