aboutsummaryrefslogtreecommitdiff
path: root/src/uk/ac/ox/cs/pagoda/rules/OverApproxBoth.java
blob: 3cc2abae2c967fe9f83769cfa9abd899f243755a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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<DLClause> convert(DLClause clause, DLClause originalClause) {
		Collection<DLClause> ret = new LinkedList<DLClause>(); 
		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; 
	}
		
}