Thank you for the tip Dave. OWLMicro seems to be marginally faster but almost insignificant for my needs. I mostly compute the owl:inverseOf in the following data (http://www.lotico.com/meetup/2009/locations.txt)
I am using the YourKit Java Profiler 9.5.3 and am a bit surprised that my shiny dual quad core XEON CPUs (8 processors) are hoovering at around 12% for almost an hour. Is there a way to prioritize the reasoner method to take a bit more of the action? As far as I can tell its the com.hp.hpl.jena.reasoner.rulesys.impl.RETEEngine at work here. Marco On Wed, Jan 12, 2011 at 4:16 AM, Dave Reynolds <[email protected]> wrote: > On Tue, 2011-01-11 at 20:26 -0500, Marco Neumann wrote: >> I have the following inference work-flow: >> >> Model m = TDBFactory.createModel(directory) ; >> >> m.read(data); >> >> Reasoner reasoner = ReasonerRegistry.getOWLMiniReasoner(); >> >> InfModel inf = ModelFactory.createInfModel(reasoner, m); >> >> //up to here everything runs pretty fast >> >> m.add(inf.getDeductionsModel()); >> >> // here the model.add takes forever to complete >> >> m.commit(); >> >> Has anyone recommendations to improve performance here or share best >> practice? > > The reasoners do all their work in memory so running over the TDB copy > just slows things down without any benefit of scalability. > > I'd do something like: > > Model m = TDBFactory.createModel(directory) ; > > Model tmp = ModelFactory.createDefaultModel(); > tmp.read(data); > Reasoner reasoner = ReasonerRegistry.getOWLMiniReasoner(); > InfModel inf = ModelFactory.createInfModel(reasoner, tmp); > > m.add(tmp); > m.add(inf.getDeductionsModel()); > > Note 1. Depending on what inferences you want OWLMicro can be notably faster > than OWLMini. > > Note 2. The deductionsModel only contains the forward deductions. When > you ask an InfModel a query it will also run backward chaining rules so > to get the entire inference closure you need to ask inf for everything. > In that case replace the last two lines by: > m.add( inf ); > > If you only want certainly types of inference then ask more specific > queries to inf and add only those results to m. > > Dave > > > -- Marco Neumann KONA Make sure to join us at the Semantic Technology Conference 2011 in San Francisco and save 15% with the coupon code STMN http://www.lotico.com/evt/stc2011/
