Между чем различие DISTINCT
и REDUCED
в SPARQL?
УМЕНЬШЕНИЕ похоже на ОТЛИЧИТЕЛЬНЫЙ вариант «наилучшего усилия». В то время как DISTINCT гарантирует отсутствие повторяющихся результатов, REDUCED может удалить некоторые, все или совсем не дублировать.
Какой в этом смысл? Что ж, DISTINCT может быть дорогим; REDUCED может выполнять простую работу по дедупликации (например, удалять немедленно повторяющиеся результаты) без необходимости запоминать каждую строку. Для многих приложений этого достаточно.
Сказав, что я никогда не использовал REDUCE, я никогда не видел, чтобы кто-то использовал REDUCED, и никогда не видел, чтобы REDUCED упоминался в разговоре или руководстве.
На мой взгляд (и в моей собственной реализации SPARQL) REDUCED фактически является необязательным ограничением DISTINCT, которое применяется только в том случае, если механизм сочтет это необходимым, т.е. механизм запросов решит, следует ли устранение повторяющихся результатов на основе запроса
В моей собственной реализации я удаляю дубликаты только при использовании REDUCED, если также использовалось OFFSET / LIMIT