我遇到过几次想在CONSTRUCT
查询中使用空白节点的情况,但我需要为所有(或多个)查询解决方案获取相同的空白节点。
假设我们的数据集中有一个作者和他们写的书的列表:
@prefix : <http://example.org#> .
:stephen_king a :Author ;
:firstName "Stephen" ;
:authorOf "The Shining", "Cujo".
:stephen_hawking a :Author ;
:firstName "Stephen" ;
:authorOf "A Brief History of Time" .
:virginia_wolf a :Author ;
:firstName "Virginia" ;
:authorOf "Mrs Dalloway" .
例如,假设我想将所有具有名字的书籍作者绑定Stephen
到一个空白节点:
PREFIX : <http://example.org#>
CONSTRUCT {
[ :containsBook ?book ]
}
WHERE {
?book ^:authorOf/:firstName "Stephen" .
}
会返回类似:
[ :containsBook "The Shining" ] .
[ :containsBook "A Brief History of Time" ] .
[ :containsBook "Cujo" ] .
但期望的结果是:
[ :containsBook "The Shining" ;
:containsBook "A Brief History of Time" ;
:containsBook "Cujo" ] .
关于如何实现这一目标的任何想法?