向后链接耶拿推理员

时间:2013-05-30 17:21:48

标签: rdf jena jena-rules

我一直在阅读Jena文档,试图创建一个简单的纯后向链接推理器。我有一个简单的后向链规则,我正在应用于一个小的本体。 我想知道是否还有在每个查询的基础上进行反向链接,所以当我得到我的InfModel时,并不是所有的蕴涵都计算出来:

Modelfactory.createInfModel(reasoner,model) 

而是仅在他们被要求时。因此,对于以下规则:

[rule2: (?x rdfs:type ?z)<-(?x ?rdf:type ?y),(?y rdfs:subClassOf ?z)]

我可以注册一个查询,要求查找特定类的所有类型,然后启动上述规则吗?

1 个答案:

答案 0 :(得分:1)

根据documentation on the backward chaining engine,您想要的行为已经是反向链接引擎提供的行为:

  

如果规则推理器以反向链接模式运行,则它使用逻辑编程(LP)引擎,其具有与Prolog引擎类似的执行策略。 当查询推理模型时,查询被转换为目标,并且引擎通过匹配任何存储的三元组以及针对反向链接规则的目标解决方案来尝试满足该目标。 [强调补充]

如果您使用您提供的规则定义推理器,那么当您要求格式为x rdf:type z的三元组时,推理器将在那时触发该规则。