根据部分名称匹配检索 Wikidata ID 候选

问题描述

我有一些使用特定语言的实体,我正在尝试从 Wikidata 中检索与这些名称匹配的可能 ID。

例如,我有一个德语名字,假设是“Ministerium für Auswärtige Angelegenheiten”,我可以得到与这个名字对应的前 N ​​个候选 ID,如下所示:

SELECT ?item                                                                                                                                                                                                                                                                                                          
    WHERE                                                                                                                                                                                                                                                                                                
    {                                                                                                                                                                                                                                                                                                    
        ?item rdfs:label "Ministerium für Auswärtige Angelegenheiten"@de                                                                                                                                                                                                                                     
    }                                                                                                                                                                                                                                                                                                    
    LIMIT 2 

这会给我 2 个候选 ID。

我遇到的问题是,如果我的名称包含一些变形,那么数据库中将不会出现完全匹配的内容,并且不会返回任何内容

即使在当前名为“Ministerium für Auswärtige Angelegenheiten”的示例中,如果我删除“für”一词,也不会返回任何结果。

有没有办法让搜索更加灵活并返回与查询最接近的结果,即使它们不正确?

附言我是通过 Python 完成的,使用 SPARQLWrapper

解决方法

不使用 WQS SPARQL 服务,IIANM。

对于类似的用例,使用全文搜索引擎可能是可行的。查看a search query in the API Sandbox,返回一些相关结果。

相关问答

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