diff options
| -rw-r--r-- | src/uk/ac/ox/cs/pagoda/endomorph/DependencyGraph.java | 7 | ||||
| -rw-r--r-- | src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker.java | 1 | ||||
| -rw-r--r-- | src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker1.java | 10 | ||||
| -rw-r--r-- | src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker2.java | 53 | ||||
| -rw-r--r-- | src/uk/ac/ox/cs/pagoda/endomorph/plan/OpenEndPlan.java | 3 | ||||
| -rw-r--r-- | test/resources/BugTests.xml | 1 | ||||
| -rw-r--r-- | test/resources/MainTests.xml | 8 | ||||
| -rw-r--r-- | test/uk/ac/ox/cs/pagoda/endomorph/DependencyGraphTest.java | 59 | ||||
| -rw-r--r-- | test/uk/ac/ox/cs/pagoda/global_tests/BugTests.java | 14 | ||||
| -rw-r--r-- | test/uk/ac/ox/cs/pagoda/util/TestUtil.java | 7 |
10 files changed, 128 insertions, 35 deletions
diff --git a/src/uk/ac/ox/cs/pagoda/endomorph/DependencyGraph.java b/src/uk/ac/ox/cs/pagoda/endomorph/DependencyGraph.java index 8514808..320af09 100644 --- a/src/uk/ac/ox/cs/pagoda/endomorph/DependencyGraph.java +++ b/src/uk/ac/ox/cs/pagoda/endomorph/DependencyGraph.java | |||
| @@ -240,6 +240,11 @@ public class DependencyGraph { | |||
| 240 | private boolean checkHomomorphism(NodeTuple u, NodeTuple v) { | 240 | private boolean checkHomomorphism(NodeTuple u, NodeTuple v) { |
| 241 | ++homomorphismCheckCounter; | 241 | ++homomorphismCheckCounter; |
| 242 | homomorphismChecker.setMapping(u, v); | 242 | homomorphismChecker.setMapping(u, v); |
| 243 | |||
| 244 | // TODO recently added, test it | ||
| 245 | if(!homomorphismChecker.isMappingTo(u, v)) | ||
| 246 | return false; | ||
| 247 | |||
| 243 | try { | 248 | try { |
| 244 | Node node1, node2; | 249 | Node node1, node2; |
| 245 | for (Iterator<Node> iter1 = u.getNodes().iterator(), iter2 = v.getNodes().iterator(); iter1.hasNext(); ) { | 250 | for (Iterator<Node> iter1 = u.getNodes().iterator(), iter2 = v.getNodes().iterator(); iter1.hasNext(); ) { |
| @@ -251,7 +256,7 @@ public class DependencyGraph { | |||
| 251 | } | 256 | } |
| 252 | return true; | 257 | return true; |
| 253 | } finally { | 258 | } finally { |
| 254 | homomorphismChecker.clearMappings(); | 259 | homomorphismChecker.clearMappings(); |
| 255 | } | 260 | } |
| 256 | } | 261 | } |
| 257 | 262 | ||
diff --git a/src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker.java b/src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker.java index 8f5ea07..46ddbb3 100644 --- a/src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker.java +++ b/src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker.java | |||
| @@ -11,4 +11,5 @@ public interface EndomorphChecker { | |||
| 11 | 11 | ||
| 12 | boolean check(Node next, Node next2); | 12 | boolean check(Node next, Node next2); |
| 13 | 13 | ||
| 14 | boolean isMappingTo(NodeTuple u, NodeTuple v); | ||
| 14 | } | 15 | } |
diff --git a/src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker1.java b/src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker1.java index ca1256c..c2117b6 100644 --- a/src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker1.java +++ b/src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker1.java | |||
| @@ -15,9 +15,13 @@ public class EndomorphChecker1 implements EndomorphChecker { | |||
| 15 | 15 | ||
| 16 | public boolean check(Node u, Node v) { | 16 | public boolean check(Node u, Node v) { |
| 17 | if (!u.isSubConceptOf(v)) return false; | 17 | if (!u.isSubConceptOf(v)) return false; |
| 18 | if (!isSubsetOf(graph.getOutGoingEdges(u), graph.getOutGoingEdges(v), true)) return false; | 18 | if (!isSubsetOf(graph.getOutGoingEdges(u), graph.getOutGoingEdges(v), true)) return false; |
| 19 | if (!isSubsetOf(graph.getInComingEdges(u), graph.getInComingEdges(v), false)) return false; | 19 | return isSubsetOf(graph.getInComingEdges(u), graph.getInComingEdges(v), false); |
| 20 | return true; | 20 | } |
| 21 | |||
| 22 | @Override | ||
| 23 | public boolean isMappingTo(NodeTuple u, NodeTuple v) { | ||
| 24 | throw new UnsupportedOperationException(); | ||
| 21 | } | 25 | } |
| 22 | 26 | ||
| 23 | private boolean isSubsetOf(Edge[] e1, Edge[] e2, boolean out) { | 27 | private boolean isSubsetOf(Edge[] e1, Edge[] e2, boolean out) { |
diff --git a/src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker2.java b/src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker2.java index 7ad271a..aac5f3c 100644 --- a/src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker2.java +++ b/src/uk/ac/ox/cs/pagoda/endomorph/EndomorphChecker2.java | |||
| @@ -1,17 +1,13 @@ | |||
| 1 | package uk.ac.ox.cs.pagoda.endomorph; | 1 | package uk.ac.ox.cs.pagoda.endomorph; |
| 2 | 2 | ||
| 3 | import java.util.HashMap; | ||
| 4 | import java.util.HashSet; | ||
| 5 | import java.util.Iterator; | ||
| 6 | import java.util.Map; | ||
| 7 | import java.util.Set; | ||
| 8 | |||
| 9 | import uk.ac.ox.cs.pagoda.summary.Edge; | 3 | import uk.ac.ox.cs.pagoda.summary.Edge; |
| 10 | import uk.ac.ox.cs.pagoda.summary.Graph; | 4 | import uk.ac.ox.cs.pagoda.summary.Graph; |
| 11 | import uk.ac.ox.cs.pagoda.summary.Node; | 5 | import uk.ac.ox.cs.pagoda.summary.Node; |
| 12 | import uk.ac.ox.cs.pagoda.summary.NodeTuple; | 6 | import uk.ac.ox.cs.pagoda.summary.NodeTuple; |
| 13 | import uk.ac.ox.cs.pagoda.util.Timer; | 7 | import uk.ac.ox.cs.pagoda.util.Timer; |
| 14 | 8 | ||
| 9 | import java.util.*; | ||
| 10 | |||
| 15 | public class EndomorphChecker2 implements EndomorphChecker { | 11 | public class EndomorphChecker2 implements EndomorphChecker { |
| 16 | 12 | ||
| 17 | private Graph graph; | 13 | private Graph graph; |
| @@ -24,7 +20,8 @@ public class EndomorphChecker2 implements EndomorphChecker { | |||
| 24 | private Timer timer = new Timer(); | 20 | private Timer timer = new Timer(); |
| 25 | private boolean time_out = false; | 21 | private boolean time_out = false; |
| 26 | private static final int TIME_OUT = 60; | 22 | private static final int TIME_OUT = 60; |
| 27 | 23 | // private static final int TIME_OUT = 99999999; | |
| 24 | |||
| 28 | public boolean check(NodeTuple u, NodeTuple v) { | 25 | public boolean check(NodeTuple u, NodeTuple v) { |
| 29 | int length = u.getNodes().size(); | 26 | int length = u.getNodes().size(); |
| 30 | Edge[][] ss = new Edge[1][length], tt = new Edge[1][length]; | 27 | Edge[][] ss = new Edge[1][length], tt = new Edge[1][length]; |
| @@ -39,15 +36,35 @@ public class EndomorphChecker2 implements EndomorphChecker { | |||
| 39 | } | 36 | } |
| 40 | 37 | ||
| 41 | public boolean check(Node u, Node v) { | 38 | public boolean check(Node u, Node v) { |
| 42 | if (!u.isSubConceptOf(v)) return false; | 39 | if (!u.isSubConceptOf(v)) return false; |
| 43 | if (!checkSortedEdges(new Edge[][] {graph.getOutGoingEdges(u), graph.getInComingEdges(u) }, | 40 | return checkSortedEdges(new Edge[][]{graph.getOutGoingEdges(u), graph.getInComingEdges(u)}, |
| 44 | new Edge[][] {graph.getOutGoingEdges(v), graph.getInComingEdges(v)}, 0, 0)) { | 41 | new Edge[][]{graph.getOutGoingEdges(v), graph.getInComingEdges(v)}, 0, 0); |
| 45 | return false; | 42 | } |
| 46 | } | 43 | |
| 47 | return true; | 44 | /*** |
| 48 | } | 45 | * Checks whether the found mapping is actually a mapping from tuple u to tuple v. |
| 46 | * | ||
| 47 | * @param u | ||
| 48 | * @param v | ||
| 49 | * @return | ||
| 50 | */ | ||
| 51 | @Override | ||
| 52 | public boolean isMappingTo(NodeTuple u, NodeTuple v) { | ||
| 53 | Iterator<Node> uIterator = u.getNodes().iterator(); | ||
| 54 | Iterator<Node> vIterator = v.getNodes().iterator(); | ||
| 55 | |||
| 56 | while(uIterator.hasNext() && vIterator.hasNext()) { | ||
| 57 | Node uNode = uIterator.next(); | ||
| 58 | Node vNode = vIterator.next(); | ||
| 59 | if(mappings.containsKey(uNode) && !mappings.get(uNode).equals(vNode)) | ||
| 60 | return false; | ||
| 61 | else if(!mappings.containsKey(uNode) && !uNode.equals(vNode)) | ||
| 62 | return false; | ||
| 63 | } | ||
| 64 | return !uIterator.hasNext() && !vIterator.hasNext(); | ||
| 65 | } | ||
| 49 | 66 | ||
| 50 | Map<Node, Node> mappings = new HashMap<Node, Node>(); | 67 | Map<Node, Node> mappings = new HashMap<Node, Node>(); |
| 51 | 68 | ||
| 52 | public void clearMappings() { | 69 | public void clearMappings() { |
| 53 | mappings.clear(); | 70 | mappings.clear(); |
| @@ -100,9 +117,9 @@ public class EndomorphChecker2 implements EndomorphChecker { | |||
| 100 | return true; | 117 | return true; |
| 101 | mappings.remove(u); | 118 | mappings.remove(u); |
| 102 | return false; | 119 | return false; |
| 103 | }; | 120 | } |
| 104 | 121 | ||
| 105 | for (Node v: candidates) { | 122 | for (Node v: candidates) { |
| 106 | mappings.put(u, v); | 123 | mappings.put(u, v); |
| 107 | if (check(u, v) && checkSortedEdges(ss, st, dim, index + 1)) | 124 | if (check(u, v) && checkSortedEdges(ss, st, dim, index + 1)) |
| 108 | return true; | 125 | return true; |
diff --git a/src/uk/ac/ox/cs/pagoda/endomorph/plan/OpenEndPlan.java b/src/uk/ac/ox/cs/pagoda/endomorph/plan/OpenEndPlan.java index a46da85..076427e 100644 --- a/src/uk/ac/ox/cs/pagoda/endomorph/plan/OpenEndPlan.java +++ b/src/uk/ac/ox/cs/pagoda/endomorph/plan/OpenEndPlan.java | |||
| @@ -71,7 +71,8 @@ public class OpenEndPlan implements CheckPlan { | |||
| 71 | else { | 71 | else { |
| 72 | Utility.logDebug(answerTuple.toString() + " is verified."); | 72 | Utility.logDebug(answerTuple.toString() + " is verified."); |
| 73 | addProjections(clique); | 73 | addProjections(clique); |
| 74 | flag = true; | 74 | flag = true; |
| 75 | validated.add(clique); | ||
| 75 | } | 76 | } |
| 76 | } | 77 | } |
| 77 | } | 78 | } |
diff --git a/test/resources/BugTests.xml b/test/resources/BugTests.xml index c7a80ba..1413b5b 100644 --- a/test/resources/BugTests.xml +++ b/test/resources/BugTests.xml | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | <test name="BugTest"> | 6 | <test name="BugTest"> |
| 7 | <classes> | 7 | <classes> |
| 8 | <class name="uk.ac.ox.cs.pagoda.global_tests.BugTests"/> | 8 | <class name="uk.ac.ox.cs.pagoda.global_tests.BugTests"/> |
| 9 | <!--<class name="uk.ac.ox.cs.pagoda.endomorph.DependencyGraphTest"/>--> | ||
| 9 | </classes> | 10 | </classes> |
| 10 | </test> | 11 | </test> |
| 11 | 12 | ||
diff --git a/test/resources/MainTests.xml b/test/resources/MainTests.xml index db8d977..255b68e 100644 --- a/test/resources/MainTests.xml +++ b/test/resources/MainTests.xml | |||
| @@ -5,19 +5,19 @@ | |||
| 5 | <test name="main"> | 5 | <test name="main"> |
| 6 | <groups> | 6 | <groups> |
| 7 | <run> | 7 | <run> |
| 8 | <include name="correctness"/> | 8 | <!--<include name="correctness"/>--> |
| 9 | <!--<include name="light"/>--> | 9 | <!--<include name="light"/>--> |
| 10 | <!--<include name="justExecute"/>--> | 10 | <!--<include name="justExecute"/>--> |
| 11 | <!--<!–<include name="heavy"/>–>--> | 11 | <!--<!–<include name="heavy"/>–>--> |
| 12 | <!--<include name="nonOriginal"/>--> | 12 | <include name="nonOriginal"/> |
| 13 | </run> | 13 | </run> |
| 14 | </groups> | 14 | </groups> |
| 15 | <classes> | 15 | <classes> |
| 16 | <!--<class name="uk.ac.ox.cs.pagoda.global_tests.TestPagodaReactome"/>--> | 16 | <!--<class name="uk.ac.ox.cs.pagoda.global_tests.TestPagodaReactome"/>--> |
| 17 | <!--<class name="uk.ac.ox.cs.pagoda.global_tests.TestPagodaUOBM"/>--> | 17 | <!--<class name="uk.ac.ox.cs.pagoda.global_tests.TestPagodaUOBM"/>--> |
| 18 | <class name="uk.ac.ox.cs.pagoda.global_tests.TestPagodaLUBM"/> | 18 | <!--<class name="uk.ac.ox.cs.pagoda.global_tests.TestPagodaLUBM"/>--> |
| 19 | <!--Fly does not terminate: query-5 looks really hard--> | 19 | <!--Fly does not terminate: query-5 looks really hard--> |
| 20 | <!--<class name="uk.ac.ox.cs.pagoda.global_tests.TestPagodaFLY"/>--> | 20 | <class name="uk.ac.ox.cs.pagoda.global_tests.TestPagodaFLY"/> |
| 21 | <!--<class name="uk.ac.ox.cs.pagoda.global_tests.SkolemisationTests"/>--> | 21 | <!--<class name="uk.ac.ox.cs.pagoda.global_tests.SkolemisationTests"/>--> |
| 22 | <!--<class name="uk.ac.ox.cs.pagoda.util.SimpleProgressBarTester" />--> | 22 | <!--<class name="uk.ac.ox.cs.pagoda.util.SimpleProgressBarTester" />--> |
| 23 | </classes> | 23 | </classes> |
diff --git a/test/uk/ac/ox/cs/pagoda/endomorph/DependencyGraphTest.java b/test/uk/ac/ox/cs/pagoda/endomorph/DependencyGraphTest.java new file mode 100644 index 0000000..eec1e8f --- /dev/null +++ b/test/uk/ac/ox/cs/pagoda/endomorph/DependencyGraphTest.java | |||
| @@ -0,0 +1,59 @@ | |||
| 1 | package uk.ac.ox.cs.pagoda.endomorph; | ||
| 2 | |||
| 3 | import org.semanticweb.owlapi.apibinding.OWLManager; | ||
| 4 | import org.semanticweb.owlapi.model.*; | ||
| 5 | import org.testng.annotations.Test; | ||
| 6 | import uk.ac.ox.cs.JRDFox.model.GroundTerm; | ||
| 7 | import uk.ac.ox.cs.JRDFox.model.Individual; | ||
| 8 | import uk.ac.ox.cs.pagoda.query.AnswerTuple; | ||
| 9 | import uk.ac.ox.cs.pagoda.summary.Graph; | ||
| 10 | import uk.ac.ox.cs.pagoda.summary.NodeTuple; | ||
| 11 | import uk.ac.ox.cs.pagoda.util.TestUtil; | ||
| 12 | |||
| 13 | import java.util.HashSet; | ||
| 14 | |||
| 15 | import static uk.ac.ox.cs.pagoda.util.TestUtil.getEntityIRI; | ||
| 16 | |||
| 17 | public class DependencyGraphTest { | ||
| 18 | |||
| 19 | private OWLOntology getOntology() throws OWLOntologyCreationException { | ||
| 20 | OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); | ||
| 21 | OWLDataFactory factory = manager.getOWLDataFactory(); | ||
| 22 | OWLOntology ontology = manager.createOntology(); | ||
| 23 | |||
| 24 | OWLClass hardWorkingStudent = factory.getOWLClass(getEntityIRI("HardWorkingStudent")); | ||
| 25 | manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(hardWorkingStudent)); | ||
| 26 | OWLNamedIndividual a = factory.getOWLNamedIndividual(getEntityIRI("a")); | ||
| 27 | OWLNamedIndividual b = factory.getOWLNamedIndividual(getEntityIRI("b")); | ||
| 28 | OWLObjectProperty takesCourse = factory.getOWLObjectProperty(IRI.create(String.format(TestUtil.NS, "takesCourse"))); | ||
| 29 | manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(takesCourse)); | ||
| 30 | |||
| 31 | // Class assertions | ||
| 32 | manager.addAxiom(ontology, factory.getOWLClassAssertionAxiom(hardWorkingStudent, a)); // HardWorkingStudent(a) | ||
| 33 | manager.addAxiom(ontology, factory.getOWLClassAssertionAxiom(hardWorkingStudent, b)); // HardWorkingStudent(b) | ||
| 34 | |||
| 35 | // Minimum cardinality axiom | ||
| 36 | manager.addAxiom(ontology, | ||
| 37 | factory.getOWLEquivalentClassesAxiom(hardWorkingStudent, | ||
| 38 | factory.getOWLObjectMinCardinality(3, | ||
| 39 | takesCourse))); | ||
| 40 | return ontology; | ||
| 41 | } | ||
| 42 | |||
| 43 | @Test | ||
| 44 | public void test() throws OWLOntologyCreationException { | ||
| 45 | OWLOntology ontology = getOntology(); | ||
| 46 | Graph graph = new Graph(ontology); | ||
| 47 | DependencyGraph dependencyGraph = new DependencyGraph(graph); | ||
| 48 | |||
| 49 | HashSet<NodeTuple> tuples = new HashSet<>(); | ||
| 50 | tuples.add(graph.getNodeTuple(new AnswerTuple(new GroundTerm[]{Individual.create(String.format(TestUtil.NS, "a")), Individual.create(String.format(TestUtil.NS, "a"))}))); | ||
| 51 | tuples.add(graph.getNodeTuple(new AnswerTuple(new GroundTerm[]{Individual.create(String.format(TestUtil.NS, "a")), Individual.create(String.format(TestUtil.NS, "b"))}))); | ||
| 52 | tuples.add(graph.getNodeTuple(new AnswerTuple(new GroundTerm[]{Individual.create(String.format(TestUtil.NS, "b")), Individual.create(String.format(TestUtil.NS, "a"))}))); | ||
| 53 | tuples.add(graph.getNodeTuple(new AnswerTuple(new GroundTerm[]{Individual.create(String.format(TestUtil.NS, "b")), Individual.create(String.format(TestUtil.NS, "b"))}))); | ||
| 54 | |||
| 55 | dependencyGraph.build(tuples); | ||
| 56 | |||
| 57 | System.out.println(dependencyGraph.getTopologicalOrder()); | ||
| 58 | } | ||
| 59 | } | ||
diff --git a/test/uk/ac/ox/cs/pagoda/global_tests/BugTests.java b/test/uk/ac/ox/cs/pagoda/global_tests/BugTests.java index 6e60e24..3f14ec7 100644 --- a/test/uk/ac/ox/cs/pagoda/global_tests/BugTests.java +++ b/test/uk/ac/ox/cs/pagoda/global_tests/BugTests.java | |||
| @@ -14,13 +14,11 @@ import java.io.IOException; | |||
| 14 | import java.nio.file.Files; | 14 | import java.nio.file.Files; |
| 15 | import java.nio.file.Paths; | 15 | import java.nio.file.Paths; |
| 16 | 16 | ||
| 17 | import static uk.ac.ox.cs.pagoda.util.TestUtil.getEntityIRI; | ||
| 18 | |||
| 17 | public class BugTests { | 19 | public class BugTests { |
| 18 | 20 | ||
| 19 | public static final String NS = "http://example.org/test#%s"; | ||
| 20 | 21 | ||
| 21 | private IRI getEntityIRI(String name) { | ||
| 22 | return IRI.create(String.format(NS, name)); | ||
| 23 | } | ||
| 24 | 22 | ||
| 25 | @Test | 23 | @Test |
| 26 | public void minimumCardinalityAxiom2() throws OWLOntologyCreationException, IOException, OWLOntologyStorageException { | 24 | public void minimumCardinalityAxiom2() throws OWLOntologyCreationException, IOException, OWLOntologyStorageException { |
| @@ -41,7 +39,7 @@ public class BugTests { | |||
| 41 | manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(hardWorkingStudent)); | 39 | manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(hardWorkingStudent)); |
| 42 | OWLNamedIndividual a = factory.getOWLNamedIndividual(getEntityIRI("a")); | 40 | OWLNamedIndividual a = factory.getOWLNamedIndividual(getEntityIRI("a")); |
| 43 | OWLNamedIndividual b = factory.getOWLNamedIndividual(getEntityIRI("b")); | 41 | OWLNamedIndividual b = factory.getOWLNamedIndividual(getEntityIRI("b")); |
| 44 | OWLObjectProperty takesCourse = factory.getOWLObjectProperty(IRI.create(String.format(NS, "takesCourse"))); | 42 | OWLObjectProperty takesCourse = factory.getOWLObjectProperty(IRI.create(String.format(TestUtil.NS, "takesCourse"))); |
| 45 | manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(takesCourse)); | 43 | manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(takesCourse)); |
| 46 | 44 | ||
| 47 | // Class assertions | 45 | // Class assertions |
| @@ -105,7 +103,7 @@ public class BugTests { | |||
| 105 | OWLNamedIndividual d1 = factory.getOWLNamedIndividual(getEntityIRI("d1")); | 103 | OWLNamedIndividual d1 = factory.getOWLNamedIndividual(getEntityIRI("d1")); |
| 106 | OWLNamedIndividual d2 = factory.getOWLNamedIndividual(getEntityIRI("d2")); | 104 | OWLNamedIndividual d2 = factory.getOWLNamedIndividual(getEntityIRI("d2")); |
| 107 | OWLNamedIndividual d3 = factory.getOWLNamedIndividual(getEntityIRI("d3")); | 105 | OWLNamedIndividual d3 = factory.getOWLNamedIndividual(getEntityIRI("d3")); |
| 108 | OWLObjectProperty takesCourse = factory.getOWLObjectProperty(IRI.create(String.format(NS, "takesCourse"))); | 106 | OWLObjectProperty takesCourse = factory.getOWLObjectProperty(IRI.create(String.format(TestUtil.NS, "takesCourse"))); |
| 109 | manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(takesCourse)); | 107 | manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(takesCourse)); |
| 110 | 108 | ||
| 111 | // Class assertions | 109 | // Class assertions |
| @@ -183,9 +181,9 @@ public class BugTests { | |||
| 183 | OWLNamedIndividual a = factory.getOWLNamedIndividual(getEntityIRI("a")); | 181 | OWLNamedIndividual a = factory.getOWLNamedIndividual(getEntityIRI("a")); |
| 184 | OWLNamedIndividual b = factory.getOWLNamedIndividual(getEntityIRI("b")); | 182 | OWLNamedIndividual b = factory.getOWLNamedIndividual(getEntityIRI("b")); |
| 185 | OWLNamedIndividual c = factory.getOWLNamedIndividual(getEntityIRI("c")); | 183 | OWLNamedIndividual c = factory.getOWLNamedIndividual(getEntityIRI("c")); |
| 186 | OWLObjectProperty roleR = factory.getOWLObjectProperty(IRI.create(String.format(NS, "R"))); | 184 | OWLObjectProperty roleR = factory.getOWLObjectProperty(IRI.create(String.format(TestUtil.NS, "R"))); |
| 187 | manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(roleR)); | 185 | manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(roleR)); |
| 188 | OWLObjectProperty roleP = factory.getOWLObjectProperty(IRI.create(String.format(NS, "P"))); | 186 | OWLObjectProperty roleP = factory.getOWLObjectProperty(IRI.create(String.format(TestUtil.NS, "P"))); |
| 189 | manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(roleP)); | 187 | manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(roleP)); |
| 190 | 188 | ||
| 191 | // Class assertions | 189 | // Class assertions |
diff --git a/test/uk/ac/ox/cs/pagoda/util/TestUtil.java b/test/uk/ac/ox/cs/pagoda/util/TestUtil.java index fdd242a..c7f024a 100644 --- a/test/uk/ac/ox/cs/pagoda/util/TestUtil.java +++ b/test/uk/ac/ox/cs/pagoda/util/TestUtil.java | |||
| @@ -3,6 +3,7 @@ package uk.ac.ox.cs.pagoda.util; | |||
| 3 | import org.apache.log4j.Appender; | 3 | import org.apache.log4j.Appender; |
| 4 | import org.apache.log4j.FileAppender; | 4 | import org.apache.log4j.FileAppender; |
| 5 | import org.apache.log4j.Logger; | 5 | import org.apache.log4j.Logger; |
| 6 | import org.semanticweb.owlapi.model.IRI; | ||
| 6 | 7 | ||
| 7 | import java.io.File; | 8 | import java.io.File; |
| 8 | import java.io.IOException; | 9 | import java.io.IOException; |
| @@ -87,4 +88,10 @@ public class TestUtil { | |||
| 87 | LOGGER.error(msg, t); | 88 | LOGGER.error(msg, t); |
| 88 | } | 89 | } |
| 89 | 90 | ||
| 91 | public static final String NS = "http://example.org/test#%s"; | ||
| 92 | |||
| 93 | public static IRI getEntityIRI(String name) { | ||
| 94 | return IRI.create(String.format(NS, name)); | ||
| 95 | } | ||
| 96 | |||
| 90 | } | 97 | } |
