From 4b7253559c290b6fdd1c4122830f153fda85dd62 Mon Sep 17 00:00:00 2001 From: RncLsn Date: Fri, 29 May 2015 18:35:51 +0100 Subject: Disposable. --- .../ox/cs/pagoda/reasoner/ELHOQueryReasoner.java | 160 +++++++++++---------- 1 file changed, 83 insertions(+), 77 deletions(-) (limited to 'src/uk/ac/ox/cs/pagoda/reasoner/ELHOQueryReasoner.java') diff --git a/src/uk/ac/ox/cs/pagoda/reasoner/ELHOQueryReasoner.java b/src/uk/ac/ox/cs/pagoda/reasoner/ELHOQueryReasoner.java index f5a8093..0a151bc 100644 --- a/src/uk/ac/ox/cs/pagoda/reasoner/ELHOQueryReasoner.java +++ b/src/uk/ac/ox/cs/pagoda/reasoner/ELHOQueryReasoner.java @@ -10,86 +10,92 @@ import uk.ac.ox.cs.pagoda.reasoner.light.KarmaQueryEngine; import uk.ac.ox.cs.pagoda.rules.LowerDatalogProgram; import uk.ac.ox.cs.pagoda.util.Timer; import uk.ac.ox.cs.pagoda.util.Utility; +import uk.ac.ox.cs.pagoda.util.disposable.DisposedException; class ELHOQueryReasoner extends QueryReasoner { - LowerDatalogProgram program; - - OWLOntology elho_ontology; - KarmaQueryEngine elLowerStore = null; - - private Timer t = new Timer(); - - public ELHOQueryReasoner() { - elLowerStore = new KarmaQueryEngine("el"); - } - - @Override - public void evaluate(QueryRecord queryRecord) { - AnswerTuples elAnswer = null; - t.reset(); - try { - elAnswer = elLowerStore.evaluate(queryRecord.getQueryText(), queryRecord.getAnswerVariables()); - queryRecord.updateLowerBoundAnswers(elAnswer); - } finally { - if (elAnswer != null) elAnswer.dispose(); - } - queryRecord.addProcessingTime(Step.EL_LOWER_BOUND, t.duration()); - - queryRecord.setDifficulty(Step.EL_LOWER_BOUND); - queryRecord.markAsProcessed(); - } - - @Override - public void evaluateUpper(QueryRecord queryRecord) { - evaluate(queryRecord); - } - - @Override - public void dispose() { - if (elLowerStore != null) elLowerStore.dispose(); - super.dispose(); - } - - @Override - public void loadOntology(OWLOntology ontology) { - program = new LowerDatalogProgram(properties.getToClassify()); - program.load(ontology, new UnaryBottom()); - program.transform(); - - importData(program.getAdditionalDataFile()); - - elho_ontology = new ELHOProfile().getFragment(ontology); - elLowerStore.processOntology(elho_ontology); - } - - @Override - public boolean preprocess() { - elLowerStore.importRDFData("data", importedData.toString()); - String rlLowerProgramText = program.toString(); + LowerDatalogProgram program; + + OWLOntology elho_ontology; + KarmaQueryEngine elLowerStore = null; + + private Timer t = new Timer(); + + public ELHOQueryReasoner() { + elLowerStore = new KarmaQueryEngine("el"); + } + + @Override + public void evaluate(QueryRecord queryRecord) { + if(isDisposed()) throw new DisposedException(); + AnswerTuples elAnswer = null; + t.reset(); + try { + elAnswer = elLowerStore.evaluate(queryRecord.getQueryText(), queryRecord.getAnswerVariables()); + queryRecord.updateLowerBoundAnswers(elAnswer); + } finally { + if(elAnswer != null) elAnswer.dispose(); + } + queryRecord.addProcessingTime(Step.EL_LOWER_BOUND, t.duration()); + + queryRecord.setDifficulty(Step.EL_LOWER_BOUND); + queryRecord.markAsProcessed(); + } + + @Override + public void evaluateUpper(QueryRecord queryRecord) { + if(isDisposed()) throw new DisposedException(); + evaluate(queryRecord); + } + + @Override + public void dispose() { + super.dispose(); + if(elLowerStore != null) elLowerStore.dispose(); + } + + @Override + public void loadOntology(OWLOntology ontology) { + if(isDisposed()) throw new DisposedException(); + program = new LowerDatalogProgram(properties.getToClassify()); + program.load(ontology, new UnaryBottom()); + program.transform(); + + importData(program.getAdditionalDataFile()); + + elho_ontology = new ELHOProfile().getFragment(ontology); + elLowerStore.processOntology(elho_ontology); + } + + @Override + public boolean preprocess() { + if(isDisposed()) throw new DisposedException(); + elLowerStore.importRDFData("data", importedData.toString()); + String rlLowerProgramText = program.toString(); // program.save(); - elLowerStore.materialise("lower program", rlLowerProgramText); - elLowerStore.initialiseKarma(); - - if (!isConsistent()) { - Utility.logDebug("The dataset is not consistent with the ontology."); - return false; - } - return true; - } - - @Override - public boolean isConsistent() { - String[] X = new String[] {"X"}; - AnswerTuples ans = null; - try { - ans = elLowerStore.evaluate(QueryRecord.botQueryText, X); - if (ans.isValid()) return false; - } finally { - if (ans != null) ans.dispose(); - } - - return true; - } + elLowerStore.materialise("lower program", rlLowerProgramText); + elLowerStore.initialiseKarma(); + + if(!isConsistent()) { + Utility.logDebug("The dataset is not consistent with the ontology."); + return false; + } + return true; + } + + @Override + public boolean isConsistent() { + if(isDisposed()) throw new DisposedException(); + String[] X = new String[]{"X"}; + AnswerTuples ans = null; + try { + ans = elLowerStore.evaluate(QueryRecord.botQueryText, X); + if(ans.isValid()) return false; + } finally { + if(ans != null) ans.dispose(); + } + + return true; + } } -- cgit v1.2.3