如何获取dbpedia中的所有类别?

时间:2014-05-09 18:35:37

标签: c# uri sparql dbpedia spotlight-dbpedia

我正在使用DBPediaSpotLight库并尝试获取dbpedia中每个单词的uri,如:

  

Word:教育

     

URI是:http // dbpedia.org / resource / Teacher

     

类别:/ business / job_title

我希望获得“teach”(3)级别的所有子类别。我试着在sparql中查找查询但是我找不到我想要的内容。

1 个答案:

答案 0 :(得分:3)

http://dbpedia.org/resource/Teacher(缩写为dbpedia:Teacher)不是DBpedia中的一个类别,因此要求它的子类别并没有多大意义。但是,http://dbpedia.org/resource/Category:Teaching 是一个类别,并且确实有子类别。 DBpedia使用skos组织类别:更广泛的属性。每个超类别都是skos:比其子类别更广泛。要获得最多三个级别的子类别,您可以使用如下查询:

select distinct ?subcategory where {
  category:Teaching skos:broader?/skos:broader?/skos:broader ?subcategory
}

SPARQL results

具有/的属性路径表示一个属性路径,后跟另一个属性路径。属性路径后面的问号表示路径出现0或1次。因此路径

skos:broader?/skos:broader?/skos:broader

表示(0或1更宽)/(0或1更宽)/更宽,这意味着您将在教学和子类别1,2或3更广泛的链接之间找到链接。