0

org.semanticweb.owlapi.model.OWLOntologyManager.loadOntologyFromOntologyDocument メソッドを使用して Java でオントロジーをロードしようとしています。コードを実行すると、オントロジーが読み込まれるまでに約 1 分かかり、メモリ不足のエラーが発生することがあります。その理由は、オントロジーがかなり大きいためだと思います。これを解決する方法はありますか?おそらく、オントロジーの本質的な部分だけをロードするのでしょうか?

コードは次のようになります。

String prefix = "http://localhost:8888/ontologies/myOntology.owl#"
iri = IRI.create(prefix);
ontology = manager.loadOntologyFromOntologyDocument(iri);
4

4 に答える 4

0

巨大なオントロジーをロードしている場合、遅さは避けられないと思いますが、少なくともオントロジーがロードされることがわかるように、ここに示すように Java に割り当てられたメモリを増やしてみてください。

于 2013-07-30T12:32:58.207 に答える
0

マルチスレッド環境でコードを実行している場合にのみ問題が発生する場合は、その点で OWL API のバグに出くわした可能性があります。これは過去に、さまざまな場所でキャッシュとして使用される HashMaps が原因で、スレッドがクラッシュする原因となっていました。マップへの変更が読み取りアクセスと同時に発生するとスタックします。

200 クラスはかなり小さなオントロジーなので、数秒で完了します。この状況を一貫して再現できる場合は、github または OWLAPI メーリング リストでバグとして報告してください。

于 2013-09-17T18:05:20.277 に答える