Définition des propriétés des objets
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. ici pour un rappel).
Pour la suite de cette section, n'oubliez pas de changer d'onglet et d'aller dans Object property
. Le tour des fenêtres doit être bleu (et non pas vert ni jaune !).
Les propriétés induites par le Top Level
Dans l'Étape 2, 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).
Les propriétés de notre modèle
Maintenant que nos deux propriétés principales sont créées, nous allons nous occuper de créer celles de notre modèle.
Les propriétés relationnelles
On l'a vu lors de l'élaboration de notre dictionnaire, 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
, tapezPizza
(unCtrl + 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
, tapezPizza_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
, indiquezPizza
;
Dans
Range
, indiquezPizza_base
;
Dans les propriétés cochez fonctionnelle et inversement fonctionnelle (on individualise les deux côtés)
Les propriétés de mutabilité
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
, indiquezPizza_topping
;Dans
Range
, indiquezSpiciness_value
;Cochez la case fonctionnelle.
Et voila !
Qu'est-ce qu'on vient de faire ?
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".
Dernière mise à jour
Cet article vous a-t-il été utile ?