如何从Wikipedia Parent类别遍历到其所有子类别

时间:2014-06-19 15:53:14

标签: sparql wikipedia dbpedia

我正在尝试收集每个国家/地区维基百科中列出的地标列表,例如US Landmarks。但是这个父类别只包括子类别,并且不清楚需要多少层才能获得实际数据。有没有办法对这样的事情进行SPARQL查询?还是有其他办法吗?
像这样的简单查询不会返回任何内容

SELECT DISTINCT ?namedEnt WHERE {?namedEnt <http://purl.org/dc/terms/subject>  <http://dbpedia.org/resource/Category:Category:Landmarks_in_the_United_States_by_state>} limit 10

1 个答案:

答案 0 :(得分:3)

似乎使用DBpedia中的skos:broader来表示sucategory与其父类别之间的关系。如果将其与表示谓词的一个或多个应用程序的*组合,则查询将变为:

PREFIX cat: <http://dbpedia.org/resource/Category:>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

SELECT DISTINCT ?page
WHERE {
    ?subcat skos:broader* cat:Landmarks_in_the_United_States_by_state.
    ?page dcterms:subject ?subcat
}

或者您可以使用/缩短它:

SELECT DISTINCT ?page
WHERE {
    ?page dcterms:subject/skos:broader* cat:Landmarks_in_the_United_States_by_state
}