FOAF : de la sémantique et des hommes

Comme son nom l’indique, RDF, pour Ressource Description Framework, offre des outils pour décrire des ressources de n’importe quel type, du moment qu’elle est désignée par une URI. Il est basé sur le principe du triplet : <sujet> <predicat> <objet> . Pour prendre un exemple simple, l’URL http://3s-cms.enstb.org/fipC0320A1/ (le sujet) a :

  • pour titre (prédicat) : FIP C0320A1 (objet) ;
  • pour description (prédicat) : Web2.0, sémantique, pervasif, ubiquitaire, ambiant, social (objet) ;
  • pour auteurs (prédicat) : Jean-Michel, Quentin, Rémy et Ronan (objet) ;
  • pour langue (prédicat) : le français (objet).

Cette description de notre site peut s’exprimer au moyen d’un « vocabulaire » RDF nommé Dublin Core. C’est un schéma de métadonnées générique qui permet de décrire des ressources numériques ou physiques et d’établir des relations avec d’autres ressources. Il offre également d’autres prédicats que ceux donnés ci-dessus.

Ainsi, il existe la possibilité de créer des schémas RDF qui déterminent entre autre les prédicats qu’on peut employer dans un fichier RDF. Outre Dublin Core, un autre schéma bien connu et utilisé est FOAF (Friend Of A Friend). Le projet FOAF repose sur un certain nombre de standards établis par W3C, dont le XML, le RDF et le langage d’ontologie Web, OWL. FOAF permet de décrire de manière structurée un individu et ses relations. Un profil FOAF peut contenir des informations assez diverses : état civil, adresse, profession, projets actuels et passés, etc. Il peut également indiquer les personnes que l’individu qu’il décrit connaît. 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. FOAF pourrait permettre de répondre à des requêtes extrêmement complexes, du genre : “Y a t-il des brestois qui travaillent à Télécom Bretagne, qui tiennent un blog, et qui s’intéressent au web sémantique ?”, 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 et qui pratiquent les mêmes sports).

Voici un exemple basique d’un profil FOAF :

<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:foaf="http://xmlns.com/foaf/0.1/"
 xmlns:admin="http://webns.net/mvcb/">
 <foaf:PersonalProfileDocument rdf:about="">
    <foaf:maker rdf:resource="#me"/>
    <foaf:primaryTopic rdf:resource="#me"/>
    <admin:generatorAgent rdf:resource="http://www.ldodds.com/foaf/foaf-a-matic"/>
    <admin:errorReportsTo rdf:resource="mailto:leigh@ldodds.com"/>
 </foaf:PersonalProfileDocument>
 <foaf:Person rdf:ID="me">
    <foaf:name>Paul Ochon</foaf:name>
    <foaf:title>Mr</foaf:title>
    <foaf:givenname>Paul</foaf:givenname>
    <foaf:family_name>Ochon</foaf:family_name>
    <foaf:nick>Polo</foaf:nick>
    <foaf:mbox rdf:resource="mailto:paul.ochon@oreiller.fr"/>
    <foaf:homepage rdf:resource="paul.ochon.fr"/>
    <foaf:workplaceHomepage rdf:resource="http://www.telecom-bretagne.eu/"/>
    <foaf:schoolHomepage rdf:resource="http://www.telecom-bretagne.eu/"/>
    <foaf:knows>
       <foaf:Person>
          <foaf:name>Alain Térieur</foaf:name>
          <foaf:mbox rdf:resource="mailto:alain.terieur@tb.com"/>
       </foaf:Person>
    </foaf:knows>
 </foaf:Person>
</rdf:RDF>

Aussi, il est possible de faire de la fusion de documents. Par exemple, supposons que Serge crée son fichier FOAF, et qu’il ne dispose pas de photo de lui-même. L’un de ses amis, Jean-Marie, a lui aussi un fichier FOAF, dans lequel il indique l’adresse d’une photo le montrant en compagnie de Serge. Il est alors facile, de façon automatisée, de fusionner les deux fichiers FOAF pour que la question “Où peut-on voir une photo de Serge ?” fournisse une réponse, en renvoyant sur la photo présentant Serge et Jean-Marie. FOAF permet ainsi 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.

On imagine alors bien la puissance de cette ontologie. DBpedia, par exemple, utilise FOAF pour publier des données à propos des personnes référencées dans Wikipedia. Ce projet est la première tentative visant à standardiser la représentation des personnes et des relations entre elles. Les communautés sociales de type Meetic ou LinkedIn se sont fortement développées ces dernières années, mais elles ne sont pas interopérables. C’est pourquoi, si vous êtes dans une communauté, vous n’existez pas aux yeux des membres de l’autre communauté. FOAF, s’il s’impose, peut donc devenir le chaînon manquant du Web des personnes. C’est également une manière de détailler et généraliser la notion d’identité numérique, qui se résume pour l’instant, dans l’essentiel des cas, à un couple login/password, peu parlant et très limité. Néanmoins, FOAF peut toutefois faire naître 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. Chaque individu doit donc maîtriser le fichier le décrivant. Chacun peut alors choisir ce qu’il souhaite rendre public ou non.

Enfin, FOAF peut également utiliser des objets définis dans d’autres ontologies, telle que SIOC (ontologie étudiée par l’autre groupe).

Sur ce schéma, on peut donc voir qu’avec FOAF, Bob est relié à Alice et Carol par lien de connaissance. On constate également que Bob possède un compte sur del.icio.us et sur wordpress.com, mais avec des logins différents. Grâce à la combinaison de FOAF et SIOC, on peut donc savoir que Roberto sur del.icio.us et que robertr sur wordpress.com sont une seule et même personne : Bob.

Sources :

http://www.foaf-project.org/
http://xmlns.com/foaf/spec/
http://www.xml.com/pub/a/2004/02/04/foaf.html
http://www.lespetitescases.net/rdf-par-l-apprentissage-foaf
http://blog.palaci.fr/2004/11/08/23-foaf-web-semantique-rdf
http://tecfaseed.unige.ch/staf18/modules.php?op=modload&name=News&file=article&sid=100
http://www.internetactu.net/2004/06/02/foaf-la-premire-brique-du-web-smantique/
http://jplu.developpez.com/tutoriels/web-semantique/apprendre-rdf-par-exemple-avec-foaf/
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *