Обратите внимание, что ваш первый запрос использует недопустимый синтаксис SPARQL.Вы получаете результат только потому, что запрашиваемый вами движок (если вы запрашиваете DBpedia, как оказалось, это Virtuoso) очень прощает многие ошибки.Правильный и полный синтаксис будет -
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT ( COUNT ( DISTINCT ?url ) AS ?HowManyFilms )
WHERE {
?url a dbo:Film .
}
Что нужно знать, для вашего второго запроса -
OFFSET
означает "пропустить столько строк из общего набора результатов« LIMIT
означает« дать мне только столько строк (начиная с любого OFFSET
) » - Строки могут быть доставлены в любом порядке, и этот порядок может меняться от запроса к-просите, если вы не включите
ORDER BY
.Это может означать, что несколько запросов с разными OFFSET
могут не получить все строки и могут доставлять дубликаты строк, когда все частичные наборы результатов объединены.Итак, в любое время, когда вы используете OFFSET
и / или LIMIT
, рекомендуется также использовать ORDER BY
.
Все вместе, добавьте это в первый запрос, чтобы получитьпервые 10000 строк -
ORDER BY ?url LIMIT 10000 OFFSET 0
- и это для получения последних 9 980 строк -
ORDER BY ?url LIMIT 10000 OFFSET 120000
Я оставляю промежуточные запросы для вас ...