Я пытаюсь написать запрос SPARQL, который подсчитывает только количество голландских политиков для каждого университета. Однако на каждый dbo:almaMater для некоторых политиков приходится один лишний ресурс (их специальность, например, dbr:Sociology). Это также отражено в COUNT. Например. Я получаю счет 49 для Лейденского университета, где должно быть только 42. Есть идеи, как я могу это решить? Я пробовал ФИЛЬТР НЕ СУЩЕСТВУЕТ и МИНУС, но оба ничего не делают для подсчета. Спасибо.
Мой запрос:
SELECT distinct ?education (COUNT(?education) AS ?edu_count)
WHERE { ?name <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/ontology/Person>.
?name <http://dbpedia.org/ontology/birthPlace> <http://dbpedia.org/resource/Netherlands>.
?name <http://dbpedia.org/ontology/party> ?party.
?name <http://dbpedia.org/ontology/almaMater> ?education.
?education <http://dbpedia.org/ontology/type> <http://dbpedia.org/resource/Public_university>.
} GROUP BY ?education
ORDER BY DESC(?edu_count)
?name dbo:party ?party
попробуйтеfilter exists { ?name dbo:party ?party }
. P.S. Почему sql? - person Stanislav Kralin   schedule 06.10.2020SELECT ?education (COUNT(DISTINCT ?name) AS ?cnt)
- person UninformedUser   schedule 06.10.2020