diff options
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderDisj.java')
| -rw-r--r-- | src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderDisj.java | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderDisj.java b/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderDisj.java index 331ad12..b169053 100644 --- a/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderDisj.java +++ b/src/uk/ac/ox/cs/pagoda/tracking/TrackingRuleEncoderDisj.java | |||
| @@ -4,7 +4,7 @@ import org.semanticweb.HermiT.model.*; | |||
| 4 | import uk.ac.ox.cs.pagoda.hermit.DLClauseHelper; | 4 | import uk.ac.ox.cs.pagoda.hermit.DLClauseHelper; |
| 5 | import uk.ac.ox.cs.pagoda.reasoner.light.BasicQueryEngine; | 5 | import uk.ac.ox.cs.pagoda.reasoner.light.BasicQueryEngine; |
| 6 | import uk.ac.ox.cs.pagoda.rules.UpperDatalogProgram; | 6 | import uk.ac.ox.cs.pagoda.rules.UpperDatalogProgram; |
| 7 | import uk.ac.ox.cs.pagoda.rules.approximators.OverApproxExist; | 7 | import uk.ac.ox.cs.pagoda.rules.approximators.SkolemTermsManager; |
| 8 | import uk.ac.ox.cs.pagoda.util.Namespace; | 8 | import uk.ac.ox.cs.pagoda.util.Namespace; |
| 9 | 9 | ||
| 10 | import java.util.*; | 10 | import java.util.*; |
| @@ -22,8 +22,9 @@ public abstract class TrackingRuleEncoderDisj extends TrackingRuleEncoderWithGap | |||
| 22 | */ | 22 | */ |
| 23 | protected void processDisjunctiveRules() { | 23 | protected void processDisjunctiveRules() { |
| 24 | Map<Atom, Collection<DLClause>> auxiliaryAtoms = new HashMap<Atom, Collection<DLClause>>(); | 24 | Map<Atom, Collection<DLClause>> auxiliaryAtoms = new HashMap<Atom, Collection<DLClause>>(); |
| 25 | Map<Individual, Collection<DLClause>> skolemisedAtoms = new HashMap<Individual, Collection<DLClause>>(); | 25 | Map<Individual, Collection<DLClause>> skolemisedAtoms = new HashMap<Individual, Collection<DLClause>>(); |
| 26 | 26 | SkolemTermsManager termsManager = SkolemTermsManager.getInstance(); | |
| 27 | |||
| 27 | for (Map.Entry<DLClause, Collection<DLClause>> entry: disjunctiveRules.entrySet()) { | 28 | for (Map.Entry<DLClause, Collection<DLClause>> entry: disjunctiveRules.entrySet()) { |
| 28 | DLClause original = entry.getKey(); | 29 | DLClause original = entry.getKey(); |
| 29 | Collection<DLClause> overClauses = entry.getValue(); | 30 | Collection<DLClause> overClauses = entry.getValue(); |
| @@ -33,7 +34,7 @@ public abstract class TrackingRuleEncoderDisj extends TrackingRuleEncoderWithGap | |||
| 33 | DLClause subClause = iter.next(); | 34 | DLClause subClause = iter.next(); |
| 34 | if (DLClauseHelper.hasSubsetBodyAtoms(subClause, original)) { | 35 | if (DLClauseHelper.hasSubsetBodyAtoms(subClause, original)) { |
| 35 | Atom headAtom = subClause.getHeadAtom(0); | 36 | Atom headAtom = subClause.getHeadAtom(0); |
| 36 | if ((index = OverApproxExist.indexOfSkolemisedIndividual(headAtom)) != -1) { | 37 | if ((index = SkolemTermsManager.indexOfSkolemisedIndividual(headAtom)) != -1) { |
| 37 | Individual i = (Individual) headAtom.getArgument(index); | 38 | Individual i = (Individual) headAtom.getArgument(index); |
| 38 | Collection<DLClause> clauses = skolemisedAtoms.get(i); | 39 | Collection<DLClause> clauses = skolemisedAtoms.get(i); |
| 39 | if (clauses == null) { | 40 | if (clauses == null) { |
| @@ -55,7 +56,7 @@ public abstract class TrackingRuleEncoderDisj extends TrackingRuleEncoderWithGap | |||
| 55 | Collection<DLClause> clauses = new HashSet<DLClause>(); | 56 | Collection<DLClause> clauses = new HashSet<DLClause>(); |
| 56 | Individual[] individuals = new Individual[alc.getNumber()]; | 57 | Individual[] individuals = new Individual[alc.getNumber()]; |
| 57 | for (int i = 0; i < alc.getNumber(); ++i) { | 58 | for (int i = 0; i < alc.getNumber(); ++i) { |
| 58 | individuals[i] = OverApproxExist.getNewIndividual(original, i); | 59 | individuals[i] = termsManager.getFreshIndividual(original, i); |
| 59 | clauses.addAll(skolemisedAtoms.get(individuals[i])); | 60 | clauses.addAll(skolemisedAtoms.get(individuals[i])); |
| 60 | } | 61 | } |
| 61 | auxiliaryAtoms.put(getAuxiliaryAtom(original, headAtom, individuals), clauses); | 62 | auxiliaryAtoms.put(getAuxiliaryAtom(original, headAtom, individuals), clauses); |
