プログラムで変更している Jena オントロジー モデル ( OntModel ) があります。このモデルは、デフォルトの ModelFactory メソッドを使用して最初に作成され、オントロジー モデル (パラメーターなし) を作成しました。問題は、プログラムが実行され、モデルが変更されたときに、デフォルトの Jena Reasoner が実行される (実行して実行して実行する) ことでした。このプロセスは私が必要としているものに対して完全に遅すぎて、大規模なデータ セットではメモリが不足していました。
プログラムを変更して、別のオントロジー モデル ファクトリ メソッドを使用して、推論機能のないモデルを作成しました。これは非常に高速に実行され、以前に見たメモリの問題はまったく発生しませんでした (非常に大きなデータ セットの場合でも)。このアプローチの問題は、直接クラス型を直接使用することによってのみデータにアクセスできることです (親クラスを使用してオブジェクトにアクセスすることはできません)。
たとえば、「花」と「種」という 2 つのクラス リソースがあるとします。これらは、共通の親である「植物材料」から継承します。私のプログラムはすべての「種」を取り、「種」オブジェクトを「花」オブジェクトに変換する「grow」というメソッドを実行します。Reasoner (マイクロ Reasoner でさえも) を使用すると、「grow」メソッドの実行が遅すぎてメモリ不足になります。Reasoner をオフにすると、「植物材料」クラスを使用してすべての「花」と「種」にアクセスできなくなります。
これを行うための好ましい方法(幸せな媒体)はありますか...スーパークラスを使用してオブジェクトにアクセスできるようにすると同時に、高速でメモリを浪費しないようにすることはできますか?
「成長」メソッドを実行している間は「推論をオフ」にして、メソッドが完了したら元に戻す方法を探していました。これはどういうわけか可能ですか?