这是在保护中创建的。是否可以在子类之间创建相同的objectproperty,如图所示?还可以添加他们的范围和域名吗?
我是否可以拥有示例代码。 谢谢^ _ ^ 下面是图片的链接。
答案 0 :(得分:0)
图片与您的问题/问题无关。
是否可以在子类之间创建相同的object属性?
简而言之:是的,你可以,但你不想要它。
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;这不是一个好消息:
你是否已经在超类上定义了一个属性,推理者应该如何理解子类之间的属性?它将理解它们与超类(或它所绑定的任何类)相同。在大多数情况下,子类上的断言(类限制,范围,域)将被忽略。
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.