一个简单的SPIN规则在RDF4J中不起作用

时间:2018-04-14 18:20:25

标签: semantic-web inference reasoning rdf4j spin-rdf

我刚开始使用三重存储RDF4J(我正在使用其工作台,版本2.3.1,在带有Tomcat 9.0的Windows 10上运行)

我想在RDF4J中使用SPIN规则。因此,我创建了一个新的存储库(在内存中支持RDFS + SPIN)。

我想从RDF4J documentation concerning how to add SPIN rules中的SPIN示例开始。也就是说,我添加了数据(在Turtle中,并导入到RDF4J)

@prefix ex: <http://example.org/>.
        ex:John a ex:Father ;
ex:parentOf ex:Lucy .
ex:Lucy a ex:Person .

规则:

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix sp: <http://spinrdf.org/sp#>.
@prefix spin: <http://spinrdf.org/spin#>.
@prefix ex: <http://example.org/>.
ex:Person a rdfs:Class ;
    spin:rule [
        a sp:Construct ;
    sp:text """PREFIX ex: <http://example.org/>
               CONSTRUCT { ?this ex:childOf ?parent . }
               WHERE { ?parent ex:parentOf ?this . }"""
] .

按照文档中的说明,我公开了查询(选中了“Include inferred statements”复选框),

PREFIX ex: <http://example.org/>
SELECT ?child 
WHERE { ?child ex:childOf ?parent }

但是,没有返回结果:

no result

有人可以告诉我,我做错了什么,为什么SPIN规则在我的RDF4J工作台中不起作用,我错过了什么?

1 个答案:

答案 0 :(得分:1)

(将我的评论作为未来读者的答案重新发布)

我认为,SPIN推理器目前假设所有数据都在默认上下文中。确保您的数据未添加到命名图表中。