2017-04-24 48 views
0

我想在SPARQL中寫一個查詢,其中如果我們提供任何輸入名稱,查詢結果將會告訴它是否是電影標題。例如 -如何使用SPARQL查詢來檢查是否是電影標題?

select distinct ?type where { 
<http://dbpedia.org/resource/Inception> a ?type . 
FILTER regex(str(?type), "^.*movie", "i") } 

查詢結果告訴我們這是一部電影。現在當我們輸入那些含糊不清的名字時,它什麼都不會返回。

例如,如果我們輸入Captain_Phillips代替Inception,則返回 - 無。

所以,我不知道如何得到一個名稱是否是電影標題或不模糊的情況下。

+0

你有不工作的例子嗎?或者現在有什麼問題?爲什麼不能問資源是屬於「dbo:Film」還是「schema:Movie」? – AKSW

回答

0

http://dbpedia.org/resource/Captain_Phillips是關於人,而不是電影。 http://dbpedia.org/resource/Captain_Phillips_(film)是類型的scehma:電影。

嘗試:

SELECT DISTINCT 
?type 
WHERE 
{ 
<http://dbpedia.org/resource/Captain_Phillips_(film)> a ?type. 

FILTER (regex(str(?type), "^.*movie", "i")). 
} 

如果你只是想檢查的結果存在:

ASK 
{ 
<http://dbpedia.org/resource/Captain_Phillips_(film)> a ?type. 

FILTER (regex(str(?type), "^.*movie", "i")). 
} 
相關問題