如何使用DBpedia找到所有属于两个给定类别的成员的维基百科页面?

时间:2012-07-02 10:48:49

标签: sparql wikipedia dbpedia

我几年前涉足DBpedia并发现它很有吸引力,但现在我想在多年不使用它之后执行查询,我发现它完全无法穿透。

我应该发出什么SPARQL查询来检索属于“类别ABC”和“类别XYZ”成员的所有维基百科页面的集合?

我能找到的所有例子似乎都比我看似基本的问题要多得多,因此很难将某些事情简化为最低限度。

(作为一个例子,我想找到所有为意大利队踢过职业足球的澳大利亚球员。)

1 个答案:

答案 0 :(得分:2)

资源和类别之间的链接使用dcterms:subject关系表示(例如,您可以看到Elvis Presley的DBPedia表示)。

因此,要查询属于两个类别的所有资源(例如“美国男歌手”和“同卵双胞胎”),只需执行以下操作:

SELECT ?res    
WHERE { 
 ?res dcterms:subject category:American_male_singers, category:Identical_twins .
} 

通常,在尝试通过DBPedia制定SPARQL查询时,首先要浏览一下(就像我通过查看Elvis页面一样),尝试找出哪些属性和关系可用。

编辑 顺便提一下,上面的查询会自己检索DBPedia资源。如果你想获得实际的维基百科页面,你应该调整你的查询:

SELECT ?wikiPage   
WHERE { 
 ?res dcterms:subject category:American_male_singers, category:Identical_twins ;
      foaf:page ?wikiPage .
}