我对sparql还很陌生。
我创建这个查询是为了让所有国家都加入联合国
select distinct ?s
where { ?s a <http://dbpedia.org/class/yago/WikicatMemberStatesOfTheUnitedNations> }
所以我试着用将其调整为Geonames
select distinct ?s
where { ?s a <http://dbpedia.org/page/GeoNames> }
但它不起作用。如何在地名中获取每个地方的名称?
我希望有人能帮我!
每个发布者都使用自己的命名空间和方法来生成已发布实体的URI。链接开放数据的好处在于,它允许这样的独立性,而URI仍然可以使用商定的开放标准进行链接。当不同的URI表示相同的东西时,这是通过将它们与owl:sameAs
链接来声明的。
如果我理解正确的意图(我不确定你所说的"适应"是什么意思(,那么你的查询尝试假设DPpedia和Geonames使用相同的URI。您需要做的是使用两个独立的变量,然后从owl:sameAs
映射中指定,您只需要Geonames中的那些。
select distinct *
where { ?cuntryDBpedia a <http://dbpedia.org/class/yago/WikicatMemberStatesOfTheUnitedNations> ;
owl:sameAs ?countryGeonames .
FILTER REGEX (?countryGeonames,"geonames.org")
}