# ★ Ma killer app pour le Web Sémantique

ReadWriteWeb se demandait récemment quelle serait la Killer App du Web Sémantique, ce à quoi Tim Berners-Lee avait déjà répondu « Le Web Sémantique est la killer app ». Je n'ai pas la prétention de détenir cette killer app mais la phase de réflexion/maturation personnelle arrive à sa fin et je pense que vos avis sont importants pour progresser et arriver à un outil au plus proche de nos besoins.

## Faut-il avoir peur du Web Sémantique ?

En guise de préambule et suite aux réactions suscitées par mon précédent article sur APML et aux réflexions que j'ai pu lire un peu partout considérant le Web Sémantique comme le nouveau Big Brother, je pense qu'il est nécessaire de faire un point sur ce qu'il en est afin de ne pas transformer l'incompréhension en moteur d'exclusion.

Le Web Sémantique ne permet « que » de donner du sens à vos données. Si vous avez le contrôle sur vos données, il n'y a aucune raison d'avoir peur de dévoiler votre vie privée puisque vous renseignez les éléments qui vous intéressent et vous donnez accès à l'information aux services que vous souhaitez. Si vous avez un OpenID, c'est exactement ce qu'il se passe lorsque vous autorisez le service à accéder à certains éléments de votre profil. Vous pouvez avoir plusieurs profils de façon à gérer vos différentes identités en ligne (professionnelle, loisir, etc) et autoriser l'accès très finement à certaines parties de votre profil.

## Un exemple concret : FOAF

Je me suis enfin décidé, motivé par Gautier et son réseau social garanti sans pub, à créer un fichier FOAF qui soit relativement complet, accessible via la page qui me sert désormais d'identité en ligne. J'ai commencé par les membres du planète web sémantique mais je me suis vite rendu compte que ce type de gestion (à la main !) était inadaptée et qu'un tel fichier devait être synchronisé avec mon carnet d'adresses d'où la nécessité d'un nouvel outil.

Si vous voulez créer votre propre fichier, je vous conseille soit de passer par un générateur (un autre supportant l'import de vCards), soit de le faire à la main, j'ai finalement opté pour cette dernière de façon à avoir un fichier plus complet. Le plus facile est encore d'éditer/adapter un profil existant à mon avis. N'oubliez pas la validation finale !

Vous pouvez grâce à ce fichier générer une page de profil automatiquement par exemple. Est-ce problématique ? Considérant le fait que vous avez renseigné ces informations et que vous pouvez les modifier à tout moment car vous en avez le contrôle, non.

Et ce n'est qu'un début... on peut va faire énormément plus. Notamment au niveau des permissions, je souhaite par exemple que les personnes identifiées comme amies grâce à rel:friendOf puisse accéder à ma liste d'amis mais pas les autres, etc.

## Le web de demain (matin)

Il y a deux approches différentes qui se démarquent actuellement : DiSo et OPSN. La première mise sur le développement de modules qui vont progressivement être intégrés au outils actuels (il ont commencé avec des plugins pour Wordpress par exemple). La seconde c'est du plus lourd, il s'agit de développer un outil permettant de gérer son identité en ligne. Lorsque j'ai consulté la présentation, j'ai tout de suite été séduit car c'est ce que je comptais faire !

Les données sont actuellement contenues dans des entrepôts 2.0 et il est nécessaire de faire éclater ces entrepôts afin de rendre ces données aux utilisateurs (bon jusque là rien de nouveau). On va donc arriver à un entrepôt par personne, il s'agit maintenant de déterminer où placer ces entrepôts personnels et comment y accéder.

Si on considère l'URI comme identité numérique, on a déjà répondu à un bon nombre de ces problématiques avec OpenID. Grâce à OpenID, vous pouvez connaître le lieu où réside l'entrepôt d'un utilisateur (en plus de certaines informations données par le profil OpenID). Les liens de type meta dans l'en-tête de la page d'accueil de l'entrepôt vous permettent d'accéder au fichier FOAF ou APML par exemple.

Mais comment gérer l'accès granulaire à ces données ? Il existe pour cela OAuth (on peut même facilement découvrir le type d'accès) qui permet de gérer les accès à partir de tokens. Pour en savoir plus je vous conseille l'excellente présentation de Leah Culver (slides, vidéo).

Que manque-t-il alors ? Tout simplement un outil permettant à l'utilisateur de gérer ces données dans son entrepôt. Éditer du RDF à la main pour faire son FOAF ça va un temps mais je veux qu'il devienne mon carnet d'adresse, je veux qu'il se synchronise avec mon logiciel d'envoi de courrier électronique, je veux qu'il se synchronise aussi lorsque j'accepte un ami dans l'application de mon choix, etc. Les standards sont en place, il ne reste plus qu'à développer les outils qui vont avec.

Et ce n'est qu'un début, une fois l'identité (sociale) établie on peut passer aux contenus avec SIOC par exemple afin de récupérer les contenus émis sur les forums, en commentaire de blog, etc ou DBpedia si l'on s'intéresse davantage au savoir, les perspectives peuvent aller très loin...

Je termine avec un petit schéma pour que ce soit plus clair :

Cette application constituerait la glue permettant de mettre en relation la gestion des données, leur représentation et leur accès. Il n'y a plus qu'à sortir la caisse à outils et à faire :-).

### Articles peut-être en rapport

- ★ RDF, l'ADN de notre identité numérique ?
- ★ Découvrons OAuth avec mixin (et django-oauth)
- ★ Architecture web moderne et agile

### Commentaires

Antoine le 12/01/2008 :

La démarche que tu exposes n'est-elle pas un peu celle que DataPortability veut mettre en place ? Il n'y a rien à écrire pour nos profils, la majorité de nos profils sont déjà écrit, d'où l'intéret de DataPortability

David, biologeek le 12/01/2008 :

DataPortability c'est bien mais depuis le « succès Scoble » j'ai vraiment peur que ça devienne une liste avec des discussions sans fin à la W3C (encore plus depuis qu'il y a des acteurs majeurs qui sont entrés dans le groupe), ça a du bon dans le sens où ça fait progresser la réflexion et parler du web sémantique mais au niveau de la concrétisation ça pose problème.
Ils ont aussi des choix qui ne sont pas forcément les plus judicieux à mon avis, RSS vs. Atom -> on prend RSS car c'est plus utilisé, FOAF -> c'est trop vieux...
En bref, c'est un excellent groupe de réflexion mais si on veut une application il va falloir se la faire, je commence à en avoir marre de ces discussions sans fins. Ce qu'il manque aujourd'hui c'est la glue et ça demande du code. Getting real.

Antoine le 12/01/2008 :

D'accord avec toi sur certains points mais je pense aussi qu'il faille un groupe de travail qui réflechi sur des solutions plus optimale sans obligatoirement proposer dans l'immédiat une solution. Au vu des acteurs qui sont récemment entrés dedans, cela pourrait mener vers une véritable solution de portabilité des données.
Il faut être honnête, un FOAF par exemple, c'est bien dans son concept mais concrement, ça ne sert pas à grand chose ;)
Pour le choix du RSS façe à Atom, il faut bien se rendre à l'évidence que c'est le format le plus utilisé. Parfois, les standards le sont "de facto" et pas par choix d'optimalité technologique.

NiKo le 12/01/2008 :

C'est pour le moins ambitieux, j'ai hâte de voir ce que ça peut donner :)
Tu t'es déjà fait quelques specs ? Une roadmap ? T'as selectionné les outils ? T'as besoin d'un coup de main ?

David, biologeek le 12/01/2008 :

@Antoine :
> je pense aussi qu'il faille un groupe de travail qui réflechi sur des solutions
Tout à fait, je ne remets pas en doute l'utilité de ce groupe, c'est juste qu'à mon avis (et j'espère vraiment me tromper !) rien ne va en sortir de concret avant des années : chaque « grand acteur » va essayer de tirer la couette à lui et on va arriver à un statu quo. C'est exactement ce qu'il s'est passé sur la liste social-network-portability (morte depuis la pub autour de DP). L'objectif n'est pas pour ces acteurs de faire avancer les choses dans la libération des données mais bien d'occuper le terrain. Les annonces de untel qui rejoint DP que l'on a vu sont en grande partie stratégiques... ils ne vont quand même pas renoncer à ces données qui constituent leur business model comme ça.
> un FOAF par exemple, c'est bien dans son concept mais concrement, ça ne sert pas à grand chose
Alors là je pense que tu te trompes. Dans un FOAF je peux stocker à la fois les informations me concernant mais aussi mes comptes distants et mes relations avec les autres, etc. Avec ça on peut faire énormément. Un simple exemple : tu arrives sur un service, il récupère ton FOAF grâce à ton OpenID et avec ça il te crée tes groupes d'amis, un groupe par type de relation par exemple. Utile ? Oui, dans la mesure où je n'ai plus qu'à le faire sur ma plateforme et ça synchronise directement vers tous mes services externes.
@NiKo :
> C'est pour le moins ambitieux, j'ai hâte de voir ce que ça peut donner :)
Et moi donc ;-).
> Tu t'es déjà fait quelques specs ?
J'ai une idée assez précise de ce que je veux, je pense qu'il faut commencer par faire une interface à la génération d'un fichier FOAF, ce qui implique la gestion du profil utilisateur + la gestion des contacts.
> Une roadmap ?
Non, je vais y réfléchir, tout se bouscule un peu en ce moment.
> T'as selectionné les outils ?
Je commence à bien maîtriser Django et les bindings Redland, je suis ouvert à d'autres suggestions.
> T'as besoin d'un coup de main ?
Toujours. Un petit groupe de motivés compétents serait parfait. Welcome aboard :-).

Antoine le 12/01/2008 :

Je ne contredis en rien le potentiel du FOAF, je pense également qu'il est assez important. Par contre, vu que le FOAF n'est que très peu utilisé, son intérêt en devient assez limité. C'est simplement le point que je voulais soulever.
Sinon, je pense que ce genre de post permet de faire jaillir de nouveau projet et peut-être mener vers des solutions à plus grande échelle qu'une discussion de comptoire.
Bonne chance dans ton projet et tiens nous au courant ;)

David, biologeek le 12/01/2008 :

@Antoine :
Ok, mettons nous d'accord sur le fait suivant : FOAF est inexploité mais utile :-).
Merci pour les encouragements.

Antoine le 12/01/2008 :

Tout à fait, son potentiel peut être grand mais pour le moment incroyablement inutilisé. J'ai également quelques aversions quant à la réelle protection de donnée présentes dans un FOAF mais c'est encore une autre histoire ;)

Alex. le 12/01/2008 :

Je réfléchis plus à une approche différente ( dfapassant.net/blog/2008/01... ), i.e. gérer mes réseaux sociaux sur des sites externes (flickr, twitter ...) puis agréger tout ça en local avec un outil comme Knowee dont je t'ai parlé l'autre jour: knowee.org/ mais si tu va plus loin dans ta démarche, ça m'interesse de suivre ça de prêt ;)
Si tu veux gérer localement ton profil et les affinités avec d'autres personnes, une solution mixte peut être d'étendre un outil comme knowee pour associer à chaque utilisateur une relation spécifique et/ou un niveau de confiance / permissions.
Ou alors, (toujours dans une optique du tout décentralisé) gérer ça en fonction des graphes sources (i.e. j'autorise toutes les personnes que je connais sur linkedin a voir toutes mon telephone, pas celles de twitter)

Misdre le 12/01/2008 :

Prêt à aider, si besoin est, j'ai beaucoup d'intérêt dans tout cela et depuis... longtemps...
À titre personnel, j'essayais de faire avancer/d'utiliser OpenID/FOAF sur un projet de site (de "vulgarisation biologique", d'ailleurs), notamment pour la gestion de tous les comptes utilisateurs (génération du profil via un fichier FOAF, ou génération d'un fichier FOAF en partant du profil), l'utilisation de ce même fichier FOAF pour y relier les commentaires/sujets sur un forum (si jamais il y aurait eu).
Toujours sur l'idée du web sémantique, j'avais même poussé à l'utilisation d'une ontologie pour les articles (avec, forcément, le besoin de se renseignait plus avant sur le sujet), puisque j'ai vu ici ou là que question biologie, ça avançait assez bien...
Enfin, on en parle on en parle mais comme souvent dans ces cas-là, ça reste lettre morte, tout cela datant d'avant juillet 2007 et rien n'ayant bougé depuis.
Je m'égare ;) Mais toujours prêt à apporter ma pierre (même si je ne suis pas familier de Django, Python me parle) !

Alex. le 12/01/2008 :

Misdre, pour lier tes utilisateurs à des billets de blog, commentaires ou autres contenus de sites communautaires, je te conseille de regarder SIOC, qui répond à cette problématique.
Si tu cherches une ontologie pour les articles de recherche tu peux regarder du coté de biliographic ontology, ou de SWRC, utilisée par ex pour les confs ISWC.
Les liens:
SIOC: sioc-project.org
Biblio ontology: bibliontology.com/
SWRC: ontoware.org/frs/download...
ISWC07 dataset: data.semanticweb.org/conf...

David, biologeek le 12/01/2008 :

@Alex : oui ta démarche et celle de knowee (dommage que les inscriptions soient bloquées, j'ai dû me contenter du screencast) sont intéressantes mais ça laisse les données dans les silos externes et j'aimerais rendre ça à l'utilisateur. Pour moi, ce sont aux applications de récupérer ces informations et de me proposer des services pertinents avec.
La solution mixte viendra dans un second temps, je pense notamment à la notion de synchronisation bidirectionnelle (j'ajoute un ami sur pownce -> il est ajouté à mon silo si l'application pownce a les droits). Et ça rejoint ta dernière proposition si j'ai bien compris (?).
Dès que je m'attaque à SIOC je te fais signe ;-).
@Misdre : ton expérience serait très appréciée dans le projet.

Olivier G. le 14/01/2008 :

C'est quelque chose que j'essaie de développer dans mon coin : un formulaire qui permettrait à n'importe qui de s'ajouter dans mon fichier FOAF. Libre à moi ensuite de préciser le rel:. Et si le type à déjà un fichier FOAF le décrivant, j'utilise un parser RDF en js pour en tirer les infos...
Ensuite se pose tout un tas de questions : validité des infos dans le temps ? Copier ou non le contenu du FOAF ? Que faire en cas d'indisponibilité des fichiers distants, etc..
On en parlera fin février, au WebSemCamp.

Olivier G. le 14/01/2008 :

Ah oui, il faut aussi déclarer ton FOAF dans le head de ton blog, non ?

David, biologeek le 14/01/2008 :

@Olivier G. : c'est une approche intéressante, j'aime bien celle d'Alex aussi qui récupère les FOAF à partir des commentateurs de son blog.
Pour la déclaration du FOAF sur le blog c'est une excellente question, je me demande si le lien rel="me" vers le profil serait suffisant...

Olivier G. le 14/01/2008 :

Pour la déclaration, j'utilise <link rel="meta" type="application/rdf+xml" title="FOAF" href="/rdf/carmine.rdf" />, qui est reconnu par l'extension firefox Semantic radar.

David, biologeek le 14/01/2008 :

@Olivier G. : oui moi aussi sur le profil, la question était de savoir si je centralise les déclarations ou pas :-).

frédéric sidler le 16/01/2008 :

FOAF, RDF, RSS, etc, etc. L'utilisateur final, ça lui est égal. Lui ce qu'il veut c'est que ça soit simple et qu'il ne doive pas gérer cela à plusieurs endroits à la fois.
Ce que tu fais à un endroit doit être immédiatement compréhensible et doit être automatiquement répercuté dans tous les services auxquels tu participes.
Le principe est simple en soit, mais comment le faire décoller, là est à mon avis la question.
Pour moi Scooble a raison aujourd'hui quand il dit que Facebook est l'endroit rêvé pour gérer ses contacts, les relations entre eux, mais que c'est impossible d'exporter ces informations.
Pour moi c'est évident que c'est par là qu'il faudrait commencer, on passe tellement d'énergie à gérer un compte facebook (ou autre, mais il faut bien avouer que c'est le truc du moment) que c'est à cet endroit bien précis qu'il faut commencer à gérer son FOAF et celui de ses amis.
Imagine une simple application facebook qui te permet de gérer les envies de tes amis et créé en background un fichier FOAF. Je check à l'instant et je trouve déjà cette appli www.facebook.com/apps/app...
Malheureusement pour l'utilisateur final, ça se transforme à nouveau en fichier technique RDF incompréhensible.
Transformez ce type d'application en jeux comme tout tout ce qui est fun sur facebook. Les gens vous en remercieront et la base de connaissance s'aggrandira de façon exponentielle ;-)

NiCoS le 16/01/2008 :

Un peu à la traine mais deux trucs :
- billet & projet très intéressant, miam !!
- si besoin, je veux bien filer un coup de main - surtout si c'est en django et ça peut m'intéresser pour MvMo peut être un jour... :)
++
Nico

Gael - Danger Santé le 16/01/2008 :

Très bon article, bravo à biologeek =)

David, biologeek le 17/01/2008 :

@frédéric sidler : je sais bien que l'utilisateur final se fout de la techno, et malheureusement de l'appartenance de ses données... ce que je veux développer c'est pour conserver ce choix : soit pouvoir installer son appli sur son serveur en bon geek, soit s'inscrire sur un service (je reparlerais du modèle économique dans l'un des billets sur la suite des applis web libres) qui permette de gérer très simplement tout ça avec tous les exports qui vont bien si un jour cet utilisateur souhaite migrer sur son propre serveur.
Après la politique de facebook me fait vomir depuis le début. Ce service est voué à l'échec à long terme, ils ont quelques années de retard au niveau de l'évolution des mentalités... on dirait du Microsoft, c'est dire :-). La dictature des données bien juteuses doit toucher à sa fin.
@NiCoS : ok, c'est pas tombé dans l'oreille d'un sourd.

Misdre le 18/01/2008 :

Alex : merci pour les liens, j'avais déjà entendu parler de SIOC, mais pas du tout de Biblio ontology/SRWC (même si je connaissais ISWC).
Concernant l'export de ses données, peut-on imaginer ensuite que l'on puisse exporter toute son "activité" sur un site quelconque ? Par exemple, exporter ses commentaires effectués sur un blog... (il me semble que ça rejoint une vieille réflexion de Karl, sur La Grange)
Et si cela s'avère utile et/ou souhaitable, en quel format ? Je pensais à Atom (ou RSS, mais bon), mais ce n'est sans doute pas fait pour ça, et mon manque de lecture ici ou là m'empêche d'avoir une réflexion un peu plus poussée (*note qu'il doit jeter un oeil à SIOC, et tant d'autres choses*).
Autre sujet : de ce que je peux en lire, j'observe un certain sceptiscime vis-à-vis d'OpenID. Cette centralisation ne semble pas du goût de tout le monde...
cf. les premiers commentaires ici : www.zdnet.fr/actualites/i... (site que je ne lis pas d'habitude, mais l'info était intéressante ;) )
...et je dois avouer que parfois, les arguments me manquent, même s'il m'arrive de signaler qu'avoir le même mot de passe sur 140 services, c'est beaucoup moins bien qu'OpenID question sécurité !

David, biologeek le 18/01/2008 :

@Misdre :
> Concernant l'export de ses données, peut-on imaginer ensuite que l'on puisse exporter toute son "activité" sur un site quelconque ?
C'est en effet le but, à terme je souhaite bloguer et commenter sur ma plateforme en spécifiant la cible (mon blog ou celui des autres).
Ça pourrait être Atom permettant une automatisation possible avec APP si on veut passer à du "pushing"... bon je vais un peu trop loin là, il reste à coder le socle avant.
Concernant le scepticisme vis-à-vis d'OpenID, ça rejoint le premier paragraphe de ce billet : ceux qui ont des craintes sont généralement ceux qui n'ont pas compris la techno...

Ed Daniel le 01/02/2008 :

Have you considered:
* federated trust models
* p2p architecture
Nice post - keep at it!

David, biologeek le 01/02/2008 :

@Ed Daniel:
Thanks for your really interesting suggestions.
What did you mean by "federated trust model"? Some kind of PGP encryption? (eg: usefulinc.com/foaf/encryp... for FOAF)
For the p2p part I'll think about it even if it's not really mature for the moment (I'd already talked about it here: www.biologeek.com/journal... if you're interested).
Anyway, I'll talk about the process soon.

ushu le 08/03/2008 :

>Concernant le scepticisme vis-à-vis d'OpenID, ça rejoint le premier paragraphe de ce billet : ceux qui ont des craintes sont généralement ceux qui n'ont pas compris la techno...
je pense que la confusion vient déjà du nom "OpenID" qui fait immédiatement penser aux certificats numériques (en tout cas chez moi) et autres technologies plus "classiques". Or les objectifs, et les garanties, ne sont pas les mêmes.
Ensuite le niveau de sécurité n'est quand même pas terrible:
- dépendance du fournisseur (pas aussi contrôlé que des fournisseurs "pros" de certificats x509, car pas encore d'enjeux commerciaux) qui peut parfaitement loguer;
- risque de fishing évident;
- le contrôle se fait au niveau de l'authentification et pas au niveau du message (pas de signature), ou en tout cas c'est ce que j'ai compris;
- la protection par mot de passe (maxi 10-15 caractères si d'usage courant, 5bits/octet en moyenne de variabilité) VS clé grosse clé aléatoire...
Sinon la techno est vraiment sympa du côté de l'utilisateur avancé. Je pense que je vais m'en faire une, mais je continureai à signer mes messages avec GnuPG, c'est mon côté parano...

RU3 :: tentatives d'intelligence collective et ... le 16/03/2008 :

Olivier Gendrin au SocialMediaCamp : Web sémantique et portabilité des données personnelles

Lire la vidéo (Durée : 4 minutes) - Version QuickTime Olivier Gendrin est intervenu le 23 février au Social Media Camp qui s’est déroulé à La Cantine à Paris pour aborder la question comp...

Kevin le 17/06/2008 :

Ha, j'ai enfin trouvé d'où venait tout ce traffic sur cette page de mon blog.

Enfin, sur des 404...

Donc, pour prévenir, la page a changé d'adresse, si tu veux modifier le lien de ton article :

http://kevinbongart.net/blog/2007/12/31/apml-attention-profiling-mark-up/

Merci encore pour toutes ces informations, je crois que c'est le seul blog en français que je connaisse sur les pierres du Web sémantique. Et quels excellents billets !

David, biologeek le 18/06/2008 :

@Kevin : merci, j'ai mis à jour le lien (et sinon les redirections c'est bien aussi ;-)).

termitor le 28/02/2010 :

ah, des outils encore des outils toujours des outils.

un framework , c'est une boite a outils que l'on doit utilise avec une méthode précise.

c'est ce qui manque le plus , définir des méthode agile et des outils pour un usage précis.

l'es objet sur lesquels on agie, c'est le modèle , finalement, c'est la partie que l'on maitrise le mieux. L'objet dicte son usage.

Un outil pour générer des vues. un moteur de template, celui ci n'est pas toujours bien défini. on navique presque au hasard dans cette jungle.

et un outils pour les controller tous , c'est la main qui applique la méthode avec agilité.
mais il n'est rien sans les autres outils et sans les objets a manipuler.

J'ai encore du mal a comprendre, pourquoi en informatique on a tellement de mal a définir de façon certaine, comment devrais être organisé le travail sur les choses.

Quelqu'un pourrais me dire pourquoi?