最近我一直在努力学习语义网。对于项目,我需要从给定的dbPedia链接中检索数据。例如http://dbpedia.org/page/Berlin。但是当使用java.net.URLConnection检索数据时,我得到了html数据。如何从同一链接获取xml?我知道每个dbpedia页面都有链接来下载XML,但这不是我想要做的。提前谢谢。
答案 0 :(得分:2)
请注意,资源的URI实际为http://dbpedia.org/resource/Berlin(资源,而不是页面)。理想情况下,您可以使用application / rdf + xml的Accept标头请求URI,并获取资源的RDF / XML表示。这就是BBC发布数据的方式(例如,见this answer),但DBpedia不这样做。即使您请求application / rdf + xml,您最终也会获得重定向。您可以查看是否尝试使用HTTP客户端。例如,使用Chrome中的Advanced Rest Client,我们得到303重定向:
在网络浏览器中,您可以通过303查看其他响应代码重定向到页面版本。理想情况下,您可以请求将accept头设置为application / rdf + xml的资源URI并获取数据,但DBpedia不能很好地放置。
所以,这意味着最简单的方式是注意http://dbpedia.org/page/Berlin的底部,是带有一些下载链接的文本:
最后一个链接的网址是http://dbpedia.org/data/Berlin.rdf。因此,您可以通过将页面或资源更改为数据并附加 .rdf 来获取RDF / XML URL的结尾。它不是最ReSTful解决方案,但它似乎是可用的。
答案 1 :(得分:0)
从dbpedia访问数据的好处是通过Sparql
。您可以使用Apache Jena针对http://dbpedia.org/sparql
sparql
次查询