0

我正在尝试使用 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"))
}
4

2 回答 2

1

SPARQL 1.1 规范显示了IN

https://www.w3.org/TR/sparql11-query/#func-in

所以

FILTER (str(?title) IN ("The Magician","Royal Flash"))

是相同的

FILTER (str(?title) = "The Magician" || str(?title) = "Royal Flash")

这是 SPARQL 1.0

于 2017-03-15T11:05:34.503 回答
0

您可以尝试匹配,VALUES而不是获取所有匹配项并过滤掉所需的值:

SELECT ?title ?imdbID 
WHERE {
   ?film foaf:page ?imdbID . 
   VALUES ?title {"The Magician" "Royal Flash"} .
   ?film dc:title ?title
}
于 2017-03-14T21:59:05.247 回答