如何从 dbpedia link 或 URL 中检索 XML/RDF 数据?

How to retrieve XML/RDF data from a dbpedia link or URL?

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

请注意,资源的 URI 实际上是 http://dbpedia.org/resource/Berlin (with resource, not page). Ideally, you could request that URI with an Accept header of application/rdf+xml and get the RDF/XML representation of the resource. That's how the BBC publishes their data (e.g., see this answer),但 DBpedia 不会这样做。即使您请求 application/rdf+xml,您最终也会获得重定向。您可以查看是否尝试使用 HTTP 客户端。例如,在 Chrome 中使用 Advanced Rest Client,我们得到这个 303 重定向:

在网络浏览器中,您会被 303 See Other 响应代码重定向到 页面 版本。理想情况下,您可以将接受 header 设置为 application/rdf+xml 来请求资源 URI 并获取数据,但 DBpedia 的位置不太好。

所以,这意味着 最简单的 方法是注意 http://dbpedia.org/page/Berlin 底部的文本和一些下载内容 link:

RDF ( N-Triples N3/Turtle JSON XML )

最后一个link的URL是http://dbpedia.org/data/Berlin.rdf。因此,您可以通过将 pageresource 更改为 data 来获得 RDF/XML,并且将 .rdf 附加到 URL 的末尾。这不是最 ReSTful 的解决方案,但它似乎是可用的。

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