3

我尝试使用 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 
}

我得到了斯洛文尼亚所有的城镇和村庄的所有数据。问题是,我只想获取一个城镇的数据(官方名称和/或摘要),例如卢布尔雅那。所以我尝试了一些这样的事情:

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>.

尽管页面http://dbpedia.org/resource/Ljubljana上存在元素 skos:subject ,但没有任何结果。

有人可以解释为什么第二个示例不起作用以及如何获得我想要的结果吗?

谢谢, 阿布拉克

谢谢

4

1 回答 1

4

您想<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 应该是您要匹配的语句的主题。

于 2009-06-09T23:09:19.677 回答