根据维基数据,战斗是军事行动的子类。然而,当我查询所有军事行动实例时,我得到 699 个结果,而对于所有战斗,我得到 7399 个结果。
军事行动查询
SELECT ?label WHERE {
?subj wdt:P31* wd:Q645883.
?subj rdfs:label ?label.
FILTER((LANG(?label)) = "en")
}
战斗查询
SELECT ?label WHERE {
?subj wdt:P31* wd:Q178561.
?subj rdfs:label ?label.
FILTER((LANG(?label)) = "en")
}
最佳答案
因为您的 SPARQL 查询,特别是属性路径是错误的。
类型通过 subClassOf (wdt:P279
) 连接,但在使用 wdt:P31*
时要求关闭 instance-of
关系>
它必须是wdt:P31/wdt:P279*
参见https://www.wikidata.org/wiki/Property:P279和 https://www.wikidata.org/wiki/Property:P31为了区别。
关于sparql - 为什么查询子类的所有实例比查询 "parent"类获得更多结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41799780/