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 ...