大多数推理引擎支持SWRL,允许用户添加自己的推理规则。但是,在我的上下文中,这些用户规则可能需要在规则的结果方面推理空白节点。
Jena提供makeTemp
内置方法来完成工作see details here。
以下是一个例子:
[r1: (?e1 st:runningTask st:gic_eth0), makeTemp(?p)
->
(?p rdf:type st:dataFromEthernet2IP) ]
我的问题是:
SWRL是否支持规则后果中的空白节点推理? SWRL w3c对这种特殊情况一无所知。
答案 0 :(得分:1)
SWRL规则中的变量采用OWL个体和RDF文字的值。空白节点不能是RDF文字,尽管空白节点可以是未命名的OWL个体。 (我不确定SWRL是否可以与未命名的一起使用,但是已宣布的个人; 不会与未申报的个人合作(例如,可以推断存在但实际上没有声明表示的个体。)无论如何,SWRL变量不会被任何空白节点约束。
这里的重要见解是Jena规则在RDF上工作,RDF具有URI节点,空白节点和文字的概念。 SWRL规则适用于OWL构造。您实际上并不需要RDF来进行OWL推理,并且您可以在没有任何基础RDF表示的情况下进行SWRL推理。因此,如果你正在使用SWRL,你不应该考虑某些东西是否是一个空白节点; OWL没有空白节点;空节点是RDF构造。