Как я должен сделать, чтобы получить желаемый результат от LinkedIn?

Кто-нибудь объяснит мне это явление? Я запрашиваю конечную точку http://www.linkedmdb.org/snorql с помощью запроса SPARQL: получите список актеров, которые снялись в британском фильме Q1:

SELECT * WHERE {
?Film <http://data.linkedmdb.org/resource/movie/country> <http://data.linkedmdb.org/resource/country/GB> .
?Film <http://data.linkedmdb.org/resource/movie/actor> ?actor.
}

Среди результатов у нас есть актер с идентификатором 11764 Как ни странно, когда я запускаю запрос Q2:

SELECT * WHERE {
   ?Film <http://data.linkedmdb.org/resource/movie/actor> ?actor.
}

Хотя Q2 менее избирателен, чем актер Q1, номер 11764 больше не находится в результате. Обратите внимание, что мы получаем Q2, удаляя первый тройной паттерн Q1 (меньше ограничений)

1 ответ

Решение

Похоже, что это ошибка в движке SPARQL на конечной точке connectedmdb.org, поскольку эти результаты явно противоречивы.

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

Этот запрос:

SELECT * WHERE {
    ?Film <http://data.linkedmdb.org/resource/movie/actor> ?actor . 
    FILTER (?actor = <http://data.linkedmdb.org/resource/actor/11764> )
}

дал мне ожидаемый результат (два результата, оба заполняются ожидаемым актером).

Тем не менее, этот запрос:

 SELECT * WHERE {
    ?Film <http://data.linkedmdb.org/resource/movie/actor> ?actor . 
    FILTER (REGEX(STR(?actor), "11764"))
 }

дал мне ноль результатов, пока этот запрос:

 SELECT * WHERE {
    ?Film <http://data.linkedmdb.org/resource/movie/country> <http://data.linkedmdb.org/resource/country/GB> .
    ?Film <http://data.linkedmdb.org/resource/movie/actor> ?actor . 
    FILTER (REGEX(STR(?actor), "11764"))
 }

дает мне ровно один результат (один фильм ГБ с этим актером), как и ожидалось.

Итак, в заключение: ничего плохого в ваших SPARQL-запросах. Вы, кажется, наткнулись на ошибку в их движке SPARQL - возможно, вы захотите связаться с ними с этой информацией.

Другие вопросы по тегам