[
]
Cette page collecte tout d'abord quelques matériaux afin d'offrir une petite synthèse sur la question.
--
CharlesNepote
Le web sémantique expliqué aux (grands) enfants : essai
1. Les limites du web "classique"
Le web "classique", tel que nous le connaissons actuellement, établi un nombre limité de relations sémantiques entre un nombre limité objets (balises, pages et ancres). Ces relations sémantiques sont essentiellement de la forme :
- "Telle page" "a pour titre" "tel titre" (par exemple : <head><title>Titre de la page</title></head>)
- "Telle page" "a pour contenu" "tel contenu" (par exemple : <body>Bla bla</body>)
- "Tel contenu" "est" "de telle forme graphique (typographie, couleur, taille)" (par exemple : <b>Ceci est un exemple</b>)
- "Tel contenu" "est" "de telle forme narrative" (par exemple : <strong>Attention à mon exemple !</strong>)
- "Tel contenu" "a pour référence" "telle adresse" (par exemple : <a href="http://www.wikini.net">En voiture Simone</a>)
Mais ces relations sémantiques simples ne sont pas suffisantes pour permettre des traitements "riches" tels que trouver les écrits d'Aldous Huxley et non les écrits *sur* Aldous Huxley. Pour nous autres humains, il est facile de différencier un écrit d'Aldous Huxley d'un écrit *sur* Aldous Huxley. Mais un programme d'ordinateur, incapable d'analyser la richesse et les subtilités de notre langage naturel, ne peut comprendre de telles relations qu'a travers un vocabulaire et une grammaire fortement structurés, complètement explicité et non ambigue.
2. Comment faire manger des carrottes à un chien ?
Voyons comment un programme d'ordinateur peut s'y prendre pour retrouver à coup sûr tous les écrits d'Aldous Huxley.
Il faut tout d'abord lui indiquer qu'il existe une chose
http://monsite.org/AldousHuxley qui sera utilisé pour définir sans ambiguité l'identité d'Aldous Huxley : toute autre référence que cette référence est, sauf indication explicite, différente de l'identité d'Aldous Huxley.
Nous pouvons à présent définir une relation sémantique entre
http://monsite.org/AldousHuxley et un autre objet non ambigu :
http://monsite.org/Ile. Cette relation est elle-même non ambigue :
http://monsite.org/EstAuteurDe.
http://monsite.org/AldousHuxley ->
http://monsite.org/EstAuteurDe ->
http://monsite.org/Ile
Pour un humain une telle relation est très lourde et peu claire, même si l'on devine son sens à travers les mots employés dans les références. Mais on aurai pu écrire tout aussi bien :
http://monsite.org/z454sfsf45fs ->
http://monsite.org/fqsdf48544 ->
http://monsite.org/fqef85425
... ce qui devient parfaitement incompréhensible pour un humain.
A partir de là il est facile de programmer le fait que tout objet étant lié à
http://monsite.org/AldousHuxley par la relation
http://monsite.org/EstAuteurDe devra être renvoyé lorsque l'utilisateur va demander "tous les écrits d'Aldous Huxley". Mais nous pouvons aller beaucoup plus loin.
Nous pouvons programmer le fait que la propriété
http://monsite.org/EstLaProprieteInverseDe permet de déduire les relations inverses d'une chose avec une autre.
http://monsite.org/EstAuteurDe ->
http://monsite.org/EstLaProprieteInverseDe ->
http://monsite.org/EstUnEcritDe
http://monsite.org/LaPaixDesProfondeurs ->
http://monsite.org/EstUnEcritDe ->
http://monsite.org/AldousHuxley
De ces deux précédentes relations, le programme pourra donc déduire (inférer) que :
http://monsite.org/AldousHuxley ->
http://monsite.org/EstAuteurDe ->
http://monsite.org/LaPaixDesProfondeurs
A la base du web sémantique, il y a donc la possibilité d'établir un nombre potentiellement illimité de relations entre un nombre potentiellement illimité de choses.
De ces relations, les programmes informatiques doivent pouvoir bâtir des inférences permettant d'offrir ainsi à l'utilisateur la possibilité de requêtes extrèmement riches comme "les romans d'Aldous Huxley écrits partiellement en France et en Italie entre 1940 et 1952".
3. De la théorie à la pratique : les outils de premiers niveau
Dans la pratique il serait très long d'avoir à définir, pour chaque site, tous les objets et toutes les propriétés liant sémantiquement ces objets entre eux. Divers organisations ont donc constitués des vocabulaires (ou ontologies) prêts à l'emploi afin de ne pas réinventer la roue. Par exemple, le Dublin Core, l'un des tous premiers vocabulaire, a été créé pour définir des relations sémantiques propre à des créations littéraires et artistiques.
Mais avant de définir des vocabulaire, il a été nécessaire de définir un
modèle pour représenter, textuellement ou graphiquement,
les relations sémantiques entre les choses : il s'agit de RDF, un modèle normalisé par le W3C (organisation qui définit les standards d'internet). Le principe de base de RDF est fondé sur des déclarations (
statements) contenant un "sujet" (
subject), une "propriété" ou "verbe" ou "prédicat" (
property), une "valeur" ou "objet" (
value). On retrouve ici le modèle de construction d'une phrase : sujet, verbe, complément. Ces déclarations sont également appelées
triplets RDF.
RDF n'étant qu'un modèle conceptuel, des graphiques et des langages ont été élaborées pour lui donner corps. Trois langages sont actuellement principalement utilisés pour écrire du RDF :
- le RDF/XML plutôt réservé aux traitements par les machines
- le langage N3, permettant une lecture aisée de RDF par les humains
- le langage N-Triple, un sous-ensemble de N3.
Mon petit exemple de tout à l'heure, écrit avec une syntaxe toute personnelle,
http://monsite.org/LaPaixDesProfondeurs ->
http://monsite.org/EstUnEcritDe ->
http://monsite.org/AldousHuxley
- va s'écrire en RDF/XML
- va s'écrire en N3 :
- :LaPaixDesProfondeurs? :EstUnEcritDe? :AldousHuxley?
[à compléter]
Lectures pour le débutant
- [en] en graphique.
- RDF vs XML [en] également en graphique.
- [fr], par Karl Dubost.
Lectures approfondies
Les techniques
Expérimentations, applications
- [fr], illustré par l'exemple du site xmlfr.org, par Éric van der Vlist.
- RDFWiki [en] est un MoteurDeWiki programmé en langage Python. Il se présente comme un wiki conventionnel, sauf que tous les MotWiki ont des URIs et que toutes les données sont stockées en RDF. Au lieu de simplement remplir chaque page d'information, vous devez fournir, pour chaque page (ressource), un prédicat (qui peut être un MotWiki ou un URI) et un objet (qui peut être un MotWiki ou une chaîne). Le Wiki peut être exporté sous la forme de triplets RDF [NDT : ressource, prédicat, objet] (et seulement sous cette forme pour le moment). (notre traduction).
- RDFWiki peut être facilement installé avec un PC sous Windows. Après avoir installé EasyPHP, installer Python en CGI (dans le répertoire /cgi-bin/ créé par EasyPhP. Ajouter à la configuration d'Apache :
- <Directory "C:/Program Files/EasyPHP/cgi-bin">
- AllowOverride? None
- Options None
- Order allow,deny
- Allow from all
- </Directory>
- ScriptAlias? /cgi-bin/ "C:/Program Files/easyphp/cgi-bin/"
- AddHandler? cgi-script .cgi
- AddHandler? cgi-script .py
- Copier rdfwiki dans /cgi-bin/ et appeler le rdfwiki.py.
- Editer rdfwiki.py et modifier la première ligne ainsi que les lignes définissant "Root" et "WikiBase?" :
- Lancer http://localhost/cgi-bin/rdfwiki.py?go=1 puis http://localhost/cgi-bin/rdfwiki.py
FAQ
- Comment choisir une URL pour comme domaine nominal ?