【问题标题】:Cannot import RDF url content into GraphDB无法将 RDF url 内容导入 GraphDB
【发布时间】:2019-03-03 21:53:10
【问题描述】:

我在 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 library,当它无法根据 URL 的文件扩展名或 HTTP 响应标头中的内容类型确定内容类型时输出此消息,但我想我设置了它正确。

有什么问题?

【问题讨论】:

  • “xml/rdf”和“text/rdf”都不是正确的 MIME 类型。它应该是“application/xml+rdf”或者可能是“application/xml”或者“text/xml”。
  • 抱歉,应该是“application/rdf+xml”,而不是“application/xml+rdf”。见docs.rdf4j.org/javadoc/latest/index.html?org/eclipse/rdf4j/rio/…
  • 'application/xml' 运行良好。 “应用程序/xml+rdf”不起作用。非常感谢。
  • 顺便说一句:除非您使用的是 非常 旧版本的 GraphDB,否则更有可能使用 rdf4j 库而不是 openrdf sesame。 Sesame 几年前就停产了,Eclipse rdf4j 是后继项目。

标签: rdf rdflib graphdb rdf4j openrdf


【解决方案1】:

(将评论转换为答案)

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

要使用的正确 MIME 类型是“application/rdf+xml”。可选地作为后备“应用程序/xml”或“文本/xml”也可以工作。详情请见rdf4j javadoc for RDF formats

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多