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. --- .../ac/ox/cs/pagoda/reasoner/light/KarmaQuery.java | 95 ---------------------- 1 file changed, 95 deletions(-) delete mode 100644 src/uk/ac/ox/cs/pagoda/reasoner/light/KarmaQuery.java (limited to 'src/uk/ac/ox/cs/pagoda/reasoner/light/KarmaQuery.java') diff --git a/src/uk/ac/ox/cs/pagoda/reasoner/light/KarmaQuery.java b/src/uk/ac/ox/cs/pagoda/reasoner/light/KarmaQuery.java deleted file mode 100644 index 03d2b67..0000000 --- a/src/uk/ac/ox/cs/pagoda/reasoner/light/KarmaQuery.java +++ /dev/null @@ -1,95 +0,0 @@ -package uk.ac.ox.cs.pagoda.reasoner.light; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.LinkedList; -import java.util.Map.Entry; - -import org.semanticweb.HermiT.model.DLClause; -import org.semanticweb.karma2.exception.IllegalInputQueryException; -import org.semanticweb.karma2.model.ConjunctiveQuery; -import org.semanticweb.karma2.model.cqparser.ConjunctiveQueryParser; -import uk.ac.ox.cs.pagoda.MyPrefixes; -import uk.ac.ox.cs.pagoda.hermit.DLClauseHelper; -import uk.ac.ox.cs.pagoda.hermit.RuleHelper; -import uk.ac.ox.cs.pagoda.util.Utility; - -public class KarmaQuery { - - StringBuffer queryBuffer; - - public KarmaQuery(String queryText) { - LinkedList answerVariables = new LinkedList(); - DLClause clause = DLClauseHelper.getQuery(queryText, answerVariables); - String clauseText = RuleHelper.getText(clause); -// clauseText = RuleHelper.abbreviateIRI(clauseText).replace(":-", "<-"); - clauseText = clauseText.replace(":-", "<-"); - queryBuffer = new StringBuffer(); - - clauseText = expandIRI4Arguments(clauseText); - - for (Entry entry : MyPrefixes.PAGOdAPrefixes.getPrefixIRIsByPrefixName().entrySet()) - if (clauseText.contains(entry.getKey())) { - if (queryBuffer.length() > 0) queryBuffer.append(',').append(Utility.LINE_SEPARATOR); - queryBuffer.append("prefix ").append(entry.getKey()).append(" <").append(entry.getValue()).append(">"); - } - if (queryBuffer.length() > 0) queryBuffer.append(Utility.LINE_SEPARATOR); - - queryBuffer.append("p("); - boolean first = true; - for (String var: answerVariables) { - if (first) first = false; - else queryBuffer.append(","); - - queryBuffer.append("?").append(var); - } - queryBuffer.append(")").append(clauseText.substring(0, clauseText.length() - 1)); - } - - private String expandIRI4Arguments(String clauseText) { - int leftIndex = clauseText.indexOf('('), rightIndex = clauseText.indexOf(')', leftIndex + 1); - String argsText, newArgsText; - while (leftIndex != -1) { - argsText = clauseText.substring(leftIndex + 1, rightIndex); - newArgsText = MyPrefixes.PAGOdAPrefixes.expandText(argsText); - clauseText = clauseText.replace(argsText, newArgsText); - - rightIndex += newArgsText.length() - argsText.length(); - leftIndex = clauseText.indexOf('(', rightIndex + 1); - rightIndex = clauseText.indexOf(')', leftIndex + 1); - } - - return clauseText; - } - - public ConjunctiveQuery getConjunctiveQuery() { - ConjunctiveQuery cq = null; - try { - cq = new ConjunctiveQueryParser(toString()).parse(); - } catch (FileNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalInputQueryException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (Exception e) { - Utility.logDebug("The query cannot be properly handled by KARMA."); - return null; - } - return cq; - } - - @Override - public String toString() { - return queryBuffer.toString(); - } - - static String sample = "prefix P0: , " + - "prefix rdf: , " + - "prefix owl: " + - "q(?0) <- owl:Thing(?0), P0:Person(?0)"; - -} -- cgit v1.2.3