После комментариев By @AKSW Выше - OPTIONAL
в SPARQL - это left join.
Переупорядочение подзапроса и OPTIONAL решает проблему:
SELECT ?country ?countryLabel ?aCapital ?aCapitalLabel ?coords WHERE {
{
{
SELECT ?country (sample(?capital) as ?aCapital) WHERE {
?country wdt:P31 wd:Q3624078.
FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240} # not a former country
?country wdt:P36 ?capital.
}
GROUP BY ?country
}
OPTIONAL {?aCapital wdt:P625 ?coords.}
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
}
ORDER BY ?countryLabel
LIMIT 1000
Попробуйте здесь .
Обратите внимание, что для сохранения правильного синтаксиса необходимо добавить дополнительный {
+ }
.
См. Также: SPARQL Необязательный запрос