dbpedia, geonames et autres données ouvertes

janvier 30, 2007

J’ai déjà eu l’occasion de parler ici du tissage de la Toile, et du rôle qu’y jouent les vocabulaires de référence. Un autre aspect commence à se développer à grande échelle, c’est celui de la fédération des données, et en particulier des données ouvertes, publiées sur le Web, libres de droits et réutilisables. L’expérience de geonames.org dont nous avons déjà parlé à plusieurs reprises, est exemplaire, et pas seulement parce que votre serviteur y contribue en tant qu’éditeur de l’ontologie. En effet on y rencontre les questions de scalabilité (la base geonames contient actuellemnt plus de 6 300 000 objets), de qualité et d’intégration des données, d’environnement collaboratif, et de modèle économique. L’expérience devient de plus en plus intéressante avec l’entrée en scène du projet dbpedia.org, dont le but est de « RDF-iser » les données structurées extraites de Wikipedia. C’est à grande échelle ce que Thomas nous a expliqué en petit avec sa base « Music is Knowledge ». D’ailleurs la musique est en bonne place dans les données traitées dans les prototypes. Comme la base geonames intègre aussi des liens vers les articles Wikipedia documentant les objets géographiques, tout ce petit monde communique et cherche à se coordonner au mieux, entre autres à travers la toute nouvelle initiative Interlinking Open Data on the Semantic Web.

Pourquoi un vendeur de logiciel comme Mondeca s’intéresse-t-il de façon active à de telles initiatives? La plupart des projets de Mondeca concernent en effet des données internes aux entreprises, et semblent loin du monde des données ouvertes et du savoir partagé. Mais dans de nombreux domaines, entre autres le tourisme, la possibilité d’intégrer des données ouvertes aux données internes, sur la base de vocabulaires et de standards RDF communs, est susceptible d’apporter une plus-value qui n’est pas à négliger. Nous intégrons déjà les interfaces Google Maps, comme dans le portail de la Nièvre, mais une intégration supplémentaire par exemple des objets localisés par Geonames sur le territoire, des richesses du patrimoine local décrites dans Wikipedia, une indexation des milieux naturels et des problématiques d’environnement s’appuyant sur le thésaurus ouvert GEMET … et bien d’autres à venir … sont autant de « plus » que les communautés de savoir partagé peuvent apporter, et que la lingua franca RDF va faciliter. Et plutôt que d’attendre que tout cela arrive pour en récolter les fruits quels qu’ils soient, notre habitude à Mondeca est d’être pro-actifs dans toute cette évolution, et d’en anticiper les résultats. C’est ainsi que nous avons aidé l’an dernier l’INSEE à publier les données administratives de la France en RDF, données maintenant intégrées par geonames.org.

De plus la problématique de l’intégration des données ouvertes est de plus en plus similaire à celle qu’on rencontre dans l’entreprise pour l’intégration des données internes, tout aussi nombreuses et disparates, et le tissage de la Toile est une excellente école, surtout depuis que le Web sémantique commence à quitter les sphères académiques pour affronter la dure réalité des « vraies données du vrai monde ». Et chacun peut voir que la frontière entre données internes privées et données externes publiques et partagées devient de plus en plus artificielle et difficile à tracer, et qu’il serait vain de vouloir la marquer de barbelés ou de pare-feux, pour se retrancher d’un côté ou de l’autre. Bien sûr le modèle économique de tout cela n’est pas évident, et les déboires de l’édition musicale le montrent bien. Si les données sont publiques, les services qui permettent d’y accéder de façon intelligente feront la différence. Et bien sûr, plus les données publiques seront organisées intelligement, plus la tâche de tels services sera facilitée. C’est donc dans une stratégie « gagnant-gagnant » que s’inscrit la participation de Mondeca à de telles initiatives.

Publicités

La forme d’un nuage de concepts

janvier 24, 2007

Dans le cadre du projet européen TAO dont Mondeca est partenaire, j’ai travaillé ces jours-ci avec un outil d’extraction de concepts (en anglais ontology learning). Parmi les objectifs de ce travail, il y a l’évaluation de la pertinence du format RDF SKOS à la sortie de ce genre d’outils. En effet, ces outils ont comme objectif d’aider à la construction d’ontologies en « découvrant » les concepts implicites utilisés dans un corpus documentaire, et leur organisation hiérarchique, par des techniques de fouille et de rapprochement de termes. Une interface d’édition permet de corriger et d’éditer les résultats bruts de l’outil. Pour faire la jointure avec les langages du Web sémantique, ces outils exportent la structure finale en RDFS ou OWL, ou dans des formats RDF utilisant des classes ad hoc.

Le point de vue que je fais avancer dans le cadre de TAO est que le format SKOS serait beaucoup plus adapté à la sortie de tels outils. Un « arbre de concepts » est en effet une structure à sémantique légère, dans le sens où les hiérarchies « découvertes » peuvent être de toutes sortes de types, et pas a priori et seulement des relations de classe à sous-classe. Il s’agit plutôt de « taxonomies » au sens lâche du terme, c’est-à-dire de schémas de classification, pour lesquels SKOS est optimisé.

J’ai donc joué un peu avec OntoGen, développé par l’un des partenaires du projet, l’Institut Jožef Stefan à Ljubljana (Slovénie). Pour me faire la main sur l’outil, je lui ai livré en pâture le contenu de mon blog (en anglais) univers immedia, soit environ 130 messages publiés depuis août 2004. Un des premiers résultats de OntoGen est la projection en deux dimensions du nuage de concepts extraits (qui est défini en fait formellement dans un espace à n dimensions)

nuage de concepts

A ma grande surprise, j’ai découvert une forme de nuage tout à fait conforme à l’esprit et à la lettre du blog, les concepts et les documents formant une couronne autour d’un vide central. La Roue et le Vide serait donc bien la forme du nuage de concepts dans lequel navigue univers immedia! Au-delà de la satisfaction graphique, il y a peut-être une raison profonde, statistique, à une telle répartition, que je serai bien curieux de connaître.

Il semble, renseignement pris auprès des développeurs de OntoGen, qu’une telle répartition soit de fait un phénomène général, observé dans une variété de corpus documentaires. La conjecture qui vient alors à l’esprit est qu’il y aurait là-dessous un phénomène analogue à celui qui engendre en mécanique les surfaces minimales comme les bulles de savon.


Une chose, plusieurs mots / Umberto Eco – « Le Signe »

janvier 17, 2007

Umberto Eco – auteur du Nom de la Rose et spécialiste de sémiotique – a écrit il y a déjà quelques dizaines d’années un essai intitulé « Le Signe » (ISBN-10 : 2253060941, ISBN-13 : 978-2253060949), dont je ne saurais que trop recommander la lecture à tous ceux qui voudraient se lancer dans des réflexions sur la modélisation d’ontologies, l’identification de concepts ou la gestion de thésaurus/vocabulaire. En effet, si l’on considère une ontologie comme un « contrat social » entre plusieurs acteurs (un langage, en somme !), et non pas comme une tentative de description exhaustive et objective du monde en soi, alors on se heurte aux problématiques du langage, du signe, du couple signifiant/signifié… bref, de la sémiotique.

J’en recopie ci-dessous un petit extrait [1] intéressant à plusieurs points de vue :

  • d’abord, il montre qu’un même concept peut être désigné par plusieurs signes; Une chose, plusieurs mots.
  • ensuite, il explique comment la question de l’identité de ce qui est désigné par les signes n’est pas résolue « en étudiant leur contenu, mais par la manière dont [ils] s’opposent aux autres éléments du système ». L’identité de ce à quoi on se réfère n’est donc pas donnée de façon absolue, mais bien de façon relative par rapport aux autres termes d’une langue.
  • il montre également qu’un code (une langue ou une ontologie), est une vision arbitraire du monde, et que deux codes distincts peuvent structurer différemment les mêmes concepts. D’où l’idée qu’un signifié n’est pas « une entité ontologique », mais un « phénomène culturel »…

<extrait>

Dans le cadre d’un code, un mot voit son signifié délimité dans la mesure où il n’y a pas un autre mot qui soit chargé d’un signifié voisin mais distinct. En français, /neige/ se charge de divers signifiés (neige immaculée, neige molle, neige en train de tomber et neige formant une couche par terre, neige gelée et neige fondante) alors que chez certaines populations d’Esquimaux, ces différents sens sont assumés par des termes distincts. C’est donc le système, qui, instituant une structure relationnelle entre les termes, en différencie la valeur signifiante.

(…)

Dans le schéma qui suit, nous voyons que le mot français /arbre/ recouvre le même champ que le mot allemand /Baum/; le français /bois/ correspond tantôt à l’italien /legno/ (le bois comme matière) tantôt à /bosco/ (le bois comme ensemble d’arbres), tandis que /forêt/ sert à désigner un groupe d’arbres plus dense et plus étendu. D’un autre côté, l’allemand /Holz/ correspond à /legno/ mais non à /bosco/ : c’est /Wald/ qui assume le concept en même temps que celui est désigné par /forêt/.

tableau_plusieurs_mots_une_seule_chose.jpg

Un tableau de ce genre ne nous mets pas en face « d’idées », mais de valeurs émanant du système. Ces valeurs correspondent à ce que l’on peut nommer des concepts, mais ne naissent et ne peuvent être appréhendées que comme pures différences : elles ne se définissent pas par leur contenu, mais par la manière dont elles s’opposent aux autres éléments du système.

Ici encore, nous avons une série de choix différentiels que l’on peut décrire sur le mode binaire. Il n’est donc pas nécessaire de savoir ce qu’est le signifié (que l’on se place sur le plan physique ou ontologique) : il suffit de pouvoir affirmer que, dans un code donné, des signifiés donnés sont associés à des signifiants donnés. Que ces signifiés soient communément définis commes des « concepts » ou des « idées » n’a rien que de normal; et qu’on les atteigne à travers une sorte d’usage moyen est chose légitime. Mais dès le moment où la sémiotique établit l’existence d’un code, le signifié cesse d’être une entité psychique, ontologique ou sociologique : c’est un phénomène culturel, descriptible grâce à un système de relations que le code nous montre comme reçues par un groupe donné à un moment donné.

</extrait>

[1] : Un autre extrait du livre est disponible ici


Tableau noir et plume sergent-major

janvier 11, 2007

En cherchant « leçons de choses » sur Google ce matin, j’ai eu d’abord la satisfaction de voir notre blog figurer en bonne place. En tête des résultats, la critique d’un livre (Au temps des leçons de choses) qui semble savoureux et plein de nostalgie si en croit la critique.  Nostalgie que partageront ceux qui comme moi ont passé leur petite enfance dans une école de campagne des années 1950, avec un père qui se métamorphosait chaque matin en maître d’école en franchissant la simple porte qui séparait la maison de la salle de classe, pour y allumer le poêle, distribuer les cahiers et remplir les encriers.
Cet univers, vous en retrouverez un peu si vous passez à Mondeca, où les murs sont ornés de ces merveilleuses planches d’histoire naturelle comme « Le thé« , « Le sucre« , « Le vin » qui servaient de support aux dites leçons.
Un peu plus loin dans les résultats de la même recherche, on trouve ce document  écrit par un inspecteur primaire rural de ces temps reculés du début du siècle dernier, où le politiquement correct n’avait pas été inventé. L’inspecteur était encore primaire comme l’école du même nom, la Loire était inférieure à Nantes, les Alpes basses à Digne, et les malentendants étaient sourds.

Quelques extraits de ce texte qui mérite qu’on le déguste dans le détail. Au-delà de la forme qui prête maintenant à sourire, il y a là du grain toujours bon à moudre …

Pour être fructueux, [l’enseignement scientifique] ne doit pas être un enseignement de mots, mais un enseignement de choses et de faits. On ne peut, par exemple, étudier sur un manuel la description d’une charrue que les enfants n’ont pas vue ; il faudra les conduire devant la charrue et la leur faire observer.

Toute leçon de sciences doit avoir pour base l’observation d’une expérience, d’un objet ou, à défaut d’objet, de gravures le représentant.

Le maître se gardera de suivre servilement le livre ; il peut s’en servir en l’adaptant à son enseignement, mais ce n’est pas l’enseignement qui doit être soumis au livre. On peut dire du livre ce qu’Alexandre Dumas disait de l’argent: « C’est un bon serviteur et un mauvais maître ».

Ces leçons ne pouvant se faire sans les choses, on est amené à constituer un musée scolaire. Les enfants doivent y collaborer : chacun y apportera telle « chose » dont il dispose et pouvant enrichir la collection. Le maître doit songer d’avance à se procurer les objets nécessaires pour ses leçons futures, afin qu’il puisse en disposer au moment voulu.

Le musée ne doit pas être de parade, dont les objets seraient comme sacrés et ne sortiraient jamais de leur belle vitrine. Les objets collectionnés seront mis entre les mains des élèves, car la leçon de choses sans les choses est un contresens.

Les échantillons du musée scolaire doivent être classés. Exemple Produits alimentaires – Industries diverses – Matériaux de construction – Chauffage et éclairage – Botanique – Zoologie.

L’observation, au cours d’une leçon de choses, doit être conduite avec ordre et méthode. Exemple : l’encrier. l’objet est observé successivement dans son volume, son poids, sa forme, sa capacité. De même, dans chaque leçon, le maître doit grouper en catégories les faits à observer.

Enfin, dans le même ordre d’idées, on lira aussi avec plaisir ce livre

Leçons de Choses


Knowledge is Music (et vice-versa) (5) – Exploiter et afficher la base de liens musicaux

janvier 4, 2007

[le post précédent décrit la façon d’enrichir une liste de groupes et de chanteurs français à l’aide d’ITM et d’extractions linguistiques de Gate]

Etape n° 4 – exploiter la connaissance
Bien. J’ai donc à ma disposition une base de liens entres chanteurs et groupes de musique français. Il s’agit maintenant d’illustrer quelques utilisations possibles de cette base.

Requêter la base de liens
La première application qui vient à l’esprit est de requêter cette base. On imagine très bien une application du type : « Entrez le nom de votre chanteur ou de votre groupe préféré… alors vous aimerez aussi… » (avec l’option facultative : « puis allez acheter leurs CDs sur Amazon« ).
ITM dispose d’API Java permettant d’effectuer ce type d’interrogation, qui est également possible à travers les écrans de l’application. On peut imaginer que, lorsqu’un nom de chanteur/groupe est donné, l’application ramène à la fois les chanteurs/groupes qui le référence, et aussi les chanteurs/groupes qui sont référencés par lui. On peut même supposer de faire apparaître en premiers dans la liste de réponses ceux qui ont un lien dans les deux sens avec le chanteur/groupe saisi.

Exporter la base en RDF
La base de liens dans ITM n’est pas liée à un format de représentation particulier. Ce qui veut dire qu’il est possible de l’exporter dans différents languages de représentation. L’export en RDF donne, pour reprendre le même exemple d’Hubert-Félix Thiéfaine pris dans le post précédent, ceci :


<rdf:Description rdf:about= »http://fr.wikipedia.org/wiki/Hubert-F%C3%A9lix_Thi%C3%A9faine »&gt;
<rdf:type rdf:resource= »http://music.mondeca.com/music#Singer »/&gt;
<rdfs:label>Hubert-Félix Thiéfaine</rdfs:label>
<music:See_also rdf:resource= »http://fr.wikipedia.org/wiki/Machin_%28groupe%29″/&gt;
<music:See_also rdf:resource= »http://fr.wikipedia.org/wiki/Zazie »/&gt;
<music:See_also rdf:resource= »http://fr.wikipedia.org/wiki/Zoo_%28groupe%29″/&gt;
<music:See_also rdf:resource= »http://fr.wikipedia.org/wiki/Alambic_%28musique%29″/&gt;
</rdf:Description>

Ces exports sont des moyens de transfert de l’information depuis la base de liens vers d’autres systèmes. (il est par exemple possible de générer la liste d’entités nommées de Gate non plus à partir des pages Wikipedia, mais à partir de la base de liens directement).

(note : un tel RDF peut être chargé dans l’éditeur d’ontologies SWOOP pour être visualisé et navigué)

Je mettrai à disposition dans un prochain post l’ontologie en OWL et l’export des entités en RDF.

Naviguer graphiquement
L’utilisation la plus concrète, visuelle et « fun » de ce mashup est d’arriver à visualiser la base de liens. Ce n’est sans doute pas – comme le fait à juste titre remarquer Bernard dans ce post – le meilleur moyen de l’exploiter d’un point de vue utilisateur. Cependant son intérêt didactique est indéniable. Et compte-tenu de la simplicité de la structure du graphe, cette visualisation reste un bon moyen d’appréhender le résultat final de cette expérience (on reste effectivement ici dans une optique de « preuve de concept »).
Idéalement, cette visualisation (ou des algorithmes d’analyse du graphe) ferait apparaitre des composantes fortement connexes entre elles, c’est-à-dire des chanteurs et des groupes ayant de forts liens entre eux, révélant ainsi des tendances et des courants musicaux.

Mon idée de départ était d’utiliser JGraph pour cette visualisation. JGraph est une librairie Java de manipulation de graphes assez complète, tant pour la visualisation que pour l’édition. (on peut tout à fait imaginer une intégration entre JGraph et un outil de gestion de réseau sémantique pour faire de l’édition de graphes).
Cependant après un premier essai, je me suis vite aperçu que la version gratuite de JGraph ne propose pas d’algorithme de layout du graphe (disponible uniquement en version payante) : il faut donner explicitement les positions des noeuds et des arêtes; beaucoup trop compliqué; je ne m’y risque pas.

Je me suis donc tourné vers Touchgraph, que je sais être moins complet, mais avec lequel je suis au moins certain d’arriver à une visualisation correcte. Il me faut quelque chose de « quick and dirty ». Je passe les détails d’implémentation. Le résultat final ressemble à ceci, pour Hubert-Félix Thiéfaine et Manu Chao :

Base de liens musicaux dans Touchgraph

Base de liens musicaux dans Touchgraph

(note : les chanteurs apparaissent en bleu, les groupes en rosé)

C’est intéressant pour appréhender les connexions autour d’un artiste en particulier. Par contre, dès que le graphe s’étend (autour d’entités importantes, comme par exemple notre Johnny suisse national), il devient rapidement inutilisable :

Base de liens musicaux dans Touchgraph

Je vais voir si je peux faire en sorte que cette petite applet soit téléchargeable quelque part.

Conclusion
A partir d’un corpus documentaire non structuré (des pages web wikipedia), et à l’aide d’outils :

  • de transformation XML (XSLT)
  • de text-mining (Gate)
  • de gestion d’ontologie et de stockage de réseau sémantique (ITM)
  • de visualisation (Touchgraph)

J’ai pu créer de façon automatisée une base de liens entre des entités nommées, et l’exploiter pour la requêter, l’exporter ou la visualiser.

Cet exemple de mise en oeuvre montre plusieurs choses :

  • d’abord, l’utilité de liens sémantiques entre entités; ces liens existaient auparavant sous forme de simples références textuelles dans les pages Wikipedia; ce mashup les a rendus explicites et exploitables. Ils forment la vraie « connaissance » du domaine étudié (celui de la musique française), pris dans son ensemble.
  • l’utilisation d’outils de text-mining pour automatiser le processus de création d’une base de liens, et leur criticité pour la qualité du résultat final; c’est en effet à cette étape que beaucoup de choses se jouent et que les problèmes apparaissent (bruit, référence d’une entité vers elle-même, etc.)
  • l’intérêt de l’exploitation d’une telle base de connaissances pour un ensemble d’applications extérieures, de requêtes, de visualisation, de raisonnement (à venir), etc. Cela est permis par l’utilisation d’une syntaxe partagée (XML), de languages ouverts (Java), et de standards du Web sémantique (OWL et RDF).

L’expérience est donc concluante. Cependant, il est nécessaire d’améliorer le processus existant en :

  • réduisant le bruit de l’extraction linguistique
  • générant la liste d’entités nommées à partir de la base de connaissance (ce qui permettra de gérer des synonymes et des alias).

Ensuite, plusieurs pistes d’extension de ce premier noyau sont possibles :

  • traiter d’autres sources que Wikipedia (je suis à la recherche d’un bon site candidat…), en utilisant pourquoi pas un crawler (Gate en intègre un).
  • faire évoluer l’ontologie pour affiner les relations entre chanteurs et groupes.
  • enrichir l’extraction linguistique en construisant une vraie grammaire, capable d’extraire les nouvelles relations de l’ontologie.
  • trouver un algorithme de layout et être capable de générer un graphe en SVG.
  • regrouper les artistes par courant musicaux, grâce à des tags.
  • enrichir la liste initiale des chanteurs en traitant les entités devinées par Gate mais rejetées car inexistantes dans la base.
  • utiliser un raisonneur pour trouver tous les liens inverses.
  • et UIMA dans tout ça ?
  • etc., etc., les idées ne manquent pas !

to be continued…