Protege SWRL 规则创建者说“意外字符'''”; class 名称中有一个 space

Protege SWRL rule creator says " Unexpected character ''' "; class name has a space in it

在 Protege 的 SWRL 选项卡中,我试图编写一个规则,但我只能使用没有 space 的 class 来实现。例如,我的 ontology 中有一个名为 "equipment" 的 class,因此我可以毫无错误地执行此操作:

equipment(?x)

我还有一个叫 "machine tool" 的 class。因为这个 class 名称中有一个 space,所以当我这样做时它会显示 "Invalid SWRL atom predicate 'machine'":

machine tool(?x)

我尝试使用下划线而不是 space,但这没有用。我还尝试按如下方式放置机床和引号,但随后显示“意外字符'''”:

'machine tool'(?x)

如果 class 名称中包含 space,我该如何引用 class?有什么方法可以用 URI 来引用它吗?

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

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

msdl:MSDL_0000070(?x)