问题描述
我有一些使用特定语言的实体,我正在尝试从 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,返回一些相关结果。