L'image est pertinente de votre problème/question.
Est-il possible de créer la même propriété d'objet entre les sous-classes?
en bref: Oui vous pouvez, mais vous ne le voulez pas.
define four classes A B C D
B is a sub class of A
D is a sub class of C
define one object property OP_1 between A and C (range & domain)
define one object property OP_2 between B and D (range & domain)
Si OP_1 et OP_2 ont des noms différents, il n'y a absolument aucun problème.
Mais vous avez dit que vous voulez que OP_1 et OP_2 soient les mêmes objectProperty; Ce n'est pas une bonne affaire:
- Permet de définir OP_1 est équivalent OP_2
- Ensuite, vous utilisez un moteur d'inférence/raisonneur sur votre ontologie.
Avez-vous définir une propriété sur les super classes, comment le raisonneur devrait comprendre la propriété entre les sous-classes? Il les comprendra comme les super-classes (ou toutes les classes auxquelles il est lié). Dans la plupart des cas, les assertions (restriction de classes, étendue, domaine) sur les sous-classes seront simplement ignorées. Protege et/ou owl-api vous permettent de l'écrire, mais n'assurent pas la cohérence ou le comportement/sens spécifique pour vous.
Ce que vous devez faire:
créer une taxonomie des propriétés:
define OP_1 a sub property of the super property OP
define OP_2 a sub property of the super property OP
had domain/range of super class on OP
had domain/range of whatever you want on OP_1 and OP_2 using sub-classes.