對不起,如果我的英語不好,但我真的沒有任何地方可以用我的母語問這個問題。 我一直在試圖創建SPARQL查詢維基數據應該創建於1925至1950年幾年創建的所有恐怖小說,作者姓名列表,如果可用,圖片:維基數據查詢重複
SELECT DISTINCT ?item ?itemLabel ?author ?name ?creation ?picture
WHERE
{
?item wdt:P136 wd:Q193606 . # book
?item wdt:P50 ?author . # author
?item wdt:P577 ?creation .
?item wdt:P577 ?end .
?author rdfs:label ?name .
OPTIONAL{ ?item wdt:P18 ?picture }
FILTER (?creation >= "1925-01-01T00:00:00Z"^^xsd:dateTime) .
FILTER (?end <= "1950-12-31T23:59:59Z"^^xsd:dateTime) .
SERVICE wikibase:label
{
bd:serviceParam wikibase:language "en" .
}
}
然而,這個查詢將重複項放置在列表中的某些原因。 DISTINCT並沒有太大的作用。過了一段時間,我發現原因是「?rdfs:label?name。」。如果刪除此行,則不會列出重複項。但我需要這一行來顯示列表中的作者姓名! 關於如何解決這個問題的任何想法?
嗯,哦,我的錯誤。這行應該是'?rdfs:label?name'。如果沒有,我不會得到作者的名字,我只能得到一個鏈接。 我該怎麼做才能使它正常工作? – Dusk
那麼你應該只需要'SELECT?authorLabel',我想 – maxlath
它工作!這麼簡單,但我不認爲我會自己想出來。非常感謝你! – Dusk