如何使用实体名称使用 SPARQL 查询 Wikidata 并检查替代标签?

问题描述

我正在尝试使用实体名称查询维基数据。我的目标是获取实体的维基数据 ID。现在我有类似的东西:

SELECT ?item
WHERE {
    ?item rdfs:label "name_of_thing"@en
}

虽然这通常可以完成工作,但我还想检查标签是否包含在维基数据的替代名称中。

例如,如果我将 "name_of_thing" 替换为 "Philippines AirAsia" 那么我不会得到任何结果,但原因是因为 "AirAsia Philippines" 是条目的专有名称,带有 { {1}} 包含在维基数据页面的“也称为”列中。

我想查询页面,如果第一次获取失败,则检查名称是否包含在“也称为”列中。我该怎么做呢?谢谢。

解决方法

管道操作员为我工作:

Query

SELECT ?item ?prefLabel WHERE {
        VALUES ?prefLabel { "AirAsia Philippines"@en }
        ?item rdfs:label|skos:altLabel ?prefLabel 
}

相关问答

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