哪里可以获得所有欧洲城市,村庄的数据?

时间:2012-03-07 01:03:50

标签: sparql semantic-web geography

我正在寻找有关所有欧洲城市,乡村和城镇的数据。具体来说,我对名称,邮政编码,电话区号,纬度,经度,人口及其所属国家感兴趣。

1。我在哪里可以从中提取最全面的数据量?

2。如何从LinkedGeoData查询数据

首先,我尝试从LinkedGeoData(http://linkedgeodata.org/sparql)中提取数据。但是,我无法获得任何合理的结果。执行以下查询时,偶尔只显示人口,其他字段始终为空。

SELECT * WHERE
{
   ?place a <http://linkedgeodata.org/ontology/Place> .  
   OPTIONAL { ?place <http://linkedgeodata.org/property/openGeoDB:name> ?name . }
   OPTIONAL { ?place <http://linkedgeodata.org/ontology/openGeoDB:lat> ?lat . } 
   OPTIONAL { ?place <http://linkedgeodata.org/ontology/openGeoDB:lon> ?lon . } 
   OPTIONAL { ?place <http://linkedgeodata.org/property/openGeoDB:postal_codes> ?postal . }
   OPTIONAL { ?place <http://linkedgeodata.org/ontology/openGeoDB:telephone_area_code> ?tel . }
   OPTIONAL { ?place <http://linkedgeodata.org/ontology/population> ?population . }
   OPTIONAL { ?place <http://linkedgeodata.org/ontology/openGeoDB:is_in_loc_id> ?inLocId . }

   ?place <http://linkedgeodata.org/property/is_in> ?in. 
   FILTER ( REGEX(?in, "europe", "i") ) .
}

我注意到包含openGeoDB的所有属性都是空白的,尽管属性存在。那么查询有什么问题?

1 个答案:

答案 0 :(得分:4)

要查找适当的数据集,您可以查看数据集目录álathe Data Hub或数据Q&amp; AboardsálaGet the Data

重新。你的第二个问题,似乎在linkedgeodata上的数据似乎有点稀疏,或者必须利用其他属性和/或类。但是,以下查询似乎至少提供了一些结果,您可以看到欧洲的每个地方都可以通过lgdb来解决:is_in属性

PREFIX lgd:<http://linkedgeodata.org/> 
PREFIX lgdo:<http://linkedgeodata.org/ontology/> 
PREFIX lgdp:<http://linkedgeodata.org/property/> 
PREFIX lgdoogdb: <http://linkedgeodata.org/ontology/openGeoDB> 
PREFIX lgdpogdb: <http://linkedgeodata.org/property/openGeoDB> 

SELECT * 
FROM <http://linkedgeodata.org> 
WHERE 
{
   ?place a lgdo:Place .  
   OPTIONAL { ?place lgdpogdb:name ?name . }
   OPTIONAL { ?place lgdoogdb:lat ?lat . } 
   OPTIONAL { ?place lgdoogdb:lon ?lon . } 
   OPTIONAL { ?place lgdpogdb:postal_codes ?postal . }
   OPTIONAL { ?place lgdoogdb:telephone_area_code ?tel . }
   OPTIONAL { ?place lgdo:population ?population . }
   OPTIONAL { ?place lgdoogdb:is_in_loc_id ?inLocId . }
   OPTIONAL { ?place lgdp:is_in ?in . }
}
LIMIT 100

例如您可以通过以下查询来探索数据集的结构:

PREFIX lgdo:<http://linkedgeodata.org/ontology/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 

SELECT * 
FROM <http://linkedgeodata.org> 
WHERE 
{
   ?place a lgdo:Place .  
   ?place rdfs:label ?label .
}
LIMIT 100

...最后,以下查询在欧洲返回100个地方:

PREFIX lgdo:<http://linkedgeodata.org/ontology/> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 

SELECT * 
FROM <http://linkedgeodata.org> 
WHERE 
{
    ?place a lgdo:Place .
    ?place rdfs:label ?label .  
    ?place <http://linkedgeodata.org/property/is_in%3Acontinent> "Europe" .
    FILTER ( lang(?label) = "" )
}
LIMIT 100

请注意,FILTER表达式用于过滤掉每个具有语言标记的特定语言标签,即,将使用该查询显示普通文字。