Protege SWRL规则创建者说"出乎意料的人物''' &#34 ;; class name中有一个空格

时间:2018-05-09 05:18:09

标签: owl protege swrl

在Protege的SWRL选项卡中,我正在尝试编写规则,但我只能在没有空格的类中执行此操作。例如,我有一个名为" equipment"在我的本体论中,所以我可以做到这一点,没有错误:

equipment(?x)

我还有一个名为"机器工具"的课程。因为这个类在它的名字中是一个空格,它说"无效的SWRL原子谓词'机器'"当我这样做时:

machine tool(?x)

我尝试使用下划线而不是空格,但这并不起作用。我也尝试将机床和报价如下,但随后它说"出乎意料的人物''' ":

'machine tool'(?x)

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

好的,我明白了。我不得不更新Protege中的SWRLTab插件,然后我可以通过它的URI引用该类,如下所示:

msdl:MSDL_0000070(?x)