假設我有一個包含4個三元組一個RDF基:4store中奇怪的SPARQL模式匹配?
"John" "loves" "sushi"
"John" "loves" "Mary"
"Frank" "hates" "sushi"
"John" "hates" "olives"
,讓我們說,我認爲「壽司」這樣的,我想知道到底是什麼人可以用它做更一個奇怪的事情還有什麼他們可以使用同樣的動作=)
所以我寫了SPARQL查詢似乎是合乎邏輯對我說:
SELECT ?s ?o WHERE
{
?s ?p "sushi".
?s ?p ?o
}
自然期待得到以下結果
"John" "sushi"
"John" "Mary"
"Frank" "sushi"
因爲對於每一個第一3個三元組存在一個滿意的雙(αS,?P)的值,使接合圖案評估爲TRUE。
但在現實中(我使用本地4store引擎& DB)的答案是這樣的:
"John" "sushi"
"John" "Mary"
"Frank" "sushi"
"John" "olives"
有人能解釋這種現象給我嗎?
如果這確實是它應該如何在SPARQL中工作,那麼獲得我需要的是什麼方式?
沒有使用過sparql,這對我來說似乎非常隨意。 「約翰討厭橄欖」有什麼特別的地方讓你覺得它應該被拒絕? – Blindy
你會發現,如果s =「John」並且p =「hates」,那麼在數據庫中就不存在滿足查詢第一部分的三元組。我期望這部分**定義**我感興趣的領域。我想找出約翰如果喜歡壽司可能喜歡的其他東西,或者如果他討厭壽司,他可能會討厭什麼其他的東西。但我得到的是一種混合 - 弗蘭克討厭壽司,因此我註定要被告知約翰討厭什麼。 –
有多奇怪。再次,我不能幫你,我只是好奇:) – Blindy