【发布时间】:2012-10-10 14:17:12
【问题描述】:
我现在正在尝试几个小时来弄清楚如何从 dbpedia 或 LinkedGeoData 中获取各种信息。 我使用了这个界面(http://dbpedia.org/snorql)并尝试了不同的方法,但我从来没有得到我需要的结果。
如果我使用这样的东西:
SELECT * WHERE {
?subject rdf:type <http://dbpedia.org/ontology/City>.
OPTIONAL {
?subject <http://dbpedia.org/ontology/populationTotal> ?populationTotal.
}
OPTIONAL {
?subject <http://dbpedia.org/ontology/populationUrban> ?populationUrban.
}
OPTIONAL {
?subject <http://dbpedia.org/ontology/areaTotal> ?areaTotal.
}
OPTIONAL {
?subject <http://dbpedia.org/ontology/populationUrbanDensity> ?populationUrbanDensity.
}
OPTIONAL {
?subject <http://dbpedia.org/ontology/isPartOf> ?isPartOf.
}
OPTIONAL {
?subject <http://dbpedia.org/ontology/country> ?country.
}
OPTIONAL {
?subject <http://dbpedia.org/ontology/utcOffset> ?utcOffset.
}
OPTIONAL {
?subject <http://dbpedia.org/property/janHighC> ?utcOffset.
}
OPTIONAL {
?subject <http://dbpedia.org/property/janLowC> ?utcOffset.
}
}
LIMIT 20
我已经用完了。
我也试过这个:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT * WHERE {
?subject rdf:type <http://dbpedia.org/ontology/City>.
?subject rdfs:label ?label.
FILTER ( lang(?label) = 'en'
}
LIMIT 100
但这给了我一个错误,我不明白。如果我删除过滤器,它可以工作,但给我所有语言的标签......
我正在寻找的是这样的http://dbpedia.org/page/Vancouver 但不是所有数据,而是其中一些数据,如人口、面积、国家、海拔、纬度、经度、时区、label@en、abstract@en 等。
有人可以帮我找到有效的语法吗?
感谢大家的帮助。
更新:
到目前为止,我可以使用它:
SELECT DISTINCT *
WHERE {
?city rdf:type dbpedia-owl:Settlement ;
rdfs:label ?label;
dbpedia-owl:abstract ?abstract ;
dbpedia-owl:populationTotal ?pop ;
dbpedia-owl:country ?country ;
dbpprop:website ?website .
FILTER ( lang(?abstract) = 'en' && lang(?label) = 'en')
}
LIMIT 20
但如果我想获得所有定居点,仍然会超出限制。顺便提一句。有没有办法将所有城市和定居点放在一张桌子上?
【问题讨论】:
标签: sparql semantic-web geography