我需要将表示为N-triples file(1gb)的非常大的本体加载到openrdf Sesame应用程序中。我正在使用工作台界面来做到这一点。我知道此文件太大,无法在一个请求中加载。为了解决这个问题,我将文件拆分为大小为100mb的文件。但是我仍然从openrdf芝麻服务器收到错误消息:

HTTP ERROR 500

Problem accessing /openrdf-workbench/repositories/business/add. Reason:

    Unbuffered entity enclosing request can not be repeated.
Caused by:

org.apache.commons.httpclient.ProtocolException: Unbuffered entity enclosing request can not be repeated.
 at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:487)


有没有人对我可以使用openrdf Sesame或其他本体管理器有很好的了解?

非常感谢您的输入

K.

最佳答案

芝麻工作台确实不是执行此类任务的理想工具-尽管我希望它能够处理100MB的文件。可能是您运行芝麻的Tomcat设置了POST限制?您可以在Sesame的邮件列表中询问,那里知识渊博的人也很少。但是,有两种可能的方法可以完成任务:

解决此问题的一种方法是使用Sesame的Repository API以编程方式进行上传。请参阅Sesame website上的用户文档以获取代码示例。

另外,如果您使用的是Sesame本机存储,则可以使用Sesame的命令行控制台执行“肮脏”的解决方法:创建本地本机三重存储并将数据上传到该本地存储(这应该更快,因为没有HTTP通信必要)。然后,关闭您的Sesame服务器,将本地本机存储的数据文件复制到服务器中的存储数据文件中,然后重新启动。

08-25 21:01