我正在尝试使用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查询的逻辑功能。最初是在另一个包中做到这一点,但我出于技术原因试图搬到Redland。
答案 0 :(得分:1)
非常感谢Stanislav上面的评论,答案就是将objectType设置为&#34; uri&#34;。 R中没有详细记录这一点,但查看Statement
对象的定义,Github上的第68行,给出了相关选项和默认值。