我正在寻找帮助从WikiData中获取下表......
#Cities in US with population and inception dates
SELECT DISTINCT ?city ?cityLabel ?countryLabel ?popDate ?population ?date WHERE {
{?city (wdt:P31/wdt:P279*) wd:Q515 . }
UNION
{?city (wdt:P31/wdt:P279*) wd:Q3957 .}
?city (wdt:P17) wd:Q30 .
?city wdt:P17 ?country .
?city wdt:P571 ?date .
{
SELECT (MAX(?popDate) AS ?popDate) ?city WHERE {
{?city (wdt:P31/wdt:P279*) wd:Q515 . }
UNION
{?city (wdt:P31/wdt:P279*) wd:Q3957 .}
?city (wdt:P17) wd:Q30 .
?city wdt:P17 ?country .
?city p:P1082 ?pop_statement .
OPTIONAL {
?pop_statement pq:P585 ?popDate .
}
?pop_statement ?p ?population .
}
GROUP BY ?city
ORDER BY DESC(?popDate)
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY ASC(?cityLabel)
我有一个查询工作,可以让我列出美国境内的所有城市(Q515)或城镇(Q3957)。我能够添加子查询以获得与每个城市的人口相关的可选最大时间点,以便我可以获得最新的人口价值。虽然我不知道如何实际获得该日期的匹配人口,更不用说州,县作为单个领域,最后是每个城市的开始日期。
?popDate
不幸的是,这是我在任何SPARQL代码上的第一次尝试,我不知道接下来该做什么。仍然需要......