获取维基百科文章的父类别

时间:2014-11-03 17:00:40

标签: java sparql wikipedia user-profile

我有一个维基百科用户列表和他们编辑的文章 我正在尝试为每一个构建一个分层的配置文件。

问题是我很难为每篇文章获取父类别 我想要的是例如关于披萨获得“菜肴”或“食物”的文章 我正在使用jena和Yago以及一个简单的SPARQL查询,看起来像这样:

String sparqlQueryString = "BASE <http://yago-knowledge.org/resource/>"
                + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
                + "SELECT ?supercat WHERE { "
                + "<" + child + ">" + " rdf:type ?supercat . "
                + "}";

(这里的孩子是文章)
所以我想问一下是否有人知道如何从中获得正确的父类别。而且,如果有可能或者如果有人有关于将文章及其父母的所有标题排序为等级用户兴趣简介的想法。

1 个答案:

答案 0 :(得分:1)

目前还不清楚你在问什么。类别将具有超级 - 类别和 - 类别,并且文章属于类别,但文章没有父级类别。如果查看DBpedia资源的HTML呈现,可以看到其类别是 dcterms:subject 属性的值。例如,在dbpedia:Pizza,您可以看到

  
      
  • DCTERMS:受试者   
        
    • 类别:扁面包
    •   
    • 类别:Greek_inventions
    •   
    • 类别:Italian_cuisine
    •   
    • 类别:Italian_inventions
    •   
    • 类别:Mediterranean_cuisine
    •   
    • 类别:披萨
    •   
    • 类别:World_cuisine
    •   
  •   

因此,您可以使用这样的查询来检索这些值:

select ?category { dbpedia:Pizza dcterms:subject ?category }

SPARQL results

现在,如果您有一个类别,例如category:Flatbreads,并且您确实想要其超类别,则可以看到它们通过 skos:wider 属性进行连接。所以:

select ?supercategory { category:Flatbreads skos:broader ?supercategory }

SPARQL results