Magnum03 Nepomuk
Un article de Wiki de la communauté Mandriva.
Dans le cadre de l'avènement de KDE 4, j'avais décidé de faire un dossier spécifique aux nombreuses implications de Mandriva dans KDE 4. J'avais entendu parler du bureau sémantique Nepomuk, et de son intégration dans KDE. Mais sans être spécialiste du domaine, je supposais que j'allais en faire une page ou deux que j'intégrerais dans ce dossier. J'ai donc rencontré, virtuellement, deux personnes impliquées dans le projet : Stéphane Laurière, chargé de projet pour le compte de Mandriva et Sebastian Trüg, architecte du poste de travail sémantique Nepomuk dans KDE4, également employé par Mandriva. Puis j'ai découvert un vaste et ambitieux projet, soutenu et financé par seize entreprises européennes du secteur IT, dont Thales, IBM, SAP et bien entendu Mandriva, ainsi que de nombreux centres de recherches et laboratoires européens. Ce projet a en outre été doté par la commission européenne du budget conséquent de 11 millions d'euros dont 0,9 réservé à Edge-IT, filiale de Mandriva orientée recherche et sécurité. Ouverture, réseau sociaux, intelligence artificielle, Peer to Peer, abolition des frontières numériques entre web et poste de travail, révolution du web, autant de concept qui entourent le projet Nepomuk.
Sommaire |
[modifier] L'origine de Nepomuk (en quelques mots)
L'histoire commence lors d'une rencontre au Luxembourg, dans le cadre de la journée organisée par la commission européenne sur la recherche dans le domaine du réseau. Stéphane Laurière (Arkub), en tant que représentant de Mandriva, présente alors le wiki sémantique Xwiki. Que ceux qui ne connaissent pas encore le terme de sémantique ne s'affolent pas, je vais l'expliquer par suite. Stéphane rencontre à cette occasion Stefan Decker ( http://www.stefandecker.org/ ), professeur à la National University of Ireland et Martin Frank, de Stanford, tous deux coauteurs du livre blanc « The Networked Semantic Desktop » ainsi que Ansgar Bernardi du DFKI (Centre de Recherche Allemand sur l'Intelligence Artificielle). Stefan Decker est aussi directeur du DERI (Digital Enterprise Research Institute) dont les recherches concernent le Web Sémantique, les métadonnées, les ontologies et les données semi-structurées, les services web et les application pour les Médiathèques Numériques, la gestion des connaissances, l'intégration de l'information et le Peer 2 Peer. Oui, je l'avoue, je me suis un peu "lâché" sur les suites à rallonge de noms emphatiques. Et encore j'en ai enlevé. Mais cela aide à percevoir le foisonnement des cerveaux de multiples horizons. Et c'est dans ce contexte que Mandriva se voit proposer de se joindre à eux afin de participer à un projet de plus grande envegure, soutenu par une quinzaine de partenaires.
Tous les 5 ans, la commission européenne finance un programme cadre pour la recherche et le développement dans les domaines de la robotique, de l'informatique... En 2006, un projet de bureau sémantique est alors soumis à la commission. Plus précisément, il s'agit d'un projet d'"Environnement pour une gestion avancée des connaissances personnelles et leur échange au sein d'un réseau social (1)". Retenu par la commission le projet Nepomuk va alors naître.
[modifier] La vision de Nepomuk : le poste de travail sémantique
Mais d'abord, c'est quoi le poste de travail sémantique ?
Pour faire simple, le poste de travail - ou bureau - sémantique c'est l’ensemble des technologies permettant :
- aux utilisateurs d'organiser et partager et des ressources (documents, mails, images, vidéo...) à la manière d'un réseau, et non plus dans des répertoires hiérarchisés.
- aux ordinateurs de rechercher des informations à la manière du cerveau humain.
Abordons ces trois points : organisation, partage et recherche.
[modifier] Organisation
Nous sommes aujourd'hui habitués aux dossiers et sous dossiers qui composent l'arborescence de notre disque durs, à tel point qu'il est difficile, parfois, d'imaginer une autre forme d'organisation de nos fichiers.Et pourtant, des logiciels comme Amarok, ou iTunes pour la musique, ou bien Digikam pour les photos, utilisent une autre forme d'organisation basée sur les métadonnées. Que sont les métadonnées ? Par exemple dans le cas d'un fichier musical mp3 ou ogg, il peut s'agir de l'auteur, du titre, du genre, de l'album, du numéro de piste, de commentaires, des paroles, d'une note, de sa date de sortie... Dans le cas d'une photo il peut s'agir de données similaires : le photographe, le type de photo, et plein d'autres informations : "est-ce une photo noir et blanc, sépia ou couleur ?", une photo de paysage, une photo de portrait et ainsi de suite.
Grâce à cette gestion des métadonnées, il n'est donc pas besoin de créer des dossiers : toutes les musiques pourraient être en vrac dans un seul dossier, Amarok se chargeant du classement par genre, par auteur, par préférence et ainsi de suite.
L'idée du poste de travail sémantique est d'étendre cette notion à l'ensemble des ressources de l'ordinateur, qu'il s'agisse de mails, d'historiques de conversation jabber, de fichiers textes, images, etc. Dans un poste de travail sémantique, l'utilisateur a à sa disposition des outils lui permettant d'organiser efficacement ses ressources via des métadonnées. Ces métadonnées seront alors les liens entre les différents noeuds du réseau de ressources que sont les documents, musiques, pages web.
[modifier] Partage
Le web sémantique

Aujourd'hui, la séparation existant entre web et poste de travail est très visible. J'ai une vidéo de mon séjour en Bolivie : si je veux qu'on la consulte, je dois la charger sur mon site web, ou a défaut sur Youtube, ou bien la mettre dans le dossier de mon logiciel P2P. Dans le poste de travail sémantique, le web vient à l'ordinateur. La machine connectée devient un élément actif du web, comme c'est déjà le cas en partie pour certains logiciels de peer to peer. Ma vidéo, si je veux que les gens la visionne, je n'ai pas besoin de la charger sur youtube, je modifie la métadonnée "non visible" sur internet par "visible" et hop ! ma vidéo, avec toutes ses métadonnées, est accessible à tous. Cette notion est communément appelée "réseau social".
[modifier] Recherche
Jusqu'à présent la recherche de ressources à travers le web (google, exalead, yahoo...), sur un moteur de P2P (aMule, GNUnet...) ou sur un poste de travail, s'est toujours effectuée plus ou moins de cette manière : Je tape un mot, au besoin je précise le type de fichier, sa taille... et j'obtiens une liste plus ou moins longue de résultats, plus ou moins en rapport avec ma recherche (voire pas du tout). Sur les postes de travail (entendez par là sur votre ordinateur) il existe des moteur rapides, puissants et de mieux en mieux conçus (Spotlight d'Apple, Google Desktop Search, Beagle++...)
Les moteurs de recherche les plus puissants, en particulier ceux du web, utilisent de nombreux algorithmes pour optimiser la pertinence des réponses. Mais cette recherche se limite essentiellement à des "suites de mots" collés, mais sans que l'ensemble des mots, c'est à dire la phrase, n'ait de signification. Un être humain interprétera différemment "le thon qui nage est rouge", "le train surfe au camembert" de "bien ne vert boule froid". Pour le moteur de recherche, c'est pareil, ce sont trois suites de mots dont il va essayer de tirer quelque chose. Pour l'être humain, il a détecté deux phrases qui ont du sens, même si l'une d'elle est absurde. Deux phrases dont la forme est correcte, ce que nous pourrons appeler la syntaxe (sujet, verbe, complément), mais une seule signifiant réellement quelque chose, ayant du sens, ce que nous appelons alors la sémantique. Pour reprendre l'expression de l'article de Wikipédia sur la sémantique :
Imaginons un exemple plus concret : Je recherche, disons sur Google, les « pièces de théatres jouées à Barcelone en 2007 ». Grâce à ses algorithmes et à sa performance, je vais, avec de la chance, trouver quelques sites parlant en effet de « théatre à Barcelone ». Seulement le moteur de recherche a-t-il réellement compris l'objet de ma recherche ? Non, car chaque mot est vu comme un des éléments de la recherche. Je ne cherchais rien sur Barcelone, mais le moteur m'affiche des sites d'informations sur Barcelone, son histoire, ses théatres ; un peu plus loin je tombe sur un site listant des évènements survenus en 2007 ; puis plus loins sur l'annonce un acteur de théatre qui cherche un appartement trois pièces à Barcelone ; et ainsi de suite... Le moteur de recherche, aussi puissant et rapide soit-il, n'a d'une part pas compris le sens de ma demande, d'un point de vue syntaxique ou sémantique, et d'autre part n'a rien compris aux documents qu'il propose dans sa liste de résultats.
Imaginons maintenant un moteur de recherche qui comprenne le sens de ma demande, c'est à dire capable d'utiliser tous les moyens à sa disposition pour trouver des documents en rapport avec la demande, y compris des photos et des enregistrements audio et vidéo, et capable de vérifier que les documents dont il me donne la liste correspondent bien à ma demande : chaque document listé serait alors en rapport avec une pièce de théatre, ayant été jouée à Barcelone en 2007. Ce type de relation est appelée ontologie (le "O" de Nepomuk [2]). On pourrait imaginer encore d'autres recherches par ontologie, que ce soit sur le web ou sur son poste de travail : "les photos prises par tel photographe" "les documents (mails, discussions, textes...) se rapportant à des contrats de plus de 10000 €" (ça c'est mon petit exemple "corporate", il faut bien que les décideurs pressés se reconnaissent aussi).
Bref, le moteur de recherche du web sémantique se doit d'être intelligent. Enfin quand je parle d'intelligence, je ne parle pas du moteur d'IA contrôlant les personnages d'un jeu vidéo, je parle d'une véritable intelligence à "échelle humaine".Ce n'est donc pas un hasard si le centre allemand DFKI, spécialisé dans l'intelligence artificielle, coordine le projet.
[modifier] Les objectifs du projet Nepomuk
[modifier] La création et la validation de standards ouverts
Le premier objectif de Nepomuk est en premier lieu de créer les standards ouverts autour du concept de poste de travail sémantique, tout comme le html est le langage du web. Pour l'instant les partenaires participant au projet établissent les spécifications de base des outils.
[modifier] La création d'API (interfaces de programmation)
Afin de lancer la dynamique autour de ces standards et de les confronter à la réalité, il a été décidé, dans le cadre du projet soumis à la commission européenne, de développer en parallèle des environnements logiciels implémentant les standards naissants de Nepomuk.
C'est ici qu'intervient Mandriva : sa principale tâche consiste à mobiliser les communautés de développeurs autour de ce projet. Pour démarrer, et afin de satisfaire aux conditions d'acceptation du projet par la commission européenne, trois environnements libres ont été choisis : l'environnement graphique KDE 4, la plateforme de développement d'applications Eclipse d'IBM (un des partenaires du projet) et le navigateur Firefox de Mozilla (pour rappel, la fondation Mozilla Europe est hébergée dans les locaux de Mandriva). Ces trois sous-projets sont respectivements appelés Nepomuk-KDE, Nepomuk-Eclipse et Nepomuk-Mozilla.
L'objectif final est que chaque entreprise, chaque projet puisse intégrer Nepomuk dans ses propres solutions.
[modifier] Zoom sur Nepomuk-KDE
Sebastian Trüg est le développeur du projet Nepomuk-KDE, qui constitue l'ensemble du projet d'intégration de Nepomuk dans KDE 4. Voyons maintenant ce que nous apporte concrètement ce projet.
[modifier] Nepomuk, Soprano et Strigi
Un dessin vaut souvent mieux qu'un long discours. Voici donc un shéma explicatif du fonctionnement général de Nepomuk-KDE.
- Strigi est le moteur de recherche à la "Spotlight" de KDE.
- Les applications sont tous les logiciels qui vont vous permettre de créer, rechercher, organiser et manipuler des ressources (documents, musiques, sites web...)
- Soprano est ce qu'on appelle un wrapper. Un logiciel qui gère un format de donnée, en l'occurence des données de type RDP, en permettant à d'autres applications de les comprendre, de les interpréter et de les manipuler.
- Nepomuk est le moteur de recherche sémantique (basé sur les ontologies). Il devait à l'origine s'appeler Braid. Pourquoi finalement lui donner le même nom que celui du projet Nepomuk dans son ensemble, qui pour rappel n'est pas limité à KDE ? Sébastian s'explique :
"Je n'était pas satisfait de Braid et nous n'avions pas trouvé d'autre nom, je reste donc fidèle à Nepomuk désormais. De toute façon, dans l'esprit des gens ce truc s'appelait déjà Nepomuk, et le projet est content ;)"
[modifier] Les premières implémentations
Le navigateur de fichier de KDE 4, Dolphin, permet d'afficher un panneau latéral où il est possible d'associer à tout fichier :
- Des tags ;
- Une note ;
- Un commentaire.
Ces metadonnées sont enregistrées et indexées dans Soprano. Il s'agit ici de metadonnées ajoutées manuellement, mais d'autres le sont automatiquement, tels la date de création et le format d'un fichier. D'autres metadonnées peuvent être spécifique à un type de fichier, et gérées par une application particulière (Amarok pour les fichiers musicaux, Digikam pour les photographies numériques par exemple)
Le moteur de recherche Nepomuk, en plus de fonctionner comme un moteur de recherche classique grâce à Strigi, pourra aussi utiliser ces metadonnées pour affiner des requêtes. Ici une recherche de fichiers contenant le tag "nepomuk" (hastag:nepomuk). C'est un exemple de recherche sémantique simple. De plus, l'interface du moteur de recherche sera grandement amélioré dans les semaines qui vont suivre ; comme l'a dit Sebastian, c'est juste une mise en bouche. Elle permet de se rendre compte que les possiblités sont extrêmement étendues.
[modifier] Implémentations futures de Nepomuk-KDE
Il est prévu d'étendre la gestion des métadonnées au maximum d'applications. Ainsi, les possibilités seront de plus en plus étendues à mesure que d'autres types de métadonnées, en provenance de diverses applications, seront stockées dans Soprano. Il serait possible d'imaginer faire des recherches sur "des photographies en noir et blanc représentant des personnages", grâce à des outils d'analyse d'image et de reconnaissance des visage qui ajouteraient automatiquement ce type de métadonnées, ou encore des "musiques au rythme doux". Les prochaines étapes sont :
- L'utilisation des APIs Nepomuk par le gestionnaire d'informations personnelles Kontact (pour ceux qui ne connaissent pas, c'est l'équivalent Outlook de KDE, avec beaucoup plus de possibilités).
- Permettre l'enregistrement des métadonnées des logiciels Amarok et Digikam dans Soprano.
[modifier] Comment Mandriva envisage le futur avec Nepomuk
[modifier] Promotion et propagation de Nepomuk
Une fois les standards de Nepomuk implantés dans KDE, Eclipse et Mozilla, le premier objectif sera de faire valider ces standards par des organismes normatifs, à commencer par le W3C (World Wide Web Consortium).
Mandriva, ainsi que les différents partenaires du projet, participeraient ensuite la création de la fondation SemanticDesktop.org dont les objectifs seraient :
- Le maintien et l'évolution des standards ;
- La dynamisation des activités recherche ;
- Inciter le monde propriétaire à utiliser ces standards.
[modifier] Helpdesk Communautaire Sémantique avec XWiki Concerto
Aujourd'hui, pour la résolution de problèmes et les tutoriels liés à Mandriva, et au logiciel libre en général, les canaux utilisés sur internet sont : la documentation (wiki, manuels...), les forums et les moteurs de recherche. Chacun de ces canaux ont des avantages, mais aussi des inconvénients : difficulté à trouver rapidement et aisément les informations les plus pertinentes, redondance des informations, obsolescence, dépendance à des contributeurs bénévoles.
XWiki Concerto, projet qui réunit XWiki, Mandriva, l'INRIA, l'ENST et l'EISTI, a pour objectif de devenir un wiki sémantique pair à pair et nomade. Il intègrera complètement les standards Nepomuk. L'objectif serait à terme pour Mandriva d'utiliser la technologie XWiki pour créer une base de connaissance dynamique, cohérente et pertinente, qui devienne un véritable helpdesk, c'est à dire une plateforme d'aide aux utilisateurs.
Pair à pair (peer2peer ou p2p en anglais) signifie que les informations ne seront pas centralisés sur un seul serveur. Nomade découle entre autre de la technologie p2p. Par exemple un ordinateur personnel peut être un des noeuds du réseau p2p. L'utilisateur importe ce qui lui est utile de la base de connaissance en ligne, et accède à ses données de manière déconnectée. Il apporte ses propres modifications, et à sa prochaine connexion à Internet, il synchronise ses données. De plus, les différentes réplications permettront de protéger le contenu de la base sans dépendre d'un unique serveur ou d'une unique URL. L'aspect sémantique apportera ce qui manque au bases de connaissances actuelles, des relations et métadonnées évoluées. Ainsi non seulement il serait possible de taguer des articles de la base de connaissance, mais aussi des articles extérieurs à la base : "résolu", "obsolète", "ne fonctionne que sous telle version", "provient de tel et tel autre article". Certains helpdesk fournissent quelques tags de ce genre, mais aucun encore de manière décentralisée et nomade.
Pour résumer, les axes de recherche sont les suivants :
- Intégration de Nepomuk à la technologie Xwiki Concerto :
- Respect des requêtes ;
- Gestion des données structurées ;
- Capacité à structurer des données non structurées ;
- Algorithmes de réplication p2p dynamique ;
- Garantie de la cohérence des réplicats ;
- Gestion cohérente de l'historique ;
- Gestion des modes nomades et déconnectés ;
- Capacité d'interfaces wiki adaptées aux terminaux de faible capacité ;
- Sécurisation des systèmes p2p.
[modifier] Conclusion
Nous apercevons un des aspects moins connu de Mandriva, et qui pourtant lui donne beaucoup de valeur : la recherche. Mandriva, de part sa recherche et ses développements, reverse beaucoup à la communauté. Nepomuk n'est pas qu'un apport pour KDE 4, Eclipse et Mozilla. Cette technologie devrait avoir des retombées positives sur l'ensemble des TIC[3], pour peu que le standard Nepomuk soit validé et reconnu. Ce standard ne devrait pas tarder à faire ses preuves, son adoption massive serait bénéfique pour s'y retrouver dans la jungle grandissante des ressources les postes de travail et sur Internet, et assurer la conservation et la propagation de la connaissance et de l'information. C'est un nouveau pilier pour le Réseau Social, au sens véritable du terme (et non au sens de "site web social"). Un réseau où l'intelligence se trouve en périphérie, chaque élément étant un noeud égalitaire du réseau, et non centralisée par des serveurs appartenant à des entreprises et où se connectent de vulgaires postes clients.
Il y a évidemment des freins à cette adoption. Le majeur est, me dis-je en tatant de mon orteil gelé l'eau encore calme d'un débat philosophico-politico-polémique, que Nepomuk pourrait fortement nous rapprocher d'une véritable indépendance de l'Internet, ce qui n'est certainement pas pour plaire à tout le monde.
[modifier] Liens, notes et logos des partenaires au projet Nepomuk
Nepomuk : http://nepomuk.semanticdesktop.org/
Nepomuk-KDE : http://nepomuk-kde.semanticdesktop.org/
Le blog de Sebastian : http://www.kdedevelopers.org/blog/2904
Un blog intéressant qui m'a aidé à comprendre certains aspects de Nepomuk-KDE : http://liquidat.wordpress.com/category/desktop-search/
Note : Sebastian Trüg est également connu pour avoir développé le logiciel de gravure K3B
[1] Nepomuk signifie "Networked Environment for Personalized, Ontology-based Management of Unified Knowledge", amusez-vous à retranscrire ça en français ;)
[2] fredxxx m'a donné une autre image intéressante pour expliquer la syntaxe et la sémantique : une feu tricolore au rouge, c'est la syntaxe. Le fait qu'il faille alors s'arrêter, c'est la sémantique.
[3] Technologies de l'Informatique et des Communications