根据部分名称匹配检索 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,返回一些相关结果。