如何按限定符显示或过滤?
How to show or filter by qualifier?
参见示例。 P297 at Q37024, 有限定符(P582).
Show/debug
这个查询是错误的,如何显示结束时间像Q37024的情况?
SELECT ?item ?iso2_code ?endtime
WHERE {
?item wdt:P297 ?iso2_code
OPTIONAL { ?iso2_code pq:P582 ?endtime }
}
过滤器
我需要所有没有结束时间的项目。
真实案例注释
我正在查询
SELECT DISTINCT ?iso2_code ?wd_id
WHERE {
?item wdt:P297 ?iso2_code
BIND(strafter(STR(?item),"http://www.wikidata.org/entity/") as ?wd_id).
} ORDER BY ?iso2_code
但检索重复项,
- 人工智能 | {Q25228,Q1450765} | Q1450765使用P582,Q25228不用
- CS | {Q33946,Q37024} ...
- 黑暗| {Q35,Q756617}
- GE | {Q230,Q1050859}
- 荷兰 | {Q55,Q29999}
- PS | {Q219060,Q407199}
- 于 | {Q83286,Q838261}
所以我需要排除一个,但正确的是:到结束时间。
PS: 有一本关于 WIKIDATA Qualifiers 的手册,但没有检索数据集的真实案例。
SELECT DISTINCT (?simple_value AS ?iso2_code) ?wd_id
WHERE {
?item p:P297 ?statement .
?statement ps:P297 ?simple_value .
# ?statement a wikibase:BestRank
OPTIONAL { ?statement pq:P582 ?qualifier . }
FILTER ( !bound(?qualifier) )
BIND ( strafter(str(?item), str(wd:)) AS ?wd_id ).
} ORDER BY ?iso2_code
您可以使用 FILTER NOT EXISTS { ?statement pq:P582 ?qualifier . }
而不是
OPTIONAL { ?statement pq:P582 ?qualifier . } FILTER ( !bound(?qualifier) )
.
维基数据数据模型已记录 here. There are many query examples on this page, e. g. this one。
参见示例。 P297 at Q37024, 有限定符(P582).
Show/debug
这个查询是错误的,如何显示结束时间像Q37024的情况?
SELECT ?item ?iso2_code ?endtime
WHERE {
?item wdt:P297 ?iso2_code
OPTIONAL { ?iso2_code pq:P582 ?endtime }
}
过滤器
我需要所有没有结束时间的项目。
真实案例注释
我正在查询
SELECT DISTINCT ?iso2_code ?wd_id
WHERE {
?item wdt:P297 ?iso2_code
BIND(strafter(STR(?item),"http://www.wikidata.org/entity/") as ?wd_id).
} ORDER BY ?iso2_code
但检索重复项,
- 人工智能 | {Q25228,Q1450765} | Q1450765使用P582,Q25228不用
- CS | {Q33946,Q37024} ...
- 黑暗| {Q35,Q756617}
- GE | {Q230,Q1050859}
- 荷兰 | {Q55,Q29999}
- PS | {Q219060,Q407199}
- 于 | {Q83286,Q838261}
所以我需要排除一个,但正确的是:到结束时间。
PS: 有一本关于 WIKIDATA Qualifiers 的手册,但没有检索数据集的真实案例。
SELECT DISTINCT (?simple_value AS ?iso2_code) ?wd_id
WHERE {
?item p:P297 ?statement .
?statement ps:P297 ?simple_value .
# ?statement a wikibase:BestRank
OPTIONAL { ?statement pq:P582 ?qualifier . }
FILTER ( !bound(?qualifier) )
BIND ( strafter(str(?item), str(wd:)) AS ?wd_id ).
} ORDER BY ?iso2_code
您可以使用 FILTER NOT EXISTS { ?statement pq:P582 ?qualifier . }
而不是
OPTIONAL { ?statement pq:P582 ?qualifier . } FILTER ( !bound(?qualifier) )
.
维基数据数据模型已记录 here. There are many query examples on this page, e. g. this one。