我想访问 wikidata 实体的子属性。一个示例可能是属性P1033,它是P4952的子级,用于诸如Q49546之类的实体。如何在 SPARQL 查询中动态执行此操作?
使用在线Wikidata 查询服务提供的查询构建器,我可以构建一个简单的查询,它适用于普通属性(在链接的示例中:mass),但不适用于所需的子属性(在链接的示例中:NPFA-code对于健康危害),即使它们已明确设置在web-result中,它们最终也是空的。旁注:这是与第一段中的示例不同的示例。
期望的目标是动态查询,如下所示:
SELECT ?p ?item ?itemDescription ?prop ?value ?valueLabel ?itemLabel ?itemAltLabel ?propLabel WHERE {
BIND(wd:Q138809 AS ?item)
?prop wikibase:directClaim ?p.
#?item ?p ?value.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".
?value rdfs:label ?valueLabel.
?prop rdfs:label ?propLabel.
?item rdfs:label ?itemLabel;
skos:altLabel ?itemAltLabel;
schema:description ?itemDescription.
}
}
ORDER BY DESC(?prop)
LIMIT 10
使用第 4 行作为注释,我可以根据需要获得我的 propLabel,但没有任何价值;以相反的方式使用该行而不是注释,我只得到设置在第一级的属性,而不是子属性。