blob: e2a171da3170bbaf7b3bea3f90fd78fc81cdcfbf (
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
package uk.ac.ox.cs.pagoda.rules;
import org.semanticweb.owlapi.model.OWLOntology;
import uk.ac.ox.cs.pagoda.constraints.BottomStrategy;
import uk.ac.ox.cs.pagoda.constraints.UpperUnaryBottom;
import uk.ac.ox.cs.pagoda.util.disposable.Disposable;
import uk.ac.ox.cs.pagoda.util.disposable.DisposedException;
import java.io.InputStream;
public class DatalogProgram extends Disposable {
UpperDatalogProgram upperProgram = new UpperDatalogProgram();
LowerDatalogProgram lowerProgram;
GeneralProgram program = new GeneralProgram();
BottomStrategy upperBottom;
public DatalogProgram(InputStream inputStream) {
lowerProgram = new LowerDatalogProgram();
upperProgram.load(inputStream, upperBottom = new UpperUnaryBottom());
lowerProgram.clone(upperProgram);
program.clone(upperProgram);
upperProgram.transform();
lowerProgram.transform();
program.transform();
program.buildDependencyGraph();
lowerProgram.dependencyGraph = upperProgram.buildDependencyGraph();
}
public DatalogProgram(OWLOntology o) {
lowerProgram = new LowerDatalogProgram();
upperProgram.load(o, upperBottom = new UpperUnaryBottom());
// upperProgram.load(o, upperBottom = new UnaryBottom());
lowerProgram.clone(upperProgram);
program.clone(upperProgram);
// program.botStrategy = new UnaryBottom();
upperProgram.transform();
lowerProgram.transform();
program.transform();
program.buildDependencyGraph();
lowerProgram.dependencyGraph = upperProgram.buildDependencyGraph();
}
public LowerDatalogProgram getLower() {
if(isDisposed()) throw new DisposedException();
return lowerProgram;
}
public UpperDatalogProgram getUpper() {
if(isDisposed()) throw new DisposedException();
return upperProgram;
}
public GeneralProgram getGeneral() {
if(isDisposed()) throw new DisposedException();
return program;
}
public String getAdditionalDataFile() {
if(isDisposed()) throw new DisposedException();
return upperProgram.getAdditionalDataFile();
}
public BottomStrategy getUpperBottomStrategy() {
if(isDisposed()) throw new DisposedException();
return upperBottom;
}
@Override
public void dispose() {
super.dispose();
if(upperProgram != null) upperProgram.deleteABoxTurtleFile();
}
}
|