2

我刚刚开始使用三重存储 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 工作台中不起作用,我错过了什么吗?

4

1 回答 1

1

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

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

于 2018-05-03T08:00:17.807 回答