【发布时间】:2018-07-06 09:59:57
【问题描述】:
我想从图表中获取绑定到特定变量的结果让我们说 ?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
【问题讨论】:
-
1.为什么需要RDF列表,为什么不直接写
foo:propX <http://s1.com>, <http://s2.com>? 2.相关:stackoverflow.com/a/48715650/7879193 -
简答,不是 SPARQL 标准的一部分...
-
Apache Jena 和 RDF4J 有一些内置的扩展可以实现你想要的。
标签: sparql rdf rdfs blazegraph rdf4j