title: ★ Le Web Sémantique ou l'importance des données liées slug: le-web-semantique-ou-limportance-des-donnees-liees date: 2008-11-17 18:14:07 type: post vignette: images/logos/paris_web_2008.png contextual_title1: Retours sur le Social Web Camp Paris contextual_url1: 20090921-retours-sur-le-social-web-camp-paris contextual_title2: Ouvert et décentralisé, est-ce suffisant ? contextual_url2: 20090615-ouvert-et-decentralise-est-ce-suffisant contextual_title3: Réflexions sur les conférences de geeks contextual_url3: 20090327-reflexions-sur-les-conferences-de-geeks
Ce billet n’est pas un transcript de ma conférence sur l’identité numérique et le Web Sémantique à Paris Web mais un document permettant de résumer ce qui a été dit (pour les absents), de lier les ressources citées (pour les fainéants) et de proposer des pistes pour aller plus loin (pour les curieux).
Le premier problème du Web Sémantique est probablement son nom. Il est difficile de comprendre ce qui se cache derrière ce terme qui manque de sens (un comble !) au premier abord. Il a donc été supplanté par Web des Données pendant un moment, terme qui se retrouve d’ailleurs dans l’introduction sur le site du W3C :
The Semantic Web is a web of data. There is lots of data we all use every day, and it is not part of the web.
Mais je ne suis pas vraiment d’accord avec ce nom qui est réducteur et je lui préfère de loin celui de Données Liées qui permet de visualiser d’un seul coup les deux fondements du Web : la donnée et le lien. Et qui met au passage l’accent sur le manque actuel de liens permettant de donner du sens aux données. Je distingue deux objectifs majeurs au Web Sémantique :
Le but ultime étant de permettre aux machines/applications d’utiliser ces relations afin d’offrir les meilleurs services possibles aux individus, services permettant aussi de créer de nouvelles relations entre individus, comme le souligne Tim Berners-Lee avec la Fondation Web :
Le Web n’est pas seulement une connexion entre machines, c’est une connexion entre individus.
J’ai choisi d’illustrer mon propos à travers deux problématiques récurrentes dans le web actuel :
Or elles sont intimement associées à la notion de confiance numérique dont on devrait de plus en plus entendre parler, au même titre que la mobilité ou la proximité.
Un exemple tout simple à ce sujet, pour l’instant je peux me localiser avec mon iPhone et rechercher les restaurants alentours. J’aurais de plus en plus de réponses au fil du référencement des établissements. Comment choisir ? Quelle pertinence accorder aux restaurants proposés ? Je voudrais pouvoir avoir les avis de mon cercle de connaissance, ce que pensent mes « amis compétents dans le domaine » de ces suggestions. Il est nécessaire pour cela d’accorder un crédit à chacune de ces relations (qui doivent être clairement identifiées) et d’accéder aux données relatives aux revues de ces établissements (qui ne sont pas forcément publiques et qui peuvent évoluer, d’où la notion de contrôle).
Pour l’instant, notre identité est répartie sur de nombreux sites, chaque service ayant développé son propre profil, permettant de lier encore et encore les mêmes « amis », de renseigner les mêmes champs une n-ième fois. C’est pourtant évitable si vous renseignez cette information à une adresse donnée qui constitue votre identité centralisée et que vous procurez celle-ci au service en question pour qu’il aille chercher ces informations. Il est même possible d’autoriser de façon granulaire les informations fournies selon le service en question. Cerise sur le gâteau, il est possible de lier différents profils afin d’avoir une identité distribuée mais liée !
La bonne nouvelle, c’est que les technologie existent déjà pour faire ça. L’URL qui constitue votre identité (et qui devrait être sur un domaine vous appartenant) est un OpenID, à partir de cette URL, vous pouvez détecter le profil FOAF qui est lié dans les balises meta et qui définit votre identité et vos relations, grâce à XRDS vous pouvez aussi détecter le point d’accès OAuth permettant au service de vous demander les autorisations d’accès aux données nécessaires (le profil FOAF n’étant pas forcément public). Si vous êtes dépassé(e) par cette avalanche d’acronymes, je vais tenter de détailler tout ça dans les exemples.
Les données personnelles représentent actuellement la valeur que récupère une application en échange de son service, bien souvent « gratuit ». Dans la majorité des cas vous ne pourrez pas récupérer cette valeur sans être un geek, elle sera donc perdue en cas de changement de politique, faillite, perte de votre identifiant, crash de la base de données, etc. Mais comment rester maître de ses données alors ?
Elles devraient tout simplement être stockées chez vous, sur votre serveur. Et ce n’est pas une utopie à l’horizon 2022 ou 2012, en fait vous l’avez déjà. Ça s’appelle une freebox, une livebox ou un autre truc qui finit par box. Vos données vont migrer de votre desktop à ce serveur local, vous permettant de n’avoir plus qu’un tablette de navigation, mobile directement connectée au web.
Il s’agit « juste » de développer cette application qui reposera sur les technologies du Web Sémantique afin de faciliter l’utilisation et l’accès à ces données. Car il ne faut pas que ce soit la fin des services web pour autant, ils utiliseront ces données et apporteront la valeur ajoutée de leur service, quitte à le rendre payant. Je suis persuadé que la culture du web tout gratuit n’est pas une solution viable (bon je suis aussi persuadé qu’il y a probablement d’autres valeurs que l’argent à mettre en avant mais c’est une autre histoire).
Pour résumer, les données sont en train de migrer du desktop vers des applications en ligne qui ne vous permettent pas de garder un contrôle dessus, je pense qu’il est préférable de recentraliser ces données et d’en gérer l’accès au cas par cas (dans un premier temps car après on pourra mettre tout ça en peer-to-peer sécurisé).
On a longtemps vendu le Web Sémantique comme étant la solution miracle à la recherche en langage naturel pour le grand public. Or c’est voué à l’échec pour deux raisons :
Attention, le Web Sémantique permet d’effectuer des recherches très pertinentes qui intéresseront grandement les spécialistes et il y aura sûrement des choses à faire lorsque la voix fera son apparition dans notre vie numérique aussi.
En revanche, on peut utiliser l’enrichissement des contenus visant à leur donner un sens afin d’enrichir et de personnaliser les résultats de recherche associés à ces contenus. C’est ce que propose SearchMonkey. Vous pouvez créer des filtres permettant d’afficher aux utilisateurs certaines métadonnées associées à vos pages lorsqu’elles sont retournées par le moteur de recherche (ces métadonnées étant extraites des microformats ou de RDFa). C’est un excellent exemple d’une mise en application de la puissance du Web Sémantique, le moteur se sert à la fois de ces métadonnées pour affiner sa pertinence mais aussi pour enrichir l’affichage pour l’utilisateur final.
Note : je n’ai aucune preuve de l’utilisation de ces métadonnées pour le référencement, ça me semble juste évident (sinon ils ne s’embêteraient pas à les stocker par exemple :-)).
DBpedia est un excellent moyen de comprendre RDF et de montrer ce qui peut être fait avec, il s’agit de l’extraction des informations et relations issues de Wikipedia. Prenons l’exemple de la page de la ville d’Arles :
On distingue des données brutes dans le corps de la page et un encadré structuré à droite. Ces données vont pouvoir facilement être stockées en RDF, RDF étant un moyen de stocker des relations entre des choses et des données. Il suffit de savoir faire des phrases simples du style Sujet, Verbe, Complément pour comprendre RDF (si vous voulez aller plus loin on appelle ça plutôt Sujet, Prédicat, Objet généralement et cet ensemble forme un triplet).
Partons de la phrase :
Arles a pour département les Bouches-du-Rhônes et
a pour code postal 13200.
On a ainsi une relation et une donnée, on va commencer par utiliser les liens définissant les entités (ces liens correspondent à des ressources DBpedia) :
<http://dbpedia.org/resource/Arles>
a pour département <http://dbpedia.org/resource/Bouches-du-Rh%C3%B4ne> et
a pour code postal 13200.
Une fois les entités définies, intéressons-nous aux relations « a pour département » et « a pour code postal », ce sont des relations qui doivent être traduites en langage sémantique pour pouvoir être interprétées de manière standardisée. On va pour cela utiliser des vocabulaires (ou ontologies si vous voulez aller plus loin aussi) qui définissent ces types de relations.
@prefix dbpedia2: http://dbpedia.org/property/
Il ne reste plus qu’à remplacer les relations par celles du vocabulaire employé :
<http://dbpedia.org/resource/Arles>
dbpedia2:département <http://dbpedia.org/resource/Bouches-du-Rh%C3%B4ne> et
dbpedia2:cp 13200 .
On peut aussi raccourcir les adresses des entités et on ajoute un peu de cosmétique pour avoir quelque chose de valide :
@prefix : http://dbpedia.org/resource/
@prefix dbpedia2: http://dbpedia.org/property/
:Arles dbpedia2:département :Bouches-du-Rhône ;
dbpedia2:cp "13200" .
Et voilà, on a réussi à définir nos deux triplets correspondant à nos deux relations. Comment maintenant réexploiter ces données ? SPARQL est le langage permettant d’effectuer ce type de requêtes, vous pouvez par exemple rechercher tous les triplets concernant la ville d’Arles :
SELECT ?verbe, ?complement WHERE {
:Arles ?verbe ?complement .
}
Ou rechercher les villes qui ont pour code postal 13200 :
SELECT ?ville WHERE {
?ville dbpedia2:cp 13200 .
}
Note : les vocabulaires « vide » et « dbpedia2 » sont déjà défini par l’outil effectuant les requêtes et sont donc réutilisés ici.
Zemanta est par exemple un plugin pour blogueurs qui permet d’aller chercher des informations complémentaires sur DBpedia lors de la rédaction d’un billet, vous pouvez ainsi les enrichir de tags, contenus, photos, etc.
DBpedia n’est qu’un exemple et ne représente qu’une partie du graphe mondial composé par ces différentes sources de contenus et de relations, on dénombre plus de 10 milliards de triplets publics à ce jour qui sont indexés par Sindice. Et ce nombre croît exponentiellement…
On arrive en fait à un graphe mondial qui est pour l’instant, faute de relations, limité aux données librement exploitable mais dans lequel seront ajoutés à terme les relations publiques entre personnes. C’est déjà le cas avec les profils FOAF existants et les services exposant ce style de relations, comme le montre l’application paggr (en alpha, regardez plutôt la vidéo en HD téléchargeable).
RDFa est un moyen d’enrichir les données de vos documents html en ajoutant des attributs (d’où le a de RDFa) aux balises existantes. Ces métadonnées sont invisibles pour le visiteur et sont principalement destinées aux applications tierces dans le cadre d’une réutilisation de vos données.
Les microformats partagent le même objectif en utilisant les attributs déjà existants dans du html (class, title, etc). Il faudra que je fasse un compte-rendu de l’atelier animé avec Frédéric pour résumer tout ça.
RDFa utilisant la souplesse de RDF, vous avez une très grande liberté au niveau du choix des vocabulaires par exemple, ce qui n’est pas possible avec les microformats qui figent les propriétés à ajouter et les types de relations (les relations entre individus ont par exemple été définies pour les sociétés occidentales et ne sont pas adaptées à certaines cultures).
Enfin l’utilisation de l’attribut title pour stocker des informations illisibles pour un humain pose des problèmes d’accessibilité car ces données sont lues par les lecteurs d’écran. C’est la raison pour laquelle la BBC a décidé de retirer les microformats de ses programmes et va utiliser RDFa. D’autres sites comme la London Gazette utilisent déjà RDFa et sont contents.
Note : la spécification RDFa a été traduite récemment et le tutoriel qui m’a permis de faire l’atelier est très intéressant.
Skyrock, bien connu pour sa communauté de jeunes blogueurs, a récemment associé des profils qui sont une représentation de l’identité numérique de ces 10 millions de personnes.
Il est par contre dommage qu’ils n’aient pas donné un moyen de promouvoir/réutiliser cette identité sur d’autres sites d’une part et de multiplier les types d’identification sur leur réseau (TaSanté, BonBiz, TropMalin, etc) alors qu’OpenID est une solution adaptée à cette problématique.
OpenID va en effet vous permettre d’avoir un identifiant unique (sous la forme d’une adresse) qui vous autorisera à vous identifier sur les services proposant cette méthode qui est de plus en plus utilisée. Il est très probable que vous ayez déjà un OpenID sans le savoir si vous avez déjà un compte sur un des services listés (notamment Yahoo!, Google, MS Live, Flickr, WordPress, Orange, etc).
Un autre problème réside dans l’accès aux données stockées en ligne, il ne devrait jamais être nécessaire de donner vos identifiant/mot de passe à un service tiers qui pourrait alors usurper votre identité. Le protocole OAuth, via un échange de tokens, permet à l’utilisateur de choisir s’il veut laisser un accès et les données qui vont être accessibles par le service tiers. De plus, il pourra bloquer cet accès à partir du service stockant les données (en cas de changement de la politique du service tiers par exemple).
Au final, ces deux protocoles simplifient la vie de l’utilisateur et lui laissent un plus grand contrôle sur ses données. On peut parfaitement envisager comme je l’expliquais plus haut que l’utilisation d’OpenID permette de découvrir l’adresse stockant le profil dont les informations pourraient être rendues accessibles de manières granulaires avec OAuth. Cette manière standardisée simplifierait grandement la vie du développeur qui n’aurait plus à apprendre une API par service.
Pour avoir commencé à jouer sérieusement avec, je trouve qu’il manque encore quelques outils (en tout cas en Python) permettant d’exploiter à fond ces technologies, aussi bien au niveau du stockage que des protocoles. C’est dommage d’être limité par cela lorsqu’on a l’idée en tête du service final mais heureusement, chacun y mettant un peu du sien, ça évolue rapidement.
Un autre problème majeur est celui des interfaces utilisateurs. D’un côté il faudrait pouvoir arriver à la granularité au niveau du triplet RDF pour établir des permissions très fines et de l’autres les utilisateurs sont pressés et ne souhaitent pas passer des heures à chaque fois qu’ils doivent entrer une nouvelle relation (ce qui est parfaitement compréhensible). Il va falloir faire un important travail de réflexion à ce sujet qui ne doit pas être opéré par des geeks. Pour y réfléchir depuis plus d’un an je n’ai pas trouvé de solution miracle, il est possible de mettre des choix par défaut pertinents mais la liberté offerte par RDF rend difficile la généricité à ce niveau…
Les problèmes de sécurité (phishing) pour les protocoles OpenID et OAuth qui effectuent des redirections de l’utilisateur gagneraient à être implémentées/contrôlées directement au niveau du navigateur. Je vais essayer de proposer quelque chose de concret sur le sujet.
Enfin il y a quelques problèmes de performances à résoudre avant de pouvoir véritablement industrialiser tout ceci, que ce soit au niveau des bases de données (même si c’est en train de changer rapidement) ou des mécanismes de synchronisation des identités distribuées par exemple.
Outre ceux évoqués dans les exemples, il y a encore deux avantages (au moins) à utiliser ces technos :
Inutile de préciser qu’il est fun d’être précurseur dans le domaine, d’être en communication directe avec ceux qui standardisent le web et d’imaginer/concevoir les services de demain. Car oui, la prochaine évolution du Web et le Graph (ou GGG défini par Tim Berners-Lee), et on va ainsi vers la compréhension des concepts par les machines, ce qui nous rapproche de plus en plus d’une forme d’intelligence sémantique.
Les différentes évolutions ont permis de passer du Net qui était un réseau de machines (notion d’outil, de prolongement de l’Homme) au Web qui est un ensemble de documents accessibles à tous (notion d’externalisation de la mémoire) pour aujourd’hui arriver à un Graphe permettant d’établir des relations entre documents, personnes et concepts. Relations qui sont pour l’instant réservées à notre cerveau…
Au final, malgré un manque de maturité sur certains aspects, miser sur le Web Sémantique est à mon avis un point clé pour l’avenir d’un service. J’espère que les utilisateurs vont prendre conscience de l’importance de leur identité numérique et du contrôle de leurs données et ces nouveaux besoins nécessiteront les technologies du Web des Données Liées. Si cette évolution des mentalités et des usages ne s’effectue pas, nous allons vers un monopole de quelques entreprises qui contrôleront ces données. Il est peut-être même déjà trop tard… à vous de choisir et de créer !
Issues des remarques que j’ai pu avoir :
C’est par exemple le cas lorsqu’on a plusieurs comptes un peu partout sur la toile et/ou plusieurs OpenID. Il est parfaitement possible de lier ses comptes externes dans son profil FOAF (voir par exemple la fin de mon profil FOAF où j’en déclare certains).
J’ai oublié d’en parler plus haut mais il est également possible d’avoir plusieurs profils sur le même compte OpenID afin de gérer la diversité de vos identités numériques par exemple. Votre fournisseur vous laissant le choix du profil à renvoyer lorsque vous vous identifiez sur un service tiers.
C’est tout à fait vrai, si une adresse nous représente et que l’on perd son nom de domaine par exemple ça peut poser problème, c’est la même chose avec les liens que l’on établi avec des ressources externes afin d’ajouter du sens (c’est pas nouveau, il doit y avoir des centaines de liens cassés sur ce site pour ça…). Il y a une initiative, OpendGUID qui permettrait d’améliorer la pérennité de ces adresses mais c’est assez récent il me semble. Je n’ai aucune solution miracle pour l’instant.
Je ne sais pas trop où ça en est sur ce point, j’ai découvert récemment le projet poshRDF qui permet de convertir des microformats en RDF. C’est un début.
J’ai complètement oublié de parler de ça mais heureusement Martin a engagé la discussion sur ce point. Je suis persuadé qu’il y a un bon coup à jouer sur ce point, que ce soit au niveau de l’état ou des communes mais ça demanderait un réveil numérique dans un premier temps qui me semble, hum, lointain.
Les banques, probablement plus réactives, ont aussi la possibilité de certifier les OpenID car elles peuvent garantir que la personne identifiée est bien celle qu’elles prétend être, ce qui est un atout non négligeable sur la longue route de la confiance qui s’annonce.
Note : il y avait d’autres questions mais j’ai oublié, en commentaire si vous avez une meilleure mémoire.
Difficile de trouver des ressources qui ne sont pas déjà liées dans Le point sur RDF et RDFa ou À la recherche d’un site sémantique (plus ancien), vous pouvez aussi jeter un œil à la catégorie Web Sémantique de ce blog.
Ensuite il y a bien évidemment le planète Web Sémantique qui regroupe les blogs francophones sur le sujet et son homologue anglophone. Il n’y a rien de mieux pour faire de la veille.
Pour aller plus loin il y a l’excellente présentation de Fabien Gandon sur les technologies du W3C.Le texte How Will We Interact with the Web of Data? va plus loin en décrivant les manques actuels liés aux navigateurs ne s’appuyant pas assez sur le Web Sémantique.
Enfin le magazine Nodalities est une excellente référence si vous êtes bien accroché(e), c’est un mensuel qui traite de l’actualité sémantique et qui contient de nombreux exemples d’applications. Un must, d’autant qu’il est envoyé gratuitement en version papier.
PS : Merci infiniment aux organisateurs de Paris Web de m’avoir permis d’exprimer ces idées devant autant de personnes curieuses du web et de son avenir.