メモリに収まらない大きな RDF モデルがあります。現在、全体を TDB にロードしていますが、サブグラフ (サブクラスまたは「ルート」概念のタイプであるすべてのリソースに関するすべてのプロパティ) のみに焦点を当てて、代わりにフィルター処理したいと考えています。
私が試みたのは、関心のあるグラフのサブセットを記述する完全な TDB モデルに対して DESCRIBE ステートメントを実行することです ({ ?x rdf:type/rdfs:subClassOf* ?type })。私が抱えている問題は2つあります。
小さい [サンプル] データセットでは、DESCRIBE ステートメントは完了しますが、結果のモデルを TDB に書き戻す方法がわかりません (他のすべてのデータを破棄したい)。tdbModel.setDefaultModel() を呼び出そうとしましたが、例外がスローされます。そこで、私が今行っていることは、2 番目の TDB ロケーションを作成し、デフォルト モデルを取得してから、DESCRIBE ステートメントの結果をこの別のモデルに追加することです。より良い方法はありますか?
完全なデータセットでは、DESCRIBE ステートメントは 50 万を超えるトリプルになり、完了せずに数時間実行されていると思います。これを行うより効率的な方法はありますか?