基于部分名称匹配检索维基数据 ID 候选者
Retrieve Wikidata ID candidates based on a partial name match
我有一些特定语言的实体,我正在尝试从维基数据中检索与这些名称匹配的可能 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。
我遇到的问题是,如果我的名字包含一些变形,那么数据库中将不会完全匹配,也不会 returned。
即使在名称为“Ministerium für Auswärtige Angelegenheiten”的当前示例中,如果我删除“für”一词,我也不会得到任何结果 returned。
有没有办法让搜索更灵活,return 最接近查询的结果,即使它们不正确?
P.S。我正在通过 Python,使用 SPARQLWrapper
未使用 WQS SPARQL 服务,IIANM。
对于类似的用例,使用全文搜索引擎可能是可行的。查看a search query in the API Sandbox,返回一些相关结果。
我有一些特定语言的实体,我正在尝试从维基数据中检索与这些名称匹配的可能 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。
我遇到的问题是,如果我的名字包含一些变形,那么数据库中将不会完全匹配,也不会 returned。
即使在名称为“Ministerium für Auswärtige Angelegenheiten”的当前示例中,如果我删除“für”一词,我也不会得到任何结果 returned。
有没有办法让搜索更灵活,return 最接近查询的结果,即使它们不正确?
P.S。我正在通过 Python,使用 SPARQLWrapper
未使用 WQS SPARQL 服务,IIANM。
对于类似的用例,使用全文搜索引擎可能是可行的。查看a search query in the API Sandbox,返回一些相关结果。