Noo*_*oor 2 rdf owl sparql dbpedia
我正在尝试在国家和城市的OWL中构建一个本体(如果已经存在这样的实现,请指向我)
为了获取数据,我正在尝试使用带有以下代码的sparql:
SELECT ?c WHERE {
?c rdfs:label ?name .
?c dbpedia-owl:country <http://dbpedia.org/resource/Country> .
}
Run Code Online (Sandbox Code Playgroud)
我是sparql和dbpedia的新手.上面的代码并没有让我回到所有城市和他们所在的国家.我真的需要使用dbpedia来实现这一目标.
有什么建议吗?
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
}
Run Code Online (Sandbox Code Playgroud)
但请注意,并非所有你和我称之为城市的地方都被定义为dbpedia-owl:City
- 他们可能是班级dbpedia-owl:Settlement
或其他班级.因此,上述查询可能无法产生您想要的所有城市.
另外:构建本体,你不需要"数据".本体定义了例如所有城市都是人口稠密的地方,并且所有人口居住的地方都是地方.可以这么说,你不需要知道爱丁堡在英国.