2016-12-13 1 views

Répondre

0

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:

  1. Permet de définir OP_1 est équivalent OP_2
  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.