• Aucun résultat trouvé

6.3 Gestion des incohérences

6.3.1 Contexte

Dans cette partie de notre travail nous considérons que les pairs peuvent faire évoluer leurs ontologies au cours du temps. Néanmoins nous faisons l’hypothèse que les ontologies restent toujours cohérentes. Par contre le fait de considérer certaines correspondances peut mener à une situation d’incohérence avec l’ontologie. Par exemple cette situation peut se produire si l’ontologie d’un pair définit que les concepts c et c′ sont disjoints, alors que l’ensemble des correspondances définit que le concept c est inclus dans le concept c′. Dans ce cas, est-ce que le pair doit participer au partage de cette correspondance ? Doit-il continuer à utili- ser cette correspondance pour traduire les requêtes qu’il reçoit ? Doit-il essayer de “réparer” l’ensemble des correspondances lorsque celui-ci est incohérent par rapport à son ontologie ? Le pair pourrait considérer la valeur de confiance attribuée à chaque correspondance (cf. définition 5.5, page 73), ou attribuer des valeurs de confiance aux autres pairs pour dé- terminer si une correspondance peut être considérée comme fiable. Mais cette stratégie ne permet pas de prendre de décision lorsque les valeurs de confiance sont égales. Dans ce cas le problème général à adresser concerne la détection et la réparation. Ce problème a fait l’objet de nombreux tra- vaux dans le domaine de la logique en général et de la logique de des- cription en particulier. Notre objectif est d’utiliser les résultats des travaux récents pour proposer différentes stratégies à adopter en cas d’incohé- rence.

6.3.2 Logique de description

Dans cette partie nous considérons la logique de descriptionALC (cf. section 1.2.3, page 17). Le tableau 1.1 (page 18) présente la sémantique d’ALC. Bien qu’elle ne soit pas très expressive, elle permet de définir la notion d’incohérence qui peut être généralisée à des logiques plus expres- sives.

Rappelons qu’une base de connaissances est souvent présentée comme l’union d’une TBox et d’une ABox. Une TBox contient les axiomes décri- vant le domaine d’application alors que la ABox contient les assertions concernant les individus. Comme nous considérons que les ontologies ne contiennent pas d’individus, nous nous focalisons seulement sur les TBox.

Définition 6.3 Soit(∆I, .I)une interprétation.

– (∆I, .I)est un modèle d’axiomes cdsi cI dI. – (∆I, .I)est un modèle de cdsi cI dI et dI cI.

– (∆I, .I) est un modèle d’une TBox si c’est un modèle de tous les axiomes de la TBox.

Définition 6.4 Un concept c est insatisfiable si et seulement si il n’existe aucun modèleI

Définition 6.5 Une TBox est cohérente s’il existe au moins un modèle. Elle est incohérente s’il n’existe aucun modèle.

6.3.3 Incohérence de la base de connaissance d’un pair

Sans modifier la définition de l’incohérence, il est intéressant d’ana- lyser d’où peuvent venir les incohérences. Soit o l’ontologie d’un pair. Nous notons Ax(o)l’ensemble des axiomes décrivant l’ontologie o, etSC

l’ensemble des axiomes représentants les correspondances stockées (celles contenues dans le dépôt ou dans le cache). La base de connaissance du pair est alorsAx(o) ∪ SC.

Définition 6.6 La base de connaissance d’un pair est incohérente siAx(o) ∪ SCn’a aucun

modèle.

Néanmoins rappelons que par hypothèse l’ensemble Ax(o)est main- tenu cohérent par le pair. Comme pour SC, sa cohérence intrinsèque dé- pend des types de correspondances qui sont partagées. En effet si des re- lations comme la disjonction ou la non-inclusion sont autorisées, alorsSC

peut être lui-même incohérent. Néanmoins nous pensons que ce type de correspondances n’aide pas directement lors du processus de traduction de requêtes et que le fait de le calculer systématiquement peut surcharger le réseau avec des informations non utilisables. Quand seules des corres- pondances positives sont partagées (c.-à-d. où l’opérateur de négation et le concept impossible ne sont pas utilisés) l’ensemble SC est aussi cohé- rent. Ainsi l’incohérence peut seulement apparaître entre l’ensemble des correspondances SC et les axiomes de l’ontologie Ax(o). Cela n’aide pas à vérifier la cohérence comme le pair considèreAx(o) ∪ SCmais cela peut

être utile pour restreindre l’ensemble des axiomes candidats à retirer lors de la réparation.

Exemple 6.3 Le pair p fait une distinction claire entre les concepts Petale et Feuille c’est- à-dire que Petale⊓Feuille ⊑ ⊥appartient à l’ensemble Ax(o). Le pair p′ a envoyé une correspondance déclarant que le concept Petale est un type de Feuille, c’est-à-dire que Petale ⊑ Feuille appartient à l’ensemble des correspondances stockées par p (SC). Dans ce cas, il n’y a pas de mo- dèle possible pour Ax(o) ∪ SC. Une stratégie de réparation devrait élimi- ner Petale⊑ Feuille.

Le fait que niAx(o)ni SC puissent être incohérents restreint les pos- sibilités. Sans vouloir être exhaustif, nous listons des cas typiques pour lesquels il y a incohérence (dans un souci de simplicité, nous supposons que les ensembles d’axiomes sont clôts par déduction) :

– Ax(o) déclare que les entités e et e′ sont différentes et SC déclare qu’elles sont équivalentes ;

– Ax(o) déclare que les entités e et e′ sont différentes et que eest moins général que e alors que SC déclare que e est moins général que e′;

– Ax(o) déclare que les entités e et e′ sont disjointes et SC déclare qu’elles sont équivalentes ;

– Ax(o) déclare que les entités e et e′ sont disjointes et SC déclare que e est moins général que e′.

La vérification de cohérence, dépend de la logique considérée et peut être une tâche complexe. Pour plusieurs logiques, dontALC, les méthodes par tableaux ont été définies et de nombreux raisonneurs peuvent détec- ter les incohérences. C’est le cas de FaCT++ [TH06] ou Pellet [SPG+07] qui sont activement utilisés. Nous supposons que chaque pair utilise un raisonneur pour vérifier la cohérence de Ax(o) ∪ SC (à l’arrivée de nou- velles correspondances ou moins fréquemment). Lorsqu’une incohérence est détectée, chaque pair met en œuvre une stratégie pour y faire face.