Подтвердить что ты не робот

SPARQL DISTINCT против REDUCED

В чем разница между DISTINCT и REDUCED в SPARQL?

4b9b3361

Ответ 1

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

Какой смысл? Хорошо DISTINCT может быть дорогим; REDUCED может выполнять прямую работу по дублированию (например, удалять сразу повторяющиеся результаты) без необходимости запоминать каждую строку. Во многих приложениях это достаточно хорошо.

Сказав, что я никогда не использовал REDUCE, я никогда не видел, чтобы кто-то использовал REDUCED, и никогда не видел REDUCED, упомянутого в разговоре или учебнике.

Ответ 2

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

В моей собственной реализации я удаляю только дубликаты, когда REDUCED был использован, если OFFSET/LIMIT также используется