从dbpedia查询城市及其国家/地区

时间:2013-03-25 07:52:06

标签: rdf sparql owl dbpedia

我正在尝试在国家和城市的OWL中构建一个本体(如果已经存在这样的实现,请指向我)

要获取数据,我正在尝试使用带有以下代码的sparql:

SELECT ?c WHERE {
   ?c rdfs:label ?name .
   ?c dbpedia-owl:country <http://dbpedia.org/resource/Country> .
}

我是sparql和dbpedia的新手。上面的代码并没有让我回到所有城市和他们所在的国家。我真的需要使用dbpedia来实现这一目标。

任何建议?

2 个答案:

答案 0 :(得分:7)

SPARQL区分大小写(因为RDF区分大小写)。 DBpedia使用属性名称以小写字母开头的约定(例如dbpedia-owl:country表示“属于X的国家是......”),类名以大写字母开头(例如dbpedia-owl:Country )。

如果通过工作,我的意思是返回结果,这可行(City代替city):

SELECT DISTINCT ?city ?country 
WHERE { ?city rdf:type dbpedia-owl:City ; 
              rdfs:label ?label ; 
              dbpedia-owl:country ?country 
}

但请注意,并非所有您和我称之为城市的地方都被定义为dbpedia-owl:City - 他们可能属于班级dbpedia-owl:Settlement或其他班级。因此,上述查询可能无法产生您想要的所有城市。

另外:构建本体,你不需要“数据”。本体定义了例如所有城市都是人口稠密的地方,并且所有人口居住的地方都是地方。可以这么说,你不需要知道爱丁堡在英国。

答案 1 :(得分:0)

https://dbpedia.org/sparql

上使用以下代码
SELECT DISTINCT ?city ?country 
WHERE { ?city rdf:type dbo:City ; 
        rdfs:label ?label ; 
        dbo:country ?country 
     }