我目前正在搞乱耶拿试图创建规则以添加到我的通用推理器中。我创建了以下简单规则:
[rule1: (?x ?rdf:type ?y),(?y rdfs:subClassOf ?z)-> (?x rdfs:type ?z)]
这工作正常,并且可以正确触发,给了我所期望的一切。完成此操作后,我想为 分配一个时间戳?x
,以便我知道何时得出结论,我想Now
按如下方式使用内置函数。
[rule1: (?x ?rdf:type ?y),(?y rdfs:subClassOf ?z),now(?x)-> (?x rdfs:type ?z)]
不幸的是,这不起作用,它也不会抛出错误,它似乎没有绑定任何时间值,?x
而且它似乎阻止了规则像第一种情况一样被正确触发。我正在使用的本体如下。有任何想法吗?
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#">
<owl:Class rdf:about="livingthing"></owl:Class>
<owl:Class rdf:about="Human">
<rdfs:subClassOf rdf:resource="livingthing"/>
</owl:Class>
<rdf:Description rdf:about="john">
<rdf:type rdf:resource="Human"/>
</rdf:Description>
</rdf:RDF>