我刚开始使用三重存储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 }
但是,没有返回结果:
有人可以告诉我,我做错了什么,为什么SPIN规则在我的RDF4J工作台中不起作用,我错过了什么?
答案 0 :(得分:1)
(将我的评论作为未来读者的答案重新发布)
我认为,SPIN推理器目前假设所有数据都在默认上下文中。确保您的数据未添加到命名图表中。