在linkedmdb SPARQL中使用筛选器时分析错误

在linkedmdb SPARQL中使用筛选器时分析错误,sparql,sparqlwrapper,linkedmdb,Sparql,Sparqlwrapper,Linkedmdb,我试图用linkedmdb查询2部特定电影及其imdb页面,但它抛出了一个解析错误 当我删除下面的行时,我会得到一个所有电影的列表。如何获取特定集合的链接 FILTER (str(?title) IN ("The Magician","Royal Flash")) 这是我的密码 SELECT ?title ?imdbID WHERE { ?film foaf:page ?imdbID . ?film dc:title ?title . FILTER(regex(st

我试图用linkedmdb查询2部特定电影及其imdb页面,但它抛出了一个解析错误

当我删除下面的行时,我会得到一个所有电影的列表。如何获取特定集合的链接

FILTER (str(?title) IN ("The Magician","Royal Flash"))
这是我的密码

SELECT  ?title ?imdbID 
WHERE {
   ?film foaf:page ?imdbID .  
   ?film dc:title ?title .

   FILTER(regex(str(?imdbID), "www.imdb.com" ) )
   FILTER (str(?title) IN ("The Magician","Royal Flash"))
}

您可以尝试通过值进行匹配,而不是获取所有匹配项并筛选出所需的值:

SELECT ?title ?imdbID 
WHERE {
   ?film foaf:page ?imdbID . 
   VALUES ?title {"The Magician" "Royal Flash"} .
   ?film dc:title ?title
}

SPARQL 1.1规范显示了

所以

过滤str?魔术师中的标题,皇家闪光

FILTER str?title=魔术师| | str?title=皇家闪电侠


SPARQL 1.0仍然是相同的错误。我使用的是以下端点,它不支持SPARQL 1.1,因此必须使用SPARQL UNION。下次最好提前显示SPARQL服务的URL。它不支持SPARQL 1.1,因此必须使用SPARQL UNION。请参阅规格:我在中使用之前确实尝试过。问题是,当我检索所有电影或仅检索一部电影时,所有这些变体都起作用。当我试图限制他们中的几个人时,他们就不起作用了。你使用的等价物只会给魔术师一个提示。我想要魔术师和皇家闪光灯的细节,这和滤镜无关。没有任何东西的标题能与《皇家闪电侠》相提并论。您只能查询知识库中的数据。LinkedMDB非常旧,没有与IMDB同步的实时数据集。IBDM页面将是,您可以通过SPARQL检查没有URL值为foaf:page的资源