2

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

Modelfactory.createInfModel(reasoner,model) 

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

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

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

4

1 回答 1

1

根据关于后向链接引擎的文档,您想要的行为已经是后向链接引擎提供的:

如果规则推理器以反向链接模式运行,它使用逻辑编程 (LP) 引擎,其执行策略与 Prolog 引擎相似。当推理模型被查询时,查询被转换为一个目标,引擎尝试通过匹配任何存储的三元组和目标解析来满足该目标。[重点补充]

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

于 2013-05-30T20:29:00.000 回答