You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法过滤荷兰已终止市镇的Wikidata SPARQL查询问题求助

解决荷兰市镇过滤问题的SPARQL修正方案

你的问题出在只过滤了wdt:P582(结束时间),但部分已终止的荷兰市镇用wdt:P576(废除日期)标记撤销状态,所以需要同时排除这两类属性的实体。另外,给结果加上荷兰语名称会更实用,修正后的查询如下:

PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?muncipality ?name (MAX(?population) AS ?maxPopulation)
WHERE
{
  ?muncipality wdt:P31 wd:Q2039348;
               wdt:P1082 ?population;
               rdfs:label ?name.
  # 筛选荷兰语名称
  FILTER(lang(?name) = "nl")
  # 排除有结束时间或废除日期的已终止市镇
  FILTER NOT EXISTS { ?muncipality wdt:P582 ?endTime }
  FILTER NOT EXISTS { ?muncipality wdt:P576 ?abolitionDate }
}
GROUP BY ?muncipality ?name
ORDER BY DESC(?maxPopulation)

补充说明

如果还有少量漏网的已终止市镇,可以追加过滤条件,排除属于“已废除的荷兰市镇”类别的实体:

FILTER NOT EXISTS { ?muncipality wdt:P31 wd:Q18078745 }

把这行加到WHERE块里即可,不过优先用日期属性过滤更精准,因为这类分类标签可能不是所有已终止市镇都有标记。

内容的提问来源于stack exchange,提问作者David Kraakman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 22:29:51