From b3b822d187a6402a39d30e471fe90a5dfad64312 Mon Sep 17 00:00:00 2001 From: RncLsn Date: Wed, 3 Jun 2015 15:21:30 +0100 Subject: Before reintroducing extended queries. --- .../LimitedSkolemisationApproximator.java | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'src/uk/ac/ox/cs/pagoda/rules') diff --git a/src/uk/ac/ox/cs/pagoda/rules/approximators/LimitedSkolemisationApproximator.java b/src/uk/ac/ox/cs/pagoda/rules/approximators/LimitedSkolemisationApproximator.java index 3f1ed7e..5f6e362 100644 --- a/src/uk/ac/ox/cs/pagoda/rules/approximators/LimitedSkolemisationApproximator.java +++ b/src/uk/ac/ox/cs/pagoda/rules/approximators/LimitedSkolemisationApproximator.java @@ -3,6 +3,7 @@ package uk.ac.ox.cs.pagoda.rules.approximators; import org.semanticweb.HermiT.model.*; import uk.ac.ox.cs.pagoda.multistage.MultiStageUpperProgram; import uk.ac.ox.cs.pagoda.rules.ExistConstantApproximator; +import uk.ac.ox.cs.pagoda.util.Utility; import uk.ac.ox.cs.pagoda.util.tuples.Tuple; import uk.ac.ox.cs.pagoda.util.tuples.TupleBuilder; @@ -53,12 +54,22 @@ public class LimitedSkolemisationApproximator implements TupleDependentApproxima } + public int getMaxDepth(Tuple violationTuple) { + int maxDepth = 0; + for(Individual individual : violationTuple) + maxDepth = Integer.max(maxDepth, skolemTermsManager.getDepthOf(individual)); + + return maxDepth; + } + private Collection overApprox(DLClause clause, DLClause originalClause, Collection> violationTuples) { ArrayList result = new ArrayList<>(); for (Tuple violationTuple : violationTuples) - if (getMaxDepth(violationTuple) > maxTermDepth) + if(getMaxDepth(violationTuple) > maxTermDepth) { result.addAll(alternativeApproximator.convert(clause, originalClause, null)); + Utility.logDebug("Approximating maximal individual by a constant in rule:" + originalClause); + } else result.addAll(getGroundSkolemisation(clause, originalClause, violationTuple)); @@ -138,13 +149,4 @@ public class LimitedSkolemisationApproximator implements TupleDependentApproxima // END: copy and paste } - - - public int getMaxDepth(Tuple violationTuple) { - int maxDepth = 0; - for (Individual individual : violationTuple) - maxDepth = Integer.max(maxDepth, skolemTermsManager.getDepthOf(individual)); - - return maxDepth; - } } -- cgit v1.2.3