我正在尝试使用SPARQL 端点为 DBpedia 资源提取 Wikipedia 类别或 Yago 分类的层次结构。例如,我想以实体的分层形式找出所有可能的类别和类,例如http://dbpedia.org/resource/Nokia,如事物 → 组织 → 公司 → ... → 诺基亚。
问问题
2571 次
1 回答
5
一个简单的 SPARQL 选择可以检索您感兴趣的信息,尽管它不会按层次结构排列。您对获取资源的所有类型以及rdfs:subClassOf
它们之间的关系感兴趣。这是一个非常简单的诺基亚查询,可以在DBpedia SPARQL 端点上运行
SELECT * WHERE {
dbpedia:Nokia a ?c1 ; a ?c2 .
?c1 rdfs:subClassOf ?c2 .
}
如果您将该结果集中的每一对类视为有向边并执行拓扑排序,那么您将看到诺基亚资源所属的类的层次结构。实际上,由于将其视为图可能很方便,因此您可以使用 SPARQL 构造查询以 RDF 图的形式获取它。
CONSTRUCT WHERE {
dbpedia:Nokia a ?c1 ; a ?c2 .
?c1 rdfs:subClassOf ?c2 .
}
构造查询生成此图(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 类别。dcterms:subject
DBpedia 资源通过属性与其相应文章所属的 Wikipedia 类别相关联。然后,这些维基百科类别按层次结构构建skos:broader
。不过,这些确实不是个人的类型。例如,数据包含:
dbpedia:Nokia dcterms:subject category:Finnish_brands
category:Finnish_brands skos:broader category:Brands_by_country
虽然说诺基亚是芬兰品牌可能是有道理的,但说诺基亚是一个品牌国家就没有多大意义了。
于 2013-06-24T11:27:41.127 回答