Accueil Modifications Récentes Blog

GrapheSocial

Traduction en cours publiée sous FairUse? d’un article de Brad Fitzpatrick pour soutenir l’effort de localisation des travaux en cours sur le RéseauSocialPortable. Attention, Seul le lien original fait référence. Vous pouvez aider à produire et raffiner cette traduction en cliquant sur ce lien.. Merci d’avance – xtof

Idées sur le Graphe Social

Auteurs :

Collez ensemle vos amis !

Depuis un bon moment maintenant j'ai bien réfléchi sur le graphe social : agréger le graphe, décentralisation, portabilité de réseau social, etc.

Si vous m'avez croisé récemment sur n'importe quelle conférence, je vous en ai probablement touché deux mots. J'ai reçu de belles réactions à mes présentations verbales/visuelles, en présentant mes slides, mes images de graphiques et en adaptant ma distribution sur vos connaissances, vos expressions faciales vos questions, etc. Tout cela est beaucoup plus difficile à faire dans un billet de blog où le public est si divers, de ce fait je me suis montré paresseux à le placer. J'étais aussi un peu effrayé que si je laissais quelque chose, je serais inondé de commentaires comme Mais qu'en est-il de __________ ? Clairement tout ce que tu dis est faux. Mais il est temps de purger ma tête, aussi le voilà...

Tout d'abord, avant que je n'explique ce que j'ai prototypé à ce stade, et puis ce que je veux construire (ou voir construire), laissez-moi déclarer l'énoncé du problème, tel que je le vois, et les hypothèses sous-jacentes que j'ai faites :

  1. Enoncé du Problème
  2. Buts
  3. Non-Buts
  4. Hypothèses
  5. Statut du Développement
  6. Futur
  7. Comment Vous Pouvez Aider
  8. Conclusion
  9. Travaux Apparentés

Enoncé du Problème :

Il existe un nombre de plus en plus élevé de nouvelles "applications sociales" tout comme d'applications traditionnelles qui ont soit besoin du "graphe social" ou qui pourraient apporter une meilleure valeur aux utilisateurs en utilisant l'information dans le graphe social. Ce que j'entends par "graphe social", c'est comme le décrit Wikipedia, la cartographie globale de toutes les personnes et comment elles sont reliées. J'en parlerai plus en détails plus tard. Malheureusement, il n'existe pas un graphe social unique (ou même plusieurs qui inter-opèrent) qui soit compréhensible et décentralisé. Mais au lieu de ça, il existe des centaines de graphes sociaux dispersés, la plupart étant de qualité douteuse, et bon nombre d'entre eux étant des jardins murés.

A l'heure actuelle, si vous êtes un nouveau site qui ait besoin du graphe social (par ex. dopplr.com) pour fournir une fonctionnalité qui soit amusante et utile (par ex. où est-ce que vos amis vont voyager et quand ?), vous êtes alors confronté à un bien plus gros problème que d'implémenter simplement votre fonctionnalité principale. Vous devez aussi avoir des noms d'utilisateurs, des mots de passe (ou, nous l'espérons, vous utiliserez à la place OpenID), un moyen d'inviter des amis, ajouter/retirer les amis, et la liste peut se poursuivre. Ainsi généralement, vous devez demander des adresses email, vous obligeant à envoyer des vérifications d'adresses email, etc. Puis des emails pour les pertes de nomutilisateur/mots de passe. etc, etc. Si je devais résumer succinctement l'énoncé du problème, ce serait : Les gens sont écoeurés d'enregistrer et de re-déclarer leurs amis sur chaque site. Mais aussi : Développer des "Applications Sociales" c'est beaucoup trop de travail..

La réponse de Facebook semble être que le monde devrait être tout simplement comme les applications Facebook. Bien que Facebook demeure une plateforme extraordinaire et dispose de quelque technologie stupéfiante, il y a beaucoup d'hésitation dans la communauté des développeurs / "Web 2.0" sur le fait de devenir esclaves de Facebook, d'être dépendants de sa bienveillance continuelle, de sa disponibilité, des futurs propriétaires, de ne pas changer les règles, etc. Cette hésitation je pense est bien-fondée. Un "propriétaire" centralisé du graphe social est mauvais pour l'internet. Je ne suis pas en train de dire à quiconque de bannir Facebook ! Loin de là. C'est un produit génial, et je l'adore, mais le graphe a besoin d'exister en dehors de Facebook. MySpace a aussi beaucoup de bonnes données, mais pas toutes. De la même façon, LiveJournal, Digg, Twitter, Zooomr, Pownce, Friendster, Plaxo, et la liste continue. Le plus important est que n'importe lequel de ces sites devrait le posséder ; personne/tout le monde le devrait. Il devrait juste exister.

Buts :#

  1. Le but ultime : faire que le graphe social soit un actif de communauté, en utilisant les données en provenance de tous les différents sites, mais ne dépendant pas de n'importe quelle société ou organisation comme "le" propriétaire du graphe central.
    1. Instaurer un logiciel à but non lucratif et open-source (avec les copyrights détenus par l'organisation à but non lucratif) qui assemble, fusionne et redistribue les graphes provenant des autres réseaux sociaux à l'intérieur d'un graphe global agrégé. Celui-ci est alors rendu disponible pour d'autres sites (ou utilisateurs) tant à la fois via des APIs publiques (pour les petits/occasionnels utilisateurs) ou via des dumps de données téléchargeables, avec un flux de mise à jour / APIs, afin de recevoir les mises à jour itératives du graphe (pour les plus gros utilisateurs)
    2. Puisque les serveurs et bases de données à but non lucratif seront dans un premier temps centralisés, s'assurer que le design soit conçu de telle manière que d'autres puissent faire tourner leurs propres instances, en partageant les données avec tout le monde. Pensez à 'git', pas à 'svn'. Puis il dépendra de vous, propriétaire du site, de quels APIs/serveurs utiliser. Ou faites tourner votre propre instance.
  2. Pour-les-développeurs qui ne veulent pas produire leur propre analyse de graphe à partir des données brutes, les APIS suivantes de haut niveau devraient être fournies :
    1. Equivalence de Noeud, compte tenu d'un noeud unique, disons "brad sur LiveJournal", renvoie tous les noeuds équivalents : "brad" sur LiveJournal, "bradfitz" sur Vox, et 4caa1d6f6203d21705a00a7aca86203e82a9cf7a (ma FOAF mbox_sha1sum). Voir les dias pour plus d'informations.
    2. Arcs sortants et entrants, par noeud. Trouver tous les arcs sortants (où les arcs sont l'équivalent des déclarations, équivalence des confiances, amis, recommandations, etc.) Trouver tous les arcs entrants.
    3. Trouver tous les amis d'un noeud agrégé à partir de tous les noeuds équivalents, augmenter tous ces noeuds équivalents d'amis, et puis filtrer sur le type de noeud de destination. Ceci combine les étapes 1 et 2 et 1 en un appel. Par exemple, Pour 'brad' sur LJ, renvoie-moi tous les amis de Brad, à partir de tous ses noeuds équivalents, si ces noeuds [friend] sont soit des noeuds 'mbox_sha1sum' ou 'Twitter'.
    4. Trouver les amis manquants d'un noeud. Pour un noeud donné, augmente tous les noeuds équivalents, trouve les amis agrégés, augmente=les, et puis rend compte de tous les arcs manquants. Ceci est l'API "laissant l'utilisateur synchroniser ses sites de réseaux sociaux". Cela leur laisse savoir s'ils étaient amis avec quelqu'un sur Friendster et qu'ils ne savaient pas qu'ils étaient aussi amis sur MySpace, ils pourraient vouloir l'être.

    Mais plus généralement, pour les développeurs, permettre de nouveaux types d'applications auxquelles nous n'avons pas pu penser à cette heure.

  3. Pour les utilisateurs finaux
    1. Un utilisateur devrait alors pouvoir se connecter dans une application sociale (par ex. dopplr.com) pour la première fois, idéalement mais pas nécessairement avec OpenID, et se voir présenter une boîte de dialogue comme,
      "Hé, nous voyons à partir de l'information publique quelque part ailleurs que vous avez déjà 28 amis qui utilisent déjà dopplr, présenté en-dessous avec les raisons pour lesquelles nous lui recommandons (quels noms d'utilisateurs ils ont sur d'autres sites). Lesquels voulez-vous comme amis ici ? Ou cliquez 'sélectionnez-les tous''."
      Aussi, à chaque fois que vous utilisez le site, dopplr vous laisse savoir si les amis avec lesquels vous êtes amis ailleurs commencent à utiliser le site et vous avertit être amis avec eux. Tout cela sans avoir à vous réinviter ou que vous ayez à rajouter chacun d'eux sur dopplr... tout simplement parce que vous avez déjà déclaré publiquement votre relation quelque part ailleurs. Note : Quelques sites ont commencé par faire des choses comme ça, avec des bricolages ad'hoc (saisir votre nom d'utilisateur LJ pour faire que vous obteniez vos autres amis LJ à partir de FOAF, ou saisir votre nom-utilisateur email/mot de passe pour obtenir votre carnet d'adresses), mais aucun d'une manière qui ne soit belle et compréhensible.
    2. Délivrer des outils pour l'utilisateur final (probablement un add-on browser) pour laisser les utilisateurs gérer leurs réseaux sociaux (que les sites aient des APIs coopératives ou non) , les laisser synchroniser avec tous les autres, ou faire tout ce qu'ils pourraient aimer, mais selon les propres politiques de l'utilisateur. Alors que les outils ajouteront pour la plupart la majorité de la valeur avec sites non coopératifs, ce qui se passe doit toujours rester clair pour les utilisateurs, de façon que personne ne soit même dupé. Plus à venir plus tard...
    3. Produire des données de graphe aussi portables que le sont les documents sur un ordinateur personnel. (bien que nous n'utiliserons probablement jamais le mot 'graphe' pour les utilisateurs finaux)

Non-Buts :#

  1. Le but n'est pas de remplacer Facebook. En fait, la plupart des personnes à qui j'ai parlé d'adorer Facebook, veulent juste que leurs données déjà publiques soient plus facilement accessibles, et veulent mitiger les craintes des propriétaires de sites à propos du verrouillage de n'importe quelles données sur n'importe quelle plateforme. Les premières discussions avec Facebook sur la participation à ce projet ont été incroyablement prometteuses.
  2. Le but n'est pas de construire un site de réseau social ou tout ce qui serait drôle pour l'utilisateur final. Mais plutôt, le but est de construire les boyaux qui permettront à des milliers de nouvelles applications sociales de bourgeonner, comme Dopplr, etc. Faire une chose et bien la faire. Ce sera la solution la plus puissante au lieu de fusionner des petits graphes sociaux isolés en un grand graphe social et de le répandre massivement, afin que tous puissent l'apprécier.
  3. Le but n'est pas de remplacer Plaxo.
  4. Le but n'est pas de remplacer __________.

Hypothèses :

  1. Le graphe social contient une combinaison de noeuds publics, de noeuds privés, d'arcs publics et d'arcs privés. La concentration ne se fait à cette heure que sur des données publiques, car c'est tout ce que vous pouvez répandre librement sur le net aux autres parties. Même si se concentrer sur les données publiques ne résoud pas 100% du problème, cela résoud véritablement, disons, 90% du problème à 10% de la complexité. Les données privées pourront être ajoutées plus tard, peut-êttre sur une couche plus haute. A cette heure, uniquement des données publiques.
  2. En outre, la concentration se fait prioritairement sur les données "friend", pas sur des données comme des photos, (voir movemydata.org), et non la Date de Naissance, la Ville du Domicile, les champs d'intérêts, etc. Il existe des plans sur la façon de modéliser beaucoup de ce non-contenu public, des données de profil non-friend dans le graphe, et le plan est de faire ça plus tard, mais ce sera définitivement la Phase 2.
  3. Il existe à la fois des sites coopératifs et des sites non coopératifs. Presque tous les petits sites à qui j'ai parlé veulent coopérer, réalisant que leurs graphes sont incomplets et que cela ne relève pas de leur spécialité... ils ont simplement besoin du graphe social pour faire leurs choses. Ils ne soucient pas de savoir d'où il vient et n'ont pas de problèmes à contribuer avec leurs quantités relativement petites de données pour améliorer la qualité du graphe global partagé. Les sites non coopératifs, d'un autre côté sont ceux qui sont déjà énormes et soit voient la valeur dans leur propriété du graphe ou sont suffisamment gros pour être apathiques sur ce sujet. Remarquez svp que "non-coopératif" ne veut pas dire "en train de lutter activement contre", mais plutôt qu'ils aimeraient simplement ne pas mettre la priorité à supporter ça. Dans tous les cas, cela doit fonctionner (et cela fonctionnera) avec les deux types de sites au fil du temps.
  4. Le monde ne migrera pas en masse sur les "protocoles interopérables de réseau social" venant de n'importe qui, le format XML bien connu, etc. Cela n'arrivera pas tout simplement. Ceci doit tout fonctionner en supportant n'importe lequel et toutes les manières d'assembler les données, de notification de changement, etc. Les jolis nouveaux protocoles et les formats XML/YAML/JSON poru les sites coopératifs aideront (et ont déjà commencé à être déployés avec quelques sites coopératifs), mais de manière générale, la plupart des sites ne seront pas coopératifs dans un premier temps, et certains (par ex. MySpace) pourraient ne même jamais supporter ça. Ceci va arriver un site à la fois et sans avoir tout le monde qui se mette à parler dans les mêmes protocoles. Ceci étant dit, ce projet utilisera des standards ouverts, des microformats, etc dans toutes les données qui seront republiées, disons, des widgets (pour ces utilisateurs qui aiment les widgets)
  5. La plupart des utilisateurs n'ont rien à faire du XML, des protocoles, des standards, des formats de données, de la centralisation vs décentralisation, des silos, du lock-in, etc. Vous, lecteur de ce document, n'êtes pas un utilisateur normal. Pour toucher les utilisateurs normaux, nous devons leur fournir de la valeur : quelque fonctionnalité, de la facilité, de l'utilité qu'ils ne pourront trouver ailleurs. La bonne donnée engendre les utilisateurs, et les utilisateurs engendrent les bonnes données. Il y a un paquet d'idées sur la façon de faire tourner ce cycle. Plus à venir là-dessus plus tard, mais heureusement beaucoup des bonnes données sont déjà publiquement accessibles via de bonnes APIs et des formats de données ouverts.
  6. Exiger des add-ons sur le navigateur ou d'autres téléchargements de la part de l'utilisateur final est un non-démarrage. Tout ceci doit tourner en priorité sur le web. Quelques fonctionnalités pour quelques sites (non coopératifs) exigeront l'installation d'un plugin navigateur, mais la plupart n'en auront pas besoin.
  7. Alors qu'un add-on navigateur sera probablement utilisé pour faciliter le "friending/defriending" et l'acquisition de données de la part de l'utilisateur pour certains sites non coopératifs, leurs navigateurs ne doivent jamais être utilisés (et de ce fait leur adresse IP et la chaîne de l'agent utilisateur) pour assembler et rendre compte des données qui ne sont pas à lui. Par exemple, assembler ses amis sur un site comme MySpace (s'il le configure pour) est ok, mais laisser tomber ses amis d'amis n'est pas cool parce que ce ne sont pas ses données. C'est soit ces données de ses amis ou celles de MySpace... définitivement pas celle de l'utilisateur qui a téléchargé l'add-on.
  8. Il est reconnu que les utilisateurs ne veulent pas toujours auto-synchroniser leurs réseaux sociaux. Les personnes utilisent différents sites de différentes manières, et un "ami" sur un site a un sens complètement différent d'un "ami" sur un autre site. Le but est de simplement fournir aux sites et aux utiliseurs les données brutes, et ils pourront les utiliser pour implémenter toutes les règles qu'ils voudront.

Statut de Développement :

En date du 16 août 2007, beaucoup de choses au-dessus ont déjà été prototypées :
  1. obtenu les données vers 5 gros réseaux sociaux, et modélisées dans le graphe
  2. prototypé les implémentations fonctionnelles des APIs au-dessus (beaucoup de place pour les optimisations de performance, cache, et parallélisme, mais voulu d'abord la conformité)
    1. Pour retrouver tous mes amis manquants LiveJournal et Vox, basé sur mes relations ailleurs.
  3. démarrage d'un plugin Firefox pour fonctionner avec MySpace
  4. démarrage d'un site web pour laisser les utilisateurs déclarer leurs noeuds publics supplémentaires, les équivalences de noeuds, et les relations qui ne seraient pas autrement relevées (site web pour inclure des stats amusantes et des widgets, comme une tentation pour que les utilisateurs aillent là, tout comme des téléchargements d'add-on pour navigateur afin de synchroniser différents sites, s'ils choisissent de faire ça)
  5. ...

Futur :

David Recordon a annoncé qu'il allait rejoindre SixApart, essentiellement pour travailler sur ce type de truc. Plaxo fait aussi un boulot intéressant à cet égard. En fait, les sociétés construiront des services gratuits et payants au-dessus de ces données, comme des APIs de confiance/réputation, qui aideront les blogueurs de Movable Type & Wordpress à identifier le spam de commentaire (une fois que vous aurez un commentaire authentifié par OpenID, vous aurez un noeud, mais ensuite utiliserez les APIS pour trouver si ce noeud est bon.

Dans tous les cas, beaucoup de personnes sont en train de travailler là-dessus en prenant différentes approches. Il semble comme si plusieurs groupes convergeaient pour travailler là-dessus ensemble, équivalent à la façon dont beaucoup de groupes se sont rassemblés pour travailler sur OpenID.

Comment Vous Pouvez Aider :

Vous faites tourner un site de réseau social et disposez de quelques données noeuds/edge (utilisateur/ami), ou vous voulez bêta-tester quelques-unes des APIs ? Contactez-nous... rejoignez le Google Group.

Vous êtes utilisateur final et voulez essayer le site web non techie et les outils ? Vous êtes là un peu tôt :) Les accès limités en bêta pour les testeurs seront annoncés plus tard, mais ça se finira par construire ça.

Conclusion :

Je suis excité par cela. Commencez a réfléchir comment vosu pourriez tirer partie de trucs comme ça. Cela va être cool.

Travaux Apparentés et Semi-Apparentés

  • http://adactio.com/journal/1328 - Jeremy Keith semble être aussi complètement là-dedans aussi, peut-être avec une approche légèrement différente. Ceci a besoin d'être attaqué à partir d'une dizaine d'angles.
  • http://microformats.org/wiki/social-network-portability-fr - ramassage d'idées sur wiki. Semble concentré sur les microformats ? Pas sûr. Je maintiens le fait que faire adopter à tout le monde un format ou une API en une fois ne va pas marcher. Je ne veux pas construire quelque chose qui soit juste pour les geeks, mais pour tous les utilisateurs, et qui fonctionne avec les sites populaires actuels.
  • http://movemydata.org/ -- logiciel de bureau pour télécharger vos photos, les synchroniser avec d'autres sites de photos, etc. plus bureau et concentré sur le contenu que ceci.
  • http://www.wired.com/software/webservices/news/2007/08/open_social_net -- même Wired est fatigué des silos.

Vous voulez commenter ?

Laissez vos commentaires sur ce billet, si vous le souhaitez. Ou rejoignez le Google Group, que David a créé.

Define external redirect: AlexSchroeder FairUse OddMuse