我已經遇到好幾次,我一直想在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" ] .
有關如何實現此目的的任何想法?
你的SPARQL查詢永遠無法匹配的數據......你的三倍只能從作者到圖書領導,但是從書本 – AKSW
該查詢工作,三元開始您的查詢的搜索:'SELECT * WHERE { 書^:authorOf/:名字「斯蒂芬」。 BIND(B節點()AS?B節點) }',即屬性路徑是不同 – AKSW
感謝。我錯過了反轉屬性的'^',查詢已經相應更新。 –