SWRL 是否像 Jena 一样支持空白节点推理?

Does SWRL supports blank node inference as Jena?

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

Jena 提供了 makeTemp 一个内置方法来完成这项工作 see details here

这是一个例子:

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

我的问题是:

SWRL 是否支持在规则的结果端推理空白节点? SWRL w3c 没有说明这种特殊情况。

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

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