Ошибка разбора при использовании фильтра в связанный 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
}