【发布时间】:2012-03-28 09:44:44
【问题描述】:
我确信我想做的事情很简单,但我似乎无法正确查询。我在数据集中有记录,这些记录具有诸如城市名称之类的值。 'New York' 和它对应的国家代码,例如'US'。我还可以访问完整的国家/地区名称和国家/地区 ISO 代码。
我想从 dbpedia 中获取这些城市的人口和抽象值,方法是使用 where 子句,例如:
Get population where name = "New York" and isoCountryCode = "US"
我已经在这方面寻求帮助,但无济于事。
到目前为止,@rohk 帮助我解决了这个问题,但它并不完全适用于所有位置:
SELECT DISTINCT ?city ?abstract ?pop
WHERE {
?city rdf:type schema:City ;
rdfs:label ?label ;
dbpedia-owl:abstract ?abstract ;
dbpedia-owl:country ?country ;
dbpedia-owl:populationTotal ?pop .
?country dbpprop:countryCode "USA"@en .
FILTER ( lang(?abstract) = 'en' and regex(?label, "New York City"))
}
以上适用于纽约,但是当我将其更改为:
SELECT DISTINCT ?city ?abstract ?pop
WHERE {
?city rdf:type schema:City ;
rdfs:label ?label ;
dbpedia-owl:abstract ?abstract ;
dbpedia-owl:country ?country ;
dbpedia-owl:populationTotal ?pop .
?country dbpprop:countryCode "THA"@en .
FILTER ( lang(?abstract) = 'en' and regex(?label, "Bangkok"))
}
它没有返回泰国曼谷的结果。
我似乎无法正确获取 SPARQL 查询,我确定我的查询很愚蠢。如果任何大师可以为我提供帮助,我将不胜感激。谢谢!
【问题讨论】: