Подтвердить что ты не робот

Подсчет в SPARQL

Итак, у меня есть этот запрос

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 свойство. Но

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:( Так что это больше, потому что есть люди, которые имеют это свойство один или несколько раз. Но как мне получить число послов, обладающих этим свойством, независимо от того, сколько раз у них есть. вы делаете это в одном запросе?

Спасибо.

4b9b3361

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