我刚刚开始使用三重存储 RDF4J(我正在使用它的工作台,版本 2.3.1,在带有 Tomcat 9.0 的 Windows 10 上运行)
我想在 RDF4J 中使用 SPIN 规则。因此,我创建了一个新的存储库(在内存中支持 RDFS+SPIN)。
我想从RDF4J 文档中关于如何添加 SPIN 规则的 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 . }"""
] .
并按照文档中的说明,我公开了查询(选中了“包含推断语句”复选框),
PREFIX ex: <http://example.org/>
SELECT ?child
WHERE { ?child ex:childOf ?parent }
但是,没有返回任何结果:
有人可以告诉我我做错了什么吗,为什么 SPIN 规则在我的 RDF4J 工作台中不起作用,我错过了什么吗?