Sommaire

Classes et ontologies Classe:inconsistanteinconsistantes

Lors du raisonnement, il se peut que le raisonneur détecte des classes inconsistantes. Ces classes sont illogiques et, par conséquent, il ne doit pas y avoir d’individu appartenant à celles-ci. Par exemple dans notre ontologie des bactéries, la classe suivante, héritant de la classe Streptocoque et associé à une forme Allongée (via une restriction), serait inconsistante :

>>> with onto:  
...     class StreptocoqueAllongé(onto.Streptocoque):  
...         is_a = [onto.a_pour_forme.some(onto.Allongée)]

Tant qu’il n’y a pas d’individu appartenant à cette classe, cela ne pose pas de problème. Les classes inconsistantes sont reclassées comme équivalente à Nothing par le raisonneur. Il est donc possible de les détecter en Python en cherchant Nothing dans les classes équivalentes, par exemple pour vérifier si la classe StreptocoqueAllongé est consistante : Nothing

>>> sync_reasoner()  
>>> if Nothing in StreptocoqueAllongé.equivalent_to:  
...         print("La classe est inconsistante !")  
... else:  
...         print("La classe est consistante.")  
La classe est inconsistante !

De plus, la méthode default_world.inconsistent_classes() permet d’obtenir un générateur ...