1

rdf トリプルの複数のテキスト ファイルを作成するプログラムがあります。トリプルを比較してすばやく実行する必要があります。これを行うための最良の方法は何ですか? トリプルを配列に入れて比較することを考えましたが、ファイルごとに数十万のトリプルが存在する可能性があり、それには永遠に時間がかかります. トリプルはファイル間で常にジャンル化されるため、可能な限りリアルタイムに近づける必要があります。どんな助けでも素晴らしいでしょう。ファイルは、何らかの方法で比較する方が簡単な場合は、AllegroGraph リポジトリにもあります。

考え: トリプルを Excel に保存し (行ごとに 1 つのトリプル)、リポジトリごとに 1 つのシートを保存した場合、

A: シート間で重複を見つけるにはどうすればよいですか。B: 速いでしょうか。およびC:Javaからそれを自動化するにはどうすればよいですか?

4

2 に答える 2

2

各トリプルとそれが表示されるファイル数、および各ファイル内のトリプルの正確なファイル名と場所を格納するマスター インデックスを作成する必要があります。マスター インデックスを検索して、クエリにリアルタイムで回答できます。

新しい rdf ファイルを更新、削除、または作成するときは、マスター インデックスを更新する必要があります。

マスター インデックスを保存して、効率的に更新、検索できるようにする必要があります。

簡単な選択として、リレーショナル データベース (MySql など) を使用してマスター インデックスを格納することが考えられます。単純な select ステートメントで一般的なトリプルを見つけるなどのクエリに答えることができますselect * from rdfindex where triplecount > 2.

編集: HashMap または同様のデータ構造を使用して、数十万のトリプルをメモリに格納することはできません。そのため、データを保存し、クエリに効率的に応答できるデータベースの使用を提案しました。データを格納するために、SQLite のような組み込みデータベースを見ることができます。

これらのトピックを読む

SQLite データベースの作成方法、テーブルの作成方法、テーブルへのアクセス方法など、トリプル、トリプルカウント、ファイル名を格納する簡単なテーブルを作成します。

すべての Excel ファイルを CSV ファイルに変換します。opencsvを使用して、Java でファイルを解析できます (opencsv に付属のサンプルを確認してください)。

CSV ファイルを解析し、データを SQLite に読み込みます。トリプルがすでにデータベースにある場合はカウントを更新し、そうでない場合はトリプルを挿入します。

于 2012-06-28T15:05:51.860 に答える
0

私が知る限り、AllegroGraph には重複したエントリを削除する機能があり、すべてのトリプルがそこから来ている場合、これはオプションかもしれません。

于 2012-06-28T14:59:30.783 に答える