如何使用SPARQL查询检查某个内容是否是电影标题?

如何使用SPARQL查询检查某个内容是否是电影标题?,sparql,owl,dbpedia,Sparql,Owl,Dbpedia,我想在SPARQL中编写一个查询,如果我们提供任何输入名称,查询结果将告诉我们它是否是电影标题。例如—— 选择distinct?类型,其中{ a型。 过滤正则表达式(str(?type),“^.*movie”,“i”)} 查询结果告诉我们这是一部电影。现在,当我们输入那些有歧义的名称时,它将不返回任何内容 例如,如果我们输入Captain_Phillips代替Inception,它将返回--nothing 所以,我想知道如何在模棱两可的情况下得到一个名字是否是电影标题 是关于人的,而不是电影。

我想在SPARQL中编写一个查询,如果我们提供任何输入名称,查询结果将告诉我们它是否是电影标题。例如——

选择distinct?类型,其中{
a型。
过滤正则表达式(str(?type),“^.*movie”,“i”)}
查询结果告诉我们这是一部电影。现在,当我们输入那些有歧义的名称时,它将不返回任何内容

例如,如果我们输入
Captain_Phillips
代替
Inception
,它将返回--nothing

所以,我想知道如何在模棱两可的情况下得到一个名字是否是电影标题

是关于人的,而不是电影。属于scehma类型:电影

尝试:

选择DISTINCT
?类型
哪里
{
a型。
过滤器(正则表达式(str(?type),“^.*movie”,“i”))。
}
如果您只想检查结果是否存在:

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

FILTER (regex(str(?type), "^.*movie", "i")). 
}
询问
{
a型。
过滤器(正则表达式(str(?type),“^.*movie”,“i”))。
}

您有没有不起作用的示例?或者现在有什么问题?为什么不能询问资源是否属于类
dbo:Film
schema: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")). 
}