如何从dbpedia链接或URL检索XML / RDF数据?

最近我一直在努力学习语义Web。 对于项目,我需要从给定的dbPedia链接中检索数据。 例如http://dbpedia.org/page/Berlin 。 但是当使用java.net.URLConnection检索数据时,我得到了html数据。 如何从同一链接获取xml? 我知道每个dbpedia页面都有链接来下载XML,但这不是我想要做的。 提前致谢。

请注意,资源的URI实际上是http://dbpedia.org/resource/Berlin (使用资源 ,而不是页面 )。 理想情况下,您可以使用application / rdf + xml的Accept标头请求该URI,并获取资源的RDF / XML表示。 这就是BBC如何发布他们的数据(例如,看到这个答案 ),但DBpedia不这样做。 即使您请求application / rdf + xml,您最终也会获得重定向。 您可以查看是否尝试使用HTTP客户端。 例如,在Chrome中使用Advanced Rest Client,我们将获得此303重定向:

高级休息客户端截图

在Web浏览器中,您将通过303 See Other响应代码重定向到页面版本。 理想情况下,您可以请求将accept头设置为application / rdf + xml的资源URI并获取数据,但DBpedia不能很好地放置。

所以,这意味着最简单的方法是注意在http://dbpedia.org/page/Berlin的底部,有一些下载链接的文本:

RDF( N-Triples N3 / Turtle JSON XML )

最后一个链接的URL是http://dbpedia.org/data/Berlin.rdf 。 因此,您可以通过将页面资源更改为数据来获取RDF / XML,并将.rdf附加到URL的末尾。 它不是最ReSTful解决方案,但它似乎是可用的。

从dbpedia访问数据的好处是通过Sparql 。 您可以使用Apache Jena对http://dbpedia.org/sparql运行sparql查询