From d71035e6f10b3775191ad134d92f897044a592d8 Mon Sep 17 00:00:00 2001 From: yzhou Date: Fri, 1 May 2015 21:04:30 +0100 Subject: fixed some bugs --- src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoder.java | 2 ++ .../ox/cs/pagoda/tracking/TrackingRuleEncoderDisjVar1.java | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'src/uk/ac/ox/cs/pagoda/tracking') diff --git a/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoder.java b/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoder.java index 3a01e19..f3cc937 100644 --- a/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoder.java +++ b/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoder.java @@ -239,6 +239,8 @@ public abstract class TrackingRuleEncoder { return AtomicRole.create(Namespace.EQUALITY + suffix); else if (p instanceof Inequality) return AtomicRole.create(Namespace.INEQUALITY + suffix); + else if (p instanceof DatatypeRestriction) + return AtomicConcept.create(((DatatypeRestriction) p).getDatatypeURI() + suffix); else { Utility.logDebug("strange DL predicate appeared ... " + p, "the program paused here in TrackingRuleEncoderDisj.java"); diff --git a/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderDisjVar1.java b/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderDisjVar1.java index 8998051..0d6b0c6 100644 --- a/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderDisjVar1.java +++ b/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderDisjVar1.java @@ -14,6 +14,7 @@ import org.semanticweb.HermiT.model.AtomicNegationConcept; import org.semanticweb.HermiT.model.AtomicRole; import org.semanticweb.HermiT.model.DLClause; import org.semanticweb.HermiT.model.DLPredicate; +import org.semanticweb.HermiT.model.DatatypeRestriction; import org.semanticweb.HermiT.model.Equality; import org.semanticweb.HermiT.model.Inequality; import org.semanticweb.HermiT.model.InverseRole; @@ -26,6 +27,7 @@ import uk.ac.ox.cs.pagoda.reasoner.light.BasicQueryEngine; import uk.ac.ox.cs.pagoda.rules.OverApproxExist; import uk.ac.ox.cs.pagoda.rules.UpperDatalogProgram; import uk.ac.ox.cs.pagoda.util.Namespace; +import uk.ac.ox.cs.pagoda.util.Utility; public class TrackingRuleEncoderDisjVar1 extends TrackingRuleEncoderWithGap { @@ -119,7 +121,9 @@ public class TrackingRuleEncoderDisjVar1 extends TrackingRuleEncoderWithGap { return Atom.create(getGapDLPredicate(Equality.INSTANCE), headAtom.getArgument(0), headAtom.getArgument(1)); if (p instanceof Inequality) return Atom.create(getGapDLPredicate((Inequality) p), headAtom.getArgument(0), headAtom.getArgument(1)); - + if (p instanceof DatatypeRestriction) + return Atom.create(getGapDLPredicate((DatatypeRestriction) p), headAtom.getArgument(0)); + Utility.logError(p + " is not recognised."); return null; } @@ -423,7 +427,11 @@ public class TrackingRuleEncoderDisjVar1 extends TrackingRuleEncoderWithGap { for (int i = 0; i < clause.getBodyLength(); ++i) newBodyAtoms[index++] = selectBodyAtoms[selectIndex++] = clause.getBodyAtom(i); - + + for (int i = 0; i < newBodyAtoms.length; ++i) + if (newBodyAtoms[i] == null) { + System.out.println(clause); + } for (Atom atom: newHeadAtoms) { newClause = DLClause.create(new Atom[] {atom}, newBodyAtoms); trackingClauses.add(newClause); -- cgit v1.2.3