Рассмотрим запрос агрегации SPARQL с предложением where
, состоящим только из тройных шаблонов и операторов filter
.
Влияет ли порядок тройных шаблонов или порядок filters
на результаты (не производительность)?Я совершенно уверен, что это не влияет на достоверность результатов.Но, может быть, кто-то может уточнить, почему?Кроме того, влияет ли порядок переменных в group by
на достоверность результата?Я тоже так не думаю, но, может быть, кто-то может объяснить, почему?
Следующий пример только для пояснения;Обычно я спрашиваю.
Запрос подсчитывает количество людей, сгруппированных по цвету глаз и стране, и применяет пару filters
.Запрос содержит только эти четыре тройных шаблона (каждая строка, заканчивающаяся точкой, является тройным шаблоном, т. Е. Тройкой с переменными)
?p wdt:P26 ?human.
?p wdt:P27 ?country.
?human wdt:P31 wd:Q5.
?human wdt:P1340 ?eyeColor.
и этими двумя filters
:
FILTER (?country != wd:Q142)
FILTER (?eyeColor != wd:Q17122705)
Предложение WHERE
не содержит ни OPTIONAL
, UNION
, MINUS
, ..., ни любого другого конструктора;только тройные шаблоны и фильтры.
SELECT ?eyeColor (COUNT(?human) AS ?count) ?country
WHERE
{
?p wdt:P26 ?human.
?p wdt:P27 ?country.
?human wdt:P31 wd:Q5.
?human wdt:P1340 ?eyeColor.
FILTER (?country != wd:Q142)
FILTER (?eyeColor != wd:Q17122705)
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
GROUP BY ?eyeColor ?country
Снова мой вопрос: если мы каким-либо образом изменим порядок шести элементов в предложении WHERE
, это повлияет на результат (не только в этом запросе, но и для похожих по структуре)?Тот же вопрос о том, может ли порядок переменных в GROUP BY
повлиять на результаты, например, GROUP BY ?country ?eyeColor
вместо GROUP BY ?eyeColor ?country
.Опять же, я прошу в целом, а не только для этого дела запрос.