我对wikidata和sparql还是很陌生,所以也许我遗漏了一些东西,我希望我的问题会很清楚,即使不是很简短。
我正在尝试获取一个国家所有城市的清单。 我认为这是一个非常简单的任务(指出每个国家都有这样的行政实体) 经过一番努力,我的问题是:
有可能还是我应该寻找其他来源?
...如果可能的话...正确的方法是什么?
这是我成功汇总的查询,应该可以将卢森堡的结果还给我(例如)
SELECT ?item ?itemLabel
WHERE
{
VALUES ?country {wd:Q32 }
?item wdt:P31/wdt:P279* wd:Q515 .
?item wdt:P17 ?country ;
rdfs:label ?itemLabel.
FILTER(LANG(?itemLabel) = "en").
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }.
}ORDER BY ?itemLabel
它给了我14条结果,但是在这里我可以看到它们是州(https://en.wikipedia.org/wiki/List_of_communes_of_Luxembourg),但是市政府更多
我提出的查询的另一个问题是,在某些情况下,结果包含古老的城市。
所以我认为Q515显然不是正确的实体。 有诸如Q70208“瑞士市政当局”(瑞士最小的政府部门)或Q493522(比利时)之类的实体。但是它们还是针对特定国家/地区的。
Q1799794“特定级别的行政领土实体”给了我所有的行政实体,也许我应该从Q4057633“行政领土实体的层次结构”的最大值中以某种方式指定我需要的层次...但是我开始感到自己在抽象中旋转
我发现的最合适的实体是 -Q15284“市政”(具有公司身份且通常具有自治权或管辖权的城市行政区划) 它也应该是最简单的一种,但是对我的查询没有结果。
因此(如果可能的话,我可以进行错误的查询)具有错误的实体的正确查询或具有错误的查询的正确实体(Q15284)。
我该怎么办?