Junsung, is InfModel.getDeductionsModel() not what you're looking for?
https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/InfModel.html#getDeductionsModel-- On Tue, Sep 15, 2015 at 9:53 AM, Junsung <[email protected]> wrote: > To whom it may concern, > > > I have a Jena Model filled with statements and use a GenericRuleReasoner with > custom rule strings as follow (Example directly taken from Jena tutorial > page <https://jena.apache.org/documentation/inference/index.html>) > > 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); > > From my understanding of Jena reasoner, new inference model inf would > contain statements from model as well as newly inferred statements > generated by the rules. Are instances of statements in both inf and > model shared > or different? If different, wouldn't this waste memory too much? > > An issue that I'm having is reusing inferred statements into the model. > Looping through infmodel to find newly inferred statements and adding them > to model seems to be a naive approach. Is there any other wiser method? > > Lastly, I am wondering what would be the best approach to remove outdated > statement from model. What I mean by an outdated statement is probably best > explained by an example. Say there is a statement (Speaker hasSoundLevel > 50) in the model. Later, when a new statement such as (Speaker > hasSoundLevel 80) is inserted, it should invalidate(i.e. delete) (Speaker > hasSoundLevel 50) from the model. Could this be achieved by using a rule? > What if a statement needs to be outdated after certain amount of time since > its insertion? Any suggestions on how to achieve this would be appreciated. > > Thanks, > > > Junsung Lim
