From 17bd9beaf7f358a44e5bf36a5855fe6727d506dc Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Tue, 10 May 2022 18:17:06 +0100 Subject: [pagoda] Move project to Scala This commit includes a few changes: - The repository still uses Maven to manage dependency but it is now a Scala project. - The code has been ported from OWLAPI 3.4.10 to 5.1.20 - A proof of concept program using both RSAComb and PAGOdA has been added. --- .../cs/pagoda/global_tests/SkolemisationTests.java | 269 --------------------- 1 file changed, 269 deletions(-) delete mode 100644 test/uk/ac/ox/cs/pagoda/global_tests/SkolemisationTests.java (limited to 'test/uk/ac/ox/cs/pagoda/global_tests/SkolemisationTests.java') diff --git a/test/uk/ac/ox/cs/pagoda/global_tests/SkolemisationTests.java b/test/uk/ac/ox/cs/pagoda/global_tests/SkolemisationTests.java deleted file mode 100644 index 2fc682b..0000000 --- a/test/uk/ac/ox/cs/pagoda/global_tests/SkolemisationTests.java +++ /dev/null @@ -1,269 +0,0 @@ -package uk.ac.ox.cs.pagoda.global_tests; - -import org.semanticweb.owlapi.apibinding.OWLManager; -import org.semanticweb.owlapi.model.*; -import org.testng.Assert; -import org.testng.annotations.Test; -import uk.ac.ox.cs.pagoda.query.AnswerTuple; -import uk.ac.ox.cs.pagoda.query.AnswerTuples; -import uk.ac.ox.cs.pagoda.query.QueryRecord; -import uk.ac.ox.cs.pagoda.reasoner.QueryReasoner; -import uk.ac.ox.cs.pagoda.util.TestUtil; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; - -public class SkolemisationTests { - - public static final String NS = "http://example.org/test#%s"; - - private IRI getEntityIRI(String name) { - return IRI.create(String.format(NS, name)); - } - -// @Test - public void commonSuccessorTest() throws OWLOntologyCreationException, IOException, OWLOntologyStorageException { - - /* - * Build test ontology - * */ - - OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); - OWLDataFactory factory = manager.getOWLDataFactory(); - OWLOntology ontology = manager.createOntology(); - - OWLClass classA = factory.getOWLClass(getEntityIRI("A")); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(classA)); - OWLClass classB = factory.getOWLClass(getEntityIRI("B")); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(classB)); - OWLClass classC = factory.getOWLClass(getEntityIRI("C")); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(classC)); - OWLNamedIndividual c = factory.getOWLNamedIndividual(getEntityIRI("c")); - OWLNamedIndividual d = factory.getOWLNamedIndividual(getEntityIRI("d")); - OWLObjectProperty roleR = factory.getOWLObjectProperty(IRI.create(String.format(NS, "R"))); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(roleR)); - - // Class assertions - manager.addAxiom(ontology, factory.getOWLClassAssertionAxiom(classA, c)); // A(c) - manager.addAxiom(ontology, factory.getOWLClassAssertionAxiom(classA, d)); // A(d) - - // Minimum cardinality axiom - manager.addAxiom(ontology, - factory.getOWLSubClassOfAxiom(classA, - factory.getOWLObjectUnionOf( - factory.getOWLObjectSomeValuesFrom(roleR, classB), - factory.getOWLObjectSomeValuesFrom(roleR, classC)))); - - /* - * Save the ontology - * */ - -// manager.saveOntology(ontology, Files.newOutputStream(Paths.get("/home/alessandro/Desktop/test-ontology.owl"))); - - /* - * Test one query - * */ - - QueryReasoner pagoda = QueryReasoner.getInstance(ontology); - pagoda.loadOntology(ontology); - if(pagoda.preprocess()) { - String queryStr = "select distinct ?x ?y " + - " where { " - + " ?x <" + roleR.toStringID() + "> _:z . " - + " ?y <" + roleR.toStringID() + "> _:z " + - " }"; - QueryRecord queryRecord = pagoda.getQueryManager().create(queryStr); - pagoda.evaluate(queryRecord); - AnswerTuples answers = queryRecord.getAnswers(); - System.out.println("Difficulty: " + queryRecord.getDifficulty()); - int count = 0; - for(AnswerTuple ans; answers.isValid(); answers.moveNext()) { - ans = answers.getTuple(); - TestUtil.logInfo(ans); - count++; - } - Assert.assertEquals(count, 2); - } - pagoda.dispose(); - } - -// @Test - public void yTest() throws OWLOntologyCreationException, IOException, OWLOntologyStorageException { - - /* - * Build test ontology - * */ - - OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); - OWLDataFactory factory = manager.getOWLDataFactory(); - OWLOntology ontology = manager.createOntology(); - - OWLClass classA = factory.getOWLClass(getEntityIRI("A")); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(classA)); - OWLClass classB = factory.getOWLClass(getEntityIRI("B")); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(classB)); - OWLClass classC = factory.getOWLClass(getEntityIRI("C")); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(classC)); - OWLClass classD = factory.getOWLClass(getEntityIRI("D")); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(classD)); - OWLNamedIndividual a = factory.getOWLNamedIndividual(getEntityIRI("a")); - OWLNamedIndividual b = factory.getOWLNamedIndividual(getEntityIRI("b")); - OWLNamedIndividual c = factory.getOWLNamedIndividual(getEntityIRI("c")); - OWLNamedIndividual d = factory.getOWLNamedIndividual(getEntityIRI("d")); - OWLObjectProperty roleR = factory.getOWLObjectProperty(IRI.create(String.format(NS, "R"))); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(roleR)); - OWLObjectProperty roleS = factory.getOWLObjectProperty(IRI.create(String.format(NS, "S"))); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(roleS)); - OWLObjectProperty roleP = factory.getOWLObjectProperty(IRI.create(String.format(NS, "P"))); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(roleP)); - - // Class assertions - manager.addAxiom(ontology, factory.getOWLClassAssertionAxiom(classD, a)); // D(a) - manager.addAxiom(ontology, factory.getOWLClassAssertionAxiom(classD, b)); // D(b) - manager.addAxiom(ontology, factory.getOWLObjectPropertyAssertionAxiom(roleS, c, a)); // S(c,a) - manager.addAxiom(ontology, factory.getOWLObjectPropertyAssertionAxiom(roleP, d, b)); // P(d,b) - - // Axioms - // subsetOf(D someValuesFrom(R owl:Thing)) - manager.addAxiom(ontology, - factory.getOWLSubClassOfAxiom(classD, - factory.getOWLObjectSomeValuesFrom(roleR, - factory.getOWLThing()))); - // subsetOf(someValuesFrom(inverseOf(S) owl:Thing) allValuesFrom(R A)) - manager.addAxiom(ontology, - factory.getOWLSubClassOfAxiom(factory.getOWLObjectSomeValuesFrom(roleS.getInverseProperty(), - factory.getOWLThing()), - factory.getOWLObjectAllValuesFrom(roleR, classA))); - // subsetOf(someValuesFrom(inverseOf(P) owl:Thing) B) - manager.addAxiom(ontology, - factory.getOWLSubClassOfAxiom(factory.getOWLObjectSomeValuesFrom(roleP.getInverseProperty(), - factory.getOWLThing()), - classB)); - // subsetOf(someValuesFrom(R A) C) - manager.addAxiom(ontology, - factory.getOWLSubClassOfAxiom(factory.getOWLObjectSomeValuesFrom(roleR, classA), classC)); - - /* - * Save the ontology - * */ - - manager.saveOntology(ontology, Files.newOutputStream(Paths.get("/home/alessandro/Desktop/test-ontology.owl"))); - - /* - * Test one query - * */ - - QueryReasoner pagoda = QueryReasoner.getInstance(ontology); - pagoda.loadOntology(ontology); - if(pagoda.preprocess()) { - String queryStr = "PREFIX rdf: " + - "select distinct ?x" + - " where { " -// + " ?x rdf:type " + classB + " ." -// + " ?x " + roleR + " "+ "_:y . " - + " ?x rdf:type " + classC + - " }"; - QueryRecord queryRecord = pagoda.getQueryManager().create(queryStr); - System.out.println(queryRecord); - pagoda.evaluate(queryRecord); - AnswerTuples answers = queryRecord.getAnswers(); - System.out.println("Difficulty: " + queryRecord.getDifficulty()); - int count = 0; - for(AnswerTuple ans; answers.isValid(); answers.moveNext()) { - ans = answers.getTuple(); - TestUtil.logInfo(ans); - count++; - } -// Assert.assertEquals(count, 1); - } - pagoda.dispose(); - } - - @Test - public void rTest() throws OWLOntologyCreationException, IOException, OWLOntologyStorageException { - - /* - * Build test ontology - * */ - - OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); - OWLDataFactory factory = manager.getOWLDataFactory(); - OWLOntology ontology = manager.createOntology(); - - OWLClass classA = factory.getOWLClass(getEntityIRI("A")); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(classA)); - OWLClass classB = factory.getOWLClass(getEntityIRI("B")); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(classB)); -// OWLClass classC = factory.getOWLClass(getEntityIRI("C")); -// manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(classC)); -// OWLClass classD = factory.getOWLClass(getEntityIRI("D")); -// manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(classD)); - OWLNamedIndividual a = factory.getOWLNamedIndividual(getEntityIRI("a")); - OWLNamedIndividual b = factory.getOWLNamedIndividual(getEntityIRI("b")); - OWLNamedIndividual c = factory.getOWLNamedIndividual(getEntityIRI("c")); -// OWLNamedIndividual d = factory.getOWLNamedIndividual(getEntityIRI("d")); - OWLObjectProperty roleR = factory.getOWLObjectProperty(IRI.create(String.format(NS, "R"))); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(roleR)); -// OWLObjectProperty roleF = factory.getOWLObjectProperty(IRI.create(String.format(NS, "F"))); -// manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(roleF)); - OWLObjectProperty roleP = factory.getOWLObjectProperty(IRI.create(String.format(NS, "P"))); - manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(roleP)); -// OWLObjectProperty roleL = factory.getOWLObjectProperty(IRI.create(String.format(NS, "L"))); -// manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(roleL)); - - // Class assertions - manager.addAxiom(ontology, factory.getOWLClassAssertionAxiom(classA, a)); // A(a) - manager.addAxiom(ontology, factory.getOWLClassAssertionAxiom(classA, b)); // A(b) - manager.addAxiom(ontology, factory.getOWLObjectPropertyAssertionAxiom(roleP, c, a)); // P(c,a) - - // Axioms - // subsetOf(A someValuesFrom(R owl:Thing)) - manager.addAxiom(ontology, - factory.getOWLSubClassOfAxiom(classA, - factory.getOWLObjectSomeValuesFrom(roleR, - factory.getOWLThing()))); - - // inverseFunctional(R) - manager.addAxiom(ontology, - factory.getOWLInverseFunctionalObjectPropertyAxiom(roleR)); - - // subsetOf(someValuesFrom(inverseOf(P) owl:thing) B) - manager.addAxiom(ontology, - factory.getOWLSubClassOfAxiom(factory.getOWLObjectSomeValuesFrom(roleP.getInverseProperty(), - factory.getOWLThing()), - classB)); - /* - * Save the ontology - * */ - - manager.saveOntology(ontology, Files.newOutputStream(Paths.get("/home/alessandro/Desktop/test-ontology.owl"))); - - /* - * Test one query - * */ - - QueryReasoner pagoda = QueryReasoner.getInstance(ontology); - pagoda.loadOntology(ontology); - if(pagoda.preprocess()) { - String queryStr = "PREFIX rdf: " + - "select distinct ?x" + - " where { " - + " ?x rdf:type " + classB + - " }"; - QueryRecord queryRecord = pagoda.getQueryManager().create(queryStr); - System.out.println(queryRecord); - pagoda.evaluate(queryRecord); - AnswerTuples answers = queryRecord.getAnswers(); - System.out.println("Difficulty: " + queryRecord.getDifficulty()); - int count = 0; - for(AnswerTuple ans; answers.isValid(); answers.moveNext()) { - ans = answers.getTuple(); - TestUtil.logInfo(ans); - count++; - } -// Assert.assertEquals(count, 1); - } - pagoda.dispose(); - } -} -- cgit v1.2.3