From 7e0ecc07285209e65f9d4d022065d06a4997fc86 Mon Sep 17 00:00:00 2001 From: RncLsn Date: Wed, 13 May 2015 11:57:06 +0100 Subject: Implementing Limited Skolemisation, in particular SkolemTermsDispenser. --- .../ac/ox/cs/pagoda/rules/LowerDatalogProgram.java | 31 +++++++++++++++++----- 1 file changed, 24 insertions(+), 7 deletions(-) (limited to 'src/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java') 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; import uk.ac.ox.cs.pagoda.constraints.UpperUnaryBottom; import uk.ac.ox.cs.pagoda.multistage.Normalisation; import uk.ac.ox.cs.pagoda.multistage.RestrictedApplication; +import uk.ac.ox.cs.pagoda.rules.approximators.Approximator; import uk.ac.ox.cs.pagoda.util.Timer; import uk.ac.ox.cs.pagoda.util.Utility; @@ -106,7 +107,26 @@ public class LowerDatalogProgram extends ApproxProgram implements IncrementalPro @Override protected void initApproximator() { - m_approx = new IgnoreBoth(); + m_approx = new IgnoreBoth(); + } + + private class IgnoreBoth implements Approximator { + + @Override + public Collection convert(DLClause clause, DLClause originalClause) { + Collection ret = new LinkedList(); + + if (clause.getHeadLength() > 1) return ret; + + if (clause.getHeadLength() > 0) { + DLPredicate predicate = clause.getHeadAtom(0).getDLPredicate(); + + if (predicate instanceof AtLeast) return ret; + } + + ret.add(clause); + return ret; + } } } @@ -116,15 +136,13 @@ class ClassifyThread extends Thread { IncrementalProgram m_program; Collection clauses = new LinkedList(); - Variable X = Variable.create("X"), Y = Variable.create("Y"); - + Variable X = Variable.create("X"), Y = Variable.create("Y"); + Reasoner hermitReasoner; + OWLOntology ontology; ClassifyThread(IncrementalProgram program) { m_program = program; } - Reasoner hermitReasoner; - OWLOntology ontology; - @Override public void run() { ontology = m_program.getOntology(); @@ -215,5 +233,4 @@ class ClassifyThread extends Thread { private Atom getAtom(OWLClass c) { return Atom.create(AtomicConcept.create(c.toStringID()), X); } - } \ No newline at end of file -- cgit v1.2.3