Wikidata查询异常:Q60纽约市无结果,Q62旧金山正常返回
问题原因与解决方案
问题出在Wikidata的实例关联逻辑上:
- Q62(旧金山)的直接实例属性(P31)就是Q515(城市),所以你的原始查询能直接匹配到它。
- Q60(纽约市)的直接实例属性是Q15284(美国直辖市),而Q15284是Q515的子类(通过P279属性关联)。你的原始查询只筛选直接以Q515为实例的实体,自然找不到Q60。
要让查询同时覆盖直接实例和子类实例,需要用Wikidata的属性路径语法,修改后的查询如下:
SELECT ?item WHERE { ?item wdt:P31/wdt:P279* wd:Q515 . FILTER(?item = wd:Q60) } LIMIT 10
这个查询里的wdt:P31/wdt:P279*表示:匹配所有通过P31关联到某个实体,且该实体通过任意层级的P279(子类)关联到Q515的项,这样就能包含像纽约市这种属于城市子类的实体了。
内容的提问来源于stack exchange,提问作者Steliyan Georgiev
相关产品推荐
相关产品推荐

