Chez Xavier

Home / Le Web Sémantique en entreprise : comment et à quels niveaux ?

Excuse me, I think I'm naked: on a wall of Barcelona.

Excuse me, I think I'm naked: on a wall of Barcelona.

Cet article est une reprise d'une chronique au sujet du Web Sémantique, initialement publié sur le site de Clever Age :

Bien qu'elle ait été lancée par le W3C dés 1998, l'initiative du Web Sémantique [1] reste encore aujourd'hui marginale face aux problématiques courantes du Web, comme par exemple la publication de contenu. Pourtant, le WS est déjà riche de nombreux langages et outils qui peuvent trouver leur place au sein de l'entreprise, et améliorer la manière dont celle-ci traite, organise et publie ses données.

Web "sémantique" ?

Le terme de web sémantique, rencontré de manière assez courante dans le domaine de l'informatique du Web, recouvre des concepts encore flous pour de nombreuses personnes. Pour comprendre ce qu'est le Web sémantique, il faut avant comprendre ce qu'est le Web "traditionnel", aujourd'hui : un espace universel d'échange d'informations, consultables par tout internaute. L'objectif du Web sémantique est, tout simplement, d'apporter la sémantique formelle nécessaire pour que des machines, elles aussi, puissent consulter et interpréter les informations présentées sur le Web.

Dans un entretien accordé au Courrier de L'UNESCO en 2000, le créateur du Web, Tim Berners Lee, expliquait simplement : J'ai un double rêve pour le Web. D'une part, je le vois devenir un moyen très puissant de coopération entre les êtres humains. Et dans un second temps, j'aimerais que ce soit les ordinateurs qui coopèrent. [...] Quand mon rêve sera réalisé, le Web sera un univers où la fantaisie de l'être humain et la logique de la machine pourront coexister pour former un mélange idéal et puissant.. Voici qui résume parfaitement la finalité du Web sémantique : rendre l'information disponible sur Internet accessible aux machines, en la structurant et en la qualifiant.

Un panel d'outils variés structurent le Web sémantique

Illust:Les différentes couches du Web SémantiqueXML, RDF et OWL constituent les trois couches de base du Web Sémantique : XML est le support de sérialisation [2] sur lequel s'appuient RDF et OWL pour définir des structures de données et les relations logiques qui les lient. Concrètement, cela signifie qu'on peut exprimer et structurer des concepts complexes à l'aide de RDF et OWL, là où jusqu'à présent on avait recours aux bases de données relationnelles. RDF et OWL sont en effet deux langages XML, conçus spécialement pour l'énonciation de faits atomiques. Par exemple, l'expression du fait "Paris est en France" se fait par le biais de l'écriture d'un triplet RDF, que l'on peut représenter sous la forme d'un graphe sujet-prédicat-objet :

Exemple d'un triplet RDF

La sérialisation en RDF-XML de l'assertion "Paris est située en France" pourrait s'écrire de la manière suivante :

<rdf:Description about="#paris">
<schema:pays>France</schema:pays>
</rdf:Description>

OWL permet d'ajouter à cette assertion des contraintes logiques qualifiantes; par exemple, le fait que le sujet associé au prédicat "est_situé_en" doit être une ville, et son objet un pays.

Par l'expression de nombreux faits simples tels que le triplet écrit ci-dessus, il est possible de décrire des ensembles d'informations très variés : les relations entre des individus, les produits d'un catalogue, des recettes de cuisine, etc. Reliés les uns aux autres, les différents triplets forment alors un graphe RDF, qui représente de manière extensible les informations d'un domaine donné de connaissance, et avec un niveau de précision optimisable à volonté. Il peut, par exemple, être intéressant de définir ensuite ce qu'est une ville ("une ville est une entité administrative", "une ville a un certain nombre d'habitants", etc.), ou même de relier le concept de ville défini dans notre ontologie au même concept, mais décrit dans une autre ontologie déjà existante.

En OWL, une manière simple de décrire le fait que la ville "Paris" se trouve dans le pays "France" pourrait être :

<!-- définition des classes "ville" et "pays" -->
<owl:Class rdf:ID="Ville" />
<owl:Class rdf:ID="Pays" />

<!-- définition de la propriété « se_trouve_en » -->
<owl:ObjectProperty rdf:ID="seTrouveEn">
<rdfs:domain rdf:resource="#Ville" />

<rdfs:range rdf:resource="#Pays" />
</owl:ObjectProperty>

<!-- création de "France" -->
<Pays rdf:ID="France">
<nomPays>France</nomPays>
</Pays>

<!-- création de "Paris", qui se trouve en France -->
<Ville rdf:ID="Paris">
<nomVille>Paris</nomVille>
<seTrouveEn rdf:resource="#France" />
</Ville>

Formaliser et organiser ses données

Même s'il est encore rare, l'emploi de langages du Web Sémantique au sein d'un site internet est d'autant plus pertinent que les données concernées sont de nature structurantes ou descriptives. Un bon exemple concerne les systèmes de tags [3] présents sur les weblogs et dans diverses applications, comme par exemple le site de partage de photos numériques Flickr ou la plateforme de marque-pages collaborative Blogmarks, qui pourraient tout à fait être déclinés sous formes d'ontologies OWL. Un tel système permettrait de définir sans ambiguïté les notions utilisées pour taguer des ressources et, en allant plus loin, on pourrait même imaginer que les applications de tags reposent entièrement sur des ontologies, délaissant le modèle établi du recours aux bases de données relationnelles.

comparaison entre architecture applicative classique et sémantique

L'emploi d'ontologies au sein d'une application Web permet de partager les données à l'échelle du Web, et de profiter de données créées au sein d'autres applications. Cette architecture est un exemple simple qui peut se décliner de manières très différentes (omission de la base de données, systèmes de cache, etc.).

A l'inverse, on peut également s'interroger sur la pertinence du "tout sémantique" : s'il est douteux de faire un appel à outrance aux SGBD, certaines utilisations des outils du Web Sémantique ne sont pas adaptées. C'est notamment le cas du stockage de longs textes, ou de tout autre type de données non structurées.

Accéder aux données contenues dans un dépôt sémantique

RDF et OWL peuvent donc tout à fait servir de dépôts d'informations, par exemple au sujet de la structure d'un site internet, de ses rubriques, des tags qui y sont employés, des rédacteurs, des produits qui y sont proposés, etc. Reste encore à pouvoir manipuler avec aisance ces informations écrites sous formes de graphes RDF. C'est le rôle joué par SPARQL, dont l'objectif est de fournir un protocole et un langage de requêtes similaire à SQL, mais adapté à RDF. Bien qu'encore au stade de Candidate Recommandation, SPARQL fait déjà l'objet de nombreuses implémentations. Certaines comme ARQ [4], un processeur SPARQL pour Jena (Java), ou encore RAP "RDF API for PHP", sont très complètes et d'ores et déjà utilisables. Avec RAP, l'accès aux informations décrites dans une ontologie peut se faire de différentes manières; depuis janvier 2006, une interface SPARQL est disponible. La portion de code suivante, par exemple, permet de lister les noms présents dans un annuaire vcard-rdf :

$data = ModelFactory::getDefaultModel();

$data->load("./people.rdf");
$querystring = '
PREFIX vcard: <http://www.w3.org/2001/vcard-rdf/3.0#>
SELECT ?fullName
WHERE { ?x vcard:FN ?fullName }';
$result = $data->sparqlQuery($querystring);

foreach ( $result as $line )
{
$name = $line['?fullName'];
if ( $value != "" )
{
echo $value->toString()."<br />";
}
else
{
echo "unbound<br />";
}
}

D'autres langages de type SQL, comme RQL ou eRQL, ont également fait l'objet de développements, et sont généralement supportés par les gros frameworks sémantiques tels Sesame et Jena.

Sémantique, c'est bien, mais pourquoi ?

On peut cependant s'interroger sur l'intérêt de telles méthodes, alors que la solution à base de SGBD fonctionne très bien. Les réponses sont multiples, à commencer par l'extensibilité et la facilité de partage des sources de données RDF.

Exemple d'architecture de données semantique

Le moteur de requêtage est capable de faire appel à des ressources distantes, permettant ainsi d'élargir le modèle de données et les informations disponibles.

Prenons l'exemple d'une agence de voyages qui propose des séjours vers différentes régions du globe. Avec RDF et SPARQL, cette agence pourrait lier l'ontologie représentant son catalogue à d'autres ontologies libres, situées ailleurs sur internet, et décrivant les différentes destinations. Les possibilités sont multiples, les données disponibles sur Internet sous forme d'ontologies ne formant plus qu'une immense et unique base de données, comme l'explique Tim Berners Lee dans "Weaving the Web" : RDF, schema, and inference languages will make all the data in the world look like one huge database. [5]

Par ailleurs, à l'opposé des bases de données relationnelles qui stockent les informations de manière binaire, des fichiers RDF sont directement lisibles et, surtout, peuvent profiter de tout l'écosystème logiciel XML existant. Édition, transformations, travaux d'inférence [6] et d'enrichissement sont ainsi possibles avec peu d'efforts, en s'affranchissant des problématiques de transfert de bases, de corruption de données ou de formats de bases incompatibles.

Un écosystème logiciel encore jeune

Malgré les gros efforts menés autour du Web Sémantique par les milieux universitaires et les centres de recherche, la sphère logicielle professionnelle reste encore assez restreinte. Certains éditeurs, spécialisés dans la manipulation de thésaurus et de bases de connaissances, se sont lancés sur le créneau, mais leurs solutions sont encore marginales, et paradoxalement peu orientées Web. Les applications les plus abouties, pour l'instant, concernent surtout la construction et la maintenance des ontologies, rôle qu'assument parfaitement Protégé ou Mondeca. Cela s'explique sans doute par la jeunesse des recommandations, et notamment de SPARQL, clé de voute de tout développement end-user concernant le Web Sémantique.

Le web sémantique sur votre site, pas à pas

Le formalisme introduit par RDF, OWL et les autres langages du Web sémantique permet sans doute de mieux structurer les données présentées sur le Web, mais produire des graphes RDF pour représenter des données diverses et variées n'est pas encore rentré dans les habitudes. Outre le manque d'outils réellement matures pour tous les publics, adopter une démarche sémantique dans l'organisation et la présentation de ses données nécessite des changements assez importants dans la gestion des flux informationnels, ce qui est rarement simple à mettre en œuvre. Ouvrir son système d'informations au Sémantique devrait donc se faire par étapes, en profitant par exemple de l'existence de langages tels les microformats pour amorcer la transition.

Les microformats sont des ensembles de conventions permettant d'ajouter des notions sémantiques aux documents HTML, tout en évitant le recours à de nouveaux langages. Evidemment, leur puissance est donc très limitée par rapport au couple RDF/SPARQL, et se limite bien souvent à un domaine donné. Par exemple, XFN [7], même s'il soulève quelques critiques, permet d'exprimer des relations simples entre individus. rel-tag, pour sa part, fournit un moyen rapide d'attacher des tags à un document.

Le niveau d'expression des microformats reste, cependant, un ton en dessous de celui de RDF. Si RDF et OWL ont pour objectif de rendre le Web intelligible aux machines, les microformats, eux, sont avant tout destinés aux humains, et peinent donc à lever les ambiguïtés qui persistent sur le Web. Il est par exemple difficile, avec rel-tag, de partager un même tag entre divers sites Web, ou même de décrire l'équivalence de deux tags.

Des enjeux stratégiques naissants

Au final, le Web Sémantique semble sans doute d'un intérêt encore limité pour les petites organisations qui ne manipulent qu'une quantité très limitée de données privées. Mais, pour les structures amenées à manipuler des données diverses, ou pour celles qui souhaitent partager leurs données, le Web sémantique soulève à coup sûr des enjeux stratégiques majeurs et immédiats : celui de pouvoir lier les informations les unes aux autres, pour créer de la nouvelle information, celui de créer plus simplement des services intégrés à destination des internautes, et surtout celui d'enfin disposer d'une représentation pérenne et extensible des informations. Les possibilités offertes par le Web Sémantique sont encore loin d'être exploitées à leur plein potentiel et, même si l'écosystème logiciel professionnel du WS demeure restreint, il y a fort à parier que le recours à RDF, OWL et SPARQL s'accentuera avec la maturation de ces différents outils.

Notes :

  • [1] Voir l'activité du Web Sémantique au W3C.
  • [2] RDF et OWL ne sont, conceptuellement, que des représentations d'informations sous forme de graphe. On parle de sérialisation pour désigner la manière d'écrire sous forme de fichiers XML des graphes RDF
  • [3] Un tag est un mot-clé que l'on associe à une ressource donnée afin de la classifier ou la caractériser. Par exemple une photo de la Tour Eiffel pourra porter les tags "Tour", "Eiffel", "Paris", "monument".
  • [4] Voir la page du projet Jena et la partie consacrée à ARQ.
  • [5] Lire "Weaving the Web", de Tim Berners Lee.
  • [6] Une inférence est un processus de raisonnement qui s'appuie sur des connaissances acquises, et qui s'articule autour de règles fondamentales pour permettre d'obtenir de nouvelles informations. Pour simplifier, on peut considérer que l'inférence est un mode de raisonnement.
  • [7] Voir http://gmpg.org/xfn/.
  • written on: 2006-06-12