【问题标题】:Extracting hierarchy for dbpedia entity using SPARQL使用 SPARQL 提取 dbpedia 实体的层次结构
【发布时间】:2012-06-01 18:21:26
【问题描述】:

我正在尝试使用SPARQL endpoint 为 DBpedia 资源提取 Wikipedia 类别或 Yago 分类的层次结构。例如,我想以实体的分层形式找出所有可能的类别和类,例如 http://dbpedia.org/resource/Nokia,如事物 → 组织 → 公司 → ... → 诺基亚。

【问题讨论】:

  • 我尝试使用 sparql 提取类别,但无法成功实现。可以给点建议吗?
  • 我问的原因是,如果您真正详细地展示您尝试过的查询以及为什么它没有达到您的预期,通常会更有帮助。然后,我们可以为您提供有关如何解决问题的建议。
  • 我已经能够对一些已知实体(如上述实体)进行特定查询,但我有一个相当大的实体列表,我想自动化以获得所需的结果。

标签: sparql semantic-web dbpedia


【解决方案1】:

一个简单的 SPARQL 选择可以检索您感兴趣的信息,尽管它不会按层次结构排列。您对获取资源的所有类型以及它们之间的rdfs:subClassOf 关系感兴趣。这是一个非常简单的Nokia 查询,可以在DBpedia SPARQL endpoint 上运行

SELECT * WHERE {
  dbpedia:Nokia a ?c1 ; a ?c2 .
  ?c1 rdfs:subClassOf ?c2 .
}

SPARQL results

如果您将该结果集中的每一对类视为有向边并执行topological sort,那么您将看到诺基亚资源所属类的层次结构。实际上,由于将其视为图可能很方便,因此您可以使用 SPARQL 构造查询以 RDF 图的形式获取它。

CONSTRUCT WHERE {
  dbpedia:Nokia a ?c1 ; a ?c2 .
  ?c1 rdfs:subClassOf ?c2 .
}

SPARQL results

构造查询生成此图(N3 格式):

@prefix rdfs:   <http://www.w3.org/2000/01/rdf-schema#> .
@prefix dbpedia-owl:    <http://dbpedia.org/ontology/> .
@prefix owl:    <http://www.w3.org/2002/07/owl#> .
@prefix yago:   <http://dbpedia.org/class/yago/> .
@prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dbpedia:    <http://dbpedia.org/resource/> .

dbpedia-owl:Agent   rdfs:subClassOf owl:Thing .
dbpedia-owl:Company rdfs:subClassOf dbpedia-owl:Organisation .
dbpedia-owl:Organisation    rdfs:subClassOf dbpedia-owl:Agent .
yago:CompaniesBasedInEspoo  rdfs:subClassOf yago:Company108058098 .
dbpedia:Nokia   rdf:type    yago:CompaniesListedOnTheHelsinkiStockExchange ,
        owl:Thing ,
        yago:CompaniesBasedInEspoo ,
        dbpedia-owl:Agent ,
        yago:DisplayTechnologyCompanies ,
        yago:ElectronicsCompaniesOfFinland ,
        dbpedia-owl:Company ,
        dbpedia-owl:Organisation ,
        yago:Company108058098 ,
        yago:CompaniesEstablishedIn1865 .
yago:CompaniesEstablishedIn1865 rdfs:subClassOf yago:Company108058098 .
yago:CompaniesListedOnTheHelsinkiStockExchange  rdfs:subClassOf yago:Company108058098 .
yago:DisplayTechnologyCompanies rdfs:subClassOf yago:Company108058098 .
yago:ElectronicsCompaniesOfFinland  rdfs:subClassOf yago:Company108058098 .

备注

上述查询检索诺基亚的rdf:type 层次结构。在问题中,您还提到了 Wikipedia 类别。 DBpedia 资源通过dcterms:subject 属性与其相应文章所属的维基百科类别相关联。然后这些维基百科类别由skos:broader 分层构建。不过,这些确实不是个人的类型。例如,数据包含:

dbpedia:Nokia dcterms:subject category:Finnish_brands
category:Finnish_brands skos:broader category:Brands_by_country

虽然说诺基亚是一个芬兰品牌可能是有道理的,但说诺基亚是一个 Brand_by_country就没有多大意义了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 2016-03-26
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    相关资源
    最近更新 更多