blob: 611e183fec54520e46acbf6ea7b9752ec5fc7b32 (
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
package uk.ac.ox.cs.pagoda.rules;
import org.semanticweb.HermiT.model.DLClause;
import org.semanticweb.HermiT.model.DLPredicate;
import uk.ac.ox.cs.pagoda.rules.approximators.OverApproxBoth;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
public class UpperDatalogProgram extends UpperProgram {
public UpperDatalogProgram() {}
// @Override
// public String getDirectory() {
// File dir = new File(ontologyDirectory + Utility.FILE_SEPARATOR + "datalog");
// if (!dir.exists())
// dir.mkdirs();
// return dir.getPath();
// }
@Override
protected void initApproximator() {
m_approx = new OverApproxBoth();
}
public int getBottomNumber() {
return botStrategy.getBottomNumber();
}
public void updateDependencyGraph(Collection<DLClause> delta) {
Map<DLPredicate, DLClause> map = new HashMap<DLPredicate, DLClause>();
for (DLClause clause: clauses)
if (botStrategy.isBottomRule(clause))
map.put(clause.getHeadAtom(0).getDLPredicate(), getCorrespondingClause(clause));
for (DLClause clause: delta) {
clauses.add(clause);
correspondence.put(clause, map.get(clause.getBodyAtom(0).getDLPredicate()));
}
dependencyGraph.update(delta);
}
}
|