From 17bd9beaf7f358a44e5bf36a5855fe6727d506dc Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Tue, 10 May 2022 18:17:06 +0100 Subject: [pagoda] Move project to Scala This commit includes a few changes: - The repository still uses Maven to manage dependency but it is now a Scala project. - The code has been ported from OWLAPI 3.4.10 to 5.1.20 - A proof of concept program using both RSAComb and PAGOdA has been added. --- .../ox/cs/pagoda/reasoner/IterativeRefinement.java | 117 --------------------- 1 file changed, 117 deletions(-) delete mode 100644 src/uk/ac/ox/cs/pagoda/reasoner/IterativeRefinement.java (limited to 'src/uk/ac/ox/cs/pagoda/reasoner/IterativeRefinement.java') diff --git a/src/uk/ac/ox/cs/pagoda/reasoner/IterativeRefinement.java b/src/uk/ac/ox/cs/pagoda/reasoner/IterativeRefinement.java deleted file mode 100644 index 7847e7c..0000000 --- a/src/uk/ac/ox/cs/pagoda/reasoner/IterativeRefinement.java +++ /dev/null @@ -1,117 +0,0 @@ -package uk.ac.ox.cs.pagoda.reasoner; - -import org.semanticweb.owlapi.model.OWLOntology; -import uk.ac.ox.cs.pagoda.constraints.BottomStrategy; -import uk.ac.ox.cs.pagoda.constraints.UpperUnaryBottom; -import uk.ac.ox.cs.pagoda.multistage.MultiStageQueryEngine; -import uk.ac.ox.cs.pagoda.query.AnswerTuples; -import uk.ac.ox.cs.pagoda.query.QueryRecord; -import uk.ac.ox.cs.pagoda.reasoner.light.BasicQueryEngine; -import uk.ac.ox.cs.pagoda.rules.GeneralProgram; -import uk.ac.ox.cs.pagoda.tracking.QueryTracker; -import uk.ac.ox.cs.pagoda.util.Utility; - -import java.io.File; - -public class IterativeRefinement { - - private static final int depthLimit = 1; - - QueryRecord m_record; - QueryTracker m_tracker; - BasicQueryEngine m_trackingStore; - QueryRecord[] botQueryRecords; - - int m_depth = 0; - String tempDataFile = "temp.ttl"; - - public IterativeRefinement(QueryRecord queryRecord, QueryTracker tracker, BasicQueryEngine trackingStore, QueryRecord[] botQueryRecords) { - m_record = queryRecord; - m_tracker = tracker; - m_trackingStore = trackingStore; - this.botQueryRecords = botQueryRecords; - } - - public OWLOntology extractWithFullABox(String dataset, BottomStrategy upperBottom) { - GeneralProgram program; - boolean update; - while (m_depth < depthLimit) { - ++m_depth; - program = new GeneralProgram(m_record.getRelevantClauses(), m_record.getRelevantOntology()); - - MultiStageQueryEngine tEngine = new MultiStageQueryEngine("query-tracking", true); - try { - tEngine.importRDFData("data", dataset); - if (tEngine.materialise4SpecificQuery(program, m_record, upperBottom) != 1) { - return m_record.getRelevantOntology(); - } - - AnswerTuples ans = null; - try { - ans = tEngine.evaluate(m_record.getQueryText()); - update = m_record.updateUpperBoundAnswers(ans); - } finally { - if (ans != null) ans.dispose(); - } - } finally { - tEngine.dispose(); - } - - if(m_record.isProcessed()) - return null; - - if (!update) break; - - m_record.updateSubID(); - m_tracker.extract(m_trackingStore, botQueryRecords, true); - } - - return m_record.getRelevantOntology(); - } - - public OWLOntology extract(UpperUnaryBottom upperBottom) { - GeneralProgram program; - boolean update; - while (m_depth < depthLimit) { - m_record.saveABoxInTurtle(tempDataFile); - program = new GeneralProgram(m_record.getRelevantClauses(), m_record.getRelevantOntology()); - - MultiStageQueryEngine tEngine = new MultiStageQueryEngine("query-tracking", true); - try { - tEngine.importRDFData("fragment abox", tempDataFile); - if (tEngine.materialise4SpecificQuery(program, m_record, upperBottom) != 1) { - return m_record.getRelevantOntology(); - } - - AnswerTuples ans = null; - try { - ans = tEngine.evaluate(m_record.getQueryText()); - update = m_record.updateUpperBoundAnswers(ans); - } finally { - if (ans != null) ans.dispose(); - } - } finally { - tEngine.dispose(); - } - - if(m_record.isProcessed()) - return null; - - if (!update) break; - - m_record.updateSubID(); - m_tracker.extract(m_trackingStore, botQueryRecords, true); - } - - return m_record.getRelevantOntology(); - } - - public void dispose() { - File file = new File(tempDataFile); - if (file.exists()) { - file.delete(); - Utility.logDebug(file.getAbsolutePath() + " is deleted."); - } - } - -} -- cgit v1.2.3