Подсчет в SPARQL
Ok, поэтому у меня есть этот запрос
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT (COUNT(?instance) AS ?count) WHERE {
?instance a <http://dbpedia.org/ontology/Ambassador> .
}
и результат 286. Прохладный. Теперь я хочу получить количество послов, которые имеют http://dbpedia.org/property/name свойство. Но!--3-->
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT (COUNT(?instance) AS ?count) WHERE {
?instance a <http://dbpedia.org/ontology/Ambassador> .
?instance <http://dbpedia.org/property/name> ?name
}
результаты в 533 :(. Так что это больше, потому что есть люди, которые имеют это свойство один или несколько раз. Но как я могу получить количество послов, которые имеют эту собственность, независимо от того, сколько раз они ее имеют. Ты можешь сделать это за один раз? запрос?
спасибо.
1 ответов
вы можете попробовать это:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT (COUNT(DISTINCT ?instance) AS ?count) WHERE {
?instance a <http://dbpedia.org/ontology/Ambassador>;
<http://dbpedia.org/property/name> ?name
}
это дает мне результат 283, который может быть или не быть правильным :).