1

我正在尝试使用 Redland R RDF 实现来构建一个简单的 RDF 存储,但在编写非文字三元组时遇到问题。在代码中,设置worldand之后model,而文字三元组

addStatement(model,
             new("Statement",world,
                 "a:John","b:likes","a:Jane"))

给出了预期

<a:John> <b:likes> "a:Jane"

编码

addStatement(model,
             new("Statement",world,
                 "a:Sian","b:likes","a:John",objectType="blank"))

给出_:a:John而不是<a:John>

<a:Sian> <b:likes> _:a:John

在 SPARQL 的折叠中不匹配

select ?a ?b where {?a <b:likes> ?x. ?x <b:likes> ?b.}

我在这里做错了什么?请注意,此应用程序本身并不查看任何委托数据库,因为我只是使用三元组来利用 SPARQL 查询的逻辑功能。最初是在另一个包中完成的,但由于技术原因我正试图搬到雷德兰。

4

1 回答 1

1

非常感谢上面 Stanislav 的评论,答案就是将 objectType 设置为“uri”。这在 R 中没有很好的记录,但是查看对象的定义,GithubStatement上的第 68 行,给出了相关的选项和默认值。

于 2018-01-08T09:00:20.280 回答