2017-04-24 78 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")). 
}