将自动分配的空白节点与具体化的数据一起使用



我试图查询一个使用RDF具体化词汇表的数据集,如下所示:

myprefix:statement1 rdf:subject myprefix:object1 .
myprefix:statement1 rdf:predicate myprefix:isrelatedto .
myprefix:statement1 rdf:object myprefix:object2 .
myprefix:statement2 rdf:subject myprefix:object2 .
myprefix:statement2 rdf:predicate myprefix:isrelatedto .
myprefix:statement2 rdf:object myprefix:object3 .
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix myprefix: <mydomain#>
select *
from <mydomain>
where {
[ rdf:subject ?first ; rdf:predicate myprefix:isrelatedto ; rdf:object _:1 ] .
[ rdf:subject _:1 ; rdf:predicate myprefix:isrelatedto ; rdf:object ?second ] .
}
Result:
__________________ __________________
| first            | second           |
|__________________|__________________|
| myprefix:object1 | myprefix:object2 |
|__________________|__________________|

我能以某种方式用[]结构替换标记的空白节点_:1吗?

编辑:应该解释一下,这个问题的原因是在真实的用例中,我有一个更复杂的查询,需要获得像这样的可变数量的属性(查询是动态生成的(。所以我要做的是去掉标记的节点,这样我就不必动态生成唯一的标签。

[ ]在最多有一个引用的情况下工作。

我们有:

... rdf:object _:1
... rdf:subject _:1

因此,当前写入的空白节点的两个引用。

如果您可以修改查询的其余部分,这是可能的。意图是否更清晰是你必须做出判断的事情。

因为在部分:

[ rdf:subject _:1 ; ....]

没有使用外部[ ]空白节点进行任何操作,因此可能会使用注释中建议的rdf:object/^rdf:subject

意图是否更清晰是你必须做出判断的事情。

最新更新