我需要加载非常大的本体,以n-triples文件(1GB)表示到OpenRDF sesame应用程序。我正在使用Workbench接口来做到这一点。我知道这个文件太大,无法在一个请求中加载。为了解决这个问题,我将文件拆分为100MB的文件。但是我仍然会遇到一个错误表格OpenRDF sesame Server:

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芝麻或其他本体管理经理有很好的了解?

非常感谢您的投入

K.

有帮助吗?

解决方案

芝麻工作台实际上不是这些任务的理想工具 - 尽管我希望它能够应对100MB文件。您可能会在芝麻上运行的tomcat有一个邮政限制集?您可以在芝麻的MailingList上询问,那里也很少有知识渊博的人。但是,以下是完成工作的两个可能的想法:

处理此问题的一种方法是使用芝麻的存储库API以编程方式进行上传。查看有关的用户文档 芝麻网站 对于代码示例。

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

其他提示

我有同样的问题。当我尝试上传“大” RDF(大约40MB)时,上传过程失败了,错误:

无法重复未封闭的实体封闭请求。

我尝试了tomcat和芝麻的其他其他方法,但没有成功。然后,我尝试使用芝麻控制台和本地存储库(不是tomcat服务器上的本地主机 - 正如Jeen在另一个答案中所说),它向我展示了另一个错误:

畸形的文档:JAXP00010001:解析器在本文档中遇到的“ 64000”实体扩展;这是JDK施加的极限。 [第1行,第1列

因此,我认为关于实体限制的错误在tomcat中通过夸张实体的错误涵盖了某个地方。

然后我找到了这个话题 在我的风暴群中阅读AWS SQS队列时,是什么导致这些parseerror例外 并在tomcat开始之前添加此声明:

export JAVA_OPTS="${JAVA_OPTS} -Djdk.xml.entityExpansionLimit=0"

此语句禁用XML解析器中的实体限制(如错误消息所说,默认值为64 000)。在此步骤之后,我可能会加载“大” RDF(在40-800MB上进行了测试)。

我不知道您希望完成什么任务,但您可能想检查一下 这里 对于具有非正式(主要是自称)可伸缩性结果的可扩展三重商店列表。在此中,芝麻只报告处理70m的语句(不是很多...可能是您造成麻烦的原因。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top