FOAF, la première brique du Web sémantique ?

Par le 02/06/04 | 5 commentaires | 6,749 lectures | Impression

Le Web d’aujourd’hui a plusieurs défauts, parmi lesquels le fait d’être peu structuré, donc peu adapté au classement automatique des informations qu’il contient. C’est encore plus vrai pour les personnes, qui sont presque absentes – en tant qu’entités “indexables” – de la Toile. FOAF (“Friend Of A Friend“) est une tentative innovante pour remédier à cela et ajouter un caractère sémantique au Web que nous connaissons. Par Cyril Fiévet.

Sommaire
Web sémantique : à la recherche du sens
Beau concept innovant et promoteur cherche applications concrètes
FOAF, les amis de mes amis…
Les atouts d’un standard
Encadré : Exemple de fichier FOAF
Pour aller plus loin

 
Web sémantique : à la recherche du sens

Quelques années après avoir créé le Web, Tim Berners-Lee en envisageait l’évolution naturelle : le Web “sémantique”.

Dans un document fondateur de 1998 (http://www.w3.org/DesignIssues/Semantic.html, il expliquait : “Le Web a été conçu comme un espace informationnel, avec pour but d’être utile non seulement à la communication entre humains, mais aussi pour que des machines puissent y participer et aider. L’un des principaux obstacles à cela provient du fait que la majeure partie de l’information sur le Web est conçue pour les humains. Même si l’information provient d’une base de données dont les champs ont un sens précis, la structure des données n’est pas facile à interpréter pour un robot. (…) L’approche du Web sémantique a pour but de développer des langages pour exprimer l’information d’une façon utilisable par les machines.”

De ce magma d’informations disparates, composé de milliards de pages qui n’ont en commun que l’utilisation de l’hypertexte pour les lier entre elles, Berners-Lee envisage donc de faire un espace ordonné, intelligible pour des machines. Avec au passage la transition d’une logique purement syntaxique (les balises HTML définissent la manière dont se présentent les pages Web) à une version sémantique (les informations du Web contiennent des éléments relatifs à leur sens). D’un Web “lisible” par les machines (comme c’est le cas pour les moteurs de recherche qui indexent les pages automatiquement), il s’agit de passer à un Web “compréhensible” par les machines.

Concrètement, le Web devenu sémantique permettrait d’effectuer des requêtes complexes, difficiles ou impossibles à résoudre avec les outils de recherche du Web d’aujourd’hui, comme “quels sont les livres qui ont été écrits par des auteurs diplômés de la même école que moi ?”, “quelles sont les personnes qui ont vécu à San Francisco et à Amsterdam et qui résident aujourd’hui à Paris ?”, ou encore “quels sont les magasins qui vendent tel article à moins de X euros ?”, ou “tous les articles de journaux entre telle et telle date, faisant référence au même événement”…

“Le défi du Web sémantique est donc de fournir un langage qui exprime à la fois les données et les règles pour raisonner à partir de ces données, et qui permette aux règles de tout système de représentation de la connaissance d’être exportées sur le Web”, expliquaient les artisans du concept, dans un très long article du Scientific American (mai 2001, http://www.sciam.com/article.cfm….

XML (eXtended Markup Language) est donc la fondation sur laquelle s’appuie le web sémantique. Ce meta-langage permet en effet de décrire au travers de balises, non pas la forme (comme dans le cas de Html), mais la structure d’un document et la nature des informations qu’il contient : ceci est un titre, un auteur, une date, une référence, un prix.. XML est déjà très utilisé pour faire communiquer des applications et des bases de données d’entreprise, ou bien dans des contextes professionnels bien définis. Mais il manque encore quelque chose : comment savoir que deux documents produits par des auteurs qui ne se connaissent pas ont effectivement des choses en commun ? Par exemple, une balise <titre> désigne-t-elle le titre du document, celui d’un ouvrage dont parle le document, un titre de noblesse ? XML ne résout pas le problème clé du web sémantique : celui, précisément, de la sémantique, qui nécessite la définition d’une ontologie, c’est-à-dire un schéma conceptuel décrivant la structure des données.

Depuis l’origine, les travaux du Web Consortium s’appuient pour cela sur RDF (Resource Description Framework), un standard introduisant la notion de “méta-données”, des données particulières qui expriment les caractéristiques des informations, et les relations qui les lient entre elles. RDF s’appuie sur XML pour décrire les objets. “Le sens est exprimé par RDF, par lequel il est encodé sous la forme d’un triplet. Chaque triplet peut être vu comme le sujet, le verbe et l’objet d’une phrase élémentaire. Ces triplets peuvent être écrits en utilisant des balises XML.” explique-t-on dans le même article du Scientific American, ajoutant : “Avec RDF, on suppose que des choses (des gens, des pages Web ou quoi que ce soit d’autre) ont des propriétés (comme le fait d’être ‘l’auteur de’ ou ‘la soeur de’) et que ces propriétés ont des valeurs particulières (qui peuvent être une autre personne, une autre page Web, etc). Cette structure est une manière naturelle de décrire la majorité des données utilisées par les machines”.

Beau concept innovant et promoteur cherche applications concrètes

Malgré l’intérêt du concept, et les nombreux travaux menés au W3C pour aller dans ce sens, le Web sémantique ne semble pas beaucoup se développer. S’il existe de nombreux groupes de travail sur le sujet (http://www.w3.org/2001/sw/Activity, ainsi qu’une abondante littérature, les effets n’en sont pas forcément très perceptibles par l’internaute moyen.

Pourtant, si le Web dans sa globalité est encore bien loin d’être sémantique, plusieurs applications des concepts imaginés par Tim Berners-Lee et le W3C ont été implémentées, et fonctionnent dès aujourd’hui, comme autant de briques éparses sur la Toile.

C’est par exemple le cas des licences Creative Commons (CC, http://www.creativecommons.org, dont le principe est d’ajouter aux oeuvres circulant sur le Web des méta-données relatives à leur protection (http://creativecommons.org/technology/metadata/. Tous les artistes utilisant CC introduisent – de façon très simple, sur leurs pages ou au sein de leurs oeuvres – des balises RDF/XML qui les identifient de façon sémantique, en en précisant les droits d’utilisation. Si ce type de procédé se généralisait, il deviendrait alors possible de trouver rapidement, via un moteur de recherche, “tous les auteurs français ayant publié des textes libres de droit consacrés à la littérature du XIXe siècle”, par exemple.

De la même façon, le projet MusicBrainz (http://www.musicbrainz.org) vise à devenir une encyclopédie gratuite et libre de droit consacrée à la musique. Là aussi, le site est constitué d’une vaste base de données qui recense des morceaux de musique (considérés comme les éléments de base), auxquels ont été ajoutés des balises RDF définissant leurs caractéristiques. La version 2 du projet entend aller plus loin en matière de champs renseignés dans la base de données. A terme, on peut imaginer que l’outil puisse permettre d’identifier, par exemple, “toutes les chansons qui sont des reprises de titres originaux de David Bowie”, ou “toutes les chansons du genre ‘heavy metal’ qui ont été un jour au Top 50″.

Enfin, une autre application du Web sémantique, peut-être la plus attirante parce qu’elle concerne les personnes et non des documents au sens large, consiste à encoder les données relatives à chaque individu : FOAF.

FOAF, les amis de mes amis…

FOAF (Friend Of A Friend) est un projet collaboratif visant à utiliser RDF pour créer un nouveau type de document, accessible en ligne et décrivant les personnes. Par certains aspects, c’est le premier projet d’envergure qui tente de généraliser les concepts caractéristiques du Web sémantique, en dehors de contextes professionnels bien définis.

Le principe en est simple : chaque personne est identifiée par un fichier FOAF, qui peut être placé n’importe où sur le Web, et qui contient, dans des champs normés et en XML, des informations la décrivant.

Chacun peut bien sûr choisir le nombre et la profondeur des informations le concernant. Les champs d’un fichier FOAF peuvent être le nom, l’adresse email, l’adresse du site Web et/ou du blog, les adresses des photos, les études suivies, les centres d’intérêts, les amis – et bien d’autres choses, selon les spécifications actuelles. La dernière version de FOAF établit une liste de plusieurs dizaines de champs possibles, répartis en cinq grandes catégories : les données de base (nom, prénom, etc.), les informations personnelles (centres d’intérêts, connaissances…), les comptes en lignes (email, messageries instantanées…), les documents et images (textes produits par la personne, photos personnelles…), et enfin les groupes et projets.

Cette dernière catégorie est particulièrement intéressante : elle permet le rattachement d’une personne à une organisation (association, entreprise) mais surtout, plus généralement, à un “groupe” quelconque. Il peut s’agir d’un groupe structuré (parti politique), informel, ou simplement d’une communauté en ligne. FOAF permet donc de représenter le regroupement d’individus selon plusieurs groupes, à la manière des fonctions proposées par les nombreuses “communautés sociales” en ligne.

On le voit, les champs FOAF sont conçus pour exprimer de façon détaillée les caractéristiques d’un individu et ses liens – au sens large du terme – avec d’autres entités sur l’internet, qu’il s’agisse de documents, d’images, ou d’autres individus. Et l’on comprend l’intérêt de ce qui pourrait devenir un “Web sémantique pour les personnes”. FOAF pourrait permettre de répondre à des requêtes extrêmement complexes, du genre : “Y a t-il des parisiens qui travaillent chez Microsoft, tiennent un blog, et s’intéressent à la nanotechnologie ?”, ou simplement regrouper de façon automatique des gens qui ont sans le savoir des affinités très similaires (par exemple qui aiment les mêmes genres de musique, lisent les mêmes blogs et pratiquent les mêmes sports…).

L’une des possibilités offertes par FOAF, qui illustre bien la puissance du procédé, est d’ailleurs la fusion de documents (http://www-106.ibm.com/developerworks/xml/library/x-foaf.html. Supposons que Pierre crée son fichier FOAF, et qu’il ne dispose pas de photos de lui-même. L’un de ses amis, Paul, a lui aussi un fichier FOAF, dans lequel il indique l’adresse d’une photo le montrant en compagnie de Pierre. Il est alors très facile, de façon automatisée, de fusionner les deux fichiers FOAF pour que la question “Où peut-on consulter une photo de Pierre ?” fournisse une réponse, en renvoyant sur la photo présentant Pierre et Paul. Sans nécessiter d’annuaire centralisé, FOAF permet par essence de lier les personnes – et leurs attributs ou caractéristiques – entre elles, comme si tout était décrit dans une base de données unique.

Les atouts d’un standard

FOAF n’est pas encore une norme, ni même un standard. Il a pourtant des chances de le devenir et dispose en tout cas de nombreux atouts.

D’abord parce que c’est un projet communautaire et libre, qui efface les craintes que pourrait susciter la même initiative provenant d’une entreprise commerciale, sur le thème sensible des données personnelles.

Ensuite, précisément, parce qu’il est la première tentative visant à standardiser la représentation des personnes et des relations entre elles. On le sait, les communautés sociales de type Friendster, Meetic ou LinkedIn se sont fortement développées ces dernières années (lire le dossier de la Fing sur le “Social networking” : http://fing.org/index.php?num=4367,4. Mais on peut leur reprocher leur manque total d’interopérabilité. Si vous êtes dans une communauté, vous n’existez pas aux yeux des membres d’une autre communauté. FOAF, s’il s’imposait, pourrait donc devenir le “chaînon manquant” du Web des personnes : une solution générique pour créer, parfois spontanément, des communautés d’utilisateurs.

Enfin, bien que l’utilisation de FOAF soit aujourd’hui très confidentielle (le moteur de recherche Plink, limité aux fichiers FOAF, en recense tout de même plus de 33 000), la technologie pourrait suivre un développement proche de celui de la méthode de syndication RSS. Existant de longue date, RSS n’a pas véritablement été poussée par des entreprises commerciales, mais bien par la communautés des utilisateurs, notamment les blogueurs. Si RSS se généralise aujourd’hui, notamment sur les sites médias aux Etats-Unis, c’est principalement parce que la quasi-totalité des blogs publient leurs informations dans ce format depuis plusieurs années, ayant permis d’atteindre rapidement une masse critique d’utilisateurs. FOAF pourrait connaître le même sort et du reste, au moins deux communautés importantes de blogueurs, LiveJournal et Typepad, incluent FOAF de façon native, et permettent à leur utilisateurs de générer facilement leurs fichiers FOAF. Il existe également plusieurs sites référençant les fichiers FOAF existants.

Mais plus globalement, FOAF a ceci d’attirant qu’il s’agit de la première tentative sérieuse pour détailler et généraliser la notion d’identité numérique, qui se résume pour l’instant, pour l’essentiel, à un couple identifiant/mot de passe, peu parlant et très limité. Les fichiers FOAF pourraient devenir au minimum les versions standardisées des CV qui peuplent le Web. On pense, par exemple, au développement très rapide des e-portfolios dans le monde de la formation et des ressources humaines, voir http://www.europortfolio.org ), et au maximum donner lieu à un Web des personnes, bien structuré, porteur de sens, et compréhensible par des machines. Plusieurs projets innovants s’appuient du reste sur FOAF pour élaborer de nouvelles communautés sociales (voir Zopto par exemple, http://zopto.com) ou créer de nouvelles méthodes pour l’authentification en ligne (ShareID, encore en phase de test, http://www.sharedid.com/sharedid/.

FOAF peut toutefois aussi faire naître – légitimement – des inquiétudes quant à l’utilisation qui pourrait en être faite par des spammeurs ou des marchands peu scrupuleux (ou tout simplement quant au respect de la vie privée). Il est néanmoins plaisant de penser que c’est chaque individu qui maîtrise le fichier le décrivant. Chacun peut donc choisir ce qu’il souhaite rendre public ou non. De plus, FOAF intègre des principes de protection, notamment l’encodage des adresses e-mail : via la fonction mathématique SHA1, on génère un code chiffré sur 160 bits correspondant à l’adresse email. Ce code permet d’identifier de façon unique l’adresse email, mais pas de la connaître (cf. Encadré).

Possiblement, la généralisation de FOAF pourrait aller jusqu’à entraîner un revirement en matière de législation. Selon la loi française, nous disposons “d’un droit d’accès, de rectification, de modification et de suppression” sur les données personnelles enregistrées par des tiers et nous concernant. FOAF va plus loin, puisque ces données demeurent à tout moment la propriété de chaque individu, qui peut les compléter ou les modifier à sa guise. A l’instar de RSS, FOAF pourrait donc permettre d’opérer un changement d’angle de vue, redonnant tout ou partie du contrôle à l’utilisateur – en l’occurrence un contrôle portant sur ses données personnelles. Ce n’est pas la moindre des vertus du concept.

Cyril Fiévet
(FOAF : http://6711.com/foaf.rdf)


Exemple de fichier FOAF
Ce qui suit est la description du fichier FOAF de Dominique Ramsey, un développeur anglais. Décodé correctement, le fichier génère la visualisation suivante : exemple

On peut noter dans ce qui suit que la notion de personne (représentée par la balise <foaf:Person>) est décrite par plusieurs caractéristiques, parmi lesquelles “name”, “title”, “nickname”, “gender”, etc. On remarquera également que les adresses email des différents individus dont il est fait référence n’apparaissent pas en tant que telles dans le fichier, mais sont représentées de façon codée, par exemple par “0635ca0bb2bded8d5cac8beb210da00a46d27e40″ pour l’adresse de Dominique Ramsey.

<rdf:RDF
xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#
xmlns:rdfs=”http://www.w3.org/2000/01/rdf-schema#
xmlns:dc=”http://purl.org/dc/elements/1.1/
xmlns:geo=”http://www.w3.org/2003/01/geo/wgs84_pos#
xmlns:foaf=”http://xmlns.com/foaf/0.1/
xmlns:bio=”http://purl.org/vocab/bio/0.1/”> <foaf:Person>
<foaf:name>Dominic Ramsey</foaf:name>
<foaf:title>Mr</foaf:title>
<foaf:firstName>Dominic</foaf:firstName>
<foaf:surname>Ramsey</foaf:surname>
<foaf:nick>Dom</foaf:nick>
<foaf:gender>male</foaf:gender>
<foaf:icqChatID>918580</foaf:icqChatID>
<foaf:mbox_sha1sum>0635ca0bb2bded8d5cac8beb210da00a46d27e40</foaf:mbox_sha1sum>
<foaf:homepage rdf:resource=”http://www.maquis.org/”/>
<foaf:depiction rdf:resource=”http://www.feesch.co.uk/galleries/918580/01.jpg”/>
<foaf:img>
<foaf:Image rdf:about=”http://www.feesch.co.uk/galleries/918580/01.jpg”>
<dc:description>Slightly drunk in a pub in Camden</dc:description>
<dc:title>Dom Ramsey</dc:title>
</foaf:Image> </foaf:img>
<foaf:phone rdf:resource=”tel:+44-07050695670″/>
<foaf:workplaceHomepage rdf:resource=”http://www.dynamite.co.uk/”/>
<foaf:workInfoHomepage rdf:resource=”http://www.dynamite.co.uk/”/>
<foaf:schoolHomepage rdf:resource=”http://www.sirhenryfloyd.bucks.sch.uk/”/>
<foaf:based_near>
<geo:Point>
<geo:lat>51.601</geo:lat>
<geo:long>-0.193</geo:long>
</geo:Point> </foaf:based_near>
<bio:keywords>
PHP, MySQL, RDF, music industry, British, UK, Finchley, London </bio:keywords>
<bio:olb>
British web designer, mainly working within the music industry. </bio:olb>
<foaf:knows>
<foaf:Person>
<foaf:name>Tamsin Bowles</foaf:name>
<foaf:mbox_sha1sum>03f50871417f0f4a823542a5d1aafe79327c25d4</foaf:mbox_sha1sum>
<foaf:depiction rdf:resource=”http://www.tamsin.com/bio/00s/2002apr.jpg”/>
<foaf:knows>
<foaf:Person>
<foaf:name>Richard Weeks</foaf:name>
<foaf:mbox_sha1sum>95eea6ba411b5203613638db5c105e525b379174
</foaf:mbox_sha1sum>
</foaf:Person>
</foaf:knows>
<foaf:knows>
<foaf:Person>
<foaf:name>Michelle Laufer</foaf:name>
<foaf:mbox_sha1sum>19267321d6a407432dbf73d596f2f0f89722a04f
</foaf:mbox_sha1sum>
</foaf:Person>
</foaf:knows>
<foaf:knows>
<foaf:Person>
<foaf:name>Paul Civati</foaf:name>
<foaf:mbox_sha1sum>c2a6d439b95a389d720a5ecde27919d2a81bce36
</foaf:mbox_sha1sum>
</foaf:Person>
</foaf:knows>
<foaf:knows>
<foaf:Person>
<foaf:name>Sylvia Wrigley</foaf:name>
<foaf:mbox_sha1sum>85a3f33d819fa5a25c4efce51bbf6c084e5cd17a
</foaf:mbox_sha1sum>
</foaf:Person>
</foaf:knows>
<foaf:knows>
<foaf:Person>
<foaf:name>Cliff Stanford</foaf:name>
<foaf:mbox_sha1sum>3b25d881220b0f254d4ec77e6cc9fb8051949b88
</foaf:mbox_sha1sum>
</foaf:Person>
</foaf:knows>
<foaf:knows>
<foaf:Person>
<foaf:name>James Gardiner</foaf:name>
<foaf:mbox_sha1sum>664f502c98cf11aa0e924f73e8447d988730d02c
</foaf:mbox_sha1sum>
</foaf:Person>
</foaf:knows>
<foaf:knows>
<foaf:Person>
<foaf:name>Jon Morby</foaf:name>
<foaf:mbox_sha1sum>a23b95a44e12d54cb4347074ca8e60536a77b35f
</foaf:mbox_sha1sum>
</foaf:Person>
</foaf:knows>
<foaf:knows>
<foaf:Person>
<foaf:name>Richard Laws</foaf:name>
<foaf:mbox_sha1sum>a0bf3b51e9e57633b9ab193a6eaaf2cd899483f5
</foaf:mbox_sha1sum>
</foaf:Person>
</foaf:knows>
<foaf:knows>
<foaf:Person>
<foaf:name>Rebecca Hawkins</foaf:name>
<foaf:mbox_sha1sum>e52a8a519e622473a8172b083c941a0841edd499
</foaf:mbox_sha1sum>
</foaf:Person>
</foaf:knows>
<foaf:knows>
<foaf:Person>
<foaf:name>Mike Rogers</foaf:name>
<foaf:mbox_sha1sum>6adb543ab81e8d8cdbb5945102a1ca4f8fc18f15
</foaf:mbox_sha1sum>
</foaf:Person>
</foaf:knows>
<foaf:knows>
<foaf:Person>
<foaf:name>Eric Carbonu</foaf:name>
<foaf:mbox_sha1sum>7acca0c14078003df9bc3f619893c79acdee1de8
</foaf:mbox_sha1sum>
</foaf:Person>
</foaf:knows>
</foaf:Person>
</rdf:RDF>

Pour aller plus loin :

Web sémantique :
Au W3C : http://www.w3.org/2001/sw/
Wiki non officiel mais très bien documenté et en français : http://websemantique.org

Sites de référence du projet FOAF : http://rdfweb.org et http://www.foaf-project.org
FAQ : http://rdfweb.org/topic/FAQ
Spécifications du vocabulaire FOAF (mai 2004) : http://xmlns.com/foaf/0.1/

Agrégateurs/annuaires/moteurs de recherche de fichiers FOAF :
http://peopleaggregator.com
http://www.foafnaut.org
http://beta.plink.org

Créer son fichier FOAF très simplement, via un formulaire Web :
http://www.ldodds.com/foaf/foaf-a-matic.html

Sur ces mêmes sujets

Rétroliens

  1. Empyrée
  2. (veille)> Liens du 23/03/2009 + les identités numériques

3 commentaires

  1. par Jouanen

    Le lien “exemple” n’est plus valable, la redirection sur fotothing.com est-elle pertinente pour illustrer une visualisation de fichier foaf?

  2. par cyril

    Vous avez raison, mais il nous est difficile d’assurer la pérennité des liens externes figurant sur plusieurs milliers d’articles que contient InternetActu.net.

  3. par Amine

    Bonjour,

    Créer un fichier foaf permet de s’auto decrire d’une facon interprétable par les machines. Cette description est réductrice certes, mais c’est le prix à payer pour avoir un minimum d’automatisation.
    Mais structurer des données et leur donner un sens en leur affectant des métadonnées est une chose, mais les interpréter par des agents logiciels ou des moteurs est une autre paire de manches.
    La plus part des moteurs qui exsitent actuellement sont très limité et sont incapable de se balader d’une facon autonome partout dans le web pour collecter les fichiers foaf les rassembler et les relier pour constituer une grande base de donnée, ce qui explique la faible utilisation du FOAF.

    Imaginons que je veuille recruter une personne pour un poste donné dans mon entreprise, Il m’est par exemple impossible de charger un agent mobile d’aller chercher seul sur internet des personnes qui correspondent au profil recherché, à partir de leurs fichiers foaf.

    Ce problème est partagé entre le domaine du web sémantique et celui des agents mobiles, et reste toujours sans réponses.