尝试向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 .
}
缺少什么?
答案 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 }
}