维基数据SPARQL - 国家及其(仍然存在的)邻国



我想从维基数据查询一个拥有SPARQL的国家的邻居,如下所示:

SELECT ?country ?countryLabel WHERE { 
?country wdt:P47 wd:Q183 . 
FILTER NOT EXISTS{ ?country wdt:P576 ?date } # don't count dissolved country - at least filters German Democratic Republic
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}

我的问题是,例如,在这个德国邻国的例子中,仍然显示不再存在的国家,例如:

  • 丹麦王国或
  • 萨尔州。

已经尝试过

我已经可以通过FILTER语句来减少数字。

问题

  • 如何声明将其减少到9个国家?
  • (也分为陆地边界和海上边界会很棒(

另类

  • 在此API上进行过滤对我来说也很好 https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q35
  • 一个数据库或列出或准备的哈希地图与世界上所有有邻国的国家

您可以检查类型为wd:Q133346("边界"(或wd:Q12413618("国际边界"(的实体:

SELECT ?border ?borderLabel ?country1Label ?country2Label ?isLandBorder ?isMaritimeBorder ?constraint {
VALUES (?country1) {(wd:Q183)}
?border wdt:P31 wd:Q12413618 ;
wdt:P17 ?country1 , ?country2 .
FILTER (?country1 != ?country2)
BIND (EXISTS {?border wdt:P31 wd:Q15104814} AS ?isLandBorder)
BIND (EXISTS {?border wdt:P31 wd:Q3089219} AS ?isMaritimeBorder)
BIND ((?isLandBorder || ?isMaritimeBorder) AS ?constraint)
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
} ORDER BY ?country1Label

试试吧!

从某种意义上说,记录是重复的:对于阿富汗-乌兹别克斯坦边境,该列表包含(?country1=Afganistan,?country2=Uzbekistan)(?country1=Uzbekistan,?country2=Afganistan)


  • 一个数据库或列出或准备的哈希地图与世界上所有有邻国的国家

你可以问 https://opendata.stackexchange.com。

相关内容

  • 没有找到相关文章

最新更新