我曾多次遇到想要在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" .
Run Code Online (Sandbox Code Playgroud)
例如,假设我想将所有作者以名字撰写的书籍绑定Stephen到一个空白节点:
PREFIX : <http://example.org#>
CONSTRUCT {
[ :containsBook ?book ]
}
WHERE {
?book ^:authorOf/:firstName "Stephen" .
}
Run Code Online (Sandbox Code Playgroud)
会返回类似:
[ :containsBook "The Shining" ] .
[ :containsBook "A Brief History of Time" ] . …Run Code Online (Sandbox Code Playgroud)