From: <jen...@us...> - 2008-08-20 20:05:16
|
Revision: 1115 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1115&view=rev Author: jenslehmann Date: 2008-08-20 20:05:10 +0000 (Wed, 20 Aug 2008) Log Message: ----------- some fixes as result of example unit tests Modified Paths: -------------- trunk/examples/carcinogenesis/train.conf trunk/examples/lymphography/lymphography_Class1.conf trunk/examples/lymphography/lymphography_Class2.conf trunk/examples/lymphography/lymphography_Class3.conf trunk/examples/lymphography/lymphography_Class4.conf trunk/examples/sparql/AristotlePos.conf trunk/examples/sparql/govtrack.conf trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java trunk/src/dl-learner/org/dllearner/test/junit/ExampleTests.java trunk/src/dl-learner/org/dllearner/utilities/Helper.java trunk/src/dl-learner/org/dllearner/utilities/statistics/SimpleClock.java Removed Paths: ------------- trunk/examples/test.conf Modified: trunk/examples/carcinogenesis/train.conf =================================================================== --- trunk/examples/carcinogenesis/train.conf 2008-08-20 19:25:05 UTC (rev 1114) +++ trunk/examples/carcinogenesis/train.conf 2008-08-20 20:05:10 UTC (rev 1115) @@ -2,7 +2,8 @@ reasoner = fastInstanceChecker; algorithm = refexamples; -refexamples.noisePercentage = 28; +// refexamples.noisePercentage = 28; +refexamples.noisePercentage = 32; refexamples.startClass = "http://dl-learner.org/carcinogenesis#Compound"; refexamples.writeSearchTree = false; refexamples.searchTreeFile = "log/carcinogenesis/searchTree.log"; Modified: trunk/examples/lymphography/lymphography_Class1.conf =================================================================== --- trunk/examples/lymphography/lymphography_Class1.conf 2008-08-20 19:25:05 UTC (rev 1114) +++ trunk/examples/lymphography/lymphography_Class1.conf 2008-08-20 20:05:10 UTC (rev 1115) @@ -17,15 +17,6 @@ */ - -reasoner = dig; -//reasoner = fastRetrieval; - -algorithm = refinement; -//refinement.heuristic = flexible; -//algorithm = refexamples; - - refinement.ignoredConcepts = { "http://www.example.org/lymphography#Target1_NormalFind", "http://www.example.org/lymphography#Target2_Metastases", Modified: trunk/examples/lymphography/lymphography_Class2.conf =================================================================== --- trunk/examples/lymphography/lymphography_Class2.conf 2008-08-20 19:25:05 UTC (rev 1114) +++ trunk/examples/lymphography/lymphography_Class2.conf 2008-08-20 20:05:10 UTC (rev 1115) @@ -13,16 +13,8 @@ it will need a lot of time to find a solution, in case it exists at all. Mainly used as a test case for improving the algorithms (example 4 uses a new experimental version of the refinement algorithm) - - */ -reasoner = dig; -//reasoner = fastRetrieval; -algorithm = refinement; -//refinement.heuristic = flexible; -//algorithm = refexamples; - refinement.ignoredConcepts = { "http://www.example.org/lymphography#Target1_NormalFind", "http://www.example.org/lymphography#Target2_Metastases", @@ -30,12 +22,10 @@ "http://www.example.org/lymphography#Target4_Fibrosis" }; - - - refinement.useAllConstructor = false; refinement.useExistsConstructor = true; refinement.useNegation = false; + import("lymphography.owl"); /*Class2*/ Modified: trunk/examples/lymphography/lymphography_Class3.conf =================================================================== --- trunk/examples/lymphography/lymphography_Class3.conf 2008-08-20 19:25:05 UTC (rev 1114) +++ trunk/examples/lymphography/lymphography_Class3.conf 2008-08-20 20:05:10 UTC (rev 1115) @@ -17,15 +17,6 @@ */ - - -reasoner = dig; -//reasoner = fastRetrieval; - -algorithm = refinement; -//refinement.heuristic = flexible; -//algorithm = refexamples; - refinement.ignoredConcepts = { "http://www.example.org/lymphography#Target1_NormalFind", "http://www.example.org/lymphography#Target2_Metastases", Modified: trunk/examples/lymphography/lymphography_Class4.conf =================================================================== --- trunk/examples/lymphography/lymphography_Class4.conf 2008-08-20 19:25:05 UTC (rev 1114) +++ trunk/examples/lymphography/lymphography_Class4.conf 2008-08-20 20:05:10 UTC (rev 1115) @@ -13,18 +13,8 @@ it will need a lot of time to find a solution, in case it exists at all. Mainly used as a test case for improving the algorithms (example 4 uses a new experimental version of the refinement algorithm) - - */ - -//reasoner = dig; -reasoner = fastRetrieval; - -//algorithm = refinement; -//refinement.heuristic = flexible; -algorithm = refexamples; - refexamples.ignoredConcepts = { "http://www.example.org/lymphography#Target1_NormalFind", "http://www.example.org/lymphography#Target2_Metastases", Modified: trunk/examples/sparql/AristotlePos.conf =================================================================== --- trunk/examples/sparql/AristotlePos.conf 2008-08-20 19:25:05 UTC (rev 1114) +++ trunk/examples/sparql/AristotlePos.conf 2008-08-20 20:05:10 UTC (rev 1115) @@ -18,7 +18,8 @@ algorithm = refexamples; reasoner = fastInstanceChecker; -problem = posOnlyDefinitionLP; +// comment this out to enable positive only learning +// problem = posOnlyDefinitionLP; sparql.instances = { "http://dbpedia.org/resource/Democritus", @@ -33,9 +34,10 @@ +"http://dbpedia.org/resource/Pythagoras" +"http://dbpedia.org/resource/Philolaus" +"http://dbpedia.org/resource/Archytas" -/* + +// comment this out to enable positive only learning -"http://dbpedia.org/resource/Socrates" -"http://dbpedia.org/resource/Plato" -"http://dbpedia.org/resource/Zeno_of_Elea" -"http://dbpedia.org/resource/Democritus" -*/ + Modified: trunk/examples/sparql/govtrack.conf =================================================================== --- trunk/examples/sparql/govtrack.conf 2008-08-20 19:25:05 UTC (rev 1114) +++ trunk/examples/sparql/govtrack.conf 2008-08-20 20:05:10 UTC (rev 1115) @@ -7,7 +7,7 @@ reasoner = owlAPI; // reasoner = fastInstanceChecker; -import("http://rdfabout.com/sparql/","SPARQL"); +import("http://www.govtrack.us/sparql","SPARQL"); sparql.instances = { "http://www.rdfabout.com/rdf/usgov/congress/people/A000069", Deleted: trunk/examples/test.conf =================================================================== --- trunk/examples/test.conf 2008-08-20 19:25:05 UTC (rev 1114) +++ trunk/examples/test.conf 2008-08-20 20:05:10 UTC (rev 1115) @@ -1,13 +0,0 @@ -import("father.kb"); -reasoner = "fastInstanceChecker"; -problem = "posNegDefinition"; - -+"http://localhost/foo#markus" -+"http://localhost/foo#michelle" -+"http://localhost/foo#stefan" - --"http://localhost/foo#anna" --"http://localhost/foo#bernd" --"http://localhost/foo#gabi" - -algorithm = "refexamples"; Modified: trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-08-20 19:25:05 UTC (rev 1114) +++ trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-08-20 20:05:10 UTC (rev 1115) @@ -451,7 +451,9 @@ System.out.println("solution: " + bestNode.getConcept()); System.out.println("maxPosOnlyExpansion: " + maxPosOnlyExpansion); System.out.println("best child of this node: " + bestChild); - System.out.println(bestNode.getChildConcepts()); + if(bestNode.getChildConcepts().size()<100) { + System.out.println(bestNode.getChildConcepts()); + } System.out.println("TODO: needs to be integrated with other stopping criteria"); System.out .println("You tried to use this algorithm for positive only learning, which is not recommended (yet)."); Modified: trunk/src/dl-learner/org/dllearner/test/junit/ExampleTests.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/junit/ExampleTests.java 2008-08-20 19:25:05 UTC (rev 1114) +++ trunk/src/dl-learner/org/dllearner/test/junit/ExampleTests.java 2008-08-20 20:05:10 UTC (rev 1115) @@ -25,6 +25,8 @@ import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.Set; +import java.util.TreeSet; import org.apache.log4j.ConsoleAppender; import org.apache.log4j.FileAppender; @@ -34,6 +36,7 @@ import org.dllearner.cli.QuickStart; import org.dllearner.cli.Start; import org.dllearner.core.ComponentInitException; +import org.dllearner.core.ComponentManager; import org.dllearner.utilities.Helper; import org.junit.Test; @@ -48,7 +51,7 @@ /** * This test runs all conf files in the examples directory. Each conf file * corresponds to one unit test, which is succesful if a concept was - * learned. + * learned. This unit test takes several hours. * * @throws ComponentInitException * If any component initialisation exception occurs in the @@ -72,18 +75,34 @@ SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + // ignore list (examples which are temporarily not working due + // to server downtime, lack of features etc., but should still + // remain in the example directory + Set<String> ignore = new TreeSet<String>(); + ignore.add("./examples/sparql/govtrack.conf"); // HTTP 500 Server error + ignore.add("./examples/sparql/musicbrainz.conf"); // HTTP 502 error - NullPointer in extraction + ignore.add("./examples/sparql/SKOSTEST_local.conf"); // Out of Memory Error + ignore.add("./examples/sparql/scrobble.conf"); // HTTP 502 Proxy Error + ignore.add("./examples/family-benchmark/Cousin.conf"); // Out of Memory Error + for (String path : confFiles.keySet()) { for (String file : confFiles.get(path)) { String conf = path + file + ".conf"; - System.out.println("Testing " + conf + " (time: " + sdf.format(new Date()) + ")."); - long startTime = System.nanoTime(); - // start example - Start start = new Start(new File(conf)); - start.start(false); - // test is successful if a concept was learned - assert (start.getLearningAlgorithm().getCurrentlyBestDescription() != null); - long timeNeeded = System.nanoTime() - startTime; - System.out.println("Test of " + conf + " completed in " + Helper.prettyPrintNanoSeconds(timeNeeded) + "."); + if(ignore.contains(conf)) { + System.out.println("Skipping " + conf + " (is on ignore list)."); + } else { + System.out.println("Testing " + conf + " (time: " + sdf.format(new Date()) + ")."); + long startTime = System.nanoTime(); + // start example + Start start = new Start(new File(conf)); + start.start(false); + // test is successful if a concept was learned + assert (start.getLearningAlgorithm().getCurrentlyBestDescription() != null); + long timeNeeded = System.nanoTime() - startTime; + start.getReasoningService().releaseKB(); + ComponentManager.getInstance().freeAllComponents(); + System.out.println("Test of " + conf + " completed in " + Helper.prettyPrintNanoSeconds(timeNeeded) + "."); + } } } Modified: trunk/src/dl-learner/org/dllearner/utilities/Helper.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/Helper.java 2008-08-20 19:25:05 UTC (rev 1114) +++ trunk/src/dl-learner/org/dllearner/utilities/Helper.java 2008-08-20 20:05:10 UTC (rev 1115) @@ -445,21 +445,20 @@ // ignore some concepts (possibly produced by Jena) if (conceptName.startsWith("anon")) { - System.out - .println(" Ignoring concept " + logger.debug(" Ignoring concept " + conceptName + " (probably an anonymous concept produced by Jena when reading in OWL file)."); it.remove(); } else if (conceptName.startsWith("http://www.w3.org/1999/02/22-rdf-syntax-ns#")) { - System.out.println(" Ignoring concept " + conceptName + logger.debug(" Ignoring concept " + conceptName + " (RDF construct produced by Jena when reading in OWL file)."); it.remove(); } else if (conceptName.startsWith("http://www.w3.org/2000/01/rdf-schema#")) { - System.out.println(" Ignoring concept " + conceptName + logger.debug(" Ignoring concept " + conceptName + " (RDF Schema construct produced by Jena when reading in OWL file)."); it.remove(); } else if (conceptName.startsWith("http://www.w3.org/2002/07/owl#")) { - System.out.println(" Ignoring concept " + conceptName + logger.debug(" Ignoring concept " + conceptName + " (OWL construct produced by Jena when reading in OWL file)."); it.remove(); } Modified: trunk/src/dl-learner/org/dllearner/utilities/statistics/SimpleClock.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/statistics/SimpleClock.java 2008-08-20 19:25:05 UTC (rev 1114) +++ trunk/src/dl-learner/org/dllearner/utilities/statistics/SimpleClock.java 2008-08-20 20:05:10 UTC (rev 1115) @@ -1,78 +1,93 @@ package org.dllearner.utilities.statistics; /** - * class for counting time and output it + * Copyright (C) 2007-2008, Jens Lehmann * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * */ +import org.apache.log4j.Logger; + +/** + * Class for counting time and outputting it. + * + * @author Unknown + */ public class SimpleClock { + + private static Logger logger = Logger.getLogger(SimpleClock.class); + private long time; - + public SimpleClock() { - time=System.currentTimeMillis(); + time = System.currentTimeMillis(); } - - - - - + /** - * prints time needed - * and resets the clock + * prints time needed and resets the clock */ public void printAndSet() { - - System.out.println("needed "+getTime()+" ms"); + logger.info("needed " + getTime() + " ms"); setTime(); } - - + /** - * prints time needed - * and resets the clock - * @param s String for printing + * prints time needed and resets the clock + * + * @param s + * String for printing */ public void printAndSet(String s) { - - System.out.println(s+" needed "+getTime()+" ms"); + logger.info(s + " needed " + getTime() + " ms"); setTime(); } - + public String getAndSet(String s) { - - String ret = s+" needed "+getTime()+" ms"; + String ret = s + " needed " + getTime() + " ms"; setTime(); return ret; - } - - + /** * prints time needed - * - * @param s String for printing + * + * @param s + * String for printing */ public void print(String s) { - - System.out.println(s+" needed "+getTime()+" ms"); - + logger.info(s + " needed " + getTime() + " ms"); } - + /** * resets the clock */ public void setTime() { - time=System.currentTimeMillis(); + time = System.currentTimeMillis(); } + /** * resets the clock */ public void reset() { setTime(); } - + public long getTime() { - long now=System.currentTimeMillis(); - return now-time; + long now = System.currentTimeMillis(); + return now - time; } - + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |