提问人:aethelfirth 提问时间:10/26/2023 更新时间:10/26/2023 访问量:27
如何使用特定语言的标签+其他过滤条件查询维基数据?
How to query Wikidata using labels in a specific language + other filtering criteria?
问:
我的目标是查询维基数据并获取标签包含特定字符串的在世人员列表。
例如,我用这个代码搜索了西尔维奥·贝卢斯科尼,结果得到了皮尔·西尔维奥·贝卢斯科尼,因为西尔维奥已经死了,而皮尔·西尔维奥还在离开。
SELECT DISTINCT ?item ?itemLabel WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE]". }
{
SELECT DISTINCT ?item WHERE {
?item p:P31 ?statement0.
?statement0 (ps:P31/(wdt:P279*)) wd:Q5.
MINUS {
?item p:P570 ?statement_1.
?statement_1 psv:P570 ?statementValue_1.
?statementValue_1 wikibase:timeValue ?P570_1.
}
?item p:P735 ?statement2.
?statement2 (ps:P735/(wdt:P279*)) wd:Q539504.
?item p:P734 ?statement3.
?statement3 (ps:P734/(wdt:P279*)) wd:Q24073854.
}
LIMIT 10
}
}
结果很好,但问题是我为人名使用了单独的属性(P735 = 名字,P734 = 姓氏),并将它们中的每一个都设置为特定值(Q539504 = Silvio,Q24073854 = Berlusconi)。我只需要搜索带有项目标签的字符串(例如“西尔维奥·贝卢斯科尼”),而无需将字符串分成多个值(名字 = Silvio,姓氏 = 贝卢斯科尼)。
答: 暂无答案
评论
rdfs:label
"Silvio"@en