1

大多数推理引擎都支持SWRL,允许用户添加自己的推理规则。但是,在我的上下文中,这些用户规则可能需要在规则的结果侧推断一个空白节点。

Jena 提供makeTemp了一个内置方法来完成这项工作,请参阅此处的详细信息。

这是一个例子:

[r1: (?e1 st:runningTask st:gic_eth0), makeTemp(?p)
 ->
 (?p rdf:type st:dataFromEthernet2IP) ]

我的问题是:

SWRL 是否支持在规则的结果侧进行空白节点推理?SWRL w3c对这种特殊情况只字未提。

4

1 回答 1

1

SWRL 规则中的变量采用 OWL 个体和 RDF 文字的值。空白节点不能是 RDF 文字,尽管空白节点可以是未命名的 OWL 个体。(我不确定 SWRL 是否适用于未命名但已声明的个人;它不适用于未声明的个人(例如,可以推断其存在但实际上没有声明的代表的个人。)在任何情况下,SWRL 变量都不会被绑定到任意的空白节点。

这里的重要见解是 Jena 规则适用于 RDF,它具有 URI 节点、空白节点和文字的概念。SWRL 规则适用于 OWL 结构。您实际上不需要 RDF 来进行 OWL 推理,并且您可以在没有任何底层 RDF 表示的情况下进行 SWRL 推理。因此,如果您使用的是 SWRL,则不必考虑某物是否为空白节点;OWL 没有空白节点;空白节点是 RDF 结构。

于 2015-01-10T14:15:42.987 回答