Inverser les Restrictionrestrictions

Les restrictions permettent de définir des relations au niveau des classes de l’ontologie, par exemple « Pseudomonas a_pour_forme some Allongée ». Owlready permet d’accéder facilement à ces relations avec la syntaxe « Classe.propriété » :

>>> onto.Pseudomonas.a_pour_forme  
bacterie.Allongée 

Mais comment lire cette restriction existentielle « à l’envers », c’est-à-dire, à partir de la classe Allongée, remonter à la classe Pseudomonas ? Même si nous avions défini la propriété inverse, que nous pourrions appeler « est_forme_de », elle ne permettrait pas de répondre à notre question, comme le montre l’exemple suivant :

>>> with onto:  
...     class est_forme_de(ObjectProperty):  
...         inverse = onto.a_pour_forme  
 
>>> onto.Allongée.est_forme_de  
[] 

En effet, d’un point de vue logique, les deux propositions suivantes sont différentes :

  • « Pseudomonas a_pour_forme some Allongée »

  • « Allongée est_forme_de some Pseudomonas »

La première indique que tout Pseudomonas a une forme Allongée, ce qui est vrai. La seconde indique que toute forme Allongée est la forme d’un Pseudomonas, ce qui n’est pas la même chose...

Pour consulter la suite, découvrez le livre suivant :
couv_EPPYTONT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Introspection
Suivant
Exemple : utiliser Gene Ontology et gérer les relations « partie-de »