2017-04-24 8 views
0

私はSPARQLの中に入力名を入力すると、それが映画のタイトルであるかどうかを問い合わせるクエリを書きたいと思います。たとえば、 -SPARQLクエリを使用して、何かがムービータイトルであるかどうかをチェックする方法は?

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

クエリ結果はムービーであることを示します。今、あいまいな名前を入力すると、何も返されません。

たとえば、Inceptionの代わりにCaptain_Phillipsと入力すると、何も返されません。

名前がムービータイトルであるかどうかをあいまいなケースで取得する方法がわかりません。

+0

あなたが動作しない例がありますか?それとも今何が問題なの?そして、リソースが 'dbo:Film'や' schema:Movie'クラスに属しているのかどうか尋ねるのはなぜですか? – AKSW

答えて

0

http://dbpedia.org/resource/Captain_Phillipsは映画ではなく、人物についてです。 http://dbpedia.org/resource/Captain_Phillips_(film)は、scehma:Movieタイプです。

試してみてください。

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")). 
}