尽管项目具有这些数据,但维基数据查询服务结果中缺少数据字段
Missing data fields in Wikidata Query Service results despite items having these data
我正在尝试使用 SPARQL 从维基数据中检索一些城市,但返回的几个项目的大部分字段都是空的,尽管这些项目具有这些数据。我不明白下面的查询有什么问题 (link to WQS). For example, the municipality Almelo has its coordinates (P625
), and parent place (P131
) 在结果中错误地丢失了:
SELECT ?mun ?munLabel ?coords ?parentPlace ?area WHERE {
?mun p:P31 ?instanceOf # Get statement because we need this later
.
?instanceOf ps:P31/wdt:279* wd:Q2039348.
OPTIONAL {
?mun wdt:P625 ?coords;
wdt:P131 ?parentPlace;
wdt:P2046 ?area
.
}
MINUS { ?instanceOf pq:P582 ?endTime. } # Don't show municipalities that have an end time
service wikibase:label { bd:serviceParam wikibase:language "en". }
} ORDER BY ?munLabel
您必须独立声明 OPTIONAL
每个语句:
OPTIONAL { ?mun wdt:P625 ?coords . }
OPTIONAL { ?mun wdt:P131 ?parentPlace . }
OPTIONAL { ?mun wdt:P2046 ?area . }
否则,如果其中一个缺失,则整个 OPTIONAL
块将被忽略。
这是因为您使用了一个 OPTIONAL
语句,而不是分别使用 3 个。
在这种情况下,Almelo 没有 'area'、wdt:P2046
,因此整个 OPTIONAL
语句的计算结果为假,因此它没有绑定任何变量。
以下查询有效:
请注意,我们有 3 个不同的可选语句,因此它们可能无法彼此独立地绑定变量。
SELECT ?mun ?munLabel ?coords ?parentPlace ?area WHERE {
?mun p:P31 ?instanceOf # Get statement because we need this later
.
?instanceOf ps:P31/wdt:279* wd:Q2039348.
OPTIONAL {?mun wdt:P625 ?coords }
OPTIONAL {?mun wdt:P131 ?parentPlace }
OPTIONAL {?mun wdt:P2046 ?area }
MINUS { ?instanceOf pq:P582 ?endTime. } # Don't show municipalities that have an end time
service wikibase:label { bd:serviceParam wikibase:language "en". }
} ORDER BY ?munLabel
我正在尝试使用 SPARQL 从维基数据中检索一些城市,但返回的几个项目的大部分字段都是空的,尽管这些项目具有这些数据。我不明白下面的查询有什么问题 (link to WQS). For example, the municipality Almelo has its coordinates (P625
), and parent place (P131
) 在结果中错误地丢失了:
SELECT ?mun ?munLabel ?coords ?parentPlace ?area WHERE {
?mun p:P31 ?instanceOf # Get statement because we need this later
.
?instanceOf ps:P31/wdt:279* wd:Q2039348.
OPTIONAL {
?mun wdt:P625 ?coords;
wdt:P131 ?parentPlace;
wdt:P2046 ?area
.
}
MINUS { ?instanceOf pq:P582 ?endTime. } # Don't show municipalities that have an end time
service wikibase:label { bd:serviceParam wikibase:language "en". }
} ORDER BY ?munLabel
您必须独立声明 OPTIONAL
每个语句:
OPTIONAL { ?mun wdt:P625 ?coords . }
OPTIONAL { ?mun wdt:P131 ?parentPlace . }
OPTIONAL { ?mun wdt:P2046 ?area . }
否则,如果其中一个缺失,则整个 OPTIONAL
块将被忽略。
这是因为您使用了一个 OPTIONAL
语句,而不是分别使用 3 个。
在这种情况下,Almelo 没有 'area'、wdt:P2046
,因此整个 OPTIONAL
语句的计算结果为假,因此它没有绑定任何变量。
以下查询有效: 请注意,我们有 3 个不同的可选语句,因此它们可能无法彼此独立地绑定变量。
SELECT ?mun ?munLabel ?coords ?parentPlace ?area WHERE {
?mun p:P31 ?instanceOf # Get statement because we need this later
.
?instanceOf ps:P31/wdt:279* wd:Q2039348.
OPTIONAL {?mun wdt:P625 ?coords }
OPTIONAL {?mun wdt:P131 ?parentPlace }
OPTIONAL {?mun wdt:P2046 ?area }
MINUS { ?instanceOf pq:P582 ?endTime. } # Don't show municipalities that have an end time
service wikibase:label { bd:serviceParam wikibase:language "en". }
} ORDER BY ?munLabel