2011-05-11 55 views
10

行,所以我有這個疑問計數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 :(。所以,因爲有它具有這種性質的一次或多次,但我如何纔能有此屬性大使的數量無論多少次的人則更多計數他們有它,你可以在一個查詢做到這一點

感謝

+1

正如喬納森的解決方案所示,您的問題不是重複,而是您說要得到不同的計數,而不是計算不同的實例。如果您在SELECT中包含實例和?名稱,則只會出現多名問題... – 2011-05-12 01:38:14

回答

14

你可能想試試這個:?

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的結果,WH ich可能會或可能不正確:)。

+2

請注意,這是使用SPARQL 1.1功能:COUNT() - 聚合 - 以及SELECT中的變量。 – dajobe 2011-05-24 16:47:07