我想要一个 SPARQL 查询来检索一个国家/地区的官方语言,例如阿富汗:
SELECT ?langCode ?itemLabel WHERE {
wd:Q889 wdt:P37 ?officialLanguage.
?officialLanguage rdfs:label ?itemLabel.
OPTIONAL { ?officialLanguage wdt:P424 ?langCode. }
FILTER(LANG(?itemLabel) = "en")
}
该查询尽可能有效并返回九个结果。然而,其中大多数(例如俾路支语和努里斯塔尼语)在维基数据中使用“适用于部分”属性(P518)被标记为“区域语言”(Q770220)。如何从结果中排除这些内容?
我已经尝试了很多事情,使用MINUS
or FILTER NOT EXISTS
,但无法让它工作。
为了处理限定符,您可以使用以下前缀:
p:
用于将项目与声明链接起来;ps:
带有其对象的语句;pq:
带有限定符的语句。因此,您想要的查询采用以下形式:
也可以看看: