维基数据:如何通过 SPARQL 查询“官方名称”P1448的“语言”?

问题描述

在编辑项目的属性“官方名称”(P1448,https://www.wikidata.org/wiki/Property:P1448)时,编辑者必须指定语言。但是,这是通过组合框完成的,也不是通过限定符完成的。

例如参见项目“Szczawno-Zdrój”(Q1001231,https://www.wikidata.org/wiki/Q1001231)。一个“官方名称”是“Бад-Зальцбрун”,该值的语言是白俄罗斯语;但是语言不是通过限定符指定的,例如“开始时间”。

如何通过 SPARQL 查询查询“官方名称”的“伪限定符”“语言”?

解决方法

所谓的“伪限定符”就是所谓的语言标签

要为常量字符串指定语言,您可以使用"my syting"@lang。例如:

SELECT ?item
WHERE {
  ?item wdt:P1448 "Бад-Зальцбрун"@be.
}

要为变量字符串指定语言,您可以在查询的正文中使用lang()函数。例如:

SELECT ?officialName
WHERE {
  wd:Q1001231 wdt:P1448 ?officialName
              FILTER (lang(?officialName) = "be") .
}

对于查询字符串语言,您可以在查询的head中使用lang()函数。例如:

SELECT ?officialName (lang(?officialName) AS ?lang)
WHERE {
  wd:Q1001231 wdt:P1448 ?officialName .
}

参考文献:

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...