From de3749532d060f26c966a81c03f9a5d846c33d06 Mon Sep 17 00:00:00 2001 From: RncLsn Date: Thu, 28 May 2015 17:11:35 +0100 Subject: Merged updates from upstream. --- .../ac/ox/cs/pagoda/global_tests/ClauseTester.java | 158 ------------------ test/uk/ac/ox/cs/pagoda/junit/ClauseTester.java | 183 +++++++++++++++++++++ .../ox/cs/pagoda/junit/TestGapMappedToLower.java | 68 ++++++++ 3 files changed, 251 insertions(+), 158 deletions(-) delete mode 100644 test/uk/ac/ox/cs/pagoda/global_tests/ClauseTester.java create mode 100644 test/uk/ac/ox/cs/pagoda/junit/ClauseTester.java create mode 100644 test/uk/ac/ox/cs/pagoda/junit/TestGapMappedToLower.java (limited to 'test/uk') diff --git a/test/uk/ac/ox/cs/pagoda/global_tests/ClauseTester.java b/test/uk/ac/ox/cs/pagoda/global_tests/ClauseTester.java deleted file mode 100644 index abd0741..0000000 --- a/test/uk/ac/ox/cs/pagoda/global_tests/ClauseTester.java +++ /dev/null @@ -1,158 +0,0 @@ -package uk.ac.ox.cs.pagoda.global_tests; - -import org.semanticweb.HermiT.model.*; -import org.semanticweb.owlapi.apibinding.OWLManager; -import org.semanticweb.owlapi.model.OWLOntology; -import org.semanticweb.owlapi.model.OWLOntologyManager; -import org.testng.Assert; -import org.testng.annotations.Test; -import uk.ac.ox.cs.pagoda.approx.Clause; -import uk.ac.ox.cs.pagoda.approx.Clausifier; - -public class ClauseTester { - - @Test - public void test_simple() { - Variable x = Variable.create("X"), y1 = Variable.create("y1"), y2 = Variable.create("y2"); - AtomicConcept A = AtomicConcept.create("A"); - AtomicRole r = AtomicRole.create("r"); - Atom[] bodyAtoms = new Atom[] { - Atom.create(A, x), - Atom.create(r, x, y1), - Atom.create(r, x, y2) - }; - - Atom[] headAtoms = new Atom[] { - Atom.create(Equality.INSTANCE, y1, y2) - }; - - OWLOntologyManager m = OWLManager.createOWLOntologyManager(); - OWLOntology emptyOntology = null; - try { - emptyOntology = m.createOntology(); - } catch (Exception e) { - e.printStackTrace(); - Assert.fail("failed to create a new ontology"); - } - Clause c = new Clause(Clausifier.getInstance(emptyOntology), DLClause.create(headAtoms, bodyAtoms)); - System.out.println(c.toString()); - } - - @Test - public void test_more() { - Variable x = Variable.create("X"), y1 = Variable.create("y1"), y2 = Variable.create("y2"), y3 = Variable.create("y3"); - AtomicConcept A = AtomicConcept.create("A"); - AtomicRole r = AtomicRole.create("r"); - Atom[] bodyAtoms = new Atom[] { - Atom.create(A, x), - Atom.create(r, x, y1), - Atom.create(r, x, y2), - Atom.create(r, x, y3), - }; - - Atom[] headAtoms = new Atom[] { - Atom.create(Equality.INSTANCE, y1, y2), - Atom.create(Equality.INSTANCE, y1, y3), - Atom.create(Equality.INSTANCE, y2, y3) - }; - - OWLOntologyManager m = OWLManager.createOWLOntologyManager(); - OWLOntology emptyOntology = null; - try { - emptyOntology = m.createOntology(); - } catch (Exception e) { - e.printStackTrace(); - Assert.fail("failed to create a new ontology"); - } - Clause c = new Clause(Clausifier.getInstance(emptyOntology), DLClause.create(headAtoms, bodyAtoms)); - System.out.println(c.toString()); - } - - @Test - public void test_inverse() { - Variable x = Variable.create("X"), y1 = Variable.create("y1"), y2 = Variable.create("y2"); - AtomicConcept A = AtomicConcept.create("A"); - AtomicRole r = AtomicRole.create("r"); - Atom[] bodyAtoms = new Atom[] { - Atom.create(A, x), - Atom.create(r, y1, x), - Atom.create(r, y2, x) - }; - - Atom[] headAtoms = new Atom[] { - Atom.create(Equality.INSTANCE, y1, y2) - }; - - OWLOntologyManager m = OWLManager.createOWLOntologyManager(); - OWLOntology emptyOntology = null; - try { - emptyOntology = m.createOntology(); - } catch (Exception e) { - e.printStackTrace(); - Assert.fail("failed to create a new ontology"); - } - Clause c = new Clause(Clausifier.getInstance(emptyOntology), DLClause.create(headAtoms, bodyAtoms)); - System.out.println(c.toString()); - } - - @Test - public void test_fillter() { - Variable x = Variable.create("X"), y1 = Variable.create("y1"), y2 = Variable.create("y2"); - AtomicConcept A = AtomicConcept.create("A"); - AtomicConcept B = AtomicConcept.create("B"); - AtomicRole r = AtomicRole.create("r"); - Atom[] bodyAtoms = new Atom[] { - Atom.create(A, x), - Atom.create(r, y1, x), - Atom.create(r, y2, x), - Atom.create(B, y1), - Atom.create(B, y2) - }; - - Atom[] headAtoms = new Atom[] { - Atom.create(Equality.INSTANCE, y1, y2) - }; - - OWLOntologyManager m = OWLManager.createOWLOntologyManager(); - OWLOntology emptyOntology = null; - try { - emptyOntology = m.createOntology(); - } catch (Exception e) { - e.printStackTrace(); - Assert.fail("failed to create a new ontology"); - } - Clause c = new Clause(Clausifier.getInstance(emptyOntology), DLClause.create(headAtoms, bodyAtoms)); - System.out.println(c.toString()); - } - - @Test - public void test_negFillter() { - Variable x = Variable.create("X"), y1 = Variable.create("y1"), y2 = Variable.create("y2"); - AtomicConcept A = AtomicConcept.create("A"); - AtomicConcept B = AtomicConcept.create("B"); - AtomicRole r = AtomicRole.create("r"); - Atom[] bodyAtoms = new Atom[] { - Atom.create(A, x), - Atom.create(r, y1, x), - Atom.create(r, y2, x) - }; - - Atom[] headAtoms = new Atom[] { - Atom.create(Equality.INSTANCE, y1, y2), - Atom.create(B, y1), - Atom.create(B, y2) - }; - - OWLOntologyManager m = OWLManager.createOWLOntologyManager(); - OWLOntology emptyOntology = null; - try { - emptyOntology = m.createOntology(); - } catch (Exception e) { - e.printStackTrace(); - Assert.fail("failed to create a new ontology"); - } - Clause c = new Clause(Clausifier.getInstance(emptyOntology), DLClause.create(headAtoms, bodyAtoms)); - System.out.println(c.toString()); - } - -} diff --git a/test/uk/ac/ox/cs/pagoda/junit/ClauseTester.java b/test/uk/ac/ox/cs/pagoda/junit/ClauseTester.java new file mode 100644 index 0000000..ad4b2de --- /dev/null +++ b/test/uk/ac/ox/cs/pagoda/junit/ClauseTester.java @@ -0,0 +1,183 @@ +package uk.ac.ox.cs.pagoda.junit; + +import org.junit.Test; +import org.semanticweb.HermiT.model.*; +import org.semanticweb.owlapi.apibinding.OWLManager; +import org.semanticweb.owlapi.model.OWLOntology; +import org.semanticweb.owlapi.model.OWLOntologyManager; +import uk.ac.ox.cs.pagoda.approx.Clause; +import uk.ac.ox.cs.pagoda.approx.Clausifier; + +import static org.junit.Assert.fail; + +public class ClauseTester { + + public void test_clause(Atom[] headAtoms, Atom[] bodyAtoms) { + OWLOntologyManager m = OWLManager.createOWLOntologyManager(); + OWLOntology emptyOntology = null; + try { + emptyOntology = m.createOntology(); + } catch(Exception e) { + e.printStackTrace(); + fail("failed to create a new ontology"); + } + Clause c = new Clause(Clausifier.getInstance(emptyOntology), DLClause.create(headAtoms, bodyAtoms)); + System.out.println(c.toString()); + } + + @Test + public void test_nominal() { + Variable x = Variable.create("X"); + AtomicRole r = AtomicRole.create("r"); + Individual o = Individual.create("o"); + Atom[] bodyAtoms = new Atom[]{Atom.create(r, x, o)}; + AtomicConcept A = AtomicConcept.create("A"); + Atom[] headAtoms = new Atom[]{Atom.create(A, x)}; + test_clause(headAtoms, bodyAtoms); + } + + @Test + public void test_simple() { + Variable x = Variable.create("X"), y1 = Variable.create("y1"), y2 = Variable.create("y2"); + AtomicConcept A = AtomicConcept.create("A"); + AtomicRole r = AtomicRole.create("r"); + Atom[] bodyAtoms = new Atom[] { + Atom.create(A, x), + Atom.create(r, x, y1), + Atom.create(r, x, y2) + }; + + Atom[] headAtoms = new Atom[] { + Atom.create(Equality.INSTANCE, y1, y2) + }; + + OWLOntologyManager m = OWLManager.createOWLOntologyManager(); + OWLOntology emptyOntology = null; + try { + emptyOntology = m.createOntology(); + } catch (Exception e) { + e.printStackTrace(); + fail("failed to create a new ontology"); + } + Clause c = new Clause(Clausifier.getInstance(emptyOntology), DLClause.create(headAtoms, bodyAtoms)); + System.out.println(c.toString()); + } + + @Test + public void test_more() { + Variable x = Variable.create("X"), y1 = Variable.create("y1"), y2 = Variable.create("y2"), y3 = Variable.create("y3"); + AtomicConcept A = AtomicConcept.create("A"); + AtomicRole r = AtomicRole.create("r"); + Atom[] bodyAtoms = new Atom[] { + Atom.create(A, x), + Atom.create(r, x, y1), + Atom.create(r, x, y2), + Atom.create(r, x, y3), + }; + + Atom[] headAtoms = new Atom[] { + Atom.create(Equality.INSTANCE, y1, y2), + Atom.create(Equality.INSTANCE, y1, y3), + Atom.create(Equality.INSTANCE, y2, y3) + }; + + OWLOntologyManager m = OWLManager.createOWLOntologyManager(); + OWLOntology emptyOntology = null; + try { + emptyOntology = m.createOntology(); + } catch (Exception e) { + e.printStackTrace(); + fail("failed to create a new ontology"); + } + Clause c = new Clause(Clausifier.getInstance(emptyOntology), DLClause.create(headAtoms, bodyAtoms)); + System.out.println(c.toString()); + } + + @Test + public void test_inverse() { + Variable x = Variable.create("X"), y1 = Variable.create("y1"), y2 = Variable.create("y2"); + AtomicConcept A = AtomicConcept.create("A"); + AtomicRole r = AtomicRole.create("r"); + Atom[] bodyAtoms = new Atom[] { + Atom.create(A, x), + Atom.create(r, y1, x), + Atom.create(r, y2, x) + }; + + Atom[] headAtoms = new Atom[] { + Atom.create(Equality.INSTANCE, y1, y2) + }; + + OWLOntologyManager m = OWLManager.createOWLOntologyManager(); + OWLOntology emptyOntology = null; + try { + emptyOntology = m.createOntology(); + } catch (Exception e) { + e.printStackTrace(); + fail("failed to create a new ontology"); + } + Clause c = new Clause(Clausifier.getInstance(emptyOntology), DLClause.create(headAtoms, bodyAtoms)); + System.out.println(c.toString()); + } + + @Test + public void test_fillter() { + Variable x = Variable.create("X"), y1 = Variable.create("y1"), y2 = Variable.create("y2"); + AtomicConcept A = AtomicConcept.create("A"); + AtomicConcept B = AtomicConcept.create("B"); + AtomicRole r = AtomicRole.create("r"); + Atom[] bodyAtoms = new Atom[] { + Atom.create(A, x), + Atom.create(r, y1, x), + Atom.create(r, y2, x), + Atom.create(B, y1), + Atom.create(B, y2) + }; + + Atom[] headAtoms = new Atom[] { + Atom.create(Equality.INSTANCE, y1, y2) + }; + + OWLOntologyManager m = OWLManager.createOWLOntologyManager(); + OWLOntology emptyOntology = null; + try { + emptyOntology = m.createOntology(); + } catch (Exception e) { + e.printStackTrace(); + fail("failed to create a new ontology"); + } + Clause c = new Clause(Clausifier.getInstance(emptyOntology), DLClause.create(headAtoms, bodyAtoms)); + System.out.println(c.toString()); + } + + @Test + public void test_negFillter() { + Variable x = Variable.create("X"), y1 = Variable.create("y1"), y2 = Variable.create("y2"); + AtomicConcept A = AtomicConcept.create("A"); + AtomicConcept B = AtomicConcept.create("B"); + AtomicRole r = AtomicRole.create("r"); + Atom[] bodyAtoms = new Atom[] { + Atom.create(A, x), + Atom.create(r, y1, x), + Atom.create(r, y2, x) + }; + + Atom[] headAtoms = new Atom[] { + Atom.create(Equality.INSTANCE, y1, y2), + Atom.create(B, y1), + Atom.create(B, y2) + }; + + OWLOntologyManager m = OWLManager.createOWLOntologyManager(); + OWLOntology emptyOntology = null; + try { + emptyOntology = m.createOntology(); + } catch (Exception e) { + e.printStackTrace(); + fail("failed to create a new ontology"); + } + Clause c = new Clause(Clausifier.getInstance(emptyOntology), DLClause.create(headAtoms, bodyAtoms)); + System.out.println(c.toString()); + } + +} diff --git a/test/uk/ac/ox/cs/pagoda/junit/TestGapMappedToLower.java b/test/uk/ac/ox/cs/pagoda/junit/TestGapMappedToLower.java new file mode 100644 index 0000000..8fae16c --- /dev/null +++ b/test/uk/ac/ox/cs/pagoda/junit/TestGapMappedToLower.java @@ -0,0 +1,68 @@ +package uk.ac.ox.cs.pagoda.junit; + +import junit.framework.Assert; +import org.junit.Test; +import org.semanticweb.owlapi.apibinding.OWLManager; +import org.semanticweb.owlapi.model.*; +import uk.ac.ox.cs.pagoda.query.AnswerTuple; +import uk.ac.ox.cs.pagoda.query.AnswerTuples; +import uk.ac.ox.cs.pagoda.reasoner.QueryReasoner; +import uk.ac.ox.cs.pagoda.util.Namespace; + +public class TestGapMappedToLower { + + public static final String ns = "http://example.org/test#%s"; + + public IRI getEntityIRI(String name) { + return IRI.create(String.format(ns, name)); + } + + @Test + public void test() throws OWLOntologyCreationException { + OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); + OWLDataFactory factory = manager.getOWLDataFactory(); + OWLOntology ontology = manager.createOntology(); + OWLClass A = factory.getOWLClass(getEntityIRI("A")); + manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(A)); + OWLClass B = factory.getOWLClass(getEntityIRI("B")); + manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(B)); + OWLClass C = factory.getOWLClass(getEntityIRI("C")); + manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(C)); + OWLClass A1 = factory.getOWLClass(getEntityIRI("A1")); + manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(A1)); + OWLClass A2 = factory.getOWLClass(getEntityIRI("A2")); + manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(A2)); + OWLNamedIndividual a = factory.getOWLNamedIndividual(getEntityIRI("a")); + OWLNamedIndividual b = factory.getOWLNamedIndividual(getEntityIRI("b")); + OWLNamedIndividual c = factory.getOWLNamedIndividual(getEntityIRI("c")); + OWLObjectProperty r = factory.getOWLObjectProperty(IRI.create(String.format(ns, "r"))); + manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(r)); + + manager.addAxiom(ontology, factory.getOWLClassAssertionAxiom(A, a)); // A(a) + manager.addAxiom(ontology, factory.getOWLClassAssertionAxiom(B, b)); // B(b) + manager.addAxiom(ontology, factory.getOWLClassAssertionAxiom(C, c)); // C(c) + manager.addAxiom(ontology, factory.getOWLObjectPropertyAssertionAxiom(r, a, b)); // r(a,b) + manager.addAxiom(ontology, factory.getOWLObjectPropertyAssertionAxiom(r, a, c)); // r(a,c) + manager.addAxiom(ontology, factory.getOWLSubClassOfAxiom(A, factory.getOWLObjectUnionOf(A1, A2))); // A \sqsubseteq A1 \sqcup A2 + manager.addAxiom(ontology, factory.getOWLSubClassOfAxiom(A1, factory.getOWLObjectMaxCardinality(1, r))); // A1 \sqsubseteq \leq 1 r.\top + manager.addAxiom(ontology, factory.getOWLSubClassOfAxiom(A2, factory.getOWLObjectMaxCardinality(1, r))); // A2 \sqsubseteq \leq 1 r.\top + + QueryReasoner pagoda = QueryReasoner.getInstance(ontology); + pagoda.loadOntology(ontology); + if(pagoda.preprocess()) { + String sparql = "select ?x where { " + + "?x <" + r.toStringID() + "> ?y . " + + "?y " + Namespace.RDF_TYPE_QUOTED + " <" + B.toStringID() + "> . " + + "?y " + Namespace.RDF_TYPE_QUOTED + " <" + C.toStringID() + "> . } "; + AnswerTuples rs = pagoda.evaluate(sparql); + int count = 0; + for(AnswerTuple ans; rs.isValid(); rs.moveNext()) { + ans = rs.getTuple(); + System.out.println(ans.getGroundTerm(0)); + ++count; + } + Assert.assertEquals(1, count); + } + } + +} -- cgit v1.2.3