1

我在 Web 服务器上有一个使用 Python 模块 rdflib 序列化 RDF 三元组的 URL。我想将此内容导入 GraphDB。

rdflib.serialize 输出格式为“xml”。HTTP 标头的 MIME 类型是“xml/rdf”,但结果与 MIME 类型“text/rdf”相同。

当内容保存为以“.rdf”扩展名结尾的文本文件时,GraphDB可以毫无问题地导入该文件,并且存储库内容是OK的。

URL 可以导入到软件“Protégé”中,该软件是一种语义网络工具和 RDF 编辑器。

但是,将相同的 URL 导入 GraphDB 时,我收到错误消息:

"Could not find RDF format for URL: (... my url ... )"

我尝试了几件事,但没有成功:

  • 我检查了 GraphDB 是否需要来自 URL 和文本文件的相同数据格式。
  • 在 GraphDB“导入高级设置”中,我取消选中了“验证 URI”和“应在错误时停止”标志。
  • 我尝试使用 Apache Web 服务器和一个简单的 Python 类 BaseHTTPServer。

我怀疑此错误消息来自openrdf 库,当它无法根据 URL 的文件扩展名或 HTTP 响应标头中的内容类型确定内容类型时,它会输出此消息,但我认为我设置正确。

问题是什么?

4

1 回答 1

3

(将评论转换为答案)

问题是“xml/rdf”和“text/rdf”不是 RDF/XML 文件格式的已知 MIME 类型。

要使用的正确 MIME 类型是“application/rdf+xml”。可选地作为后备“应用程序/xml”或“文本/xml”也可以工作。有关详细信息,请参阅RDF 格式的 rdf4j javadoc

于 2019-03-04T02:39:18.423 回答