我正在尝试使用Redland R RDF实现来构造一个简单的RDF存储,但是在编写非文字三元组时遇到问题。在代码中,在设置world
和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 查询的逻辑功能。最初在另一个包中这样做,但由于技术原因,我试图搬到雷德兰。
非常感谢斯坦尼斯拉夫上面的评论,答案只是将objectType设置为"uri"。这在 R 中没有很好的记录,但查看 Github 上Statement
对象的定义,第 68 行,给出了相关的选项和默认值。