From: <jen...@us...> - 2008-11-22 08:45:56
|
Revision: 1522 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1522&view=rev Author: jenslehmann Date: 2008-11-22 08:45:50 +0000 (Sat, 22 Nov 2008) Log Message: ----------- utility methods for debugging EL simulations Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/algorithms/el/ELDescriptionNode.java trunk/src/dl-learner/org/dllearner/algorithms/el/ELDescriptionTree.java trunk/src/dl-learner/org/dllearner/test/junit/SimulationTests.java Modified: trunk/src/dl-learner/org/dllearner/algorithms/el/ELDescriptionNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/el/ELDescriptionNode.java 2008-11-21 15:11:14 UTC (rev 1521) +++ trunk/src/dl-learner/org/dllearner/algorithms/el/ELDescriptionNode.java 2008-11-22 08:45:50 UTC (rev 1522) @@ -24,6 +24,7 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.NavigableSet; import java.util.Set; import java.util.TreeSet; @@ -485,8 +486,30 @@ return str; } - + private String toString(Set<ELDescriptionNode> nodes, Map<ELDescriptionNode,String> nodeNames) { + String str = ""; + // comma separated list of descriptions + for(ELDescriptionNode node : nodes) { + str += nodeNames.get(node) + ","; + } + // remove last comma + if(str.length() > 0) { + str = str.substring(0, str.length()-1); + } + return str; + } + public String toSimulationString(Map<ELDescriptionNode,String> nodeNames) { + String str = ""; + str += " in: " + toString(in, nodeNames) + "\n"; + str += " inSC1: " + toString(inSC1, nodeNames) + "\n"; + str += " inSC2: " + toString(inSC2, nodeNames) + "\n"; + str += " out: " + toString(out, nodeNames) + "\n"; + str += " outSC1: " + toString(outSC1, nodeNames) + "\n"; + str += " outSC2: " + toString(outSC2, nodeNames) + "\n"; + return str; + } + public ELDescriptionNode getParent() { return parent; } Modified: trunk/src/dl-learner/org/dllearner/algorithms/el/ELDescriptionTree.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/el/ELDescriptionTree.java 2008-11-21 15:11:14 UTC (rev 1521) +++ trunk/src/dl-learner/org/dllearner/algorithms/el/ELDescriptionTree.java 2008-11-22 08:45:50 UTC (rev 1522) @@ -370,6 +370,17 @@ node2.out.remove(node1); } + public String toSimulationString(Map<ELDescriptionNode,String> nodeNames) { + String str = ""; + for(Entry<ELDescriptionNode,String> entry : nodeNames.entrySet()) { + String nodeName = entry.getValue(); + ELDescriptionNode node = entry.getKey(); + str += nodeName + ":\n"; + str += node.toSimulationString(nodeNames) + "\n"; + } + return str; + } + @Override @SuppressWarnings("unchecked") public ELDescriptionTree clone() { Modified: trunk/src/dl-learner/org/dllearner/test/junit/SimulationTests.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/junit/SimulationTests.java 2008-11-21 15:11:14 UTC (rev 1521) +++ trunk/src/dl-learner/org/dllearner/test/junit/SimulationTests.java 2008-11-22 08:45:50 UTC (rev 1522) @@ -19,8 +19,10 @@ */ package org.dllearner.test.junit; -import static org.junit.Assert.*; +import static org.junit.Assert.assertTrue; +import java.util.LinkedHashMap; +import java.util.Map; import java.util.TreeSet; import org.dllearner.algorithms.el.ELDescriptionNode; @@ -100,22 +102,37 @@ * v4: out=outSC1={v2}, inSC2=outSC2={v2,v3} */ @Test - public void test3() { + public void test3() { + // background knowledge, concepts, roles ReasonerComponent rs = TestOntologies.getTestOntology(TestOntology.R1SUBR2); - ELDescriptionTree tree = new ELDescriptionTree(rs); - ELDescriptionNode v1 = new ELDescriptionNode(tree); ObjectProperty r1 = new ObjectProperty(uri("r1")); NamedClass a1 = new NamedClass(uri("a1")); NamedClass a2 = new NamedClass(uri("a2")); - ELDescriptionNode v2 = new ELDescriptionNode(v1, r1, a1, a2); - ELDescriptionNode v3 = new ELDescriptionNode(v1, r1, a2); ObjectProperty r2 = new ObjectProperty(uri("r2")); - ELDescriptionNode v4 = new ELDescriptionNode(v1, r2, a1); - System.out.println("v1:\n" + v1.toSimulationString()); - System.out.println("v2:\n" + v2.toSimulationString()); - System.out.println("v3:\n" + v3.toSimulationString()); - System.out.println("v4:\n" + v4.toSimulationString()); + // iteratively building up the tree (nodeNames is used for logging/debugging) + ELDescriptionTree tree = new ELDescriptionTree(rs); + Map<ELDescriptionNode,String> nodeNames = new LinkedHashMap<ELDescriptionNode,String>(); + ELDescriptionNode v1 = new ELDescriptionNode(tree); + nodeNames.put(v1, "v1"); + log("root node v1", tree, nodeNames); + ELDescriptionNode v2 = new ELDescriptionNode(v1, r1); + nodeNames.put(v2, "v2"); + log("edge to v2 added", tree, nodeNames); + v2.extendLabel(a1); + log("a1 added to v2", tree, nodeNames); + v2.extendLabel(a2); + log("a2 added to v2", tree, nodeNames); + ELDescriptionNode v3 = new ELDescriptionNode(v1, r1); + nodeNames.put(v3, "v3"); + log("edge to v3 added", tree, nodeNames); + v3.extendLabel(a2); + log("a2 added to v3", tree, nodeNames); + ELDescriptionNode v4 = new ELDescriptionNode(v1, r2); + nodeNames.put(v4, "v4"); + log("edge to v4 added", tree, nodeNames); + v4.extendLabel(a1); + log("a1 added to v4", tree, nodeNames); assertEmpty(v1); @@ -202,6 +219,16 @@ assertOutSC1(v6,v5); } + private void log(String message, ELDescriptionTree tree, Map<ELDescriptionNode,String> nodeNames) { + // print underlined message + System.out.println(message); + for(int i=0; i<=message.length(); i++) { + System.out.print("="); + } + System.out.println("\n"); + System.out.println(tree.toSimulationString(nodeNames)); + } + // all relations (in, inSC1, inSC2) should have the // the specified node set as value private void assertAll(ELDescriptionNode node, ELDescriptionNode... nodes) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |