Cet article donne une introduction au web sémantique et ses langages, décrit un outil d’édition d’ontologies appelé Protégé, et illustre son utilisation sur un modèle du domaine de l’immobilier provenant d’une étude pour le Service Public Fédéral Finance Belge. Les aspects méthodologiques sont également abordés en montrant qu’il est possible de transformer un modèle de données UML en ontologie pour le web sémantique. L’article illustre les possibilités de représentation des langages, mais ne fait qu’aborder les possibilités de raisonnement sur ces représentations. Celles-ci seront expliquées plus en détail et illustrées dans un article ultérieur.
La majorité du contenu du web actuellement produit est conçu pour être lu par des êtres humains, et pas pour être manipulé symboliquement par des programmes informatiques [Bern]. Certes un document HTML est manipulé par un programme pour que la mise en page soit correcte. Mais ce traitement se limite à interpréter les balises de présentation HTML présentes dans le document. Ces balises se limitent à décrire la manière dont le document doit être présenté. La signification du contenu du document reste implicite et le document ne peut donc pas être manipulé sur base de cette signification. De manière générale les ordinateurs n’ont aucune méthode systématique pour traiter le contenu d’un document web sur base de leur sémantique.
La capacité à manipuler le contenu des documents web sur base de leur sémantique permettrait à des programmes de réaliser des tâches qui doivent être actuellement réalisées à la main et ouvre la voie à de nouvelles possibilités d’automatisation. Le web sémantique va structurer le contenu sémantique des documents web et ainsi permettre à des programmes d’interpréter leur contenu et de raisonner dessus. Le web sémantique va créer un environnement où des programmes, que l’on appelle des agents logiciels, pourront exécuter des tâches complexes aux noms d’utilisateurs qui leur auront délégué ces tâches. Pour les accomplir les agents logiciels devront communiquer entre eux, et interpréter le contenu échangé de la même manière, c’est à dire en interprétant les termes décrivant le contenu de la même manière.
De nombreux langages pour le web sémantique ont ainsi été définis ces dernières années témoignant du rythme rapide d’évolution de ces langages. Des outils d’édition et de gestion de documents ont été développés afin de valider ces langages. A titre d’exemple, on peut citer comme langage XOL (XML based ontology exchange language) [XOL], Topic Maps (un standard ISO pour la description de représentations de connaissances) [Top], RDF/RDFS (Resource Description Framework et RDF Schema) [RDF], DAML+OIL (DARPA Agent Markup Language + Ontology Inference Layer) [DAML], et OWL (Web Ontology Language) [OWL]. Les trois derniers cités constituent ainsi une pile de langages web sémantique de plus en plus sophistiquée. OWL peut être utilisé pour représenter la signification des termes d’un vocabulaire et les relations entre ces termes. Cette représentation des termes et leurs relations est appelée une ontologie.
Protégé-2000 [Prot] est un éditeur qui permet de construire une ontologie pour un domaine donné, de définir des formulaires d’entrée de données, et d’acquérir des données à l’aide de ces formulaires sous forme d’instances de cette ontologie. Protégé est également une librairie Java qui peut être étendue pour créer de véritables applications à bases de connaissances en utilisant un moteur d’inférence pour raisonner et déduire de nouveaux faits par application de règles d’inférence aux instances de l’ontologie et à l’ontologie elle même (méta-raisonnement).
Dans le contexte du web sémantique des « plugin » pour les langages RDF, DAML+OIL et OWL ont été développés pour Protégé. Ces « plugin » permettent d’utiliser Protégé comme éditeur d’ontologies pour ces différents langages, de créer des instances et les sauver dans les formats respectifs.
Il est également possible de raisonner sur les ontologies en utilisant un moteur d’inférence général tel que JESS [JES], ou des outils d’inférence spécifiques au web sémantique basés sur des logiques de description [DL] tels que RACER [RAC]. Ces deux outils peuvent être facilement intégrés à Protégé. Les logiques de description permettent de définir les bases logiques des différents formalismes de représentation de la connaissance tant sur le plan de la représentation que sur le raisonnement. Dans les formalismes de représentation de la connaissance, il est souvent nécessaire de restreindre l’expressivité pour rendre certains types de raisonnement, tels que la classification automatique, faisable (« tractable »).
Afin d’illustrer la création d’ontologies avec Protégé, un modèle de donnée résultant d’une analyse réelle dans le domaine de l’immobilier pour le Service Public Fédéral (SPF) Finance [ACED, Mas] a été sélectionné et transformé en ontologie RDF Schéma, DAML+OIL et OWL à l’aide de Protégé-2000. Le modèle de donnée de cette étude était exprimé sous forme de diagrammes de classe UML [UML]. UML est la notation standard dans le monde de la modélisation orienté-objet. Dans ce contexte-ci UML a été utilisé pour construire un modèle du domaine qui correspondait à une abstraction des données contenues dans les banques de données sous jacentes du SPF Finance. La figure ci-dessous montre la taxonomie des « biens » (bien, bien meuble, bien immeuble, bien bâti et bien non bâti) où chaque rectangle représente une classe, et les lignes avec un triangle représentent la relation de généralisation entre classes. Chaque classe possède des attributs : par exemple la classe « bien immeuble » a comme attribut un « numéro cadastral ». Chaque « bien immeuble » a également une « adresse » : elle est représentée par une relation binaire entre la classe « bien immeuble » et la classe « adresse ».
Un modèle de classe UML peut être transformé en une ontologie pour le web sémantique si l’on se limite à un sous-ensemble d’UML qui est traduisible. Il existe des différences entre UML et OWL qui ne les rendent pas équivalents et donc pas complètement traduisibles de l’un vers l’autre [UMLSE]. La traduction sera illustrée sur le langage OWL et illustrée dans le domaine mentionné ci-dessus. La taxonomie de classes UML est transformée en taxonomie OWL : les classes UML sont traduites en classes OWL, les attributs de classes UML sont traduits en propriétés OWL, et les relations de généralisation UML sont traduites en relations de sous-classe OWL. Pour les relations binaires UML, il n’existe pas d’équivalent au niveau du langage OWL. Ce problème est typique des langages de représentation de la connaissance, et il existe deux grandes approches pour traduire les relations binaires : on peut les traduire soit comme propriété soit comme classe. Dans la première approche on peut utiliser la propriété « owl:InverseFunctionalProperty » et créer une propriété OWL pour chaque rôle UML de la relation dans chacune des classes OWL correspondant aux classes UML des rôles. Dans la seconde approche, on créé une classe OWL pour la relation UML et une propriété pour chacun des rôles de la relation UML.
La figure ci-dessous montre l’éditeur Protégé et le « plugin » OWL : à gauche on voit la hiérarchie des classes, au centre le nom des instances de la classe « bien bâti », et à droite les propriétés et les valeurs de l’instance de « bien bâti » « Maison1 ».
Le modèle OWL créé avec Protégé peut être sauvé dans un fichier en format OWL. Le fragment de fichier OWL ci-dessous montre que la classe « bien bâti » est une sous-classe de la classe « bien immeuble », et que la classe « bien immeuble » a la propriété « numéro cadastral » avec comme domaine les entiers (XMLSchema#int).
<owl:Class rdf:ID="BienBati">
<rdfs:subClassOf rdf:resource="#BienImmeuble"/>
</owl:Class>
<owl:DatatypeProperty rdf:ID="NumeroCadastral"
rdf:type="http://www.w3.org/2002/07/owl#FunctionalProperty">
<rdfs:domain rdf:resource="#BienImmeuble"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
</owl:DatatypeProperty>
Les instances des classes OWL sont également représentées dans le fichier OWL. Le fragment de fichier OWL ci-dessous montre que la classe « Maison1 » est une instance de la classe « bien bâti », et qu’elle possède des valeurs pour toutes les propriétés définies dans la classe « bien bâti ».
<owl:Class rdf:ID="Maison1"
j.1:directType="BienBati"
j.0:AnneeFinDeConstruction="1988"
j.0:NumeroCadastral="12345"
j.0:RevenuCadastral="150000"
j.0:DateDerniereModificationPhysique="1998"
j.0:SurfaceUtile="250"
j.0:ValeurConventionnelle="200000"
j.0:ValeurNormale="250000"
j.0:ValeurVenale="270000"
j.0:Imposable="true"
j.0:ChauffageCentral="true"
j.0:ParNature="true"
j.0:PossibiliteLogementsIndependants="true"
j.0:NombreEtages="2"
j.0:NombreGarages="2"
j.0:NombreSallesDeBains="2"
j.0:NombrePiecesHabitables="6"
j.0:SurfacePlancher="270"
j.0:SurfaceBatie="300"/>
<owl:Class>
Cet article a donné une introduction au web sémantique, mentionné différents langages pour le web sémantique, et présenté un éditeur d’ontologies disposant de « plugins » pour les langages RDF, DAML+OIL et OWL. On a ensuite montré sur un exemple provenant d’une analyse dans le domaine de l’immobilier pour le SPF Finance qu’il était possible de transformer un modèle de données UML en ontologie pour le web sémantique à l’aide de l’éditeur d’ontologies Protégé. Si une ontologie du domaine sous cette forme est reconnue par une ensemble d’administrations comme standard d’échanges de données dans le domaine de l’immobilier, alors elles peuvent s’en servir pour s’échanger des données sous forme de documents web sémantique [Mas]. Cette ontologie peut être utilisée entre administrations d’un même niveau de pouvoir ainsi qu’entre administrations de différents niveaux de pouvoir.
La représentation des connaissances avec OWL a été illustrée dans cet article, mais le raisonnement sur cette représentation à l’aide d’un moteur d’inférence ne l’a pas été. On montrera dans un article suivant qu’en se limitant à un sous-ensemble du langage OWL (OWL-DL), qu’un type de raisonnement particulier, la classification automatique, devient faisable (« tractable »). Ce type de raisonnement peut être utilisé pour construire des taxonomies automatiquement sur base des propriétés, et classer automatiquement des instances de classes sur base de leurs propriétés. On l’illustrera sur l’ontologie pour le domaine de l’immobilier et l’on montrera comment cela peut être réalisé avec Protégé, le « plugin » OWL, et l’outil d’inférence RACER [RAC].