Notion d’ontologie
Pendant la dernière décennie, nous avons constaté une inspiration très intelligente d’une notion philosophique très ancienne vers le domaine d’informatique et d’intelligence Artificielle. Cette notion a rapidement constitué une voie de recherche très importante dans plusieurs communautés et surtout celles basées sur l’ingénierie et la gestion des connaissances ainsi que la réutilisation et l’ingénierie des systèmes. Il s’agit bien de la notion d’ontologie.
En informatique et en particulier en Intelligence Artificielle et Sciences cognitives, la notion d’ontologie est apparue pour la première fois vers les années 90, où John McCarthy a fait une correspondance entre les concepts de base de l’Ontologie (philosophique) et l’activité de construire des théories logiques des systèmes de l’IA . Puis, plusieurs acceptions et points de vue ont été proposés par les différents auteurs du domaine. Nous les présentons dans un ordre chronologique dans la section suivante: D’abord, Neeches et al. ont défini l’ontologie en 1991 par: « An ontology defines the basic terms and relations to define extensions of the vocabulary ». i.e. « Une ontologie définit les termes de base et les relations pour définir des extensions d’un vocabulaire ». En 1993, Thomson Gruber a suggéré la définition la plus succincte dans la littérature: « An ontology is an explicit specification of a conceptualization », i.e. «Une ontologie est une spécification explicite d’une conceptualisation ». Puis, Guarino l’avait définie en 1995 par: «Une ontologie est une théorie logique qui permet une spécification explicite et partielle d’une conceptualisation» . Ensuite, l’ontologie a été connue selon Borst en 1997 comme étant: « An ontology is a formal specification of a shared conceptualization ». i.e. « Une ontologie est une spécification formelle d’une conceptualisation partagée », et lors de cette même période elle a été définie par Swartout comme étant: “une ontologie est un ensemble de termes structurés de façon hiérarchique, conçu afin de décrire un domaine et qui peut servir de charpente à une base de connaissances » . Alors qu’en 1998, elle a été décrie par Studer à travers la suggestion: “Une ontologie peut prendre différentes formes, mais elle inclura nécessairement un vocabulaire de termes et une spécification de leur signification. Cette dernière inclut des définitions et une indication de la façon dont les classes sont reliées entre elles ».
Après cela, Gomez-Perez l’avait définie en 1999 par: « Une ontologie apporte les moyens pour décrire explicitement la conceptualisation sous-jacente aux connaissances représentées dans une base de connaissances ». .
En plus, Brodeur a suggéré en 2004 qu’ « Elle peut prendre la forme d’un thésaurus, réseau sémantique, taxonomie, modèle conceptuel, répertoire de données, etc. », . Enfin, une synthèse de ces définitions donnée par Amrouch et Khadir, en 2009 déclare qu’: « Une ontologie est une structure formelle, qui peut être graphique, où les nœuds représentent les classes, et les arcs représentent les relations, modélisant ainsi explicitement les connaissances d’un domaine particulier de manière à faciliter la recherche, l’extraction, l’intégration et le partage d’informations entre les différents systèmes ou individus au sein de ce domaine ».
Composants d’une ontologie
Tels que tous formalismes de représentation de connaissances, les ontologies se composent d’un certain nombre d’unités constructives pour décrire et représenter les connaissances de manière formelle. Ces unités ontologiques constructives sont spécifiées par Gomez-Perez dans (Gómez-Pérez, 1999a), basé sur la définition de Gruber en 1993. Elles sont décrites par: des classes, des relations, des fonctions, des axiomes et des instances.
Classes : Elles sont également connues comme étant les concepts de l’ontologie. Elles représentent des objets physiques et/ou logiques sous une forme hiérarchique. Les classes d’une ontologie sont extraites après la conceptualisation du domaine ciblé en fonction des objectifs à atteindre et de l’application qui va utiliser l’ontologie. « A concept (a class) can be anything about which something is said and, therefore, could also be the description of a task, function, action, strategy, reasoning process, etc.» i.e. «Un concept (une classe) est n’importe quelle chose au sujet de laquelle on peut dire quelque chose et, ainsi pourrait aussi être la description d’une tâche, d’une fonction, d’une action, d’une stratégie, d’un raisonnement, etc. ». (Gómez-Pérez, 1999a).
Relations : Elles sont formellement définies comme étant un sous ensemble du produit de n ensemble . Les relations représentent alors, une grande partie de la sémantique de l’ontologie à travers les étiquetages (Nom de relation) attribués à ces associations tels que la subsomption (spécification ou généralisation, is-a), l’instanciation (instance-of), la composition (part-of), l’affectation ou l’attribution (associated-to), etc.
Ontologies dans les systèmes d’informations
Les ontologies sont développées et utilisées pour faciliter, la mise en œuvre et l’exploitation de certaines techniques et mécanismes nécessaires pour la gestion des connaissances et l’échange d’informations dans les différents systèmes d’informations et/ou applications logicielles. Dans (Uschold & Gruninger, 1996), les auteurs affirment que les ontologies sont développées pour offrir une aide dans au moins trois domaines d’application à savoir la communication entre les êtres humains, l’interopérabilité entre les Systèmes d’Informations hétérogènes, ainsi que la réutilisabilité et le partage d’informations. Nous pouvons donc résumer le rôle des ontologies dans le domaine des systèmes d’informations comme suit: La communication : Une ontologie est un modèle standard qui décrit et spécifie explicitement son domaine, constituant ainsi un espace partageable entre les (sous) systèmes et/ou individus, où ils partagent leurs points de vue et compréhensions perspectives, éliminant ainsi tout risque de confusion ou d’incompréhension, et favorisant tout effort de collaboration et de partenariat. L’interopérabilité entre les systèmes d’informations hétérogènes: Pour assurer une meilleure interopérabilité entre des systèmes d’informations hétérogènes, une ontologie permet de modéliser les connaissances (les classes ainsi que les règles qui les régissent) qu’ils (les systèmes d’informations) doivent partager. En d’autres termes, en jouant le rôle d’un format d’échange, où elle répertorie toutes les classes qui doivent être échangées par les applications, l’ontologie facilite la communication, la collaboration ainsi que la coopération entre différent systèmes d’informations. Cette coopération est principalement, dépendante de la flexibilité de communication entre les différents systèmes, car leurs actions et réactions résultent des messages envoyés et reçus. Soutenir la spécification et la conceptualisation de systèmes: Une ontologie est un concept réutilisable et/ou partageable par plusieurs (sous) systèmes, ce qui permet de faciliter l’acquisition d’informations, l’analyse de données ainsi que la spécification des besoins. En plus, sa structuration plus lisible et compréhensible permet de faciliter la structuration de la documentation d’un logiciel, ce qui permet d’éviter tout risque d’ambiguïté ou de confusion lors de la spécification des besoins. Finalement, elle soutient l’automatisation du processus de vérification de cohérence réduisant ainsi les coûts de maintenance.
Ontologies dans le Web sémantique
Avec l’apparition du fameux web sémantique, les ontologies ont joué un rôle technologique clé pour représenter et stocker les informations à travers des modèles qui préservent les sémantiques adressées par les domaines des applications porteuses.
Ceci facilite d’une part, l’indexation et la recherche d’information sur le web sémantique et améliore considérablement la qualité des résultats obtenus, à travers deux points majeurs:
Une ontologie permet à l’utilisateur d’utiliser un autre terme que celui présent dans les documents. Une ontologie permet au système de recherche d’information d’aider l’utilisateur à reformuler ses requêtes sur la base d’une proximité sémantique.
D’autre part, elle permet de faire des traitements automatiques à des modules logiciels au sein du Web sémantique, que ce soit pour faire interagir et interopérer des machines entre elles ou faire interagir des machines avec des humains.
D’un autre côté, grâce au Web sémantique, l’ontologie a trouvé un jeu de formalismes standards à l’échelle mondiale, et s’intègre dans de plus en plus d’applications Web. Cela se fait au profit des logiciels qui, à travers les ontologies et les descriptions qu’elles permettent, peuvent proposer de nouvelles fonctionnalités pour en améliorer les effets.
Méthodologies de construction d’ontologies
Selon le type de construction qu’il va adopter (construire une ontologie à partir de zéro, ou construire une ontologie par intégration ou utilisation des ontologies préalablement existantes tels que la fusion ou l’alignement), le concepteur peut suivre une des méthodologies de construction d’ontologies, les plus connues:
La méthodologie Entreprise : Elle s’est inspirée des constructions modélisant une entreprise. Elle comprend l’identification de l’objectif de l’ontologie, sa construction, son évaluation, et finalement sa documentation. Lors du processus de construction, les auteurs proposent de capturer les connaissances, les coder, et finalement intégrer si nécessaire des ontologies préexistantes dans l’ontologie courante. Les trois stratégies suivantes sont proposées par les auteurs pour identifier les classes :
Une stratégie descendante (top down strategy) où les classes les plus générales sont identifiées puis sont spécialisées,
Une stratégie ascendante (down top strategy) où les classes les plus spécifiques sont identifiées puis sont généralisées, Une stratégie mixte (midle out strategy), où les classes les plus importantes sont identifiées puis sont généralisées et/ou spécialisées. Cette méthodologie est indépendante du système qui l’exploite et son processus de construction d’ontologie est indépendant de l’objectif de l’ontologie. La méthodologie TOVE : Elle s’est inspirée du développement des SBC utilisant la logique du premier ordre. Elle comprend: L’identification des principaux scénarios (les applications de l’ontologie), L’identification des questions de compétence (que le système est censé pouvoir répondre) et alors identifier les classes et les axiomes de l’ontologie en utilisant une stratégie mixte (midle out).
Dans cette méthodologie qui est semi dépendante du système qui l’exploite, une description informelle des spécifications de l’ontologie sont formalisés (logique de premier ordre), donc elle peut être utilisée comme un guide de transformation de scénarios informels en modèles formels.
Table des matières
1. Introduction générale
1.1. Contexte et motivations
1.2. Description du problème de la fusion d’ontologies
Chapitre 1 . Concepts généraux sur les ontologies
1. Introduction
2. Notion d’ontologie
3. Composants d’une ontologie
3.1. Classes
3.2. Relations
3.3. Fonctions
3.4. Axiomes
3.5. Instances
4. Domaines d’applications
4.1. Ontologies dans les systèmes d’informations
4.2. Ontologies dans le Web sémantique
5. Classification des ontologies
5.1. Classification selon l’objet de conceptualisation
5.2. Classification selon le niveau de granularité
5.3. Classification selon le niveau de formalisme de représentation
5.4. Classification selon le poids de l’ontologie
6. Ontologies linguistiques Vs Ontologies formelles
7. L’ingénierie ontologique
7.1. Les principes de construction d’ontologies
7.2. Méthodologies de construction d’ontologies
7.3. Le processus de construction d’ontologies
7.4. Cycle de vie d’une ontologie
8. Les erreurs de construction d’ontologies
8.1. Les erreurs d’inconsistance
8.2. Les erreurs d’incomplétude
8.3. Les erreurs de redondances
9. L’évaluation d’une ontologie
9.1. La vérification
9.2. La validation
10. Langages et éditeurs d’ontologies
10.1. Les langages de représentation d’ontologies
10.2. Les éditeurs d’ingénierie ontologique
11. La médiation d’ontologies
11.1. L’Alignement d’ontologies
11.2. Les mappings entre ontologies
11.3. La fusion d’ontologies
12. Autres opérations de réutilisation d’ontologies
13. Conclusion
Chapitre 2 . Fusion d’ontologies – État de l’art –
1. Introduction
2. Le processus de fusion d’ontologies
2.1. Définition
2.2. Les étapes d’un processus de fusion d’ontologies
2.3. Caractéristiques d’un processus de fusion d’ontologies
2.4. Problèmes liés à la fusion d’ontologies
3. Techniques de fusion d’ontologies
3.1. Technique « Bottom-Up »
3.2. Technique « Top-Down »
3.3. Technique « Middle-Out »
4. Correspondances entre ontologies
4.1. Définition
4.2. Techniques de découverte de correspondances
4.3 Stratégies de combinaison de techniques
4.4. Exploitation des correspondances
5. Évaluation d’un processus de fusion d’ontologies
5.1 Critères d’évaluation
5.2 Processus de fusion Vs processus de construction d’ontologie
6. Applications de la fusion d’ontologies
6.1. Fusion d’ontologies approximatives pour le web sémantique
6.2. Fusion des ontologies de maintenance de logiciels (Software)
6.3. Fusion d’ontologies dans une optique PLM
6.4. Fusion d’ontologies linguistiques, globale et spécialisée
7. Travaux connexes
8. Conclusion
Chapitre 3 . Arbres de décision
1. Introduction
2. Concepts de base
2.1. Définition
2.2. Principe
2.3. Représentation formelle
2.4. Traduction de la position des nœuds
2.5. Extraction de règles
2.6. Représentation textuelle
2.7. Avantages
2.8. Inconvénients
3. Apprentissage par arbres de décision
3.1. Le choix d’un attribut pour partitionner
3.2. La stratégie de partitionnement
3.3. Le critère d’arrêt
3.4. La création d’une feuille
3.5. Exemple d’application
4. Élagage des arbres de décision
4.1. Le pré-élagage
4.2. Le post-élagage
5. Arbres de décision flous
6. Systèmes fondés sur les arbres de décision
7. Conclusion
Chapitre 4 . Conception du Framework AOM-FOM
1. Introduction
2. Le système de fusion d’ontologies AOM-FOM
2.1. Description du système de fusion d’ontologies AOM-FOM
2.2. Le processus de fusion d’ontologies AOM-FOM
3. Comparaison conceptuelle d’AOM-FOM avec d’autres algorithmes de fusion
4. Conclusion
Chapitre 5 . Implémentation du système AOM-FOM
1. Introduction
2. Partie I : Implémentation du système AOM-FOM
2.1. Les différentes APIs utilisées pour l’implémentation d’AOM-FOM
2.2. Description des interfaces de AOM-FOM
2.3. Stratégies d’optimisation des ressources
3. Partie II : Evaluation du système AOM-FOM
3.1. Evaluation des résultats obtenus par le système AOM-FOM
3.2. Fusion de diverses ontologies avec le framwork AOM-FOM
4. Conclusion
Conclusions et perspectives
Bibliographie