• Aucun résultat trouvé

Gestion et comparaison des versions de l’ontologie

4 Évolution de l’ontologie

4.3 Résolution des changements de l’ontologie

4.3.4 Gestion et comparaison des versions de l’ontologie

Dans l’état de l’art, nous avons distingué entre l’évolution de l’ontologie et la gestion des versions de l’ontologie (versioning). La différence principale est : l’évolution de l’ontologie facilite la modification d’une ontologie en préservant son état de consistance tandis que la gestion des versions de l’ontologie permet la manipulation des changements de l’ontologie en créant et en gérant ses différentes versions. Un aspect important d’une méthodologie de gestion de changement est la capacité de comparer des versions des ontologies et de souligner les différences au niveau structurel. La comparaison doit trouver les changements effectués entre deux versions de l’ontologie même si ceux-ci se sont produits d'une manière non contrôlée ou dans un ordre inconnu.

Dans notre système de gestion de l’évolution CoSWEM, une fonction de comparaison des différences entre deux versions de l’ontologie est implémentée. Cette fonction a l’avantage de détecter les concepts ou les propriétés changées. Nous pouvons chercher les entités qui existent dans une version mais n’existent pas dans l’autre. Dans le cas où on possède plusieurs informations (i.e. la trace de changement entre deux versions de l’ontologie), cette fonction peut préciser quel type de changement a été effectué et comment les entités concernées sont modifiées, etc.

Des outils d’édition offrant la fonction de comparaison des différents morceaux de texte peuvent marquer seulement les parties ajoutées ou enlevées entre deux versions selon l’ordre des lignes de texte. Cela est très difficile pour surveiller les changements. En outre, nous ne pouvons pas bien regarder la

relation entre les entités différentes par rapport aux autres éléments existants dans l’ontologie (e.g. la relation hiérarchique entre des concepts). Par exemple, dans la Figure 38, l’interface de l’outil de texte (i.e. outil Kompare sous Linux) représente la suppression de la classe Coordinator_individual mais nous ne pouvons pas savoir quelle est la relation de cette classe modifiée avec les classes dans la même branche (e.g. quelle est la super-classe, la sous-classe, etc.)

Figure 39 - Comparaison des versions de l'ontologie de l'outil OntoView

Figure 40 - Comparaison des concepts différents entre deux versions de l'ontologie par l’outil CoSWEM

Dans notre outil CoSWEM, cette fonction a été améliorée. La Figure 40 représente une comparaison des concepts différents entre deux versions de l’ontologie. La colonne à gauche représente l’ancienne version de l’ontologie et celle à droite la nouvelle version de l’ontologie. A cette étape, nous pouvons trouver les différences au niveau des entités, particulièrement le concept en rouge

Coordinator_individual (c.f. Figure 40) exprime que ce concept a été modifié et il n’apparaît pas dans la nouvelle version. En revanche, les concepts en

bleu Coordinator_Individual, Main_coordinator,

_Local_coordiantor sont ajoutés dans la nouvelle version et ils n’apparaissent pas dans l’ancienne version de l’ontologie.

Concernant cette fonction, [Klein, 2004] présente aussi l’outil de comparaison des versions de l’ontologie OntoView (c.f. Figure 39). Dans cet outil, les auteurs comparent les versions ontologiques au niveau structurel, ils montrent quels concepts ou quelles propriétés ont été changées entre deux versions. Les éléments changements sont représentés avec des couleurs différentes (c.f. Figure 40). Cependant, cette approche dépend toujours du fichier journal capturant des changements exécutés entre deux versions de l’ontologie. Notre outil CoSWEM apporte une nouveauté sur ce point, on peut toujours avoir une vue générale sur les différences entre deux versions même dans le cas où on ne garde plus la trace de changement entre les versions de l’ontologie.

D’autre part, nous intégrons le moteur de recherche sémantique Corese [Corby et al., 2006] dans le module de comparaison pour effectuer des requêtes sur les ontologies. Cette intégration nous permet de faire une recherche des entités ontologiques plus exacte et plus efficace car le moteur de recherche Corese fait une recherche de manière sémantique et non pas syntaxique comme les outils de comparaison existants. Ce moteur de recherche nous permet de charger des ontologies représentées dans le langage RDFS et de faire des recherches d’information sur les hiérarchies de concepts et de propriétés des ontologies ainsi que sur la base d’annotations qui utilise des termes définis dans ces ontologies. Afin de comparer les différentes versions de l’ontologie, nous avons crée des différentes instances indépendantes de Corese qui ont pour but de réaliser des tâches spécifiques. Par exemple, l’instance corese_1 chargera l’ancienne version de l’ontologie dans le système permettant d’interroger des requêtes sur son hiérarchie de concepts et de propriété tandis que la deuxième instance corese_2

vise à faire des requêtes sur la nouvelle version de l’ontologie. En comparant les résultats envoyés par Corese sur ces deux versions de l’ontologie, nous pouvons déterminer les éléments différents au niveau de structure (i.e. les concepts et les propriétés différents) entre ces versions. Dans le cas où la trace de changement est gardée, CoSWEM peut trouver exactement les entités modifiées, les types de changements effectués ainsi que les annotations sémantiques affectées par ces changements ontologiques. Il nous rend également plus d’information sur les changements effectués. Par exemple, nous trouvons certaines différences entre deux versions de l’ontologie dans la Figure 41 . Non seulement ces différences sont distinguées par les couleurs différentes mais on peut savoir comment les changements ont été réalisés grâce à la trace de changement. Nous pouvons

montrer que le concept ACTIVITY dans l’ancienne version a été renommé en

Activity dans la nouvelle version.

4.4

Propagation des changements de l’ontologie

La tâche de la propagation du changement du processus d'évolution de l'ontologie doit assurer la consistance des parties dépendantes après avoir exécuté une mise à jour d'ontologie. Ces parties dépendantes peuvent inclure des ontologies dépendantes, des instances, ainsi que des programmes d'application utilisant l'ontologie. Les recherches existantes s’intéressent aux trois types de propagation des changements de l’ontologie ci-dessous [Stojanovic, 2004]:

- L'impact des changements sur les ontologies dépendantes : une mise à jour d'ontologie pourrait corrompre d’autres ontologies qui dépendent de l'ontologie modifiée. Ces ontologies sont construites à partir de l'ontologie modifiée ou elles l'importent. Ce problème peut être résolu par une procédure récursive en appliquant des changements sur ces ontologies afin de préserver leur consistance conceptuelle, structurelle et comportementale.

- L'impact des changements sur les instances ontologiques : quand l'ontologie est modifiée, les instances doivent être changées pour se conformer à l'ontologie modifiée. Cela signifie que l'adaptation continue des informations annotées à une nouvelle terminologie sémantique est nécessaire.

- L'impact des changements sur les applications : les changements de l'ontologie pourront influencer les applications qui fonctionnent sur l'ontologie modifiée et les bases de connaissance.