diff options
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderDisjVar1.java')
| -rw-r--r-- | src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderDisjVar1.java | 12 |
1 files changed, 10 insertions, 2 deletions
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); |
