我想从图表中得到绑定到特定变量的结果让我们说?s。
接下来,我想将这些结果作为 RDF 列表插入到图 B 中。
这是我的 SPARQL 更新:
prefix foo:<http://foo.com/>
insert
{
graph <http://B.com>
{
?var foo:propA foo:A ;
foo:propB [ foo:propA foo:A ;
foo:propX ( ?s )
] ;
foo:propC ?o .
}
}
where
{
graph <http://A.com>
{
?s ?p ?o.
BIND(URI(CONCAT("http://example.org/", STRAFTER( STR(?o), "http://someuri.org/"))) as ?var)
}
}
我的问题是它插入了这些数据:
<http://example.org/varX> foo:propA foo:A ;
foo:propB [ foo:propA foo:A ;
foo:propX ( <http://s1.com> )
],
[
foo:propA foo:A ;
foo:propX ( <http://s2.com> )
] ;
foo:propC <http://oX.com> .
相反,我希望它插入这个:
<http://example.org/varX> foo:propA foo:A ;
foo:propB [ foo:propA foo:A ;
foo:propX ( <http://s1.com> <http://s2.com> )
] ;
foo:propC <http://oX.com> .
我能达到这个结果吗,有可能吗?
基本上我想为 foo:propX 谓词设置对象,这是一个包含绑定到变量 ?s 的元素值的 RDF 列表。
注意:完全相同的查询在 RDF4J 中执行得很好,但奇怪的是导致 Blazegraph 抛出一个
MalformedQueryException: Undefined vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#first