【问题标题】:Adding multiple domains to objectProperty in Protege 5在 Protege 5 中向 objectProperty 添加多个域
【发布时间】:2015-08-17 13:38:00
【问题描述】:

我使用 Protege 5-beta-17 创建了一个本体。在我的本体中,我有一些课程:

Mountain, Lake, Location etc...

我还有一个对象属性:

hasLocation.

对于这个对象属性,我设置了“位置”类的范围和域 “山”和“湖”类。

当我尝试使用 CMap 工具查看本体时,它显示只有

"Mountain" "hasLocation" "Location".

“Lake”类没有“hasLocation”对象属性。

我做错了吗?还是我在 Protege 中做了其他事情?

【问题讨论】:

  • 您是否查看了 OWL/XML(或您保存的任何内容)并检查了这两个域是否存在?
  • 是的,我看过文件。那里的域。
  • 但在 Cmap 中只有一个出现。

标签: semantic-web owl ontology protege


【解决方案1】:

我发现了问题所在。

在 protege 中向对象属性添加域/范围时,您必须单击以下按钮并选择您的类之一:

如果您想添加另一个域/范围,只需再次单击其中一个按钮并添加另一个类。如果你这样做,你告诉 Protege 你的对象属性的域/范围是两个类的交集。这意味着将占据域/范围位置的个人是两个类的实例,而不是其中一个类的实例。 这是我的错误。我以错误的方式将类添加到域中。

所以...为对象属性添加多个不同域的正确方法如下:

只需再次单击域/范围按钮并选择“类表达式编辑器”选项卡:

然后在“类表达式编辑器”中输入您的类,如下所示:“ClassA 或 ClassB 或 ClassC 或 ...”。

就我而言,它是“山或湖”。

然后点击“确定”就可以了。

【讨论】:

  • 这是完成你想要做的事情的正确方法,但我会对描述提出质疑。如果属性 P 有一个类 D 作为域,那么只要我们有一个断言 P(x,y),我们就可以推断 x 是 D 的一个实例。如果 P 有多个域,比如 D1 和 D2,那么从 P (x,y) 我们可以推断出 x 既是 D1 也是 D2。如果 P 有多个域,就会发生这种情况。您实际上要做的是添加一个 single 域,它是一个联合类。如果 P 具有联合类“(D1 或 D2)”作为域,则从 P(x,y)我们可以推断 x 是“(D1 或 D2)”。这是一个单个域。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2015-05-07
相关资源
最近更新 更多