【问题标题】:Protege SWRL rule creator says " Unexpected character ''' "; class name has a space in itProtege SWRL 规则创建者说“意外字符'''”;类名中有一个空格
【发布时间】:2018-10-19 03:15:42
【问题描述】:

在 Protege 的 SWRL 选项卡中,我正在尝试编写规则,但我只能对其中没有空格的类执行此操作。例如,我的本体中有一个名为“设备”的类,所以我可以做到这一点而不会出错:

equipment(?x)

我还有一个类叫做“机床”。因为这个类的名字中有一个空格,所以当我这样做时它会说“无效的 SWRL atom predicate 'machine'”:

machine tool(?x)

我尝试使用下划线而不是空格,但没有奏效。我也尝试将机床和引号如下所示,但随后显示“意外字符'''”:

'machine tool'(?x)

如果类名中有空格,我如何引用一个类?有什么方法可以用 URI 来引用它吗?

【问题讨论】:

  • 改用 URI?

标签: owl protege swrl


【解决方案1】:

machine tool 不是本体中类的名称,它是附加到类的 rdfs:label(或 rdfs:comment)属性的值。编辑器不允许您使用它(我想这会很方便)。一种解决方法是找到类的实际 IRI 并使用它 - 如果可行,则缩短为它的 QName。

【讨论】:

【解决方案2】:

好的,我想通了。我必须更新 Protege 中的 SWRLTab 插件,然后我可以通过其 URI 引用该类,如下所示:

msdl:MSDL_0000070(?x)

【讨论】:

  • 能不能把老版本的插件加进去,让以后的读者知道是哪个版本的插件有这个问题?
  • @Ignazio 我不知道我现在更新后如何弄清楚我使用的是什么版本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-20
  • 1970-01-01
  • 2019-01-19
  • 2015-02-10
  • 2015-05-24
  • 2021-11-12
  • 2012-09-04
相关资源
最近更新 更多