Подсчет в SPARQL - PullRequest
       37

Подсчет в SPARQL

10 голосов
/ 11 мая 2011

Хорошо, у меня есть этот запрос

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

Спасибо.

1 Ответ

14 голосов
/ 11 мая 2011

Возможно, вы захотите попробовать это:

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

...