From 2d007839a1e0f9775097f5f7cff14521d2afd021 Mon Sep 17 00:00:00 2001 From: yzhou Date: Fri, 1 May 2015 12:10:58 +0100 Subject: add time tag to the temporary output fixed a bug about equality in the tracking datalog encoding --- .../cs/pagoda/multistage/treatement/Pick4NegativeConcept.java | 4 +++- .../ac/ox/cs/pagoda/tracking/TrackingRuleEncoderWithGap.java | 7 +++++-- src/uk/ac/ox/cs/pagoda/util/Utility.java | 10 ++++++++-- test/uk/ac/ox/cs/pagoda/ore/PagodaOWLReasoner.java | 3 +-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/uk/ac/ox/cs/pagoda/multistage/treatement/Pick4NegativeConcept.java b/src/uk/ac/ox/cs/pagoda/multistage/treatement/Pick4NegativeConcept.java index 5abb2fe..f40ae31 100644 --- a/src/uk/ac/ox/cs/pagoda/multistage/treatement/Pick4NegativeConcept.java +++ b/src/uk/ac/ox/cs/pagoda/multistage/treatement/Pick4NegativeConcept.java @@ -76,7 +76,9 @@ public abstract class Pick4NegativeConcept implements Treatment { String negativeQuery; String[] subVars; for (Atom headAtom: orderedAtoms) { - negativeQuery = SparqlHelper.getSPARQLQuery(new Atom[] { MultiStageUpperProgram.getNegativeAtom(headAtom) }, + Atom negativeAtom = MultiStageUpperProgram.getNegativeAtom(headAtom); + if (negativeAtom == null) continue; + negativeQuery = SparqlHelper.getSPARQLQuery(new Atom[] { negativeAtom }, subVars = MultiStageUpperProgram.getVarSubset(violation.getVariables(), headAtom)); negTuples.clear(); Atom gapHeadAtom = addGap ? getGapAtom(headAtom) : null; diff --git a/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderWithGap.java b/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderWithGap.java index e7bd188..67d07a8 100644 --- a/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderWithGap.java +++ b/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderWithGap.java @@ -3,10 +3,12 @@ package uk.ac.ox.cs.pagoda.tracking; import java.util.Collection; import java.util.LinkedList; +import org.semanticweb.HermiT.model.AnnotatedEquality; import org.semanticweb.HermiT.model.Atom; import org.semanticweb.HermiT.model.AtomicConcept; import org.semanticweb.HermiT.model.AtomicRole; import org.semanticweb.HermiT.model.DLClause; +import org.semanticweb.HermiT.model.Equality; import org.semanticweb.HermiT.model.Variable; import org.semanticweb.owlapi.model.OWLClass; import org.semanticweb.owlapi.model.OWLObjectProperty; @@ -83,11 +85,12 @@ public class TrackingRuleEncoderWithGap extends TrackingRuleEncoder { } DLClause newClause; + headAtom = clause.getHeadAtom(0); - int offset = (clause.getBodyLength() == 1 && clause.getBodyAtom(0).getDLPredicate().toString().contains("owl:Nothing")) ? 1 : 2; + boolean equalityHead = headAtom.getDLPredicate() instanceof Equality || headAtom.getDLPredicate() instanceof AnnotatedEquality; + int offset = (equalityHead || (clause.getBodyLength() == 1 && clause.getBodyAtom(0).getDLPredicate().toString().contains("owl:Nothing"))) ? 1 : 2; Atom[] newBodyAtoms = new Atom[clause.getBodyLength() + offset]; - headAtom = clause.getHeadAtom(0); newBodyAtoms[0] = Atom.create( getTrackingDLPredicate(headAtom.getDLPredicate()), DLClauseHelper.getArguments(headAtom)); diff --git a/src/uk/ac/ox/cs/pagoda/util/Utility.java b/src/uk/ac/ox/cs/pagoda/util/Utility.java index 120d463..6982bb1 100644 --- a/src/uk/ac/ox/cs/pagoda/util/Utility.java +++ b/src/uk/ac/ox/cs/pagoda/util/Utility.java @@ -11,6 +11,8 @@ import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintStream; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.Collection; import java.util.Date; import java.util.HashSet; @@ -30,7 +32,7 @@ public class Utility { public static final String FILE_SEPARATOR = System.getProperty("file.separator"); public static final String LINE_SEPARATOR = System.getProperty("line.separator"); - public static final String TempDirectory = (new File("tmp")).getAbsolutePath() + FILE_SEPARATOR; + public static final String TempDirectory = (new File("tmp" + DateTimeFormatter.ISO_LOCAL_DATE_TIME.format(LocalDateTime.now()))).getAbsolutePath() + FILE_SEPARATOR; public static final int TEST = -1; public static final int FLY = 0; @@ -235,7 +237,11 @@ public class Utility { public static void cleanup() { File tmp = new File(TempDirectory); - if (tmp.exists()) tmp.delete(); + if (tmp.exists()) { + for (File file: tmp.listFiles()) + file.delete(); + tmp.delete(); + } } public static String toFileIRI(String path) { diff --git a/test/uk/ac/ox/cs/pagoda/ore/PagodaOWLReasoner.java b/test/uk/ac/ox/cs/pagoda/ore/PagodaOWLReasoner.java index 282c8f3..7aaabed 100644 --- a/test/uk/ac/ox/cs/pagoda/ore/PagodaOWLReasoner.java +++ b/test/uk/ac/ox/cs/pagoda/ore/PagodaOWLReasoner.java @@ -463,8 +463,7 @@ public class PagodaOWLReasoner implements OWLReasoner { @Override public void dispose() { - // TODO Auto-generated method stub - + reasoner.dispose(); } } -- cgit v1.2.3