Le web sémantique a l'ambition de construire pour les machines l'infrastructure correspondant au web actuel et d'offrir aux humains la puissance des machines pour gérer l'information disponible dans ce web.
Même si RDF ("Resource Description Framework", un langage pour décrire les ressources du Web) est un format très ouvert et malléable, si l'on désire interroger une base documentaire ou le web, il est nécessaire d'identifier les termes sur lesquels l'interrogation doit porter. Ces termes identifiant les grandes classes d'objets impliqués et leurs relations constituent un modèle conceptuel du domaine et sont décrits dans une "ontologie". Les ontologies fournissent le vocabulaire propre à un domaine et fixent - avec un degré de formalisation variable - le sens des concepts et des relations entre ceux-ci. Ces concepts (et ces relations) sont généralement organisés par une relation de spécialisation.
Ainsi, on voudra décrire une taxonomie des types de documents (Livre, Rapports) utilisés dans une organisation, parmi lesquels on identifiera des sous-classes (Biographies, Rapports contractuels, etc.). On voudra contraindre leur structure (par exemple, un livre a un unique titre et un unique numéro ISBN, une Biographie a pour objet une personne). On voudra interroger des ressources utilisant cette ontologie et en tirer parti (par exemple, si je cherche un Livre, en retournant aussi les Biographies, si je cherche une Biographie en retournant aussi les ouvrages ayant pour objet une personne).
Exprimer de la connaissance sur le web est l'ambition du web sémantique. Au-delà de ce simple mot d'ordre, diffuser des ontologies sur le web est le moyen de permettre à d'autres de se les approprier, de les étendre et de les réutiliser. Mais si les ontologies doivent s'échanger librement sur le web, il est nécessaire de les intégrer plus aux langages du web. Pour cela on dispose de langages compatibles avec RDF et permettant de le contraindre. Ces langages sont RDFS et OWL qui sont présentés dans la suite.
À partir de RDF, le langage RDF Schéma (RDFS) a été développé. Indépendamment, différents langages de description d'ontologie ont été développés pour le web. Le projet européen ontoknowledge avait développé le langage OIL comme une extension d'XML Schéma proche de RDFS offrant des primitives inspirées des logiques de descriptions. Le programme américain DAML a pour sa part proposé le langage DAML-ONT, fondé sur RDF, et plus proche des langages objets.
Ces deux langages ont été fusionnés en un langage connu sous le nom de DAML+OIL. OWL est le successeur de DAML+OIL. Il a été développé par le groupe de travail WebOnt du W3C et constitue une recommandation du W3C depuis février 2004. OWL a principalement été développé par les acteurs « académiques » (même s'ils travaillent pour des sociétés privées) et les développeurs d'outils pour le web sémantique. La conception du langage a surtout consisté à en définir la base sémantique en liaison avec le Web et avec le langage RDF.
Ce langage est partie prenante dans l'architecture en couches proposée par le W3C pour le web sémantique.Il est nécessaire qu'un langage standard puisse s'imposer pour servir de référence aux développements autour du web sémantique, même si cela ne doit pas empêcher d'autre langages d'exister.
RDF Schéma a pour but d'étendre RDF en décrivant plus précisément les ressources utilisées pour étiqueter les graphes. Pour cela, il fournit un mécanisme permettant de spécifier les classes dont les ressources seront des instances, comme les propriétés. RDFS s'écrit toujours à l'aide de triplets RDF, en définissant la sémantique de nouveaux mots-clés comme:
Ces primitives constituent la base de tout langage d'ontologie, permettant de signifier l'appartenance d'un objet à une catégorie, de déclarer la relation de généralisation entre catégories et de typer des objets reliés par une relation.
Ainsi que le montre l'extrait suivant, il est possible de décrire une hiérarchie de classes de références (Reference est plus général que Book qui est plus général que Biography qui l'est plus que Autobiography). Il est aussi possible de décrire les types d'objets attendus aux extrémités des arcs : ainsi la propriété author s'applique à une oeuvre et a pour valeur une personne.
<rdfs:Class rdf:ID="Reference" /> <rdfs:Class rdf:ID="Book"> <rdfs:subClassOf rdf:resource="#Reference" /> </rdfs:Class> <rdfs:Class rdf:ID="Biography"> <rdfs:subClassOf rdf:resource="#Book" /> </rdfs:Class> <rdfs:Class rdf:ID=" Autobiography "> <rdfs:subClassOf rdf:resource="#Biography" /> </rdfs:Class> <rdf:Property rdf:ID="bib:author"> <rdfs:domain rdf:resource="#Reference"/> <rdfs:range rdf:resource="&foaf;Person"/> </rdf:Property> <rdfs:Class rdf:ID="Publisher"> <rdfs:subClassOf rdf:resource="&foaf;Organization" /> </rdfs:Class>Figure 1 : Une taxonomie en RDFS.
RDFS ne fournit que des mécanismes très primitifs pour spécifier ces classes. OWL fournit un grand nombre de constructeurs permettant d'exprimer de façon très fine les propriétés des classes définies.
On peut appréhender le langage OWL en observant la définition d'un livre et d'une biographie présentée ici. Disons qu'en plus des primitives de RDFS, OWL permet de contraindre plus précisément la description des classes (en les décrivant comme union, intersection, complémentaire d'autres descriptions ou comme l'ensemble d'un certain nombre d'individus), des domaines de relations (en spécifiant le type de toutes leurs valeurs, ou d'un certain nombre de leurs valeurs) ou des relations (en les déclarant transitives, symétriques ou en spécifiant leur inverse). Par ailleurs, il est possible de déclarer que deux classes ou ressources sont équivalentes ou, au contraire, différentes.
Ainsi, les documents précédents peuvent être régis par l'ontologie OWL contenant les classes suivantes:
<owl:Class rdf:ID="Book"> <owl:intersectionOf> <owl:Class rdf:resource="#Reference" /> <owl:Restriction> <owl:onProperty rdf:resource="#title" /> <owl:minCardinality rdf:datatype="&xsd;Integer">1</owl:minCardinality> </owl:Restriction> <owl:Restriction> <owl:onProperty rdf:resource="#publisher" /> <owl:allValuesFrom rdf:resource="#Publisher" /> </owl:Restriction> </owl:intersectionOf> </owl:Class> <owl:Class rdf:ID="Biography"> <owl:intersectionOf> <owl:Class rdf:resource="#Biography"/> <owl:Restriction> <owl:onProperty rdf:resource="#object"/> <owl:allValuesFrom rdf:resource="&foaf;Person"/> </owl:Restriction> </owl:intersectionOf> </owl:Class>Figure 2 : La première expression OWL s'interprète comme « la classe Book est l'intersection de la classe Reference, des objets dont la propriété title a au moins une valeur et la propriété publisher a pour valeur un Publisher » ; la seconde signifie que « Les Biography sont des Book dont l'objet est une Person»
Dans les ontologies comme dans les descriptions, l'ouverture est de mise. Ainsi, les ontologies peuvent faire référence à des concepts introduits dans d'autres ontologies. On peut le voir dans les descriptions précédentes où la classe Person n'est pas définie dans l'ontologie bibliographique mais dans l'ontologie FOAF ("friend-of-a-friend", http://www.foaf-project.org). Similairement, on a pu voir sur la figure 1 que la classe Publisher est une sous-classe de la classe FOAF Organization : il est donc possible, non seulement d'utiliser mais de prolonger une ontologie existante (pour ses propres besoins, bien entendu). Il est même possible d'aller plus loin et d'introduire des classes au sein d'une hiérarchie existante (par exemple, dans une ontologie du droit, de déclarer que la classe PersonneMorale est une superclasse des classes FOAF Person et Organization). Il est tout aussi possible de déclarer deux classes ou deux relations d'ontologies différentes comme équivalentes ou au contraire incompatibles. Enfin, il est possible de contraindre certaines caractéristiques de classes extérieures à l'ontologie. Ainsi, il est possible d'exprimer que l'image de la propriété publisher est un objet de la classe FOAF Organization qui possède au moins une address !
La syntaxe d'un document OWL est donnée par celle des différents constructeurs utilisés dans ce document. Elle est le plus souvent donnée sous la forme de triplets RDF.
Pour des raisons de modularité, OWL a été fractionné en trois langages distincts :
Nous donnons ci-dessous un panorama des constructeurs utilisés dans OWL, dans une syntaxe simplifiée (les mots-clés réservés de OWL sont préfixés de OWL) :
On peut se demander pourquoi ne pas se contenter d'utiliser XML pour construire ce web sémantique, ou plutôt XML à la place de RDF et XML Schéma à la place de OWL. Il y a plusieurs raisons à cela. La première tient à l'ouverture : introduire la possibilité d'étendre tout document XML, ainsi que présenté ci-dessus, va à l'encontre de la philosophie de XML Schéma qui tend plutôt à contraindre. Par ailleurs, ces deux langages ne possèdent pas de sémantique ce qui rend difficile la justification des inférences que l'on pourrait y faire. Enfin, un schéma XML n'est pas une ontologie car son but est de valider un document, pas d'en définir les conséquences. Il est donc difficile de l'utiliser pour faire des inférences.
Comme RDF, OWL est doté d'une sémantique en théorie des modèles permettant de spécifier tout ce qui est conséquence d'un ensemble d'assertions de OWL. Elle est directement issue des logiques de descriptions. La sémantique associée aux mots-clés de OWL est plus précise que celle associée aux documents RDF représentant une ontologie OWL.
L'intérêt d'utiliser une ontologie est de pouvoir valider ses sources : par exemple, être sûr que l'éditeur d'un ouvrage est bien un Publisher et que son adresse est connue. Mais c'est surtout d'augmenter le nombre d'inférences possibles à partir des données. Plus précisément, une telle modélisation devrait permettre de répondre à des requêtes complexes utilisant les modèles pour compléter la connaissance disponible. Ainsi, plus on fait intervenir d'ontologies - pertinentes - dans l'évaluation d'une requête, plus les réponses sont pertinentes.
Disposer de telles ontologies, et de moteurs d'inférence respectant la sémantique de OWL, ouvre la voie à de nombreuses applications:
Ainsi, si l'on étudie la vie de Bertrand Russell, on voudra trouver les Biographies de tous les coauteurs et élèves de Bertrand Russell. Bien entendu une telle requête devra retourner les Biographies et les Autobiographies ; elle devra aussi trouver les personnes dont le doctorat a eu comme superviseur Bertrand Russell. Ces deux informations n'ont pas à être dans la requête, il suffit qu'elles soient présentes dans l'ontologie pour être exploitées.
L'information sur les élèves d'un auteur n'est typiquement pas celle que l'on trouve dans les notices bibliographiques actuelles mais que l'on peut trouver sur les pages web des auteurs comme sur les sites qui leur sont consacrés. Leur encodage en RDF et OWL permettra de les exploiter.
Disposer d'un langage de description d'ontologies standard permet principalement de publier sur le web des ontologies qui puissent être appréhendées par de nombreux acteurs. Indépendement de l'origine des données, elles pourront être interprétées en fonction d'une ontologie décrite en OWL.
Cela va en outre permettre aux chercheurs d'expérimenter les bases du web sémantique en s'appuyant sur une base relativement consensuelle.
Le futur de OWL est très lié au développement du web sémantique. Nous voyons trois points cruciaux à son développement. Tout d'abord la mise à disposition et la normalisation d'ontologies réduites mais de portée générale. C'est le cas, par exemple, de l'ontologie FOAF. Sur un telle base, il sera alors possible de créer des applications intéressantes. Ensuite, la description de sources d'information à l'aide de ces ontologies permettra de disposer d'applications utiles. Enfin, le développement d'outils permettant de manipuler les ontologies OWL et ce qu'elles décrivent en RDF de manière transparente offrira des applications peu coûteuses et intégrées. Des moteurs d'inférence, encore trop peu nombreux, ont déjà été implémentés pour des sous-ensembles significatifs de OWL DL (dans le cadre des logiques de descriptions) et sont utilisés dans divers outils (OilEd, Protégé...).
Il sera alors temps de songer à étendre le langage, en particulier à l'aide de règles.
Les principales ressources concernant OWL sont les documents décrivant le langage. Ils ont tous été traduits en français (pour obtenir la traduction, non normative, cliquez sur le (F), mais la version anglaise reste la référence. La description du langage est rassemblée en 6 documents:
Très peu de textes décrivent OWL. On peut cependant citer:
http://www.inrialpes.fr/exmo/cooperation/webont/owl.html | © INRIA Rhône-Alpes, 2004 |