ステートメントで満たされた Jena モデルがあり、次のGenericRuleReasoner
ようにカスタム ルール文字列を使用します ( Jena チュートリアル ページから直接取得した例)
String rules = "[rule1: (?a eg:p ?b) (?b eg:p ?c) -> (?a eg:p ?c)]";
Reasoner reasoner = new GenericRuleReasoner(Rule.parseRules(rules));
reasoner.setDerivationLogging(true);
InfModel inf = ModelFactory.createInfModel(reasoner, model);
Jena reasoner についての私の理解では、新しい推論モデルには、ルールによって生成されたステートメントと、新しく推論されたinf
ステートメントが含まれます。model
ステートメントのインスタンスは両方inf
とmodel
共有されていますか、それとも異なっていますか? もし違うなら、これはメモリを浪費しすぎませんか?
私が抱えている問題は、推論されたステートメントをmodel
. モデルをループしてinf
新しく推論されたステートメントを見つけて追加するmodel
のは、単純なアプローチのようです。他に賢明な方法はありますか?
最後に、古いステートメントを から削除するための最良の方法は何だろうと思っていmodel
ます。時代遅れのステートメントで私が意味することは、おそらく例によって最もよく説明されます。にステートメント (Speaker hasSoundLevel 50) があるとしmodel
ます。その後、(Speaker hasSoundLevel 80) などの新しいステートメントが挿入されると、model
. これはルールを使用して達成できますか? ステートメントが挿入されてから一定の時間が経過した後、そのステートメントを古くする必要がある場合はどうすればよいでしょうか? これを達成する方法についての提案をいただければ幸いです。
ありがとう、