我试图获取有关使用上DBpedia中的SPARQL查询一个城市的一些数据。问题是我不能得到查询工作。

目前我做这样的事情:

SELECT ?title,?name,?abs WHERE {
  ?title skos:subject 
    <http://dbpedia.org/resource/Category:Cities%2C_towns_and_villages_in_Slovenia>.
  ?title dbpprop:officialName ?name.
  ?title dbpprop:abstract ?abs 
}

我得到的所有城镇,从斯洛文尼亚村庄中的所有数据。问题是,我想获得的数据(officialName和/或抽象的)只为一个村庄,比如卢布尔雅那。所以,我想这样一些事情:

SELECT ?name WHERE {
  ?name dbpprop:officialName 
    <http://dbpedia.org/resource/Ljubljana>.
}

当然这是行不通的。我完全不知道为什么,虽然:),但我一直在尝试了一下,发现有些事情一样,如果我把

?name skos:subject <http://dbpedia.org/resource/Category:Ljubljana>.

我得到的一些结果(这是与我无关,但无论如何),但如果我把

?name skos:subject <http://dbpedia.org/resource/Ljubljana>.

有任何结果的任何东西,虽然元件SKOS:在页面 http://dbpedia.org/资源/卢布尔雅那。

可能有人请解释为什么第二个例子不工作,以及如何得到的结果,我想有哪些?

谢谢, Ablak

由于

有帮助吗?

解决方案

您想要查询<http://dbpedia.org/resource/Ljubljana>作为被摄体,而不是一个对象;这将替换您?title在SPARQL查询结合,例如:

SELECT ?name, ?abs WHERE {
   <http://dbpedia.org/resource/Ljubljana>
     skos:subject <http://dbpedia.org/resource/Category:Cities%2C_towns_and_villages_in_Slovenia> ;
     dbpprop:officialName ?name ;
     dbpprop:abstract ?abs .
}

这就是为什么你的图形匹配?name skos:subject <http://dbpedia.org/resource/Ljubljana>不返回预期的结果;的URI卢布尔雅那应该是要匹配的声明(S)的主题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top