2

私は自分のプロジェクトで Dbpedia を使用していますが、オンラインのエンドポイントは信頼できないため、ローカルの sparql エンドポイントを作成したいと考えていました。データ ダンプ (大きな NT ファイル) をダウンロードし、Jena TDB を使用することにしました。NetBeans IDE を使用して、入力ストリームを使用してソース NT ファイルを読み込み、次のコード行を使用して NT ファイルを datasetGraph にロードしています。

 TDBLoader.load(indexingDataset, inputs, true);

現在、約5時間実行していますが、まだ完了していません。これを実行している間、ラップトップですべての処理が遅くなったように見えます。これはおそらく、物理メモリ スペースがすべて使用されているためです。これを行うより速い方法はありますか???

ドキュメントには tdbloader2 を使用するように記載されていますが、Windows を使用している場合は Linux でのみ使用できます。誰かが cygwin を使用して Windows でこのツールを使用する方法を教えてくれれば、本当に役に立ちます。WindowsでCygwinを実際に使用したことがないことを考慮してください。

4

1 に答える 1

6

TDB の最新リリースには、バルク ロード用の 2 つのコマンド ライン ユーティリティ、tdbloader と tdbloader2 があります。1 つ目は純粋な Java で、Windows だけでなく、JVM を備えた任意のマシンでも実行されます。2 つ目は、Java と UNIX のシェル スクリプトを組み合わせたものです (特に、UNIX の並べ替えを使用しています)。Linux で動作しますが、Cygwin で動作するかどうかはわかりません。できるだけ多くの RAM を搭載した 64 ビット マシンで tdbloader を使用することをお勧めします。:-)

TDB の最新リリースは、http: //www.apache.org/dist/incubator/jena/jena-tdb-0.9.0-incubating/jena-tdb-0.9.0-incubating-distribution.zipから入手できます。

TDB の開発バージョンには、tdbloader3 という追加のバルク ローダー コマンドがあります。これは、tdbloader2 のピュア Java バージョンです。UNIX ソート (テキスト ファイルでのみ機能する) を使用する代わりに、バイナリ ファイルで純粋な Java 外部ソートを使用しました。tdbloader3 の詳細については、JENA-117 の問題を検索してください。

まだリリースされていない Apache スナップショット リポジトリで TDB の SNAPSHOT を見つけることができます。

より冒険的なものには、Apache Jena には含まれていない tdbloader4 もあり、実験的なプロトタイプと見なされます。tdbloader4 は、MapReduce を使用して TDB インデックス (つまり、B+Tree インデックス) を構築します (これは MapReduce モデルを少し拡張していますが、機能します)。ここで tdbloader4 を見つけることができます: https://github.com/castagna/tdbloader4

結論として、Windows の場合、TDB の最新の公式リリースをダウンロードし、大量の RAM を搭載した 64 ビット マシンで tdbloader を使用することをお勧めします。持っていない場合は、m1.xlarge EC2 インスタンス (つまり、15 GB の RAM) (または同等のもの) を使用します。

さらにヘルプが必要な場合は、公式の jena-users@incubator.apache.org メーリング リストに参加することをお勧めします。このメーリング リストでは、より適切で迅速なサポートが得られると確信しています。

于 2012-03-11T10:15:14.183 に答える