【发布时间】:2020-05-11 03:15:22
【问题描述】:
我对 Wikidata SPARQL 查询的理解是,您可以在two ways 中过滤英文标签的结果。
- 添加
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }调用标签服务;或 - 为每个输出标签添加
?thing rdfs:label ?thingLabel FILTER (lang(?thingLabel) = "en")。
我正在运行一个查询,试图以英语获取实体的所有属性。我关注了Stackoverflow post 并提出了两个问题。
查询 1:Running this query 返回 47 个结果。
SELECT ?itemLabel ?propLabel ?statement_property_objLabel
WHERE {
VALUES (?item) {(wd:Q24)}
?item ?property [?statement_property ?statement_property_obj] .
?prop wikibase:claim ?property.
?prop wikibase:statementProperty ?statement_property.
# Call label service.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
} ORDER BY ?propLabel
查询 2:Running this query 返回 35 个结果。
SELECT ?itemLabel ?propLabel ?statement_property_objLabel
WHERE {
VALUES (?item) {(wd:Q24)}
?item ?property [?statement_property ?statement_property_obj] .
?prop wikibase:claim ?property.
?prop wikibase:statementProperty ?statement_property.
# Call label service for each label.
?item rdfs:label ?itemLabel FILTER (lang(?itemLabel) = "en") .
?statement_property_obj rdfs:label ?statement_property_objLabel FILTER (lang(?statement_property_objLabel) = "en") .
?prop rdfs:label ?propLabel FILTER (lang(?propLabel) = "en") .
} ORDER BY ?propLabel
为什么第二个查询返回的行数更少?感谢您的帮助。
【问题讨论】: