Définition des propriétés des objets
Dernière mise à jour
Cet article vous a-t-il été utile ?
Dernière mise à jour
Cet article vous a-t-il été utile ?
Dans cette section, nous allons apprendre à créer les propriétés qui vont nous servir à lier les différentes classes les unes les autres, et spécifier leurs propriétés (cf. ).
Dans l', nous avons créé un top level avec Independent_entity
et Value
pour nous permettre de bien organiser nos éléments. La résultante de ça est qu'il existe donc des propriétés qui vont venir modifier certains concepts, comme le laisse transparaître Spiciness_value
qui sera appliqué à Pizza
.
On aura donc deux propriétés sur nos objets, une relationnelle et une pour "modifier" l'objet. Vous pouvez les créer manuellement, ou bien utiliser dans Tool
l'option Create Object Property Hierarchy...
.
N'oubliez pas de sélectionner owl:topObjectProperty
avant de faire appel au COPH pour que les deux propriétés créées se retrouvent bien "en dedans" (soit subsumées).
Maintenant que nos deux propriétés principales sont créées, nous allons nous occuper de créer celles de notre modèle.
On l'a vu lors de l', on va vouloir représenter le fait qu'une pizza possède une (ou plusieurs) garniture, ainsi qu'une pâte.
Aussi, cliquez sur relational_property
puis dans le COPH, rajoutez simplement
Maintenant que les deux propriétés relationnelles existent, on va les spécialiser. Autrement dit, on va dire ce qu'elles concernent pour véhiculer une sémantique bien précise : lorsqu'on parle de has_topping
on veut simplement que cela concerne la garniture d'une pizza, pas vrai ?
Cliquez sur l'onglet Property matrix
;
Sélectionnez d'abord la propriété has_topping
(surbrillance bleue) :
On va dire d'où elle "part". Dans la colonne Domain
, tapez Pizza
(un Ctrl + Espace
vous fait une auto-complétion). C'est la pizza qui est concernée par la garniture !
Posséder de la garniture signifie qu'on parle de garniture ! Dans la colonne Range
, tapez Pizza_topping
. Et voilà, maintenant, on englobe toutes les sortes de garnitures (fromage, viandes, etc.).
Indiquez cette propriété comme étant inversement fonctionnelle en cochant la boite correspondante (c'est la garniture qui conditionne le type de pizza)
Sélectionnez la propriété has_base
:
Dans Domain
, indiquez Pizza
;
Dans Range
, indiquez Pizza_base
;
Dans les propriétés cochez fonctionnelle et inversement fonctionnelle (on individualise les deux côtés)
On va maintenant chercher à exprimer le degré de force de la pizza. Le point de détail est que le côté épicé de la pizza dépend de la garniture et non pas de la pizza elle même.
Aussi, revenez dans l'onglet Object Property
, puis :
Créez une nouvelle propriété has_Spiciness
, cette fois ci rattaché à modifier_property
;
Retournez dans la Matrix View
;
Dans Domain
, indiquez Pizza_topping
;
Dans Range
, indiquez Spiciness_value
;
Cochez la case fonctionnelle.
Et voila !
Dans cette partie, vous venez de créer vos premières propriétés (relations) entre vos classes, et surtout, vous les avez liées entre elles.
Vous avez également appris qu'associer une relation à une classe qui en subsument d'autres impliquent que ces mêmes classes subsumées sont aussi concernées par cette relation ! C'est pour cela qu'on va pouvoir par exemple associér à une pizza fromage la garniture fromage, alors que nous avons seulement spécifié les relations avec les classes "parentes".