這是查詢和結果:爲什麼過濾器在這種情況下不起作用?
正如你看到的,我剔除這些bo:ania
的用戶,那麼爲什麼他們仍然出現?
但是,如果我刪除widecard並選擇剛纔的用戶?user
,bo:ania
不會出現
我沒有提供一個最小數據的例子,因爲這是一個有關如何過濾和問題通配符工作,而不是從數據集中提取某些數據的問題。但是,如果您需要最低限度的數據,我非常樂意提供。
這是查詢和結果:爲什麼過濾器在這種情況下不起作用?
正如你看到的,我剔除這些bo:ania
的用戶,那麼爲什麼他們仍然出現?
但是,如果我刪除widecard並選擇剛纔的用戶?user
,bo:ania
不會出現
我沒有提供一個最小數據的例子,因爲這是一個有關如何過濾和問題通配符工作,而不是從數據集中提取某些數據的問題。但是,如果您需要最低限度的數據,我非常樂意提供。
?specificUser
通過您的VALUES
聲明綁定到bo:ania
。 ?user
是由其他三重模式定義的完全不同的綁定。您的FILTER
說要過濾掉?user = bo:ania
的結果,並且它看起來正確地做了這件事,因爲?user
在任何結果中都沒有綁定到bo:ania
。
順便說一句,在這種情況下不需要使用VALUES
,除非您想檢查多個值。如果它只是一個值,那麼下面會的工作,而不是有你想知道爲什麼被包括在結果集綁定到bo:ania
:
SELECT *
WHERE {
?user a rs:user .
?user rs:hasRated ?rating .
?rating rs:hasRatingDate ?ratngDate .
FILTER (?ratingDates >= (now() -"P10000F"^^xsd:duration))
FILTER (?user != bo:ania)
}
即使只有一個值可以使用,**值**可以通過讓IRI僅出現一次來減少一個拼寫錯誤來源,並且可以使投影更容易,因爲該值綁定到變量。 –
我沒有在上面的查詢(?)中看到任何內容在一般情況下,我沒有看到'VALUES'與一個綁定和'BIND'之間的區別,而不是用戶首選項。 – scotthenninger
@JoshuaTaylor是值得爲我省去拼寫錯誤的語氣,我總是使用它,你對我說過,非常感謝 –
題外話:我想你指的通配符? – AKSW