从 DBpedia 列出国家

List countries from 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 .
}

缺少什么?

您遗漏了 ?countryrdf:typedbo: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,因为您不需要国家/地区标签名称。您将 select 个实例:

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 }
}