2015-05-29 60 views
3

我目前通过使用R中的SPARQL包查询DBPedia的人名列表。现在我正在计算一个人的不同类别,例如数字wikilinkexternal_link。但我只知道算每人在一起的所有项目,如:使用SPARQL计算DBpedia wikilink和外部链接的数量

query= "SELECT COUNT (*){ 
    <http://dbpedia.org/resource/Philipp_Melanchthon> ?p ?o 
    }" 

这只是打印出所有的物品为一个人的数量,有没有办法打印出来的不同类别的计数分别为一人?许多thx。

+0

不客气。如果您的问题已得到解答,您可以考虑[解决](http://stackoverflow.com/help/accepted-answer)答案。 – Artemis

回答

4

正如你指出了下面的查询为您提供所有与之相关的关系和对象:

SELECT distinct *{ 
    dbpedia:Philipp_Melanchthon ?p ?o. 
} 

如果你想找出的外部链接,您需要在此相应的属性,以取代?p案例dbpedia-owl:wikiPageExternalLink

SELECT distinct *{ 
    dbpedia:Philipp_Melanchthon dbpedia-owl:wikiPageExternalLink ?o. 
} 

因此指望会给你的外部链接:

SELECT (count(?o)){ 
    dbpedia:Philipp_Melanchthon dbpedia-owl:wikiPageExternalLink ?o. 
} 
+0

超级! Thx,我真的想给你一票,但我没有足够的声誉... – hui

+0

最后一个查询是不合法的。它需要'select distinct(count(?o)as?something){...}'。那么这将是合法的,但仍可能不正确。只有一个计数,所以** distinct **在这里是无用的。它可能应该是'select(count(distinct?o)as?){...}',这样你就可以计算不同的?o值,而不是选择不同的?o计数。 –

+0

谢谢Jashua,修复它。 – Artemis