2010-08-23 37 views
3

我需要將非常大的本體表示爲N-triples文件(1gb)加載到openrdf Sesame應用程序中。我正在使用工作臺界面來做到這一點。我知道這個文件太大而無法在一個請求中加載。爲了解決這個問題,我將文件分割成大小爲100mb的文件。但我仍然得到一個錯誤形成openrdf芝麻服務器:將真正大的RDF文件加載到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芝麻或其他本體經理有充分的瞭解,我可以用我的任務是什麼?

非常感謝您的輸入

K.

回答

3

芝麻工作臺真的不是這些類型的任務的理想工具 - 雖然我期望它能夠處理100MB文件。這可能是您運行芝麻的Tomcat具有POST限制集?你可以問芝麻郵件列表,那裏也很少有知識淵博的人。但是這裏有兩個可能的想法來完成任務:

處理這種情況的一種方法是使用Sesame的Repository API以編程方式進行上傳。有關代碼示例,請參閱Sesame website上的用戶文檔。或者,如果您使用的是芝麻本地商店,則可以使用Sesame的命令行控制檯執行「骯髒」解決方法:創建本地本地三重商店並將數據上傳到該本地商店(這應該快得多,因爲不需要HTTP通信)。然後,關閉您的Sesame服務器,將本地本地存儲的數據文件複製到服務器中的存儲數據文件中,然後重新啓動。

-1

我不知道你希望達到什麼任務,但你可能要與非正式的可擴展的三重商店名單退房here (主要是自我聲明的)可伸縮性結果。在這裏,芝麻只報告處理70M報表(不是很多...可能是你的煩惱的原因)。

+0

該列表是嚴重過時的恕我直言,和芝麻報告的數量也是如此。它能夠處理數億個三元組(如果您將OWLIM計算爲芝麻店,數十億)。 – 2015-03-07 20:42:27

1

我有同樣的問題。當我試圖上傳「大」 RDF(約40MB)上傳過程zhcon失敗,出現錯誤:

Unbuffered entity enclosing request can not be repeated.

我嘗試Tomcat的其他wersion還芝麻,但沒有成功。然後,我嘗試用芝麻控制檯和本地倉庫(不是localhost Tomcat服務器上 - 如Jeen的另一種回答說),它告訴我另一個錯誤:

Malformed document: JAXP00010001: The parser has encountered more than "64000" entity expansions in this document; this is the limit imposed by the JDK. [line 1, column 1]

所以我想個實體限制錯誤是由Tomcat的地方覆蓋有關Umbuffered實體的錯誤。

然後我發現這個話題What's causing these ParseError exceptions when reading off an AWS SQS queue in my Storm cluster和Tomcat啓動前添加以下語句:

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

在XML解析器本聲明禁止實體限制(默認爲64 000人的錯誤消息說)。經過這一步後,我可能會加載「大」RDF(40-800MB測試)。

+0

你能指定你在哪裏添加這行嗎? – kurious 2016-03-04 23:30:24

+1

正如我記得,我在tomcat運行的用戶的主目錄中的.bashrc文件中添加該行。但是有很多地方可以添加它。我認爲可以在tomcat的bin文件夾中的startup.sh或catalina.sh文件的頂部添加此行。 – PeterMacko 2016-03-07 06:38:19

相關問題