如何在Redland R RDF三元组中定义对象类型

时间:2018-01-05 23:01:05

标签: r rdf triples redland

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

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。

1 个答案:

答案 0 :(得分:1)

非常感谢Stanislav上面的评论,答案就是将objectType设置为&#34; uri&#34;。 R中没有详细记录这一点,但查看Statement对象的定义,Github上的第68行,给出了相关选项和默认值。