Подсчет в 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, который может быть или не быть правильным :).