Ошибка разбора при использовании фильтра в связанный mdb SPARQL

Я пытаюсь запросить 2 конкретных фильмов и их imdb страниц с помощью connectedmdb, и он выдает ошибку разбора.

Я получаю список всех фильмов, когда убираю нижнюю строку. Как мне получить ссылки из определенного набора.

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

2 ответа

Спецификация SPARQL 1.1 показывает эквивалентность IN

https://www.w3.org/TR/sparql11-query/

так

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

такой же как

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

SPARQL 1.0

Вы можете попробовать сопоставить через VALUES вместо того, чтобы получать все совпадения и фильтровать нужные значения:

SELECT ?title ?imdbID 
WHERE {
   ?film foaf:page ?imdbID . 
   VALUES ?title {"The Magician" "Royal Flash"} .
   ?film dc:title ?title
}
Другие вопросы по тегам