Вы можете проверить объекты типа 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)
.
- база данных или списки или подготовленные HashMaps со всеми странами мира с соседями
Вы можете спросить на https://opendata.stackexchange.com.