les microformateurs

13 April 2008

Brian Suda - Encodage XFN, extraction et visualisations

Filed under: ressources, réseausocial, traduction — Christophe Ducamp @ 8:24

Par Brian Suda. Traduction d’un article publié initialement le 21 février 2008 chez Dev.Opera. Seul le lien original fait référence.

Introduction

Dans cet article, j’exposerai un bel aperçu de XFN - le microformat pour décrire les relations entre personnes. Je regarderai rapidement ce que c’est et quel est le balisage requis pour ajouter de l’information sur vos sites, avant d’aller ensuite plus en profondeur, pour regarder les avantages dont vous pourrez tirer profit de cette donnée en l’extrayant et en l’utilisant de différentes façons. Extraire la donnée est plus facile que vous ne le pensez - il existe probablement une librairie déjà disponible pour votre langage ! Sinon, il existe aussi quelques services web qui pourraient faire le boulot que je vous présenterai en-dessous.

Remarquez que j’ai créé quelques exemples complexes pour accompagner les sections CSS et XSLT - vous pouvez télécharger le code ici.

Qu’est-ce que XFN ?

XFN veut dire “XHTML Friends Network” et c’est l’un des tout premiers microformats créé par le Global Multimedia Protocol Group. Il a émergé de la tendance générale à publier des liens vers d’autres sites dont vous appréciez la lecture. Sur votre blog, cela s’appelle une blogroll - il est commun de penser aux personnes à travers leurs sites web. Leur URL est une représentation de cette personne ; elle fait partie de son identité en ligne. XFN est une tentative pour codifier ces relations en utilisant du HTML standard.

XFN est très facile à utiliser - vous utilisez simplement quelques mots-clés intuitifs pour décrire les relations que vous avez avec d’autres personnes. Il existe un document XMDP qui décrit toutes les valeurs possibles XFN. Ces valeurs sont très basiques et capturent un large spectre de possibilités. J’avancerai avec vous à travers quelques exemples en-dessous. XFN est volontairement laissé vague ; il permet aux définitions de plus facilement se tordre dans le temps, et par conséquent nous obtenons une liste plus courte. Une liste plus verbeuse aurait été autrement trop longue et vous n’auriez pas pu décider exactement quelles valeurs utiliser, et elle n’aurait jamais pu être suffisamment granulée pour quiconque. Aussi XFN colle aux 80% des usages et ce rapidement et facilement, et en utilisant quelque chose de CHIC ou d’autres microformats pour coller à tous les cas particuliers.

Ces valeurs XFN sont ajoutées à l’intérieur des attributs rel (rel est un raccourci pour “relation”) des éléments a que vous utilisez pour lier ces personnes. L’attribut rel peut aussi apparaître sur l’élément link, mais du fait que les microformats se préoccupent de rendre les méta-données plus visibles, nous nous concentrerons seulement sur l’élément “a“. Un bel aspect de l’attribut rel est qu’il peut prendre un ensemble de valeurs séparées-non-ordonnées. Ceci veut dire que vous pouvez produire des déclarations XFN composées très simplement en listant plus d’une valeur, si la personne que vous liez a plus d’un type différent de relation envers vous. Ce qui suit est un tableau des valeurs possibles XFN, classées en catégories :

Amitié
(une
sélection)
Phys. Pro. Géo
(une
sélection)
Famille
(une
sélection)
Roman-
tique
Identité
contact met co-worker co-resident child muse me
acquaintance colleague neighbor parent crush
friend sibling date
spouse sweetheart

Implémentation

Ainsi prenons par exemple, Chris Mills, l’éditeur de mon article. Il a une bio d’auteur sur dev.opera.com, ainsi nous pouvons utiliser ce lien :

<a href="http://dev.opera.com/author/974138" rel=”">
Chris Mills</a>

Maintenant que j’ai ma structure basique, j’ai besoin de placer les valeurs appropriées pour mes relations avec Chris. Si je démarre simplement à gauche de la liste XFN et la parcours, je peux voir quelles valeurs je peux utiliser. La première catégorie est Amitié, qui décrit le niveau d’amitié que Chris et moi avons. Je sais comment contacter Chris, aussi contact est certainement approprié. Pour la plupart des personnes, ce pourrait être la relation maximale possible, mais je connais Chris mieux que cela, aussi je pourrais utiliser acquaintance. J’ai aussi travaillé avec Chris avant sur d’autres projets et l’ai rencontré à plusieurs occasions comme sur SxSWi et d.Construct, et nous avons pu discuter lors de plusieurs breuvages, par conséquent je pense que friend est la description qui colle le mieux. Quelques personnes réservent le terme friend aux personnes à qui elles laisseraient voir leurs enfants, quelques personnes sont amies avec quelqu’un qu’elles ont simplement rencontré durant 5 minutes ou admirent. Dans la catégorie amitié, il est possible de n’avoir qu’une seule valeur, aussi je baliserais Chris comme un friend. Le terme friend est souvent symétrique, ce qui veut dire que si je considère Chris comme un ami, il est probable qu’il me considère aussi comme un ami, mais ce n’est pas requis. Chris pourrait être encore bien plus strict sur sa définition de friend et de ne considérer seulement cette valeur que pour les quelques personnes sur la liste destinataires de sa carte de voeux. La définition de friend est ouverte à interprétation et changera avec le contexte et le temps. Du fait que la catégorie Amitié ne peut avoir qu’une seule valeur au plus, j’ai sélectionné le plus haut niveau de relation, friend.

<a href="http://dev.opera.com/author/974138" rel="friend“>
Chris Mills</a>

La prochaine catégorie est Physique. La seule option est met, et j’ai rencontré Chris à plusieurs occasions, aussi je peux ajouter cela à la valeur rel.

<a href="http://dev.opera.com/author/974138" rel="friend met“>
Chris Mills</a>

L’ordre des valeurs XFN n’est pas important ; le fait qu’elles soient séparées par des espaces veut dire que toutes ces valeurs s’appliquent. La prochaine catégorie est Professionnel. Celles-ci décrivent quelques relations professionnelles que vous pourriez avoir eues avec des personnes. Chris et moi travaillons tous deux dans le même secteur et écrivons pour dev.opera.com, par conséquent je dirais qu’il est un colleague. L’autre option est co-worker, mais nous ne travaillons pas pour la même société, aussi je n’utiliserai probablement pas ça. Ces deux valeurs professionnelles sont symétriques, aussi si je suis un “co-worker” de Chris, alors il est aussi un “co-worker” avec moi, et il en est de même pour “colleague” - si nous travaillons tous les deux dans le même secteur, alors nous devrions tous les deux nous considérer l’un et l’autre comme “colleague”.

<a href="http://dev.opera.com/author/974138"
rel="friend met colleague“>
Chris Mills</a>

Dans le reste des catégories, je ne trouve pas quelque valeur qui corresponde à Chris, aussi je n’ai pas besoin d’ajouter quelque valeur supplémentaire à mon attribut rel.

La dernière catégorie dans XFN est Identité, elle n’est utilisée que pour vos propres sites, pas pour les sites des amis. La seule valeur ‘rel‘ est ‘me‘ qui, quand elle est symétrique, permet la consolidation d’identité à travers différentes pages sur internet. Si mon site web suda.co.uk a un lien vers mon profil flickr, je peux utiliser rel="me". Puis son profil flickr, je peux utiliser rel="me" pour faire un lien arrière vers suda.co.uk. Si je peux faire ça sur toutes mes différentes pages profils sur Twitter, upcoming et autres, alors n’importe quel crawler XFN rel-me pourra commencer à construire un profil unique de moi sur le Web, tout cela sans avoir à dire à chaque site isolé ce qu’il en est de tous mes autres profils.

Outils pour créer XFN

Si cela vous semble difficile à mémoriser, pas de panique - il existe beaucoup d’outils pour vous aider. Il existe une version web du créateur XFN en différentes langues pour vous aider à démarrer rapidement. Il existe aussi des plug-ins pour Dreamweaver et Wordpress. De plus en plus de plugins sont en train d’apparaître, aussi soyez sûr de vérifier la page wiki sur XFN pour votre langage favori ou votre système de gestion de contenu.

Problématiques avec XFN

Il y a toujours eu quelques problématiques ouvertes avec XFN. Je ne m’y attarderai pas ici, mais ci-dessous je souligne quelques points communs et regarderai comment nous pouvons avoir intérêt à les connaître.

  • Par exemple, il n’existe pas de moyen de dire ex-ami de 1990-2000. XFN existe dans le maintenant. C’est plus un cas limite et ne peut pas être représenté dans XFN.
  • La définition de ‘friend’ est peut-être trop vague. C’est une zone grise - quelques-uns la considèrent trop vague, et d’autres disent de laisser le langage évoluer et la définition de “friend” changera tout autant. Personnellement je suis d’accord avec la dernière proposition - si nous nous efforçons d’améliorer la précision de la terminologie, nous pourrions sur-compliquer les choses et aboutir à 400 définitions supplémentaires de l’amitié que personne n’utiliserait de toutes façons.
  • XFN n’a pas suffisamment de relations professionnelles telles que “manager” ou “vendor”. Le truc génial à propos du HTML est que vous pourriez écrire rel="co-worker manager". Un parseur XFN trouverait encore la valeur ‘co-worker’ et d’autres parseurs spécifiques extrairaient vos valeurs personnalisées telles que ‘manager’. Les microformats sont aussi basés sur les pratiques existantes, aussi du fait que de plus en plus de personnes publient leurs relations professionnelles, celles-ci pourraient être classées dans le XFN à une date ultérieure. Rien n’est figé dans la perpétuité.

Comment extrayez-vous la donnée XFN ?

Il y a beaucoup de façons pour que vous puissiez extraire la donnée provenant du HTML, et j’étudierai dans cette section quelques-unes des plus populaires.

JavaScript

Javascript complète naturellement le HTML, ainsi c’est un langage idéal pour parser le XFN à partir du DOM. Le Javascript pourrait être chargé à l’intérieur de la page onLoad, il pourrait faire partie d’un bookmarklet, ou même être compilé dans un script greasemonkey. Voici un peu de code simple pour que vous puissiez démarrer.

// get all 'a' elements

var links=document.getElementsByTagName("a");
var xfnValues=['friend','acquaintance','contact','met','co-worker','colleague','co-resident','neighbor','child','parent','sibling','spouse','kin','muse','crush','date','sweetheart','me']

// boucle et recherche les attributs rel

for(var i=0;i<links.length;i++){
  var link = links[i];
  // regarde pour voir si le lien a un attribut rel et href
  if(link.getAttribute("href")&&link.getAttribute("rel")) {
    // reçoit la valeur rel
    var rel=link.getAttribute("rel");
    // boucle à travers les valeurs connues XFN
    for(var j=0;j< xfnValues.length;j++) {
      // cherche des correspondances
      var regex=new RegExp('\\b'+ xfnValues[j]+'\\b',"i");
      if(rel.match(regex)) {
        // fait quelque chose ici
      }
    }
  }
}

Drew McLellan a un outil génial rel-Lint, qui vous aidera à trouver les problèmes communs avec votre XFN et d’autres balisages.

CSS

En utilisant CSS, vous pouvez facilement styliser les données XFN. Il existe beaucoup de façons d’y parvenir, y compris les couleurs d’arrière-plan, ou en utilisant :after {content:"xxx" } pour ajouter un astérisque ou une image. Wolfgang Bartelme a produit quelques très belles images à cette intention qui sont une licence généreuse.

Les valeurs XFN sont ajoutées aux attributs rel des éléments a.
Ainsi, la première partie de toute déclaration CSS serait de styliser le a, à partir de là nous construirons des valeurs spécifiques XFN pour le stylisme.

a{ background-color: yellow; }

Ceci donnera un arrière-plan jaune à tous les liens, mais j’ai besoin d’être plus spécifique ici - ensuite je voudrais ne cibler que les éléments a avec un attribut rel. Ceci est possible avec le sélecteur d’attribut CSS.

a[rel] { background-color: yellow; }

Ceci n’appliquera le style qu’à tous les liens qui contiennent aussi l’attribut rel. L’étape suivante est de s’assurer que les attributs rel sélectionnés ont des valeurs XFN - nous ne voulons tout simplement pas n’importe quel attribut rel.

a[rel="friend"]{ background-color: yellow; }

Bien que cela soit correct, ça ne trouvera que des éléments a qui ont une valeur unique rel de friend. Souvenez-vous que l’attribut rel peut prendre une liste de valeurs séparées. S’il y a d’autres valeurs sur l’attribut rel, ce sélecteur ne collera pas et le style ne sera pas appliqué. Aussi, j’ai besoin d’ajouter un autre morceau d’information à ma syntaxe de sélecteur CSS.

a[rel~="friend"]{ background-color: yellow; }

En utilisant ~=" au lieu de simplement =, cela dit au navigateur d’accorder la chaîne friend dans n’importe quelle liste de valeurs séparées-par-des-espaces, comme tout simplement friend. Remarquez que ceci n’est pas supporté dans IE6, mais ce l’est dans la plupart des autres navigateurs modernes. Pour finir, il est aussi possible de chaîner ensemble ces valeurs :

a[rel~="friend"][rel~="co-worker"] { background-color: red; }

Ceci vous permet de styliser les combinaisons de personnes de valeurs XFN, je pourrais par exemple styliser les amis en jaune, mais les amis avec qui je travaille aussi auraient un arrière-plan rouge. Ceci est possible pour n’importe quelle combinaison, friend vs. friend et colleagues, muse vs. muse et met ; en utilisant CSS il est facile de cible ces relations particulières.

XSLT

XSLT est conçu pour convertir XML vers un autre format - vous pouvez très facilement extraire la donnée provenant du HTML en utilisant XSL et XPath, tant que le HTML est bien formé. (S’il ne l’est pas, vous pouvez utiliser une application comme TIDY pour le nettoyer). Pour toutes les personnes qui sont plus à l’aise avec Javascript qu’avec XPath, la plupart de la connaissance DOM se transfère, vous aurez juste besoin de vous familiariser avec la nouvelle syntaxe. Laissez-moi vous présenter un exemple. Tout d’abord, j’ai besoin de trouver tous les a n’importe où dans le DOM Tree. Pour faire ça, je démarre avec le chemin //.

//a

Ceci trouvera n’importe quel élément a à n’importe quel niveau de profondeur (//) à partir du noeud racine, dans notre cas html. C’est très proche du document.getElementByTagName('a') en JavaScript. L’étape suivante est de raffiner notre sélection à tous les éléments a qui ont un attribut rel de friend.

//a[@rel='friend']

Les crochets ([]) fonctionnent presque de la même façon qu’avec nos crochets CSS. Le @ est utilisé pour dire que c’est un attribut, ainsi @rel est l’attribut rel et il doit être égal à friend. Le problème avec cette expression XPath est le même qu’avec la problématique CSS ; il trouvera les valeurs rel qui ne contiennent seulement que la chaîne friend ; Je veux trouver friend n’importe où dans une liste séparée par des espaces.

XPath nous donne un peu plus d’outils que CSS ; nous pouvons ajouter la fonction contains() pour trouver la chaîne friend à partir de la valeur d’attribut générale rel. contains() prend deux paramètres - la chaîne complète suivie par la sous-chaîne que vous recherchez.

//a[contains(@rel,'friend')]

Ceci trouvera n’importe quel élément a qui a un attribut rel qui contient la sous-chaîne friend. Le problème est que cela trouvera aussi la chaîne friendship parce que friend est contenu dedans. Pour résoudre cela, je peux garnir les deux côtés de l’attribut rel avec des espaces et chercher le terme aussi garni d’espaces. Cela paraît compliqué, mais ce ne l’est pas. Il y a deux fonctions supplémentaires à noter dans cet exemple - normalize-space() qui retire l’espace-blanc non voulu (équivalent à trim() dans d’autres langages de programmation) et concat(), qui fusionne simplement les chaînes ensemble. Dans cet exemple nous concaténons un espace blanc avant et après les attributs normalisés rel.

//a[contains(concat(' ', normalize-space(@rel), ' '),' friend ')]

En utilisant XPath, vous pouvez maintenant trouver les éléments qui correspondent à vos requêtes. Il est désormais possible d’extraire cette donnée et de la styliser, de la transformer et de la sauvegarder pour un accès ultérieur.

Expressions Régulières

Vous pouvez aussi utiliser des Expressions Régulières pour extraire la donnée. Ceci est plus compliqué, mais quelques personnes sont plus à l’aise avec les Regexes qu’avec XSLT. Je ne suis pas un expert des Expressions Régulières - il y a probablement un meilleur moyen, plus optimisé de produire ça - mais cela fonctionne pour moi !

/<a(.*|\W*)(rel\s*=\s*\"([^\"]*)\")(.*|\W*)>(.*|\W*)<\/a>/i

Ceci trouvera tous les éléments a et tentera d’extraire les valeurs rel à l’intérieur d’un array que vous pourrez ensuite parser pour regrouper n’importe quelles valeurs ; vous pouvez ensuite faire tout ce que vous voulez avec la donnée.

L’expression régulière est non-sensible-à-la-casse ; nous avons spécifié qu’avec le /i sur la fin. Cela commence par le groupement d’une chaîne de <a - c’est la façon dont chaque lien ancre est écrit. Puis, cela cherche (.*|\W*). Le point (. regroupe n’importe quel caractère et le \W regroupe n’importe quel mot. Nous cherchons pour l’un d’entre eux zéro ou plus de fois. Ceci engloutira tout autre texte comme href="..." ou d’autres attributs qui ne sont pas les valeurs rel que nous recherchons. Nous avons besoin de faire ça de nouveau après la valeur rel pour engloutir aussi tout autre texte derrière. Le href ou les autres attributs peuvent être dans n’importe quel ordre, aussi nous avons besoin de gérer ces scénarios. La partie vraiment importante est (rel\s*=\s*\"([^\"]*)\"). Ceci regroupe la chaîne rel suivie par zéro ou plus de caractères espace blanc, puis un = suivi par plus d’espaces blancs optionnels. Le \" est la valeur d’échappement pour un caractère à double guillemets. C’est le début de notre liste séparée par des espaces de valeurs rel. Le ([^\"]*) dit à mon expression régulière pour saisir zéro ou plus de caractères qui ne sont pas (^) un double guillemet.

Une fois que vous faites tourner cette expression régulière, toutes les données dans la parenthèse sont rassemblées dans des valeurs array. La valeur véritable de l’attribut rel serait dans un item array [3] parce que c’est le troisième ensemble de parenthèses dans cette chaîne. Ceci est vraiment compliqué pour quelque chose qui semble vraiment simple dans d’autres langages, mais selon votre situation, votre niveau de confort et de langage de programmation, les expressions régulières pourraient être pour vous le meilleur choix.

Si aucun de ces morceaux de code ne sont votre tasse de thé, il pourrait y en avoir un disponible dans votre langage favori. La page XFN sur le wiki a une liste croissante d’applications et de librairies déjà écrites, ainsi c’est un endroit excellent pour démarrer votre prochain projet XFN.

Que pouvons-nous faire avec ces données ?

Ainsi tout cela est bien, mais certains d’entre vous doivent être en train de penser “Quelles sont les choses intéressantes que je puisse produire avec cette donnée, maintenant que je l’ai extraite ?” Une fois que vous avez extrait toute cette donnée du HTML, il est très facile de la stocker dans une base de données ou un fichier texte pour la retrouver ultérieurement. Vous êtes basiquement en train de stocker trois pièces de données - deux URLs (une URL#1 qui a une relation XFN avec la seconde URL) et une de type relation (la valeur de l’attribut rel.) Une fois que vous avez votre base de données, vous pouvez vous poser des questions comme “Montre moi toutes les URLs qui ont une relation de ‘contact ou colleague’ avec ’suda.co.uk’”

Dans cette section, j’étudierai quelques cas et sites qui vous permettent de faire un peu de ça dès aujourd’hui.

Six Degrés de Séparation

Le fameux phénomène du Petit Monde de Stanley Milgram a démontré qu’il existe une moyenne de 6 étapes entre deux personnes. Ceci est produit à travers un réseau complexe d’envois de lettres, et puis plus tard à nouveau via e-mail. En utilisant XFN, il est possible de cartographier les distances entre deux personnes via leurs relations. Le site RubHub trace les relations XFN et liste ceux qui se lient à vous et comment, avec ceux qui vous lient et comment. Les résultats pour mon site personnel, suda.co.uk, peuvent être vus dans la Figure 1. Mon ami Harry Halpin de mes années d’Université est lié à moi et dans mon exemple au-dessus, je lie vers Chris Mills. Ainsi un spider automatisé pourrait commencer par construire un réseau de qui est connecté à qui et à travers qui. Nous pouvons épancher cela à travers les contacts d’Harry et de Chris, et nous pouvons demander qui connaît qui et dans combien de sauts, ou s’il existe d’autres connexions mutuelles entre les deux parties. Avant, sans XFN, vous ne pouviez que deviner si un lien définissait une relation ou si c’était juste un lien. Maintenant que nous avons “typé” les liens, il est possible d’extraire plus de sens à partir d’eux.

A ma connaissance, il n’existe pas d’outil qui puisse répondre à des questions comme “à quelle distance est Jeffrey Zeldman de Brian Suda”. Le service RubHub vous permet de cliquer à travers chaque site de personne et de suivre leurs liens à l’infini, tout comme vous pouvez le faire avec IMDB pour voir quels acteurs ont travaillé avec d’autres. Ce type de donnée est juste en train de demander de construire un joli front-end visuel, ainsi vous pouvez poser des questions comme “Trouve le chemin entre suda.co.uk et zeldman.com”. Désormais, si seulement Kevin Bacon avait un site web avec XFN…

les résultats Rubhub pour suda.co.uk

Figure 1 : suda.co.uk résultats RubHub XFN

Comme vous pouvez le voir, le spider Rubhub a trouvé 6 liens externes qui pointent vers suda.co.uk avec différents types de valeurs XFN. Rubhub participe aussi à la consolidation d’identité à travers l’usage de liens rel-me - il sait qu’il existe trois autres pages que j’ai déclarées comme étant à moi. Ceci veut dire que tout lien XFN vers n’importe lesquelles de ces trois pages devrait être compté comme un lien vers suda.co.uk.

Graphe XFN

XFN Graph est une application similaire à celle de Many Eyes d’IBM, que je mentionnais dans un article précédent. Vous ensemencez cette application avec une URL et une profondeur. Elle crawlera ensuite l’URL et les liens vers la profondeur spécifiée pour une recherche de données XFN. Ceci vous permet de construire un graphe connecté entre les personnes. A partir de là, vous pouvez facilement inspecter les noeuds et fils pour trouver un chemin entre n’importe quelle paire de personnes.

graphe XFN Twitter

Figure 2 : Graphe XFN des amis de Brian Suda à partir de Twitter.

L’exemple dans la Figure 2 ne va qu’à un niveau de profondeur de 1, mais il est possible de continuer à crawler chacun de ces noeuds et de trouver leurs amis. Avec un niveau de profondeur de 2, il devient possible de chercher les amis d’amis, avec un niveau de 3 vous obtenez les amis d’amis d’amis et ainsi de suite.

Combiner ces données avec de l’information supplémentaire permet des mashups intéressants, vous pourriez par exemple combiner votre dossier d’e-mails envoyés avec votre liste d’amis XFN pour grouper vos amis selon la fréquence à laquelle vous les e-mailez. Vous pourriez aussi utiliser le @nomutilisateur de twitter pour voir quelles sont les personnes qui parlent à qui le plus souvent.

Nuages de tags

Le backnetwork est une brique logicielle pour les conférences et autres rassemblements. Il vous permet de vous ajouter vous-même avec quelques informations personnelles, puis vous pouvez construire calmement vos relations avec les autres participants. Il dispose de beaucoup de fonctionnalités intéressantes, mais celle sur laquelle je me concentrerai est le nuage de tags des relations.

Au fur et à mesure que vous vous connectez à d’autres participants présents, vous les étiquetez avec des valeurs XFN dans le système. Le nuage de relations tague ces valeurs XFN et leur assigne des poids. Un ami est plus grand qu’une connaissance, qui à son tour est plus grande qu’un contact. Si la relation est réciproque, alors la taille est augmentée encore plus. Ceci nous ramène à l’exemple de moi-même et Chris. Je le considère comme un ami, mais ce pourrait être réciproque. Dans cette instance, la taille du nom ne serait pas aussi grande que s’il avait été là. En utilisant ce jumelage rigolo, nous pouvons aussi commencer à évaluer les poids des liens, pas simplement le type.

Le nuage de relation de Brian sur le backnetwork de dconstruct 07

Figure 3 : nuage de relations du backnetwork d.Construct

La Figure 3 montre mon Nuage de Tags de d.Construct 07 - vous pouvez facilement voir à qui je suis connecté et avec quelle force. Les visualisations de type nuage sont populaires pour les tags et les mots, mais elles peuvent être aussi utilisées pour les personnes et la force des connexions. Ceci vous pemet de voir en un coup d’oeil à qui vous êtes le plus connecté. La plupart du temps, les personnes ne sont pas intéressées à la MANIERE exacte dont vous pouvez connaître quelqu’un, mais plutôt à la façon dont la connexion est grande et solide. Si vous voulez être présenté à quelqu’un en particulier, alors vous pouvez voir qui de vos amis a la connexion la plus solide vers cette personne. C’est la route avec le plus de succès.

Construire votre propre spider XFN

Construire votre propre spider n’est probablement pas la chose à conseiller. Ecrire le code, voyager le web, indexer les sites à la recherche de liens … tant que vous y êtes, pourquoi ne pas écrire un moteur de rcherche complet ? Heureusement, vous avez quelques options. Pour ceux qui doivent simplement faire tourner leurs propres applications, vous pourriez louer la donnée et le temps serveur provenant d’Alexa et crawler la donnée pour vous-même, ou vous pourriez utiliser la nouvelle API Google Social Graph.
Ceci vous permet de saisir une ou plusieurs URLs ; elle cherchera alors dans sa propre base de donées Internet les liens et rétroliens à partir de ces URLs qui disposent de liens XFN ou FOAF. J’ai saisi suda.co.uk, mon site personnel et claimid.com/briansuda, un autre site que j’utilise pour OpenID. Les résultats de cette trouvaille sont étonnants - regardez la Figure 4.

Les URLs de Brian connectées dans l'API Google Social

Figure 4 : Photo écran de mes URLs connectées dans l’API Google Open Social

Le service trouve 25 URLs qu’il connaît comme étant aussi à moi, et 4 de plus pour lequel il pense que c’est à moi. Ce service vous permet de consolider votre identité à travers la totalité de l’internet. Il personnifie ce pourquoi l’internet a été conçu, des sites vaguement joints, sans le besoin d’un serveur central où vous saisissez toute votre information. Vous pouvez vivre votre vie aux bords de ce graphe sur des sites web faisant chacun des tâches pour lesquels ils ont été conçus. Puis les services peuvent ensuite rassembler toutes ces données pour produire un profil unique vous concernant.

Non seulement, cela ne fonctionne pas uniquement pour des données vous concernant, mais aussi pour des données sur la manière dont vous êtes en rapport avec vos amis. La fonctionnalité trouvée dans le lien au-dessus permet à n’importe quel nouveau site de réseau social de vous demander une URL quand vous le rejoignez. Il peut ensuite utiliser l’API Google pour recevoir une liste des URLs d’amis que vous avez déclarés ailleurs sur l’internet. Ce nouveau site de réseau social ne vous oblige plus à passer des heures à écrire du code pour accéder aux APIs de différents sites ou de les scraper pour des données ; vous pouvez maintenant demander un service unique qui ait précédemment indexé les sites et relations. Google renvoie les données, en suggérant les URLs potentielles qui correspondent aux membres existants de ce nouveau réseau social et en vous demandant de migrer vos relations avec juste un clic.

Résumé

Comme nous l’avons vu, XFN est un moyen rapide et simple d’exprimer quelques relations basiques entre vous-même et d’autres à travers l’utilisation de pratiques HTML existantes. En balisant explicitement les données, vous donnez plus de sens à votre balisage, qui peut être alors utilisé pour générer de nouvelles visualisations et aussi utilisé pour créer un réseau de connexions pouvant être facilement migré de place en place. Aussi qu’attendez-vous ?

Ressources

Mots-clés : , , , ,

Note : Traduction en cours d’un article de Brian Suda paru chez DevOpera le 21 février dernier. Seul le lien original fait référence. Vous pouvez aider à raffiner cette traduction publiée sous “fair use” en éditant la page-miroir posée sur mon wiki. Merci - xtof.

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress