Sommaire

Modifier des entités : Relationrelations et Restriction:existentiellerestrictions existentielles

Les relations des individus et les restrictions existentielles des classes peuvent être modifiées comme n’importe quel attribut en Python, par exemple, pour redéfinir les relations d’un individu :

>>> ma_bactérie.gram_positif = True

S’il s’agit d’une propriété de type ObjectProperty, une nouvelle instance de la classe attendue peut être créée (ici la classe Allongée) : ObjectProperty

>>> ma_bactérie.a_pour_forme = Allongée()

Lorsque la Propriété:fonctionnellepropriété est fonctionnelle, ou qu’une restriction de la classe fait qu’elle peut n’avoir qu’une seule valeur (restriction de cardinalité, de type « max 1 » ou « exactly 1 »), Owlready attend une valeur unique (comme dans les deux lignes ci-dessus). Dans le cas contraire, Owlready recevra une Listeliste de valeurs, cependant, ce ne sont pas des listes Python « ordinaires », comme nous pouvons le constater en regardant la classe de ces listes et en la comparant aux listes de Python :

>>> ma_bactérie.a_pour_regroupement.__class__  
<class ’owlready2.prop.IndividualValueList’>  
 
>>> [].__class__  
<class ’list’>

Les listes d’Owlready sont des « CallbackList » ...