芝麻开放 rdf - XML 解析错误

sesame open rdf - XML parsing ERROR

我正在尝试使用 sesame open rdf 下载邮政编码和 lsoa 链接的网络数据。我创建了一个新的存储库,类型 = SPARQL endpoint proxy 并添加了

http://opendatacommunities.org/sparql

作为终点,我再运行一个查询:

 PREFIX pc: <http://data.ordnancesurvey.co.uk/ontology/postcode/>
 PREFIX geo: <http://opendatacommunities.org/def/geography#>
 SELECT * WHERE { 
        ?postcodeUnit
        a pc:PostcodeUnit;
        geo:lsoa ?lsoa .
 }
 LIMIT 10

返回错误:

XML Parsing ERROR: no element found, Line Number 1, Column 1:

我可以在 R 中进行查询,但需要使用 Web 服务来下载所有数据,如果没有限制,R 会超时。

所以我试图 运行 通过端点进行上述查询,但出现错误。 我使用 :http://dbpedia.org/sparql 端点设置并 运行 查询,效果很好。 所以我想知道以前有没有人遇到过类似的错误。

这似乎是 opendatacommunities.org 的 SPARQL 端点中的错误。

当它发送对查询的响应时,它以 JSON 格式发送响应,但在 HTTP 响应 header 中,它 表示 响应采用 XML 格式。它的行为似乎有点不稳定 - 我尝试了一些测试请求,有时它 发送正确的响应 header,但有时它不会。

Sesame 查看 Content-Type 响应 header 来确定使用哪个解析器来处理结果,当 header 错误时,抓取错误的解析器 - 然后你得到一个处理错误。

鉴于这种不稳定的行为,我不确定在客户端是否可以做任何事情。恐怕唯一的解决办法是与端点的维护者取得联系,并要求他们最终修复错误。

...当然,您 可以 在客户端(至少以编程方式)做的是覆盖 Sesame 发送到 SPARQL 的默认请求 header端点,以确保端点发回正确的响应。但这将需要相当多的 trial-and-error,因为我还没有弄清楚端点 期望 是什么。