2016-12-13 36 views

回答

0

的图像是不相关的问题/问题。

是否可以在子类之间创建相同的objectproperty?

简而言之:是的,你可以,但你不想要它。

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) 

如果OP_1和OP_2有不同的名称,那么绝对没有问题。

但是你说你希望OP_1和OP_2是相同的objectProperty;这不是一个很好的协议:

  1. 让我们定义为OP_2
  2. 然后您在使用本体推理引擎/推理OP_1等同。

你是否已经定义了超类的属性,推理者应该如何理解子类之间的属性?它会将它们理解为与超类(或者它所绑定的任何类)相同。在大多数情况下,子类的断言(类限制,范围,域)将被忽略。

Protege和/或owl-api允许您编写它,但不保证您的一致性或特定行为/含义。

你应该做的:

创建属性的分类:

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. 
相关问题