Du Web traditionnel au Web sémantique.

Ecrit par Elodie MUSSO et Marie GARREAU,
encadrées par Fabien Gandon



Note : les liens compris dans cette page sont partie intégrante de notre travail.
 


A) Préhistoire du Web.
 

     L' Histoire de l'informatique débute avec la création d'ordinateurs de plus en plus puissants et de plus en plus miniaturisés. C'est dans les années 60 qu'apparait la "mini-informatique " (circuit intégré (1958), systèmes d'exploitation multi-utilisateurs (1961) et des systèmes d'exploitation à temps partagé (1964)) ainsi que les prémices d'Internet.

    Jusque là, l'ordinateur était une énorme machine inaccessible et destinée à traiter des masses de données sans intervention extérieure. L'augmentation des performances va maintenant permettre à l'ordinateur de "communiquer" avec l'être humain !

    C'est aussi à ce moment que le premier réseau d'ordinateurs ARPANET, ancêtre d'Internet, va naître. La création de l'ARPA (Advenced Research Projects Agency) a fait partie de la réaction des Etats-Unis face au lancement par l'Union soviétique de Sputnik 57. C'est donc un ensemble de projets essentiellement militaires. Le but étant d'avoir un système de communication viable, même en temps de guerre. Cette technologie, envoi par paquets grâce au protocole TCP/IP, a ensuite été mise dans le domaine public et les universitaires américains ont commencé à s'y intéresser. De nombreux projets après, Tim Berners-Lee écrit, en septembre 1990 , le premier navigateur Web, et le nomme "World Wide Web". Ce navigateur repose sur l'hypertexte

        En 1994, Tim Berners-Lee va créer et diriger le W3C poussé par la nécessité de standardisation. Notons que W3C sont les initiales du World Wide Web Consortium et qu'étant un consortium, c'est-à-dire un rassemblement d'entreprises, cette organisation n'est donc pas indépendante des pressions des grands groupes industriels... Nous allons parler de plusieurs de ces standardisations du W3C.
 

B) Le web traditionnel.
 

  Le Web traditionnel reposant sur l'hypertexte, on a écrit le langage HTML (HyperText Markup Language). Il est conçu comme un langage spécifiant le contenu d'un document  avec d'importantes extensions d'hypertexte sans en spécifier la forme à l'origine.  Il n'est pas conçu pour être le langage de traitement de texte d'impression CONFORME à LA VISUALISATION (WYSIWYG) telle que Word et WordPerfect. Ce choix a été fait parce qu'un même document HTML peut être affiché par de nombreux navigateurs de différentes capacités. Ainsi, par exemple, le HTML permet de marquer des parties de texte comme les titres ou les paragraphes (spécification  précisée ici), et puis laisse l'interprétation de ces éléments marqués au navigateur ce qui donne une interprétation différente suivant le navigateur utilisé. Mais tout le monde y a rajouté des choses bien specifiques, (frame de netscape) ou finalement on en est arrivé à une foison de balises specifiant l'apparence en noyant le contenu !

Face à ce problème de séparation contenu/forme on a développé un langage structuré : SGML(Standard Generalized Markup Language).
 

C) Le web structuré.
 
 

SGML a été très utilisé pour le traitement de la documentation technique dans l'industrie (aviation, automobile, etc) et relativement peu pour le traitement de la documentation institutionnelle ou commercialisée. Mais c'est un langage complexe, on a donc développé un nouveau langage : XML.
 

1°) Le coeur de XML:
 

L'idée de départ de XML était de créer un langage ayant 80% de l'expressivité de SGML et 20% de sa complexité.
XML plus simple et visant essentiellement à permettre la diffusion, la récéption et le traitement de contenus SGML génériques sur le Web, est appelé à prendre une place majeure, sinon hégémonique.
 

    XML, eXtensible Markup Language, est donc un langage permettant de générer des langages de balises pour la structuration de données et de documents, puisqu'il dérive du SGML. Il a cependant des règles moins strictes.

        Le format XML est extensible. En effet, le développeur XML peut créer et utiliser dans les documents ses propres balises. Cela lui permet aussi de décrire le contenu avec la précision voulue. Un document XML typique se présente, par exemple, ainsi :
 

                                   <catalogue>
                                    <roller>
                                    <marque>RollerBlade</marque>
                                    <modele>Coyote </modele>
                                    </roller>
                                    <roller>
                                    <marque>Mission</marque>
                                    <modele>RL
                                            <type>
                                             <roulement>ABEC3608</roulement>
                                             </type>
                                    </modele>
                                    </roller>
                                    </catalogue>
 

Ce document présente une structure logique, de type arborescent, semblable à la structure d'un document HTML mais dénuée de toute informatioin de présentation.

      Il est représenté sous la forme d'un fichier texte qui n'est pas destiné à être lu, l'avantage étant qu'un simple éditeur de texte permet son débogage. De plus, c'est un format d'échange très pratique entre des plates-formes différentes. En effet, XML peut être envisagé :
              - comme format de stockage, puisqu'il s'agit d'un format générique susceptible de décliner un document dans des formats et des types d'édition différents
              - comme format d'échange
                            - en importation
                            - en exportation, notamment pour un affichage Web en réponse à une requête
    Mais dans l'immédiat, les outils de création font défaut. On parlera donc essentiellement de XML comme format d'échange.

       Le fichier créé est "bavard". Cependant, l'espace disque étant de moins en moins coûteux et les méthodes de compression de plus en plus efficaces, cela ne représente pas un problème : la répétition d'un tag pour une balise ouvrante et une balise fermante, est quelque chose qui disparaît bien à la compression.
 

    Il existe un grand nombre d'autres recommandations et extensions autour d'XML que nous présenterons dans les parties suivantes : DTD, XPath, XPointer, XLink, XSL, XSLT, XSL-FO, SAX, DOM.
 

2°) DTD ou XML-Schema : structure imposée
 

  Ce n'est pas une nécessité, mais dans le contexte où XML décrit, notamment, des échanges électroniques entre entreprises et principalement des transactions, disposer d'une structure imposée paraît essentiel pour que le fichier soit compris en bout de chaîne. Dans cette optique, la DTD (Document Type Definition) a été le premier moyen pour contraindre la structure des documents. C'est un outil hérité de SGML.

     Le principe est le suivant : on va décrire le contenu d'un document XML. On va y préciser le nom des balises que l'on peut ou doit utiliser dans un document XML, et leurs imbrications possibles. On va préciser également quel type de données ces éléments pourront contenir : numériques, textuelles, alphanumériques.  Le fait de définir le document à réaliser permet d'être sûr qu'il sera compris à l'arrivée.

    Une des utilisations des DTD est de valider un document. On va vérifier s'il est valide après avoir vérifier que le document XML est bien formé, c'est-à-dire que toutes les balises sont correctement fermées et que les attributs sont corrects. Si une DTD est déclarée et que le document XML la respecte, on dira alors que ce dernier est valide. Pour cela, il faut déclarer la DTD dans le code XML :
 

                                        <!DOCTYPE catalogue SYSTEM "catalogue.dtd">
 

La DTD sera contenue dans un fichier texte, que l'on appelera ici "catalogue.dtd".
 

                                      <!ELEMENT catalogue (roller)*>
                                      <!ELEMENT roller (marque*, modele*)>
                                      <!ELEMENT modele (type*)>
                                      <!ELEMENT type (roulement*)>
                                      <!ELEMENT marque (#PCDATA)>
                                      <!ELEMENT roulement (#PCDATA)>
 

L'astérisque signifie qu'il peut y avoir plusieurs fils d'un même élément (plusieurs rollers dans le même catalogue, plusieurs marques et plusieurs modèles pour un roller, etc). Les éléments "marque" et "roulement" n'ont pas de fils et peuvent contenir n'importe quel type de données alphanumériques (code #PCDATA).

Remarquons que cette hiérarchie a un caractère arbitraire, mais que quiconque voudra metttre à jour le document XML devra la suivre, sous peine d'erreur !

Plusieurs DTD "standardisées" existent. Elles définissent, entres autres, les langages MathML ou ebXML, pour ne citer qu'eux.

Bien que les DTD ont été utilisées par SGML et HTML pendant 20 ans, les schémas XML (XML Schemata) les remplacent très vite et ceci pour plusieurs raisons. Tout d'abord, les DTD ne sont pas écrites en XML, XML Schema si. Ensuite, XML Schema ajoute du typage. Pour le reste, un schéma XML fonctionne sur le même principe que les DTD.

Pour avoir un aperçu, voici la syntaxe XML Schema correspondante aux deux dernières lignes de notre exemple précédent :
 

                                <element name='marque' type='string'/>
                                <element name='roulement' type='CodeRoulement'/>
                                <simpleType name='CodeRoulement' base='string'>
                                <pattern value='[A-Z]{4}d{4}'/>
                                </simpleType>
 
 

3°)  Les "espaces de nom" XML.
 

    Les espaces de nom (namespaces) permettent de disposer, dans un document XML, de balises provenant de différentes syntaxes (DTD) : par exemple des balises HTML, MathML, etc. Il se peut que deux syntaxes fournissent des balises de même nom, mais de significations différentes. Les espaces de nom résolvent ce problème en nommant de manière unique un objet (élément ou attribut) en associant un domaine à un ensemble de noms. En pratique, on préfixera l'objet de l'espace de nom correspondant.
 

     Les espaces de nom sont identifiés par des URIs (Uniform Resource Identifiers), mais l'on précise pour chacun d'eux un "label" qui servira de préfixe aux balises concernés. Ainsi, on écrira par exemple :

                                                <UnElement xmlns:UnEspaceDeNom="UneURI">

   xmlns étant le "mot-clé" XML permettant de définir un espace de nom.
     Le champ d'utilisation de notre espace de nom est délimité par les balises d'ouverture et de fermeture de l'élément auquel il est associé (UnElement ici) ; l'URI (Une URI ici) peut par exemple être :

                                                http://www.w3.org/REC-html40 pour les balises HTML 4.0
                                                http://www.w3.org/REC-MathML pour les balises MathML

  quant au préfixe, il n'est pas déterminant (seul l'URI caractérise l'espace de nom) mais commode. Si l'on écrit :

                                                <exemple xmlns:H="http://www.w3.org/REC-html40"
                                                                xmlns:M="http://www.w3.org/REC-MathML">
                                                <H:b><M:mn>2</M:mn></H:b>
                                                </exemple>

  Les balises HTML et MathML sont parfaitement identifiées grâce aux préfixes H et M qui renvoient aux URI correspondantes. Remarquons que notre élément "exemple" doit avoir été défini au préalable et correspondre à une DTD. On peut ainsi écrire :

                                                <exemple xmlns="UneURI"
                                                                xmlns:H="http://www.w3.org/REC-html40"
                                                                xmlns:M="http://www.w3.org/REC-MathML">

 L'intérêt des espaces de nom est particulièrement notable dans le cas où il y a "conflit" de nommage. Si l'on fait appel à une DTD contenant des balises nommées B, et que l'on inclut dans le même document XML du code HTML utilisant la balise B, il faudra définir un espace de nom (par exemple xmlns:H="http://www.w3.org/REC-html40) qui permettra de lever l'ambiguité (la balise <b> étant syntaxiquement distincte de la balise <H:b> dans notre exemple).

    Les applications e-business tirent également profit des espaces de nom, et notamment les portails : les espaces de nom leur permettent en effet d'identifier la source des données présentées, mais également, si besoin est, de disposer (via les balises spécifiques) des outils d'affichage, par exemple, propres à la source des données.
 

4°) XPath : XML Path langage.
 

    XPath est un langage pour servir à la fois à XSL Transformations et XPointer. Son principal objectif est d'accéder à un endroit spécifique d'un arbre XML. Ce n'est pas seulement un langage d'adressage, il offre aussi des facilités pour la manipulation des chaines de caractères, des nombres et des booléens. Pour faciliter son utilisation, XPath n'a pas la même syntaxe que XML. Il agit sur la structure abstraite et logique du document XML.

    Voici les 3 normes qui ont été créées :
            - XPath est un langage pour décrire des chemins qui désignent des fragments d'un document.
            - XPointer spécifie des "cibles" via XPath.
            - XLink décrit des liens entre des XPointers.

     Afin de pointer sur un objet précis, XPath est une chaîne spécifiant la sélection d'un ensemble de noeuds dans un document. Il utilise :
                - un modèle de données sur l'organisation du document : noeud / attributs / texte,
                - des expressions permettant de faire des calculs sur les paths,
                - des chemins d'accès "locations paths".
 

La notation Xpath permet de définir des patterns, c'est-à-dire des chaînes de caractères permettant de repérer un noeud dans le document XML. Les principaux patterns sont :
 
 
Pattern Exemple Signification
| Gauche|Milieu Indique une alternative (un noeud ou bien l'autre (ou les deux))
/ personne/nom Chemin d'accès aux éléments (personne/bras/gauche) au même titre que l'arborescence utilisée généralement pour les fichiers (/usr/bin/toto)
* * Motif "joker" désignant n'importe quel élément
// //personne Indique tous les descendants d'un noeud
. . Caractérise le noeud courant
.. .. Désigne le noeud parent
@ @valeur Indique un attribut caractéristique (dans l'exemple l'attribut value)

Voici un exemple :

                                                        <book title="Starsip Titanic" price="$14">
                                                            <author name="douglas Adams"/>
                                                            <author name="Terry Jones"/>
                                                            "Where is Leovinus?" demanded the Gat of Blerontis
                                                        </book>
 
 
XPath
Résultat
/book/author[2] <author name="Terry Jones"/>
/book/author/@name douglas AdamsTerry Jones
/book/author <author name="douglas Adams"/> <author name="Terry Jones"/>
/book/text()  "Where is Leovinus?" demanded the Gat of Blerontis

XPath est donc très puissant mais difficile à maîtriser.
 

5°) La présentation avec XSL.
 

    XSL définit la présentation d'un élément XML sans sémantique. Après traitement des sources, on obtiendra différentes versions d'un document. XSL est donc un langage de réécriture pour XML. Il est subdivisé en :
                    - un langage de transformation des documents XML : XSLT
                    - un vocabulaire pour formater le contenu d'un document XML : XSL-FO.
 

 a) XSLT

Un processeur XSLT utilise :
                    - un document XSL contenant des règles de présentation  (en fait un document XML) appelé feuille de style,
                    - et un arbre source résultant de l'analyse syntaxique d'un document XML (tout document XML bien construit pouvant être représenté par un arbre qui contient sa structure).

Et il renvoie un arbre résultant qui représente non plus une structure logique mais une structure de présentation. Le document XML résultant précise donc comment présenter le document XML source.
 

b) XSLT/FO

        Une fois l'arbre source créé, XSL/FO permet de formatter le résultat, c'est-à-dire d'interpréter l'arbre résultat, ou plus exactement les objets de flux le composant en  leur appliquant des objets de mise en forme afin d'en faire une représentation visuelle (papier, écran, ...)
 

c) Feuille de style

Une feuille de style (stylesheet) est une succesion de règles de réécriture : les xsl:template. L'attribut "match" de la balise <xsl:template> permet de définir (grâce à la notation XPath) le ou les éléments du document XML sur lesquels s'applique la transformation.

                    - de la description d'une action qui définie la transformation à appliquer sur un noeud.
Voici un exemple :

                                                <?xml version="1.0">
                                                <xsl : stylesheet>
                                                    <xsl:template match="/">
                                                        [action]
                                                    </xsl:template>
                                                    <xsl:template match="roller">
                                                        [action]
                                                    </xsl:template>
                                                    ...
                                               </xsl : stylesheet>
 

d) exemple

Un exemple permet de clarifier tout cela. Voici un document XML très simple :

                                       <?xml version='1.0' ?>
                                       <doc>
                                       <title>Exemple de document</title>
                                       <para>Voici un <em>court</em> document XML</para>
                                       <figure>
                                       <title>Exemple d'image</title>
                                       <graphic fileref="image.gif"/>
                                       </figure>
                                       </doc>

  Et voici un exemple de document XSL (sans objets formatés) qui transforme ce type de document XML (une partie de ce dernier pour être tout à fait exact) :

                                       <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
                                       <xsl:template pattern="doc">
                                       <HTML>
                                       <HEAD>
                                       <TITLE>A Document</TITLE>
                                      <HEAD>
                                       <BODY>
                                       <xsl:process-children/>
                                       </BODY>
                                       </HTML>
                                       </xsl:template>
                                       <xsl:template pattern="title">
                                       <H1> <xsl:process-children/> </H1>
                                       </xsl:template>
                                       </xsl:stylesheet>
 

    L'examen des deux documents ci-dessus se passe de commentaires supplémentaires : la structure du document XML contient des éléments pour lesquels (ou certains desquels ici) des règles de présentation sont définis dans le document XSL.
 
 

    XML permet donc de s'adapter à différents profils d'agents (humains ou logiciels) mais aussi de proposer plusieurs formats d'affichage.

XML fournit donc une syntaxe de structuration de données mais ne fournit rien pour décrire la sémantique des balises. Le web sémantique s'attache à palier à ce manque.
 
 

D) Le Web sémantique.
 

1°) Un exemple d'application.

    Jean écoute de la musique quand son téléphone sonne. Il répond, son téléphone baisse alors le volume de la musique en envoyant un message à tous les autres dispositifs locaux ayant un contrôle de volume. Sa soeur, Sylvie appelle de chez le docteur car leur mère doit voir un spécialiste et puis faire une série de séances de thérapie bi-hebdomadaire. Elle dit qu'elle va faire arranger les rendez-vous par son agent. Jean est tout de suite d'accord pour remplir le rôle de chauffeur pour ces rendez-vous.
    Sur place, Sylvie donne des instructions à son agent grâce à son Palm (navigateur de poche). L'agent prend la prescription chez l'agent du docteur, cherche des listes de fournisseurs  et choisit ceux compatibles avec l'assurance de leur mère dans un rayon de 20 km de chez elle et avec une mention excellente ou très bonne aux services d'évaluation de confiance. Il commence alors à essayer de trouver un compromis entre horaires de rendez-vous possibles (fournis par les agents des fournisseurs à travers leur site web) et les emplois du temps chargés de Jean et Sylvie.
    En quelques minutes l'agent a trouvé et revient avec un plan. Jean ne l'aime pas, l'hôpital de l'Université est à l'autre bout de la ville par rapport à chez sa mère et cela l'obligerait à la reconduire en heure pleine. Il demande alors à son propre agent de refaire la recherche avec des préférences strictes concernant le lieu et l'heure. L'agent de sylvie ayant entièrement confiance en l'agent de Jean dans le contexte de la tâche présente, il aide ce dernier en fournissant des certificats et des raccourcis d'accès aux données qu'il a déjà  triées.
    Presque instantannément, le nouveau plan  est présenté : une clinique plus proche et un rendez-vous plus tôt, mais il y a 2 avertissements. Tout d'abord, Jean doit déplacer 2 rendez-vous de moindre importance. Il regarde quels sont-ils, pas un problème. L'autre avertissement est que la liste de la compagnie d'assurance n'inclut pas ce fournisseur pour ce genre de thérapie. Son agent lui propose de voir les détails.
    Sylvie enregistre son consentement au même moment où Jean est en train de murmurer "épargne moi les détails".
 

2°) Définition.
 

    Jean et Sylvie n'auraient pas pu utiliser leur agent pour faire ce travail sur le Web, mais avec le Web sémantique de demain oui. Le contenu du Web d'aujourd'hui est lisible par des humains et par des machines mais il n'est compréhensible que pour les humains. Le Web sémantique vise à ajouter des annotations sémantiques, à propos des ressources du Web, qui soient compréhensibles et exploitables par des logiciels (les agents).
Le Web sémantique crée un environnement où les agents qui parcourent de pages en pages ce web, peuvent effectuer des tâches sophistiquées pour des utilisateurs. Un tel agent venant sur la page  web de la clinique saura non seulement que la page contient des mots clés comme "traitement, médicaments, thérapie" (tel que c'est codé aujourd'hui) mais aussi  que le Docteur Hartman travaille dans cette clinique les lundis, mercredis et jeudis et que le script prend une date au format aaaa-mm-jj et renvoie un rendez-vous. Et il saura cela sans l'aide d'intelligence artificielle.

    Le Web sémantique n'est pas une page web séparée mais une extension de l'actuel dans lequel l'information a un sens bien défini, permettant ainsi aux ordinateurs et aux personnes de travailler en coopération. Les premières étapes pour tisser le Web sémantique dans la structure du Web existant sont déjà franchies.

    La propriété essentielle du Web traditionnel est son universalité. La puissance des liens hypertextes est que n'importe quoi peut être lié à n'importe quoi. La technologie du web ne doit donc pas être dicriminante entre des informations commerciales ou académiques, parmi les cultures, les langues, les médias, etc ... L'information du Web varie selon plusieurs axes. L'un d'eux est la différence entre l'information produite pour la compréhension humaine et celle produite principalement pour les machines. D'un côté, nous avons tout du programme TV à la poésie et de l'autre, nous avons des bases de données , des programmes et des sorties. Le but du web sémantique est d'harmoniser tout cela.

    Comme Internet, le Web sémantique sera aussi décentralisé que possible. Cela demande de faire des compromis : on doit accepter l'idée de la croissance exponantielle des erreurs.

    Pour fonctionner, les ordinateurs doivent avoir accès à des collections d'information et à des ensembles de règles d'inférence pour effectuer un raisonnement automatique. La Représentation des connaissances ("knowledge representation"), pour réaliser son potentiel, doit être liée à un système unique et global.
Mais si tout le monde partage la même définition pour des concepts communs, cela devient vite étouffant et entraîne une augmentation de taille. Le système devient alors ingérable.
Le challenge est de produire un langage qui permet aux règles en provenance de n'importe quelle "représentation du savoir" d'être exportée par le Web.
 

Deux technologies sont déjà en place :
          - eXtensible Markup Langage (XML),
          - Ressource Description Framework (RDF).

          XML permet à chacun de créer ses propres balises qui entourent des pages Web ou des sections de texte. Les scripts ou les programmes peuvent alors utiliser ces balises de façon sophistiquée. En clair, XML permet aux utilisateurs d'ajouter des structures arbitraires à leurs documents sans rien dire de leur signification.
 

3°) RDF.
 

          RDF exprime le sens de ces balises. C'est encodé sous la forme de triplets, un peu comme sujet-verbe-complément d'une phrase très simple.

     Dans RDF, un document fait des affirmations : des choses (personnes, pages web ou autres) ont des propriétés (est la soeur de, est l'auteur de ) avec une valeur (autre personne, autre page web). Sujets, verbes et compléments sont identifiés par URI, utilisés exactement comme un lien sur une page web. Cela permet à chacun de définir un nouveau  concept, juste en définissant une URI pour lui sur le web.

     Considérez comme un exemple simple, la phrase :
                   Ora Lassila est le créateur de la ressource http://www.w3.org/Home/Lassila.

     Cette phrase est composée des parties suivantes :
 

                  Sujet (Ressource)
                                      http://www.w3.org/Home/Lassila
                  Prédicat (Propriété)
                                      Créateur
                  Objet (littéral)
                                      "Ora Lassila"

Simple node and arc
    On peut également avoir lu "http://www.w3.org/Home/Lassila a pour créateur Ora Lassila", ou en général " <le sujet> A POUR <prédicat> <objet>".
 Le triplet, dans notre exemple c'était (http://www.w3.org/Home/Lassila, Créateur, "Ora Lassila"), est l'élément de base d'un énoncé RDF.

    Ensuite RDF a une syntaxe XML pour exprimer ce modèle de triplet. Dans notre exemple, cela donne:

          <rdf:RDF>
                 <rdf:Description about="http://www.w3.org/Home/Lassila"
                     s:Créateur="Ora Lassila" />
          </rdf:RDF>

Voici quelques productions de la grammaire simplifiée de RDF :
 

                                              [1] RDF            ::= ['<rdf:RDF>'] description* ['</rdf:RDF>']
                                              [2] description    ::= '<rdf:Description' idAboutAttr? '>' propertyElt*  '</rdf:Description>'
                                              [3] idAboutAttr    ::= idAttr | aboutAttr
                                              [4] aboutAttr      ::= 'about="' URI-reference '"'
                                              [5] idAttr         ::= 'ID="' IDsymbol '"'
                                              [6] propertyElt    ::= '<' propName '>' value '</' propName '>'
                                                                   | '<' propName resourceAttr '/>'
                                              [7] propName       ::= Qname
                                              [8] value          ::= description | string
                                              [9] resourceAttr   ::= 'resource="' URI-reference '"'
                                              [10] Qname          ::= [ NSprefix ':' ] name
                                              [11] URI-reference  ::= string, interpreted per [URI]
                                              [12] IDsymbol       ::= (any legal XML name symbol)
                                              [13] name           ::= (any legal XML name symbol)
                                              [14] NSprefix       ::= (any legal XML namespace prefix)
                                              [15] string         ::= (any XML text, with "<", ">", and "&" escaped)
 
 
 

3°) RDF Schema.
 

      Rendre explicite la sémantique des annotations permet d'éviter des difficultés dues à l'ambiguïté du langage. Ils donnent l'exemple du mot 'adresse' qui peut désigner une adresse routière (5 rue du général machin) ou purement postale (BP 87). Si les systèmes ne sont pas capables de comprendre la différence il se peut que lorsque vous commandez des pizzas elles soient livrées à votre boîte postale (c'est sympa pour les employés de la poste) parce que votre système a donné cette adresse au système du livreur de pizzas. Le fait de définir un concept et de lui donner un identificateur unique (URI) permet à deux systèmes de s'assurer qu'ils parlent de la même chose (ex. le système du livreur de Pizza veut votre adresse routière personnelle et utilise une URI qui définit cette notion de façon à lever l'ambiguïté). La structure permettant de définir des concepts et leur relation est un Schéma RDF. Ce schéma est décrit à l'aide de primitives donnée par RDF Schema (RDFS).

 RDF(s) propose des constructeurs très généraux permettant de construire ces schémas spécialisés. En effet, un ensemble de déclarations de classes et de propriétés peut-être défini par raffinement du schéma du noyau RDFS. Les données instances sont ensuite décrites en utilisant ce nouveau vocabulaire.
 

Voici une figure qui illustre les concepts basiques de classe, sous-classe et ressource. :
 
 

Figure 1: Classes and Resources as Sets and Elements

Les classes et les propriétés spécifiques à un domaine son déclarées respectivement comme instances de la ressource Class et Property.
 

    Voici un exemple simple de leur utilisation :
 
 

Example Vehicles class hierarchy

    On défini succesivement des objets de type classe :
                        - une classe MotorVehicle,
                        - 3 sous-clases de MotorVehicle : PassengerVehicle, Truck et Van,
                        - et enfin, une sous-classe de PassengerVehicle et Van : MiniVan.
C'est-à-dire qu'un minivan est un van et peut recevoir des passager (classes mères), mais aussi que c'est un vehicule motorisé (classe grand-mère).
 

Et voici la syntaxe RDF correspondante :
 

<rdf:RDF xml:lang="en"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<!-- Note: this RDF schema would typically be used in RDF instance data 
     by referencing it with an XML namespace declaration, for example
     xmlns:xyz="http://www.w3.org/2000/03/example/vehicles#".  This allows
     us to use abbreviations such as xyz:MotorVehicle to refer
     unambiguously to the RDF class 'MotorVehicle'. -->

<rdf:Description ID="MotorVehicle">
 <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
 <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
</rdf:Description>

<rdf:Description ID="PassengerVehicle">
 <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
 <rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdf:Description>

<rdf:Description ID="Truck">
 <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
 <rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdf:Description>

<rdf:Description ID="Van">
 <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
 <rdfs:subClassOf rdf:resource="#MotorVehicle"/>
</rdf:Description>

<rdf:Description ID="MiniVan">
 <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
 <rdfs:subClassOf rdf:resource="#Van"/>
 <rdfs:subClassOf rdf:resource="#PassengerVehicle"/>
</rdf:Description>

</rdf:RDF>

 

4°) Axes de développement.
 

     Le système Annotea est un projet du W3C. C'est un système d'annotation collaboratif. Par annotation, on entend commentaires, notes, explications ou autres types de remarques qui peuvent être attachées à n'importe quel document Web ou à une partie selectionnée du document. Quand l'utilisateur prend le document, il peut charger les annotations attachées à ce document d'un ou plusieurs serveurs sélectionnés d'annotation et voir ce que son "groupe de paire" (peer group) pense.
    Annotea utilise pour l'instant un schéma d'annotation basé sur RDF pour décrire des annotations. Ce système fait donc partie des efforts liés au Web sémantique.
    Les annotations sont rangées dans des serveurs d'annotations comme des métadonnées et présentées à l'utilisateur par un client HTTP capable  :
                            - d'interagir avec un serveur d'annotation,
                            - d'interpréter ces métadonnées,
                            - de les utiliser pour la présentation d'informations et de services au client.
     Le premier client est le navigateur Amaya, rien n'empêche d'autres clients d'implémenter aussi ces possibilités.
 Ce système pourra être à la base de futures applications comme des recommandations de produits ou de services.
 

    Voici les 2 principaux axes de développements futurs :
            - contrôle d'accès, preuve, confiance (signature électronique),
            - raisonnement, règles, logique.

     Une facette importante des agents est l'échange de preuves, écrites en langage unifié du Web sémantique. Un agent qui a effectué une tâche pour un utilisateur peut lui proposer de voir certaines pages Web s'il a des doutes concernant la solution apportée par son agent.
    Les ordinateurs et les agents utilisent pour se faire des signatures digitales. Ce sont des blocs de données encryptées qui permettent de vérifier que l'information attachée a bien été envoyée par une source spécifique. Par exemple, cela peut s'avérer utile pour vérifier qu'une facture online ne vient pas de l'ordinateur de votre voisin adolescent !

     Les schémas RDF ne permettent pas de raisonner. Ajouter la logique au Web est un axe important de développement pour la communauté du Web sémantique. C'est très compliqué. La logique doit être assez puissante pour décrire des propriétés complexes d'objet mais pas trop pour que les agents ne s'égarent pas à avoir à considérer un paradoxe.
 

    Voici un schéma représentant l'architecture en couches et ... en cours du Web sémantique.
 
 




    On peut voir dans ce schéma qu'un axe de développement est de standardiser les moyens de définir des ontologies qui peuvent être utilisées sur le Web . Pour ce faire, on part des schémas RDF puis on étend ces constructions pour permettre des relations plus complexes entre entités. On va utiliser DAML et OIL pour définir un nouveau standard : l'OWL (Ontology Web Language).

    DAML vient de DARPA Agent Markup Language Program et OIL de Ontology Interchange Language. Ce couple est le résultat d'un groupe de travail du W3C.
    Il apporte une extension de RDFS :
                    - classes (intersection, union, complémént, ...),
                    - définition de nouveau types de données avec XML Schema,
                    - différents types de propriétés, sous-propriétés, ...
                    - restriction des propriétés.
    Mais aussi tout la puissance d'une logique de description si munie de mécanismes inférentiels (et, ou, non, rôle transitif, inverse, ...).

    Il existe des besoins très différents :
                    - vocabulaire conceptuel pour étiqueter ou indexer des documents,
                    - publier ou échanger de l'information type base de données,
                    - inétgration semi-automatique d'information entre agents logiciels,
                    - vérification du bon usage des règles,
                    - Ontologies de petite taille disponibles partout versus de grandes ontologies.

    Il existe tout de même des éditeurs d'ontologies, par exemple Ontolingua/Chimeara et Protégé 2000(université de stanford), OILEd (université de Manchester), WebOnto, ou encore OntoEdit.
 

E) Et demain ?
 

           Prochaine étape : le WS va s'étendre dans notre monde physique. Les URI peuvent pointer sur n'importe quoi, notamment des entités physiques, ce qui signifie qu'on peut utiliser le language RDF pour décrire des objets comme un téléphone cellulaire ou une TV. Des dispositifs peuvent donner leur fonctionnalités (ce qu'ils font et comment ils sont contrôlés), tout comme des agents.

    Construit sur RDF, il existe un  standard, appellé Composite Capability/Preference Profile (CC/PP). Les clients non standarts pourront alors automatiquement décrire leurs caractéristiques pour que le contenu du WEB puisse être adapté à eux sur le champs. Plus tard, ils pourront automatiquement aller chercher pour les employer d'autres services et engins pour s'ajouter une fonctionalité ou une information. Une des applications est la domotique (automatisation de la maison) : il n'est pas dur de s'imaginer votre four micro-onde couplé au WEB consultant le site WEB d'un fabricant de surgelé pour optmiser les paramètres de la préparation.
 

           Le WS n'est pas seulement un outil pour effectuer les tâches personnelles dont nous avons parlées il peut assister s'il est bien conçu l'évolution du savoir humain comme un tout. L'effort humain est tiraillé entre l'efficacité de petits groupes agissant de façon indépendante et le besoin de se mettre en réseau avec une plus large communauté. Un petit groupe peut inover rapidement et efficacement mais cela entraine une sous culture dont les concepts ne sont pas compris par tous les autres. Coordonner les actions au travers d'un plus large groupe est péniblement long et produit une énorme quantité de communication. Un procédé essentiel est donc la jonction de sous-cultures quand on a besoin d'un plus large langage commun. Souvent 2 groupes qui développent des concepts proches et qui décrivent la relation entre eux, en retirent de grands bénéfices. Le Web sémantique laisse chacun exprimer de nouveaux concepts et cet unique langage permettra à ces concepts d'être progressivement liés dans un Web universel.

    Concrètement, il est clair qu'au vu de la complexité du travail à mener et de la formalisation à réaliser que le seul moyen d'espérer travailler avec un Web sémantique à court ou moyen terme est de procéder par étapes successives. Pour cela, la meilleure méthode semble être une vérification et correction humaine des résultats produits par automatisation logicielle. Une communauté de volontaires, classifiant sous forme hiérarchisée des liens internet, pourrait donc, en théorie, contribuer à "sémantiser" le Web actuel. Cependant à la vitesse où les documents sont créés, modifiés ou supprimés sur Internet (par exemples, les sites générant des bulletins d'informations réguliers changent fréquemment de contenu) , il sera très difficile d'espérer "sémantiser" le web sans un effort des éditeurs de contenus on-line. Les seuls espoirs du Web sémantique sont :
                        - d'avoir une adoption en masse des standards qui émergeront du W3C,
                        - la disponibilité d'outils logiciels permettant de l'exploiter, aussi bien de bas niveau tels que des moteurs de règles capables de faire des déductions mais aussi des outils de plus haut niveau comme des moteurs de recherches évolués et des agents intelligents capables d'exploiter la sémantique des documents.
 
 
 
 
 
 

Les sources utilisées :

 
Le site du W3C, grande mine de renseignements : www.w3c.org

"Introduction to HTML" par  Ian Graham
         Last Update: 20 September 2000

 "A Practical Introduction to SGML." Prepared by Michel Goossens and Janne
Saarela, CERN. "...discusses the basic ideas of SGML and looks at a
    few interesting tools... [June 1995]

Plusieurs articles sur www.XML.com et developpeurs.journaldunet.com/tutoriels/xml/...

Les cours des licences MIAGE : Technolgies du Web par Stéphane Lavirotte et
Dominique Broeglin disponible sur cours.essi.fr/miage/tehnoweb

"Le Web sémantique n'attend plus que vous !" par Jérôme BERNARD, juin 2001,
xmlfr.org/documentations/articles/010601-0001

"Les langages de représentation du Web" par P. Laublet, Ontosaurus

L'article "The Semantic Web" , Scientific American, May 2001.
 
 

Retour à la page d'accueil