aboutsummaryrefslogtreecommitdiff
path: root/src/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java
diff options
context:
space:
mode:
authorRncLsn <rnc.lsn@gmail.com>2015-05-13 11:57:06 +0100
committerRncLsn <rnc.lsn@gmail.com>2015-05-13 11:57:06 +0100
commit7e0ecc07285209e65f9d4d022065d06a4997fc86 (patch)
tree3c3faa6684e49444c7078903d2e5762fc44bb3a6 /src/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java
parent0c2726db44b562cbda9bfa87e76d829927c31ec8 (diff)
downloadACQuA-7e0ecc07285209e65f9d4d022065d06a4997fc86.tar.gz
ACQuA-7e0ecc07285209e65f9d4d022065d06a4997fc86.zip
Implementing Limited Skolemisation, in particular SkolemTermsDispenser.
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java')
-rw-r--r--src/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java31
1 files changed, 24 insertions, 7 deletions
diff --git a/src/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java b/src/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java
index a664ba1..199d167 100644
--- a/src/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java
+++ b/src/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java
@@ -10,6 +10,7 @@ import uk.ac.ox.cs.pagoda.constraints.UnaryBottom;
10import uk.ac.ox.cs.pagoda.constraints.UpperUnaryBottom; 10import uk.ac.ox.cs.pagoda.constraints.UpperUnaryBottom;
11import uk.ac.ox.cs.pagoda.multistage.Normalisation; 11import uk.ac.ox.cs.pagoda.multistage.Normalisation;
12import uk.ac.ox.cs.pagoda.multistage.RestrictedApplication; 12import uk.ac.ox.cs.pagoda.multistage.RestrictedApplication;
13import uk.ac.ox.cs.pagoda.rules.approximators.Approximator;
13import uk.ac.ox.cs.pagoda.util.Timer; 14import uk.ac.ox.cs.pagoda.util.Timer;
14import uk.ac.ox.cs.pagoda.util.Utility; 15import uk.ac.ox.cs.pagoda.util.Utility;
15 16
@@ -106,7 +107,26 @@ public class LowerDatalogProgram extends ApproxProgram implements IncrementalPro
106 107
107 @Override 108 @Override
108 protected void initApproximator() { 109 protected void initApproximator() {
109 m_approx = new IgnoreBoth(); 110 m_approx = new IgnoreBoth();
111 }
112
113 private class IgnoreBoth implements Approximator {
114
115 @Override
116 public Collection<DLClause> convert(DLClause clause, DLClause originalClause) {
117 Collection<DLClause> ret = new LinkedList<DLClause>();
118
119 if (clause.getHeadLength() > 1) return ret;
120
121 if (clause.getHeadLength() > 0) {
122 DLPredicate predicate = clause.getHeadAtom(0).getDLPredicate();
123
124 if (predicate instanceof AtLeast) return ret;
125 }
126
127 ret.add(clause);
128 return ret;
129 }
110 } 130 }
111 131
112} 132}
@@ -116,15 +136,13 @@ class ClassifyThread extends Thread {
116 IncrementalProgram m_program; 136 IncrementalProgram m_program;
117 Collection<DLClause> clauses = new LinkedList<DLClause>(); 137 Collection<DLClause> clauses = new LinkedList<DLClause>();
118 138
119 Variable X = Variable.create("X"), Y = Variable.create("Y"); 139 Variable X = Variable.create("X"), Y = Variable.create("Y");
120 140 Reasoner hermitReasoner;
141 OWLOntology ontology;
121 ClassifyThread(IncrementalProgram program) { 142 ClassifyThread(IncrementalProgram program) {
122 m_program = program; 143 m_program = program;
123 } 144 }
124 145
125 Reasoner hermitReasoner;
126 OWLOntology ontology;
127
128 @Override 146 @Override
129 public void run() { 147 public void run() {
130 ontology = m_program.getOntology(); 148 ontology = m_program.getOntology();
@@ -215,5 +233,4 @@ class ClassifyThread extends Thread {
215 private Atom getAtom(OWLClass c) { 233 private Atom getAtom(OWLClass c) {
216 return Atom.create(AtomicConcept.create(c.toStringID()), X); 234 return Atom.create(AtomicConcept.create(c.toStringID()), X);
217 } 235 }
218
219} \ No newline at end of file 236} \ No newline at end of file