Сохранятся ли графики SPARQL после обновлений?

У меня есть некоторые элементы в графе, которые мне нужно извлечь с помощью SPARQL и обработать по отдельности. Я хочу получить каждый элемент, используя OFFSET и LIMIT, например

SELECT *
WHERE
{ ?s ?p ?o }
OFFSET 23
LIMIT 1

Кажется, что сервер Jena Fuseki поддерживает порядок элементов, когда нет обновлений, так что следующий элемент со смещением 24 всегда будет одним и тем же. Это голословное предположение? Будет ли порядок прежним после обновления?


person Bondolin    schedule 25.06.2013    source источник


Ответы (1)


Ничего не гарантировано. Тот факт, что каждый раз возвращается один и тот же порядок, не является частью формального API.

После обновления вполне может измениться. Это зависит от используемой вами реализации хранилища.

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

Используйте ORDER BY, чтобы получить фиксированный заказ.

person AndyS    schedule 25.06.2013
comment
Спасибо. Хорошо это или плохо, но мой список индексируется bnodes. Я полагаю, я не могу надежно их заказать, потому что они тоже меняются? - person Bondolin; 26.06.2013
comment
Есть ли лучший способ индексировать их, чем просто беспорядок UUID? - person Bondolin; 26.06.2013
comment
Jena будет стабильно сортировать бноды, если они поступают из постоянного хранилища. - person AndyS; 27.06.2013