4

N トリプル ファイル (1 GB) として表される非常に大きなオントロジーを openrdf Sesame アプリケーションにロードする必要があります。私はそれを行うためにワークベンチインターフェースを使用しています。このファイルは 1 回のリクエストでロードするには大きすぎることはわかっています。これを回避するために、ファイルをサイズ 100 MB のファイルに分割しました。しかし、私はまだopenrdf Sesameサーバーからエラーを受け取ります:

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.

4

3 に答える 3

3

Sesame Workbench は、こ​​の種のタスクには理想的なツールではありませんが、100MB のファイルを処理できると期待しています。Sesame を実行している Tomcat に POST 制限が設定されている可能性があります。セサミのメーリングリストで質問することもできますが、知識のある人はほとんどいません。しかし、物事を成し遂げるために考えられる 2 つのアイデアを次に示します。

これを処理する 1 つの方法は、Sesame のリポジトリ API を使用して、プログラムでアップロードを行うことです。コード例については、 Sesame Web サイトのユーザー ドキュメントを参照してください。

または、Sesame ネイティブ ストアを使用している場合は、Sesame のコマンド ライン コンソールを使用して「汚い」回避策を実行できます。ローカル ネイティブ トリプル ストアを作成し、データをそのローカル ストアにアップロードします (HTTP 通信がないため、これははるかに高速です)。必要)。次に、Sesame サーバーをシャットダウンし、ローカル ネイティブ ストアのデータファイルをサーバーのストア データ ファイルにコピーして、再起動します。

于 2010-09-20T11:56:57.833 に答える
1

私も同じ問題を抱えていました。「大きな」RDF (約 40MB) をアップロードしようとすると、アップロード プロセスが次のエラーで失敗しました。

バッファリングされていないエンティティ エンクロージング リクエストを繰り返すことはできません。

Tomcat とゴマの他のバージョンを試してみましたが、成功しませんでした。次に、セサミコンソールとローカルリポジトリを使用しようとします(Tomcatサーバーのローカルホストではありません-Jeenが別の回答で言っているように)、別のエラーが表示されます:

不正なドキュメント: JAXP00010001: パーサーは、このドキュメントで "64000" を超えるエンティティ展開を検出しました。これは、JDK によって課される制限です。[行 1、列 1]

したがって、Entity Limit に関するエラーは、Tomcat のどこかで、Umbuffered エンティティに関するエラーによってカバーされていると思います。

次に、Storm クラスターで AWS SQS キューを読み取るときに、これらの ParseError 例外の原因となるトピックを見つけ、 Tomcat の開始前に次のステートメントを追加します。

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

このステートメントは、XML パーサーのエンティティ制限を無効にします (エラー メッセージが示すように、デフォルトは 64 000 です)。このステップの後、「大きな」RDF (40 ~ 800MB でテスト済み) をロードできます。

于 2015-10-16T13:45:23.490 に答える
-1

あなたがどのようなタスクを達成したいのか正確にはわかりませんが、非公式 (主に自己主張) のスケーラビリティ結果を含むスケーラブルなトリプル ストアのリストについては、こちらを参照してください。これでは、Sesame は 70M ステートメントの処理のみを報告しています (それほど多くはありません... これが問題の原因になる可能性があります)。

于 2010-09-16T00:40:38.963 に答える