从DBpedia列出国家/地区

时间:2018-01-26 16:05:40

标签: sparql dbpedia

尝试向DBpedia查询所有国家/地区的列表,其中列出了dbo:longName属性和每个国家/地区的资本,但返回的结果为0。无法查看查询的错误。

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>

SELECT ?country ?capital
WHERE {
 ?country a dbo:longName ;
    dbo:capital ?capital .
}

缺少什么?

1 个答案:

答案 0 :(得分:4)

您遗失?country rdf:type dbo:Country而非dbo:longName。正确的查询应该是:

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>

SELECT ?country ?capital
WHERE {
 ?x a dbo:Country.
 ?x dbo:longName ?country.
 ?x dbp:capital ?capital
}

更新

根据您的评论,您需要该国家/地区的URI及其资金。因此,您不需要dbo:longName,因为您不需要国家/地区标签名称。您将选择实例:

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>

SELECT ?country ?capital
WHERE {
 ?country a dbo:Country.
 ?country dbo:capital ?capital
}

请注意,结果将带来灭绝的国家。如果您要过滤已结束的国家/地区,则应通过以下方式获得此结果:

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>

SELECT ?country ?capital
WHERE {
 ?country a dbo:Country.
 ?country dbo:capital ?capital.
 FILTER NOT EXISTS { ?country dbo:dissolutionYear ?yearEnd }
}