From 9ce65c5a963b03ee97fe9cb6c5aa65a3c04a80a8 Mon Sep 17 00:00:00 2001 From: yzhou Date: Tue, 21 Apr 2015 10:34:27 +0100 Subject: initial version --- src/uk/ac/ox/cs/pagoda/rules/OverApproxBoth.java | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/uk/ac/ox/cs/pagoda/rules/OverApproxBoth.java (limited to 'src/uk/ac/ox/cs/pagoda/rules/OverApproxBoth.java') diff --git a/src/uk/ac/ox/cs/pagoda/rules/OverApproxBoth.java b/src/uk/ac/ox/cs/pagoda/rules/OverApproxBoth.java new file mode 100644 index 0000000..3cc2aba --- /dev/null +++ b/src/uk/ac/ox/cs/pagoda/rules/OverApproxBoth.java @@ -0,0 +1,24 @@ +package uk.ac.ox.cs.pagoda.rules; + +import java.util.Collection; +import java.util.LinkedList; + +import org.semanticweb.HermiT.model.AtLeastDataRange; +import org.semanticweb.HermiT.model.DLClause; + +public class OverApproxBoth implements Approximator { + + Approximator approxDist = new OverApproxDisj(), approxExist = new OverApproxExist(); + + @Override + public Collection convert(DLClause clause, DLClause originalClause) { + Collection ret = new LinkedList(); + for (DLClause tClause: approxDist.convert(clause, originalClause)) { + if (tClause.getHeadLength() > 0 && tClause.getHeadAtom(0).getDLPredicate() instanceof AtLeastDataRange) + continue; + ret.addAll(approxExist.convert(tClause, originalClause)); + } + return ret; + } + +} -- cgit v1.2.3