diff options
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/tracking')
| -rw-r--r-- | src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoder.java | 2 | ||||
| -rw-r--r-- | src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderDisjVar1.java | 12 |
2 files changed, 12 insertions, 2 deletions
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 { | |||
| 239 | return AtomicRole.create(Namespace.EQUALITY + suffix); | 239 | return AtomicRole.create(Namespace.EQUALITY + suffix); |
| 240 | else if (p instanceof Inequality) | 240 | else if (p instanceof Inequality) |
| 241 | return AtomicRole.create(Namespace.INEQUALITY + suffix); | 241 | return AtomicRole.create(Namespace.INEQUALITY + suffix); |
| 242 | else if (p instanceof DatatypeRestriction) | ||
| 243 | return AtomicConcept.create(((DatatypeRestriction) p).getDatatypeURI() + suffix); | ||
| 242 | else { | 244 | else { |
| 243 | Utility.logDebug("strange DL predicate appeared ... " + p, | 245 | Utility.logDebug("strange DL predicate appeared ... " + p, |
| 244 | "the program paused here in TrackingRuleEncoderDisj.java"); | 246 | "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; | |||
| 14 | import org.semanticweb.HermiT.model.AtomicRole; | 14 | import org.semanticweb.HermiT.model.AtomicRole; |
| 15 | import org.semanticweb.HermiT.model.DLClause; | 15 | import org.semanticweb.HermiT.model.DLClause; |
| 16 | import org.semanticweb.HermiT.model.DLPredicate; | 16 | import org.semanticweb.HermiT.model.DLPredicate; |
| 17 | import org.semanticweb.HermiT.model.DatatypeRestriction; | ||
| 17 | import org.semanticweb.HermiT.model.Equality; | 18 | import org.semanticweb.HermiT.model.Equality; |
| 18 | import org.semanticweb.HermiT.model.Inequality; | 19 | import org.semanticweb.HermiT.model.Inequality; |
| 19 | import org.semanticweb.HermiT.model.InverseRole; | 20 | import org.semanticweb.HermiT.model.InverseRole; |
| @@ -26,6 +27,7 @@ import uk.ac.ox.cs.pagoda.reasoner.light.BasicQueryEngine; | |||
| 26 | import uk.ac.ox.cs.pagoda.rules.OverApproxExist; | 27 | import uk.ac.ox.cs.pagoda.rules.OverApproxExist; |
| 27 | import uk.ac.ox.cs.pagoda.rules.UpperDatalogProgram; | 28 | import uk.ac.ox.cs.pagoda.rules.UpperDatalogProgram; |
| 28 | import uk.ac.ox.cs.pagoda.util.Namespace; | 29 | import uk.ac.ox.cs.pagoda.util.Namespace; |
| 30 | import uk.ac.ox.cs.pagoda.util.Utility; | ||
| 29 | 31 | ||
| 30 | public class TrackingRuleEncoderDisjVar1 extends TrackingRuleEncoderWithGap { | 32 | public class TrackingRuleEncoderDisjVar1 extends TrackingRuleEncoderWithGap { |
| 31 | 33 | ||
| @@ -119,7 +121,9 @@ public class TrackingRuleEncoderDisjVar1 extends TrackingRuleEncoderWithGap { | |||
| 119 | return Atom.create(getGapDLPredicate(Equality.INSTANCE), headAtom.getArgument(0), headAtom.getArgument(1)); | 121 | return Atom.create(getGapDLPredicate(Equality.INSTANCE), headAtom.getArgument(0), headAtom.getArgument(1)); |
| 120 | if (p instanceof Inequality) | 122 | if (p instanceof Inequality) |
| 121 | return Atom.create(getGapDLPredicate((Inequality) p), headAtom.getArgument(0), headAtom.getArgument(1)); | 123 | return Atom.create(getGapDLPredicate((Inequality) p), headAtom.getArgument(0), headAtom.getArgument(1)); |
| 122 | 124 | if (p instanceof DatatypeRestriction) | |
| 125 | return Atom.create(getGapDLPredicate((DatatypeRestriction) p), headAtom.getArgument(0)); | ||
| 126 | Utility.logError(p + " is not recognised."); | ||
| 123 | return null; | 127 | return null; |
| 124 | } | 128 | } |
| 125 | 129 | ||
| @@ -423,7 +427,11 @@ public class TrackingRuleEncoderDisjVar1 extends TrackingRuleEncoderWithGap { | |||
| 423 | 427 | ||
| 424 | for (int i = 0; i < clause.getBodyLength(); ++i) | 428 | for (int i = 0; i < clause.getBodyLength(); ++i) |
| 425 | newBodyAtoms[index++] = selectBodyAtoms[selectIndex++] = clause.getBodyAtom(i); | 429 | newBodyAtoms[index++] = selectBodyAtoms[selectIndex++] = clause.getBodyAtom(i); |
| 426 | 430 | ||
| 431 | for (int i = 0; i < newBodyAtoms.length; ++i) | ||
| 432 | if (newBodyAtoms[i] == null) { | ||
| 433 | System.out.println(clause); | ||
| 434 | } | ||
| 427 | for (Atom atom: newHeadAtoms) { | 435 | for (Atom atom: newHeadAtoms) { |
| 428 | newClause = DLClause.create(new Atom[] {atom}, newBodyAtoms); | 436 | newClause = DLClause.create(new Atom[] {atom}, newBodyAtoms); |
| 429 | trackingClauses.add(newClause); | 437 | trackingClauses.add(newClause); |
