Archives pour la catégorie Web sémantique

Economie du Web Sémantique

Jim Gray, rapporte William Grosso, estime qu’un point d’équilibre économique existe pour la conception de toute architecture informatique distribuée : 10 000 instructions par octet de trafic réseau. Au-délà, il est opportun de distribuer les traitements. En deça de 10 000 instructions par octet, le coût réseau est trop important, et il est économiquement préférable de centraliser les traitements. William Grosso se demande si cela n’implique pas que le modèle économique du Web Sémantique n’est pas viable : le coût du transport des données (RDF…) à aggréger en vue de traitements serait prohibitif et ne pourrait être supporté que par de grosses infrastructures centralisatrices (telles que Google ?) auxquelles les utilisateurs finaux accèderaient plutôt que d’effectuer eux-même une agrégation « locale » et des traitements distribués.
A cela, les commentateurs répondent ceci :

  • les applications informatiques, dans le Web Sémantique, n’auront pas forcément besoin de volumes énormes de données : pas besoin de tout savoir sur tout pour pouvoir effectuer des raisonnements
  • les données peuvent être agrégées selon des genres de chaînes alimentaires : plutôt que d’agréger directement toute les données utiles, on peut n’aggréger que des données résultats de digestions déjà effectuées par d’autres aggrégateurs (travailler sur de la matière moins brute, déjà transformée)
  • le Web Sémantique n’impose pas ni n’interdit de mode d’agrégation (centralisé ou distribué), il donne simplement une normalisation du modèle de données général (celui des triplets RDF)

La sagesse émerge…

Le Web Sémantique, en pratique

Internetnews essaie de montrer que le Web Sémantique a commencé à s’étendre en dehors du champ théorique pour entrer en pratique. Ses champs d’applications sont les moteurs de recommandation mais surtout l’intégration et la réutilisation des données. Son premier domaine pratique est celui du blogging (carnets web tels que celui que vous êtes en train de lire). Les « carnetiers » (« bloggers ») seraient les premiers à expérimenter le réseau social caractéristique du Web Sémantique. Avec des outils tels que trackback (dont je n’ai toujours pas compris le fonctionnement) et la syndication (ah ! ça, je connais !), les technologies proches de RDF permettent d’exploiter de manière intégrée des données informatiques provenant de divers sites Web et, ainsi, de rendre tangibles des liens de proximité entre les personnes qui produisent ou gèrent ces données (d’où l’idée d’un « réseau social »).
Les technologies du Web Sémantique trouvent également des domaines d’application dans la gestion des profils et préférences des utilisateurs de l’informatique ainsi que dans la gestion des références inter-documents telles que les citations des publications scientifiques.
L’article d’Internetnews cite ensuite quelques initiatives importantes d’éditeurs misant sur les premières technologies du Web Sémantique : HP avec Jena et « HP Haystack », Sun avec SwoRDFish, l’OSAF avec Chandler et, enfin, MovableType le célèbre outil de blogging.

Intelligence collective, le projet

Pierre Lévy, à l’Université d’Ottawa, présente son projet de recherche sur l’intelligence collective : créer un modèle théorique qui permet de représenter et de gérer l’intelligence collective d’un système sous la forme des échanges de savoirs qui le traversent et des réseaux qui les sous-tendent. Pierre Lévy projette d’implémenter ce modèle sous la forme d’un logiciel opensource. Ce logiciel permettra de représenter graphiquement ces savoirs et réseaux, de les valoriser et donc de les échanger au sein d’une économie nouvelle. Le logiciel se présentera comme une sorte de jeu de plateau (jeu de l’oie, mandala, …).

Développez avec des triplets

Comment construire des applications de gestion de méta-données ? Avec des triplets RDF, pardi ! Oui, mais comment implémenter cette application ? A l’aide du langage python et de la bibliothèque rdflib, pardi !
Comme l’expliquait cet article sur xml.com en début d’année, Rdflib permet de générer, stocker et fouiller des collections de triplets RDF sans avoir à toucher à la syntaxe XML associée à RDF. La seule chose dont vous avez besoin, c’est de connaître un minimum de python. Vous vous rendrez rapidement compte que bâtir une application à base de triplets, c’est (un peu) comme bâtir une application avec une base de données relationnelle mais sans avoir à concevoir au préalable le schéma de votre base de données. Et vous vous rendrez surtout compte que RDF, c’est quelque chose de simple à condition de vous appuyer sur une bibliothèque de type rdflib. En effet, l’architecture interne du stockage de RDF et la syntaxe XML de RDF sont des sujets que vous n’avez pas besoin de connaître pour pouvoir tirer profit des technologies du web sémantique dans vos applications.

Plone-ing for the semantic web

Here is a little set of inconsistent slides about the future (Semantic Web) and the present (Plone) and how you can tie one with another. In a few words : there seems to be need for a universal model for knowledge/RDF caches ; the production/transformation of knowledge and content should go through a workflow ; Plone should ease the implementation of such a workflow. It’s all about some link between knowledge management and content management.
These slides are displayed below but are also available as a Powerpoint presentation.




Exemple pratique d’application web enrichie par les technos sémantiques

Les technologies nouvelles du Web Sémantique peuvent être couplées aux technologies bien éprouvées des bases de données relationnelles. Par exemple, l’usage des « topic maps » permet d’enrichir une application à base de données relationnelles sans avoir à étendre son schéma de base de données.
Cette approche consiste à stocker certaines des données de l’application non pas dans un schéma ad hoc (avec des champs, des clefs et des jointures conçues spécifiquement pour traiter ces données) mais dans un schéma « générique » en utilisant des concepts plus abstraits introduits par les topic maps (« topics », « associations », « occurences »). Ainsi, on peut y stocker n’importe quelle donnée, y compris des données qui n’étaient pas prévues au moment de la conception de l’application. Cette approche offre une telle souplesse que l’on pourrait être tenté de stocker TOUTES les données de l’application sous la forme d’un schéma relationnel pour topic maps. Cependant, cela introduit une couche d’abstraction supplémentaire qui implique donc des traitements supplémentaires et donc des perfomances qui ne sont pas comparables à celles que l’on peut obtenir avec un schéma relationnel conçu sur mesure.
C’est pourquoi cette approche présente son intérêt dans le cas où l’on a d’une part des spécifications fonctionnelles stables (et donc un schéma relationnel que l’on peut bâtir de manière durable en offrant un maximum de performances) et d’autre part des spécifications plus floues ou instables (que l’on peut implémenter en privilégiant la flexibilité sur les performances, à l’aide d’un schéma générique pour stocker des métadonnées sémantiques). L’approche sémantique permet ainsi de bâtir des applications web combinant performances (du relationnel) et flexibilité (du sémantique).

Imaginez le Web Sémantique

Allez, un petit effort, projetez-vous en 2009 : Google a surfé la vague du Web Sémantique et a, du coup, appris à comprendre l’information qu’il crawle sur le Web. Il SAIT désormais que Jim se considère comme l’ami de Paul. Il SAIT que le vendeur A propose un modèle de voiture 10% mois cher que le vendeur B. Il SAIT que tel saxophoniste a joué dans tel orchestre dans les années 70. Il SAIT que les chiens ont des pattes, que votre ordinateur a besoin d’une nouvelle carte mère pour pouvoir passer au Pentium 18. Le Web Sémantique, ce n’est plus un fatras de pages et de liens mais un fatras de choses et des relations logiques qui les articule. Toutes ces informations sémantiques (certains disent « ces métadonnées ») sont publiées sur le SemWeb comme le sont les pages du Web d’aujourd’hui. Chacun peut y puiser mais aussi y publier. Et les logiciels du SemWeb permettent de faire émerger le sens de tous ces liens logiques entre les ressources du SemWeb, de confronter des liens contradictoires, de batir des raisonnements à la demande de l’utilisateur, etc. Par exemple, le Google de 2009 vous permet d’explorer ces liens pour trouver de nouvelles ressources et de nouvelles informations selon vos besoins, ou selon le besoin de vos propres logiciels…
(Je vous laisse deviner dans quelle phase du « hype cycle » du Gartner Group le concept du Web Sémantique serait actuellement positionné.)

Ca émerge ou pas ?

De la présentation d’un symposium sur « le Web Sémantique qui émerge » (trouvez-moi une meilleure traduction SVP), je retiens les points suivants :

  • le WS permet aux machines d’automatiser, d’intégrer et de réutiliser des données entre applications
  • le WS requiert un langage de formalisation des connaissances
  • ces connaissances permettent, en s’appuyant sur des ontologies, de décrire le contenu de sources d’information et les conditions de fonctionnement de services Web
  • le modèle UML, les langages de description d’ontologies pour le web, le modèle et la syntaxe RDF, le dialecte XDD (tiens, je ne le connaissais pas, celui-là) sont des outils proposés pour le réalisateur d’applications web sémantiques
  • les services web trouvent dans le WS des dialectes XML de description, des solutions de découverte de nouveaux services appuyés sur des ontologies.
  • les ontologies permettent l’indexation sémantique de site web et peuvent s’appuyer sur des des framework d’annotation sémantique et des offres de solutions aux performances adéquates pour une utilisation à grande échelle
  • plusieurs ateliers logiciels sont proposés par les chercheurs pour l’intégration d’ontologies ; ces frameworks offrent une forte évolutivité (« scalabilité »), la résolution des contradictions entre ontologies et le support de formalisation hétérogènes d’ontologies

Autrement dit, la promesse du WS pour l’entreprise (notamment), selon ce symposium, c’est de permettre l’intégration des données de l’entreprise grâce à une formalisation des connaissances appuyée sur 1/ des spécifications techniques (langages, modèles) dédiée à l’expression de connaissances, 2/ des outils logiciels d’intégration de référentiels (ontologies).

Topic Maps à la rescousse du B2B

L’une des problématiques essentielles de l’interconnexion d’applications
entre entreprises (les applications « B2B ») consiste à garantir que les
acteurs en présence interprètent bien de la même manière la signification
(la sémantique) des données échangées. La technologie
des topic maps pourrait contribuer à résoudre cette problématique.
Une
solution d’usage de ces topic maps pourrait consister à créer des
vocabulaires universels, expliquant la signification de toutes les données
potentiellement utiles dans un dialogue entre entreprises de manière à ce
que toutes les entreprises s’y réfèrent. Mais cette solution n’est pas
réaliste Les topic maps peuvent permettre d’établir une interopérabilité
entre des ontologies (référentiels de méta-données) suffisante pour la
plupart des problèmes rencontrés dans l’échange de données
inter-entreprises. Mais la mise en correspondance de ces ontologies, deux à
deux, quand bien-même elle serait exprimée à l’aide des topic maps, reste
aujourd’hui un travail « manuel » fastidieux et délicat. Heureusement, les
topic maps sont conçues pour se révéler « réutilisables » d’un échange à
l’autre, ce qui permettrait de capitaliser ce travail de mise en
correspondance, de manière à créer des « business maps ».

Googlez vos email

Jon Udell l’a testé pour vous : ZOË est un proxy mail (POP + SMTP) qui indexe tous vos mails et vous offre non seulement des fonctionnalités de recherche plein texte mais surtout des fonctionnalités (simples) de navigation dans les métadonnées de ces mails, principalement à partir des champs Subject, Date et From. Ce type de logiciel repose sur une architecture applicative que j’aimerais voir se répandre malgré son caractère paradoxal : il s’agit d’applications web déployés sur les postes clients avec des serveurs web « légers » ; et surtout, il s’agit d’application s’intégrant dans le travail quotidien de l’utilisateur puisqu’elle se présente sous la forme d’un proxy. Jon Udell regrette que les clients de messagerie ne supportent pas la gestion d’extensions des métadonnées transférables par messagerie.
Sans étendre les fonctionnalités des actuels clients de messagerie, un modèle d’architecture qui permettrait une exploitation plus poussées de métadonnées associées à des emails consisterait à ne pas utiliser de proxy POP comme dans ZOË mais un proxy acceptant du POP ou de l’IMAP comme source de données (serveur de messagerie) et offrant un service IMAP comme interface avec le client de messagerie. Ainsi, cette application offrirait par le biais de l’arborescence de dossiers IMAP une ou plusieurs vues arborescentes d’un graphe de méta-données associées aux emails qui circulent par le biais du proxy. L’interface web de l’application permettrait de pallier aux lacunes du client de messagerie en offrant toutes les fonctionnalités requises pour la gestion des méta-données. Malheureusement, il n’existe pas aujourd’hui, à ma connaissance, de proxy IMAP opensource et encore moins de proxy IMAP offrant des fonctionnalités de filtres (interception des requêtes et réponses) à la manière des filtres d’Apache 2. Mais bon, on peut toujours rêver… Dans tous les cas, ce type d’architecture à base de proxies filtrant (filtrant les usages du mail ici, mais aussi, plus simplement, filtrant les usages du web) semble être un excellent moyen de capturer des métadonnées de manière non perturbante pour l’utilisateur. Ceci constituerait une réponse judicieuse à la difficulté qu’aura le Web Sémantique à atteindre une taille critique : comment produire des méta-données pour alimenter le Web Sémantique ? par annotation manuelle ? par intégration de sources de données existantes ? par structuration automatique de sources non structurées ? ou bien par interception de méta-données comme dans le cas de ces proxies…
Wow, je viens de consommer mon quota annuel de buzzwords en un seul message !

Edition d’ontologies

XML.com fait le point sur la construction d’ontologies. La construction d’ontologies se révèle utile dans des domaines tels que la recherche sur le Web Sémantique, la création de référentiels médicaux, la gestion de ressources d’information publiques, la cartographie de génomes, l’ingénierie en conception concurrente, l’analyse et la gesion des risques et l’automatisation des transactions commerciales entre entreprises.
L’ontologie permet de disposer d’un discours commun pour décrire un domaine donné et qui permet une exploitation automatisée par des règles d’inférence et de traitement logique. Les ontologies se composent habituellement de deux couches : un composant « terminologique » qui définit la structure du domaine à décrire et un composant « assertionnel » (assertional) qui alimente cette structure avec des instances ou individus qui incarnent les définitions terminologiques. On peut décider de stocker les concepts (structure terminologique) et les individus (instanciations des concepts) de manière distinctes mais le fait de traiter une ressource comme un concept ou comme un individu est une décision arbitraire et doit relever d’un choix volontaire lors de la conception de l’ontologie.
Pour bâtir une ontologie, on peut utiliser des langages de programmation logique classique tels que Prolog. Mais, plus souvent, on utilise des modèles et langages spécialisés pour la construction d’ontologies tels que OKBC, KIF et CL). On peut également utiliser des langages plus avancés tels que Loom, DAML+OIL ou le standard qui en émerge auprès du W3C : OWL (Ontology Web Language). Le choix du bon langage de développement dépend notamment du degré de nuance et de sophistication nécessaire pour répondre au besoin fonctionnel. De plus en plus, ces langages tendent à intégrer RDF comme technologie fondamentale pour intégrer les données présentes sur le Web.
Voici les étapes habituelles dans la construction d’une ontologie : acquérir la connaissance du domaine (à l’aide documentation et d’experts du domaine), organiser l’ontologie (à l’aide de méthodologie de conception d’ontologies), alimenter l’ontologie (par des concepts, des relations et des individus), vérifier la cohérence du résultat (cohérence syntaxique, logique et sémantique) et soumettre à la publication (validation par les experts du domaine).
Il existe plusieurs logiciels pour construire des ontologies (composant terminologique seulement ou bien ensemble de l’ontologie). On trouve des produits commerciaux offrant des fonctionnalités d’édition d’ontologie non spécifiques à un domaine, des logiciels d’édition intégrés à des solutions d’entreprises spécialisées et des logiciels d’édition issus du secteur public. Les outils intégrés à des solutions d’entreprise offrent des fonctionnalités de classification et d’analyse automatisées afin d’extraire de l’information à partir de contenus non structurés. Une fonctionnalité attendue mais actuellement non présente dans ces outils consiste à permettre, via une ontologie, de réconcilier des langages et vocabulaires XML spécialisés par domaines commerciaux. Pour le moment, l’interopérabilité est uniquement offerte par des fonctions d’import et d’export en différents langages de sérialisation d’ontologie (par exemple basés sur XML). Rares sont les logiciels d’édition offrant des fonctionnalités de fusion d’ontologies hétérogènes.
Trois logiciels d’édition sont remarquables : Protégé 2000 pour la richesse de ses fonctionnalités et son extensibilité via des plug-ins, Ontolingua et OpenCyc en tant qu’environnement de développement d’ontologies complexes ainsi que pour l’accès, par OpenCyc, à une ontologie globale de référence très complète (Cyc). Les fonctionnalités essentielles attendues pour ce type d’outil sont une visualisation et une manipulation confortables et intuitives des concepts et des relations qui composent l’ontologie. L’approche classique consiste à offrir une combinaison de vues sous formes d’arbres à la manière de l’explorateur de Windows. Une visualisation sous forme de graphe est plus rare. Elle doit alors offrir une fonctionnalité de zoom permettant de manipuler des graphes très étendus. Ce type de zoom peut par exemple prendre la forme d’une visualisateur hyperbolique ou d’un visualisateur « à la treemap » (les noeuds « enfants » d’un point de départ sont visualisés *à l’intérieur* du noeud parent et sont explorés par un zoom progressif pour descendre en profondeur à travers les noeuds…). Enfin, certains logiciels d’édition offrent la possibilité d’ajouter à l’ontologie des axiomes et règles d’inférence permettant d’évaluer cette ontologie dans un environnement de développement.

Le Web Sémantique vu dans Courrier International

Fin août 2002, Courrier International réservait un dossier entier aux « prochaines révolutions d’Internet ». Parmi celles-ci, « l’utopie du réseau intelligent » décrivait ce que devrait être le Web Sémantique : un réseau de données plutôt que de documents, destiné à améliorer le Web tel qu’on le connait plutôt qu’à le remplacer. Tel que décrit par Tim Berners-Lee, le W.S. permettra aux ordinateurs de délivrer des informations beaucoup plus précises car les données sur le Net et, surtout, leurs relations entre elles, seront alors beaucoup plus précises. Demandez aujourd’hui à votre ordinateur : « trouve-moi un endroit pluvieux dans un rayon de 150 kilomètres autour de telle ville ». Un moteur de recherche du Web vous trouvera quelques pages contenant ces mots. Par contre, avec le Web Sémantique, votre ordinateur pourra vous répondre : « J’ai trouvé cet endroit et je peux prouver qu’il y pleut et que c’est bien à 150 kilomètres de cet endroit ».
La principale crainte quant à la réussite du W.S. concerne l’ambition très (trop ?) forte de ce projet. Est-il réaliste ? Le projet ne donnera aucune application concrète si il vise à mettre au point un système censé ordonner les connaissances mondiales. Le Web Sémantique doit être simple et pratique à mettre en place et à développer, comme la première génération de la Toile. » Aujourd’hui, quelques rares logiciels de démonstration du W.S. commencent à voir le jour. Leur utilisation permet de pressentir ce que pourrait être le W.S. à grande échelle. Permettront-ils d’amorcer la pompe de l’enthousiasme comme la première version du Web l’avait fait ?

OWL = « Ontology Web Language »

L’OWL est un langage en cours de définition par le W3C. Ce langage est conçu pour construire des applications capables d’accéder à la compréhension du contenu d’une information du Web plutôt que de se limiter à une présentation « lisible par l’homme » de cette information. L’OWL apporte donc une meilleure lisibilité du Web pour les machines, en ajoutant des vocabulaires aux langages XML, RDF et RDF-S.

Ce que le Web Sémantique n’est pas

Le Web Sémantique, ce que c’est, on le sait (plus ou moins). Ce que ce n’est pas, on ne le sait en général pas.
– Par exemple, le WS n’est pas de l’intelligence artificielle : les
applications RDF ne prétendront pas à l’intelligence mais restreindront leur
exploitation de RDF à un usage délibérément limité pour être efficace. Par
contre, l’union de toutes les données RDF à travers les applications Web
sera une source universelle de données d’une richesse extraordinaire.
– De plus, les applications RDF n’auront pas besoin (au moins au début) de
fournir des justifications de leurs raisonnements (« proof generation »).
Elles se contenteront d’avoir à fournir une réponse à une question dans leur
compétence (« proof validation »).
– Le Web Sémantique n’est pas un simple relifting des méthodes de
formalisation des connaissances (« knowldege representation »). De même que le
Web n’est pas un simple relifting de l’hypertexte (tel qu’il existait dans
les aides de logiciels sous Windows par exemple). Le Web Sémantique est à la
formalisation des connaissances ce que le Web est à l’hypertexte : il
s’exempte des hypothèses centralisées de vérité absolue (pas de
contradiction), d’exhaustivité de la connaissance (pas de trous) et de
« prouvabilité » totale et s’intèresse à ce que l’on peut faire avec des
connaissances incomplètes voire contradictoires.
– Le Web Sémantique, même si il n’est pas une modélisation
entités-relations, a beaucoup avoir avec ce mode de représentation.
– Le Web Sémantique n’est pas une nouvelle forme de base de données
relationnelles. Mais l’une des principales forces qui le fait avancer, c’est
l’idée d’exprimer sur le Web la richesse des données des bases
relationnelles de manière à les rendre traitables par toutes les machines
connectées. Le Web Sémantique est un modèle de données spécialement conçu
pour faciliter l’articulation de données provenant de différents modèles de
données. L’une de ses principales fonctions est de permettre l’ajout
d’information se rapportant à diverses bases de données et des traitements
complexes sur les données provenant de tous ces modèles.
– Le Web Sémantique n’est pas un système d’inférence. En effet, il a pour
objet de décrire la réalité dans sa complexité et fait donc très peu
d’hypothèses simplificatrices qui viserait à rendre ces descriptions traitables rapidement par un ordinateur. Par exemple, le Web Sémantique n’a pas de bornes. Comme le Web, on peut le parcourir sans jamais savoir quand il convient de s’arrêter. Heureusement, le Web permet de distinguer des périmètres (sites, racines d’URL…) qui permettent de bâtir des hypothèses réductrices en aval. Mais le contenu du Web Sémantique reste ouvert et donc unificateur. De plus, les systèmes d’inférence reposent généralement sur l’hypothèse que les faits soumis ne sont pas contradictoires. Au contraire, le Web Sémantique supposera que l’analyse des sources des descriptions qu’il contient permettra seul de pouvoir traiter celles-ci de manière utile.

SW and AI, Prolog and RDF

Web Sémantique & Intelligence Artificielle II, le retour ? C’est ce que suppose l’article
http://www.xml.com/lpt/a/2001/04/25/prologrdf/index.html. Comme argumentation est exposée une approche de chargement et de traitement de graphe RDF à l’aide de Prolog. La règle Prolog implémentée est présentée comme une application d’inférence à base de RDF. Les inférences RDF permettraient des formes de traitement, transformations et requêtes similaires à SQL mais « avec moins de travail » et « plus de clarté ». Cet article invite le lecteur à expérimenter sur RDF la puissance des traitements implémentables en Prolog (forward et backward chaining par exemple) voire à implémenter rapidement des systèmes déployables en production à grande échelle.