SPARQL DISTINCT против REDUCED

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


person Infinite    schedule 07.06.2010    source источник


Ответы (2)


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

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

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

person user205512    schedule 07.06.2010
comment
Только что нашел это: franz.com/agraph/ support/documentation/current/ говорит - Если вам не нужно удалять дубликаты, но вам также не нужны избыточные записи - что было бы в том случае, если вы полагаетесь на правильность подсчета, например — тогда вместо DISTINCT можно указать REDUCED. Это позволяет AllegroGraph отбрасывать повторяющиеся значения, если это выгодно. - person Tomalak; 07.06.2010
comment
Мы используем REDUCED при работе с очень большими наборами результатов, где DISTINCT будет слишком медленным, но есть много дубликатов. Хотя это редко бывает полезно. - person Steve Harris; 05.11.2012
comment
В этом документе говорится, что REDUCED крайне редко встречается в запросах в дикой природе. . - person alexis; 22.07.2020

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

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

person RobV    schedule 08.06.2010