【发布时间】: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