From bd995407098d1b0c79c17a28b0b23a2c24a493c6 Mon Sep 17 00:00:00 2001 From: RncLsn Date: Thu, 14 May 2015 16:56:26 +0100 Subject: It executes. Matching bounds for query 18 of UOBM. It is not stable: several critical fixes to do! --- .../rules/approximators/LimitedSkolemisationApproximator.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 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 4444c00..ba58e23 100644 --- a/src/uk/ac/ox/cs/pagoda/rules/approximators/LimitedSkolemisationApproximator.java +++ b/src/uk/ac/ox/cs/pagoda/rules/approximators/LimitedSkolemisationApproximator.java @@ -79,9 +79,11 @@ public class LimitedSkolemisationApproximator implements TupleDependentApproxima TupleBuilder commonIndividualsBuilder = new TupleBuilder<>(); for (int i = 0; i < commonVars.length; i++) commonIndividualsBuilder.add(violationTuple.get(i)); + Tuple commonIndividuals = commonIndividualsBuilder.create(); Atom headAtom = clause.getHeadAtom(0); - Atom[] bodyAtoms = clause.getBodyAtoms(); + +// Atom[] bodyAtoms = clause.getBodyAtoms(); int offset = OverApproxExist.indexOfExistential(headAtom, originalClause); // BEGIN: copy and paste @@ -111,15 +113,15 @@ public class LimitedSkolemisationApproximator implements TupleDependentApproxima for (int i = 0; i < card; ++i) individuals[i] = termsManager.getFreshIndividual(originalClause, offset + i, - commonIndividualsBuilder.create()); + commonIndividuals); for (int i = 0; i < card; ++i) { if (atomicConcept != null) ret.add(DLClause.create(new Atom[] {Atom.create(atomicConcept, individuals[i])}, EMPTY_BODY)); Atom atom = role instanceof AtomicRole ? - Atom.create((AtomicRole) role, X, individuals[i]) : - Atom.create(((InverseRole) role).getInverseOf(), individuals[i], X); + Atom.create((AtomicRole) role, commonIndividuals.get(0), individuals[i]) : + Atom.create(((InverseRole) role).getInverseOf(), individuals[i], commonIndividuals.get(0)); ret.add(DLClause.create(new Atom[] {atom}, EMPTY_BODY)); } -- cgit v1.2.3