Intégration de données
Ontologies
Introduction
La notion d’ontologie a été exploitée dans des domaines variés tels que le web sémantique, le traitement de la langue naturelle, le web sémantique, la recherche d’information, l’intégration des données, les web services…etc. Une ontologie permet de représenter explicitement la sémantique des données en réduisant les hétérogénéités qui peuvent apparaitre lors de l’intégration. Ainsi, Elles offrent un moyen pour décrire de manière formelle les connaissances d’un domaine particulier, en définissant des concepts et des relations entre ces concepts.L’ontologie a été définie tout d’abord dans le domaine de la philosophie où on s’intéresse à l’existence, c’est-à-dire les éléments qui peuvent exister, de la nature des objets, des propriétés, des évènements, des processus et des relations dans chaque domaine de réalité. En grec, le mot « ontologie » veut dire « la science de l’être », (onto : l’être ou l’existent et logia: science ou univers).La plupart des approches d’intégration actuelles reposent sur l’utilisation des ontologies offrant une description structurelle et sémantique des données, ces approches varient dans la manière d’utiliser les ontologies. Plusieurs formes et plusieurs langages existent pour représenter les ontologies ainsi de multiples ontologies ont été développées et se développent encore dans des domaines variés.Dans ce chapitre, nous définissons la notion d’ontologie, les différents composants d’une ontologie, les types d’ontologies, les langages de description qui permettent de construire les ontologies, la formalisation des ontologies et enfin nous donnons quelques exemples d’ontologies dans le domaine médical.
Définition d’ontologie
La notion d’ontologie existe depuis longtemps, elle a été définie tout d’abord dans le domaine de la philosophie où on s’intéresse à l’existence, c’est-à-dire les éléments qui peuvent exister, de la nature des objets, des propriétés, des évènements, des processus et des relations dans chaque domaine de réalité. En grec, le mot « ontologie » veut dire « la science de l’être », (onto : l’être ou l’existent et logia: science ou univers).Le terme « ontologie » est apparu pour la première fois selon le dictionnaire anglais de Bailey OED (Oxford English Dictionary), en 1721.Des chercheurs en informatique, plus spécifiquement en intelligence artificielle se sont inspirés de cette notion d’ontologie pour la représentation des connaissances, plusieurs définitions ont été données, la plus célèbre est celle de Gruber qui énonce qu’ « une ontologie est une spécification explicite d’une conceptualisation d’un domaine de connaissance « . où le terme « conceptualisation » réfère à un modèle abstrait d’un certain phénomène de la réalité et qui permet d’identifier de manière structurée les concepts pertinents de ce phénomène. L’expression « spécification explicite» signifie que les concepts utilisés et les contraintes sur leur usage sont définis d’une manière explicite.
L’ontologie est utilisée, dans le domaine de l’Ingénierie des Connaissances (IC) et l’Intelligence Artificielle (IA) pour formaliser les connaissances. Dans ce contexte, tout ce qui « existe » peut être « formalisé », par l’utilisation de vocabulaire.
Composants d’une ontologie
Une ontologie est constituée d’un ensemble de composants de base qui sont : les concepts, les relations, les fonctions, les axiomes et les instances.
Les concepts
Appelés aussi termes ou classes, ils constituent les éléments de base au sein d’une ontologie et correspondent à l’ensemble des individus à représenter. Il représente des objets réels du monde réel, une idée…
Les relations
Les relations représentent les interactions qui peuvent exister entre les concepts présents dans l’ontologie considérée. De manière formelle, ces relations sont définies comme un sous ensemble d’un produit cartésien de n ensembles, c’est à dire R : C1 x C2x … x Cn . Ces relations permettent de capturer, la structuration ainsi que l’interaction entre les concepts, permettant de représenter une grande partie de la sémantique de l’ontologie.Ces relations incluent les relations de spécialisation-généralisation (sous classes), relations d’agrégation ou de composition (partie de), relations d’association et d’instanciation.
Les fonctions
Les fonctions sont des cas particuliers des relations dans lesquelles le nième élément de la relation est défini en fonction des n-1 éléments précédents.De manière formelle, les fonctions sont définies comme suit : F : C1 x C2 … x Cn-1 → Cn.
Les axiomes
Ce sont des expressions qui sont toujours vrais, permettant de combiner des concepts, des relations et des fonctions afin de définir des règles d’inférences
Les entités ou individus
Ce sont des extensions des concepts de l’ontologie. Ils représentent les éléments qui véhiculent les connaissances du domaine considéré.
Classification des ontologies
Plusieurs classifications ont été données aux ontologies, parmi lesquelles celle de GUARINO [8][87][88] qui se base sur le niveau de granularité, elles sont classifiées en quatre classes principales.
Classification de guarino
Les ontologies supérieures
Appelées aussi ontologies génériques, Upper ou encore Top-level ontologies [9]. Ce sont des ontologies génériques applicables dans des domaines variés. Leur but est l’étude des catégories des choses qui existent dans le monde comme les concepts de plus haut niveau d’abstraction et de généralité, par exemple : les entités, les événements, les états, les processus, les actions, le temps, l’espace, les relations, les propriétés, etc. et qui sont décrits indépendamment d’un domaine particulier. Parmi les d’ontologies de haut niveau : l’ontologie DOLCE (Descriptive Ontology for Linguistic and Cognitive Engineering) [16], SOWA CYC [89].
Les ontologies de domaine
Ce sont des ontologies construites pour représenter les connaissances d’un domaine bien particulier. C’est-à-dire que le vocabulaire décrit par une ontologie de domaine est lié à un domaine comme la médecine, le commerce… Les ontologies de domaine constituent des méta-descriptions de la représentation de connaissances du domaine.La différence qui existe entre les ontologies de domaine et les ontologies de haut niveau est que les concepts dans les ontologies de domaine sont généralement définis comme des spécialisations des concepts qui sont déjà définis dans les ontologies de haut niveau (Figure 2.1) Plusieurs ontologies de domaine existent, parmi lesquelles l’ontologie MENELAS dans le domaine médical, ENGMATH pour les mathématiques, PhysSys pour le domaine de la Physique , etc.
Ontologies de tâches
“Task ontologies can be seen as attributing context-specific semantics to domain knowledge elements” [8], ces ontologies sont utilisées pour gérer des tâches spécifiques à un domaine afin de résoudre les problèmes du système, le vocabulaire qu’elles décrivent est relié à une tâche générique telle que les tâches de classification, etc et cela à travers la spécialisation des termes dans les ontologies de haut niveau. Les ontologies de tâche permettent de fournir un vocabulaire systématique des termes utilisés pour résoudre les problèmes liés aux tâches [13]
Ontologies d’application
Elles contiennent toutes les définitions nécessaires pour modéliser la connaissance requise pour une application particulière [10]. Ces ontologies sont un mélange des concepts qui sont définis au niveau des ontologies de domaine et des ontologies génériques.
Classification de Pierra
Une autre classification des ontologies est celle de Pierra qui classifie les ontologies en ontologies linguistiques et ontologies conceptuelles, le modèle en oignon (Figure 2.2) permet de représenter cette classification.
Ontologies linguistiques
Les ontologies linguistiques ont pour but la représentation de la signification des termes d’un domaine particulier dans un langage précis, permettant de définir le sens des mots et les relations linguistiques (comme les relations de la synonymie, hyponymie…) entre ces mots.
Ontologies conceptuelles
Elles permettent de définir de manière formelle les concepts d’un domaine et les relations entre les concepts, elles-mêmes sont catégorisées en deux types : Ontologies conceptuelles canoniques, Ontologies conceptuelles non-canoniques.
Ontologies conceptuelles canoniques(OCC)
Elles contiennent des concepts qui sont définis de façon unique, et ne contiennent pas de redondances dans leur définition en incluant seulement les conditions nécessaires. Ces ontologies ne contiennent que des concepts qui sont appelés primitifs. Elles incluent des descriptions complexes et précises des concepts. Par contre, elles n’incluent pas d’opérateurs permettant de définir des équivalences entre les concepts.Les ontologies de type OCC sont exploitées en général dans les domaines de l’échange de données et des bases de données. Un exemple d’ontologie OCC est l’ontologie IEC [101] portant sur le domaine du commerce électronique.
Ontologies conceptuelles non-canoniques(OCNC)
En plus des concepts primitifs, ces ontologies contiennent aussi des concepts définis. Des constructeurs sont utilisés pour exprimer l’équivalence entre les concepts. Ces constructeurs sont très utiles pour définir des mappings entre déférentes ontologies. Ce type d’ontologies est utilisé généralement comme schéma global de requêtes. La redondance qu’elles introduisent permet d’augmenter le nombre de concepts en termes desquels il est possible d’exprimer une requête donnée.OWL est un exemple de modèle d’ontologie qui définit des ontologies conceptuelles non-canoniques.
Langages de représentation des ontologies
Plusieurs langages ont été développés pour la représentation des ontologies, les premiers datent des années 90, ils se basent sur la logique du premier ordre comme le langage LOOM et KIF [90]. Ensuite la logique du premier ordre a été combinée avec la notion des frames par exemple Ontolingua et OCML, puis d’autres langages ont été créés comme le langage SHOE par la suite les langages qui se basent sur le langage XML sont apparus comme XOL, RDF, RDFS, OIL, DAML-OWL et OWL, dans ce qui suit nous présentons une brève description des langages les plus connus.
RDF
Resource Description Framework est un langage qui représente un modèle conceptuel, abstrait et formel pour la représentation des ressources et les relations entre elles. Il est fondé sur un modèle de graphe, permettant de décrire les éléments de manière simple et sans ambiguïté selon un mécanisme basé sur des déclarations RDF . L’objectif initial de RDF est une bonne représentation et une meilleure exploitation des métadonnées.Les déclarations RDF sont des triplets (ressource, attribut, valeur) qui peuvent être traitées par la machine pour permettre à celle-ci de le faire tout en comprenant la signification de ces triplets. Chaque élément du triplet est identifié par un URI (Uniform Resource identifier). Cette identification se fait de manière unique à l’aide d’un nom sans avoir à localiser la ressource. Les triplets sont interprétables comme sujet-prédicat-objet où le prédicat exprime la propriété, RDF est un langage qui permet de définir une ontologie de manière très simple, son inconvénient est qu’il ne supporte pas la vérification de la cohérence des données (vérification que le champ « date de naissance» est vraiment une date par exemple).
RDF Schéma
RDFS (RDF Schema) est une évolution de RDF. Ce langage est simple, il ajoute à RDF la possibilité de définir des hiérarchies de classes et des propriétés et permet l’implémentation du modèle RDF pour la définition des ontologies avec une approche orientée objet.Trois notions principales permettant la définition des primitives : la ressource (rdfs:Resource), la classe (rdfs:Class) et la propriété. L’avantage de RDFS est pouvoir créer une hiérarchie de classes et de propriétés, grâce aux notions de subClassOf et subPropertyOf. Et donc on peut par la suite instancier des classes en utilisant le rdf:typeLe langage RDFS offre en plus du contrôle la terminologie et la structure des descriptions RDF, la possibilité de raisonner sur liens de types « est-un » (is a) qui existent entre les concepts et les propriétés. Ces langages sont les langages de base du Web Sémantique. Et c’est dans ce contexte que trois autres langages ont été développés comme des extensions de RDF(S) qui sont :
OIL
Ontology Interchange Language and Ontology Inference Layer, développé au début des années 2000 dans le cadre du projet européen On-To-Knowledge. Il étend les langages basés sur des « frames ». Sa sémantique formelle est basée sur les logiques de description.
DAML+OIL
DARPA Agent Markup Language, Il a été créé après le langage OIL entre 2000 et 2001, par la DARPA (Defense Advanced Research Projects Agency) dans le contexte du projet DAML sur la spécification précédente de DALM-ONT, qui a été construit en fin 2000, et sur OIL. DAML+OIL est basés sur les logiques de description [18] [12]. DAML est une combinaison de l’XML et du RDF.
La dernière version de DAML a été combinée avec OIL pour construire un nouveau langage (DAML+OIL) et qui permet d’exprimer les axiomes comme l’équivalence.
OWL
OWL (Ontology Web Language) est un langage qui a été créé par le W3C en 2004, il hérite du langage DAML+OIL. C’est le langage le plus expressif des autres langages. Il est dédié à définir les classes et les types de propriétés. Il repose sur la syntaxe des triplets RDF et réutilise certaines des constructions RDFS.
C’est un langage qui permet de fournir des mécanismes pour créer tous les composants de l’ontologie c’est-à-dire les classes, les instances, les propriétés et les axiomes. Comme dans le langage RDFS, les classes peuvent avoir des sous-classes, fournissant ainsi un mécanisme pour le raisonnement et l’héritage des propriétés. Néanmoins, en OWL, on distingue :
les propriétés des objets (object property), ce sont les relations, qui relient des instances de classes à d’autres instances de classes. C’est l’équivalent des triplets RDF dont l’objet est une ressource.
les propriétés des types de données (datatype property), ce sont les attributs, qui relient des instances de classes à des valeurs de types de données (nombres, chaînes de caractères,…). C’est l’équivalent des triplets RDF dont l’objet est une valeur littérale.
Les axiomes permettent de fournir de l’information au sujet des concepts et des relations, en spécifiant l’équivalence entre deux classes par exemple.
OWL permet d’annoter les données et de faire certains raisonnements sur les données et d’assurer que ces raisonnements qui peuvent être réalisés sur les ontologies soient décidables.
OWL se compose de trois sous-langages qui différent selon le niveau d’expressivité, qui sont : OWL Lite, OWL DL et OWL Full. [96], OWL DL est défini comme une extension d’OWL Lite, et OWL Full comme une extension d’OWL DL.
Le langage OWL Lite peut être vu comme une extension du langage RDFS, mais avec moins de fonctionnalités. Il contient un ensemble réduit de constructeurs en fournissant l’essentiel pour la construction d’une hiérarchie de classes. C’est le sous langage d’OWL le plus simple. Son principe est de permettre une modélisation d’ontologies moins compliquées, afin de faciliter l’implémentation des raisonneurs corrects et complets.
Le langage OWL DL contient des constructeurs supplémentaires, mais avec des contraintes bien particulières, il ne peut être utilisé qu’avec certaines restrictions. il est plus complexe que OWL Lite et est fondé sur la logique de description d’où son nom, « OWL Description Logics ». Malgré cette complexité par rapport à OWL Lite, il garantit la complétude des raisonnements et leur décidabilité.
Le langage OWL Full est le plus complexe des sous-langages d’OWL, il dispose de tous les constructeurs du langage OWL permettant ainsi une interprétation plus large. Il permet de traiter les classes comme des individus. OWL Full est utile typiquement pour les gens qui veulent combiner l’expressivité du langage OWL avec la flexibilité et méta-modélisation des caractéristiques de RDF afin d’avoir un haut niveau de capacité de description, néanmoins, son utilisation ne garantit pas toujours la complétude du raisonnement.
Représentation formelle des ontologies
En plus des langages de représentation des ontologies, une ontologie peut être représentée de manière formelle, plusieurs formalisations ont été proposée dans la littérature, nous considérons celle proposée par Pierra[6], où une ontologie est représentée comme un quadruplet :
O :< C,P,Sub,Applic > Où:
– C : est l’ensemble des classes utilisées pour décrire les concepts de l’ontologie, un identifiant universel unique est associée pour chaque classe.
– P : est l’ensemble des propriétés utilisées afin de décrire les instances de l’ensemble des classes C. Chaque propriété est associée à un identifiant universel globalement unique.
– Sub : C→ 2c est une fonction de subsomption qui permet d’associer à chaque classe c de l’ontologie, ses classes subsumées directes.
– Applic : C→ 2P est une fonction permettant d’associer à chaque classe de l’ontologie les propriétés qui sont applicables pour chaque instance de cette classe. Ces propriétés sont héritées à travers la relation is-a. [3] [5]
Exemples d’ontologies dans le domaine (bio) médical
Dans le domaine médical plusieurs ontologies ont été créées, nous citons dans ce qui suit quelques une de ces ontologies :
L’ontologie OpenGalen
Le projet GALEN [85] (Generalised Architecture for Languages, Encyclopaedias and Nomenclatures in Medicine) est un projet fondé par une commission européenne en 1991[100] pour le développement de systèmes multilingues de terminologies médicales permettant de décrire les ontologies dans tous les domaines médicaux. .
OpenGalen est construit autour d’un modèle sémantique puissant de terminologie clinique qui est le CORE (COncept REference model), et utilise un langage de représentation appelé GRAIL (GALEN Représentation And Integration Language) dont le noyau est basé sur les logiques de description. Ce modèle consiste en une hiérarchie de subsomption d’entités élémentaires et un ensemble de déclarations liant ces entités.
La terminologie de Galen intègre trois modules :
• Concept Module : qui implémente le formalism GRAIL et permet de gérer la représentation interne des concepts,
• Multilingual Module : il permet de gérer les mapping des concepts au langage naturel
• Code Conversion Module : il gère les mapping des concepts avec le codage existant et les sxhémas de classification.
En 1999 l’ontologie OpenGalen a été créée afin de permettre l’accès à ses ressources sous forme d’ontologies accessibles en open source.
Une ontologie Galen est composée d’une hiérarchie de catégories élémentaires, une hiérarchie de liens sémantiques appelés attributs, rôles ou relations permettant d’établir des relations entre les catégories.
Les concepts peuvent êtres simples ou composés. Les concepts composés sont une combinaison de concepts simples. [104] [105]
Gene ontology
Le but de cette ontologie est de produire un vocabulaire structuré, précis, commun et contrôlé pour décrire les rôles des produits génétiques dans un organisme. Elle a été construite à partir de trois bases de données sur des organismes modèles : Flybase1 (Drosophila genome database) ; SGD2 (Saccharomyces Genome Database), et MGD/GXD3 (Mouse Genome Informatics databases) [102]
GO contient trois sous-ontologies qui décrivent la fonction moléculaire, les composants cellulaires et le processus biologique des produits génétiques d’autres bases de données biologiques. Sa structure est simple : les termes sont reliés par deux types de relations IsA ou PartOf, créant ainsi une structure d’arbre. [106]
|
Table des matières
Remerciements
Résumé
Abstract
Table des matières
Table des figures
Liste des tableaux
Chapitre 1 : Introduction générale
1.1. Contexte
1.2. Problématique
1.3. Objectifs et contributions
1.4. Organisation de la thèse
1.5. Production scientifique
Partie I : Etat de l’art
Chapitre 2 : Ontologies
2.1. Introduction
2.2. Définition d’ontologie
2.3. Composants d’une ontologie
2.3.1. Les concepts
2.3.2. Les relations
2.3.3. Les fonctions
2.3.4. Les axiomes
2.3.5. Les entités ou individus
2.4. Classification des ontologies
2.4.1. Classification de guarino
2.4.1.1. Les ontologies supérieures
2.4.1.2. Les ontologies de domaine
2.4.1.3. Ontologies de tâches
2.4.1.4. Ontologies d’application
2.4.2. Classification de Pierra
2.4.2.1. Ontologies linguistiques
2.4.2.2. Ontologies conceptuelles
a. Ontologies conceptuelles canoniques(OCC)
b. Ontologies conceptuelles non-canoniques(OCNC)
2.5. Langages de représentation des ontologies
2.5.1. RDF
2.5.2. RDF Schéma
2.5.3. OIL
2.5.4. DAML+OIL
2.5.5. OWL
2.6. Représentation formelle des ontologies
2.7. Exemples d’ontologies dans le domaine (bio) médical
2.7.1. L’ontologie OpenGalen
2.7.2. Gene ontology
2.7.3. UMLS
2.7.4. FMA
2.7.5. OntoMénélas
2.7.6. SNOMED
2.8. Conclusion
Chapitre 3 : Intégration de données
3.1. Introduction
3.2. Hétérogénéité des données
3.1 Approches d’intégration
3.3.1. Approche entrepôt de données
3.3.2. Approche médiation
3.3.2.1. Types de mappings
– Global-As-View (GAV),
– Local-As-View (LAV)
– Global-Local-as-View (GLAV)
– Both as view (BAV)
3.3.2.2. Exemples de projets d’intégration de données par médiation
– Le projet TSIMMIS
– Le système MOMIS (Mediator Environment for Multiple Information Sources)
– Le système HERMES
– Information manifold
– Infomaster
3.3.3. Intégration de données à base d’ontologies
3.3.3.1. Architectures d’intégration à base d’ontologies
3.3.3.2. Bases de données à base ontologique
3.3.3.2.1. Représentation des données à base ontologique
Représentation binaire
Représentation verticale
Représentation horizontale
3.3.3.2.2. Architectures des bases de données à base ontologique
Architecture de type I (deux quarts)
Architecture de type II (trois quarts)
Architecture de type III (quatre quarts)
3.3.3.2.3. Le modèle OntoDB
3.3.3.2.4. Le langage OntoQL
3.4. Conclusion
Chapitre 4 : Services Web Sémantiques
4.1. Introduction
4.2. Architecture Orientée Services(AOS)
4.3. Services web
6.2.1. Principaux standards des services web
i. Langage XML (eXtensible Markup Language) [64]
ii. WSDL
iii. SOAP (Simple Object Access Protocol)
iv. UDDI
6.2.2. Services web sémantiques
4.3.2.1. OWL-S
4.3.2.2. WSMO
4.3.2.3. WSDL-S
6.2.3. Services web pour l’intégration de données
4.4. Conclusion
Partie II : Contributions
Chapitre 5 : Architecture de médiation
5.1. Introduction
5.2. Méta-modèle de service web
5.3. Méta-modèle de l’ontologie
5.4. Connexion du méta-modèle de service web avec le méta-modèle de l’ontologie
5.5. Extension du méta-modèle en considérant les opérateurs flous
5.6. UDDI sémantique
5.7. Architecture globale de médiation
5.8. Conclusion
Chapitre 6 : Implémentation de l’architecture proposée
6.1. Introduction
6.2. Implémentation
– Exemple de motivation
6.3. Langages et outils utilisés
6.4. Conclusion
Conclusion générale
Annexe : Exemple d’un document WSDL
Références Bibliographiques
Glossaire
Télécharger le rapport complet