2

我有以下类:B、C 和 D 类是 A 的子类。

A ----+----------> B
      |
      +----------> C
      |
      +----------> D

此外,我有一个对象属性hasObjectProperty和其他一些类 X、Y、Z, 其中 X、Y、Z 是不相交的类

然后我对 B、C 和 D 类设置限制如下:(这里我也使用 Protege 中使用的曼彻斯特 OWL 语法http://www.co-ode.org/resources/reference/manchester_syntax/

B: (hasObjectProperty only X) and (hasObjectProperty some X)
C: (hasObjectProperty only Y) and (hasObjectProperty some Y)
D: (hasObjectProperty only Z) and (hasObjectProperty some Z)

现在的问题是,我如何描述一个 E 类,它应该是 B 类和 C 类的并集?我如何描述一个既可以是 B 类又可以是 C 类(但不是 D 类)的类?

A ----+----------> B ------> E
      |
      +----------> C ------> E
      |
      +----------> D

有可能吗?

我试图像这样定义 E 类的限制。但是推理者会确定它是无效的。

E: ((hasObjectProperty only X) and (hasObjectProperty some X)) or ((hasObjectProperty only Y) and (hasObjectProperty some Y))

多谢!

4

1 回答 1

3

为了严格限制E为 and 的B并集C,您可以声明:

E≡ (BC)

即,属于 和 的并集的任何B东西C都在 中E,反之亦然(以两种方式编码包含关系)。

请注意,这必然会E为两者创建一个超类,B并且C由于它包含它们两者,因此您将获得:

A --+---> E --+---> B
    |         | 
    +---> D   +---> C
于 2010-09-10T06:57:15.427 回答