diff options
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java')
| -rw-r--r-- | src/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java | 31 |
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; | |||
| 10 | import uk.ac.ox.cs.pagoda.constraints.UpperUnaryBottom; | 10 | import uk.ac.ox.cs.pagoda.constraints.UpperUnaryBottom; |
| 11 | import uk.ac.ox.cs.pagoda.multistage.Normalisation; | 11 | import uk.ac.ox.cs.pagoda.multistage.Normalisation; |
| 12 | import uk.ac.ox.cs.pagoda.multistage.RestrictedApplication; | 12 | import uk.ac.ox.cs.pagoda.multistage.RestrictedApplication; |
| 13 | import uk.ac.ox.cs.pagoda.rules.approximators.Approximator; | ||
| 13 | import uk.ac.ox.cs.pagoda.util.Timer; | 14 | import uk.ac.ox.cs.pagoda.util.Timer; |
| 14 | import uk.ac.ox.cs.pagoda.util.Utility; | 15 | import 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 |
