From: <ku...@us...> - 2010-02-13 14:43:32
|
Revision: 2029 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2029&view=rev Author: kurzum Date: 2010-02-13 14:43:17 +0000 (Sat, 13 Feb 2010) Log Message: ----------- added hasValue support to SPARQLDescriptionConverter added a logger.trace output to RhoDRDown Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java trunk/src/dl-learner/org/dllearner/scripts/tiger/ExperimentConfig.java trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java trunk/src/dl-learner/org/dllearner/utilities/JamonMonitorLogger.java trunk/src/dl-learner/org/dllearner/utilities/examples/Examples.java Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/examples/tiger/ Property Changed: ---------------- trunk/ Property changes on: trunk ___________________________________________________________________ Modified: svn:ignore - .lastUsedExample .settings .project .classpath classes log cache cachePersistant reports results local rdbtoonto the_log.txt tmp fragmentOntology.owl output ling osmdata matching stanley dllearner.jar father.inp lgd.nt + .lastUsedExample .settings .project .classpath classes log cache cachePersistant reports results local rdbtoonto the_log.txt tmp fragmentOntology.owl output ling osmdata matching stanley dllearner.jar father.inp lgd.nt files Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-02-13 13:04:13 UTC (rev 2028) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-02-13 14:43:17 UTC (rev 2029) @@ -67,26 +67,27 @@ private static Logger logger = Logger.getLogger(ComponentManager.class); - private Stack<String> stack = new Stack<String>(); - private String query = ""; - private int currentObject = 0; - private int limit = 5; private boolean labels = false; private boolean distinct = false; private Map<String,String> classToSubclassesVirtuoso = null; + + private Stack<String> stack = new Stack<String>(); + private String query = ""; + private int currentObject = 0; private List<String> foundNamedClasses = new ArrayList<String>(); - public SparqlQueryDescriptionConvertVisitor() { - stack.push("subject"); - } - public void reset(){ currentObject = 0; stack = new Stack<String>(); stack.push("subject"); query = ""; + foundNamedClasses = new ArrayList<String>() ; } + + public SparqlQueryDescriptionConvertVisitor() { + stack.push("subject"); + } public String getSparqlQuery( String descriptionKBSyntax) throws ParseException { Description description = KBParser.parseConcept(descriptionKBSyntax); @@ -97,7 +98,7 @@ description.accept(this); expandSubclasses(); String ret = "SELECT "+distinct()+"?subject "+((labels)?"?label":"")+" { "+labels()+ query + " \n } " + limit(); - this.reset(); + reset(); return ret; } @@ -159,7 +160,6 @@ this.labels = labels; } - public void setDistinct(boolean distinct) { this.distinct = distinct; } @@ -402,15 +402,8 @@ * .DatatypeValueRestriction) */ public void visit(DatatypeValueRestriction description) { - String current = stack.peek(); - String property = description.getRestrictedPropertyExpression().toString(); - String value = description.getValue().toString(); - System.out.println("here"); - System.out.println(stack.peek()); - System.out.println(current); - System.out.println(property); - System.out.println(value); logger.trace("DatatypeValueRestriction"); + query += "\n?" + stack.peek() + " <" + description.getRestrictedPropertyExpression() + "> \""+description.getValue().getLiteral()+"\" "; } /* @@ -421,7 +414,6 @@ * .NamedClass) */ public void visit(NamedClass description) { - logger.trace("NamedClass"); query += "\n?" + stack.peek() + " a <" + description.getName() + "> "; foundNamedClasses.add(description.getName()); Modified: trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java =================================================================== --- trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2010-02-13 13:04:13 UTC (rev 2028) +++ trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2010-02-13 14:43:17 UTC (rev 2029) @@ -314,6 +314,7 @@ Set<Constant> frequentInds = new TreeSet<Constant>(); for(Constant i : dpMap.keySet()) { if(dpMap.get(i) >= frequencyThreshold) { + logger.trace("adding value "+i+", because "+dpMap.get(i) +">="+frequencyThreshold); frequentInds.add(i); } } Modified: trunk/src/dl-learner/org/dllearner/scripts/tiger/ExperimentConfig.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/tiger/ExperimentConfig.java 2010-02-13 13:04:13 UTC (rev 2028) +++ trunk/src/dl-learner/org/dllearner/scripts/tiger/ExperimentConfig.java 2010-02-13 14:43:17 UTC (rev 2029) @@ -6,11 +6,18 @@ public int resultLimit = -1; + public int splits = 5; - public int initialsplits = 30; + public int initialsplits = 10; + public int iteration = 5; - public int iteration = 1; - public int maxExecutionTime = 3; + public boolean useStartClass = true; + public int noise = 5; + //sets ValueFrequency treshold and maxExecution time + public boolean adaptive = true; + public int maxExecutionTime = 40; + public int valueFrequencyThreshold = 3; + public boolean stopCondition(int iteration, Examples learn){ return (iteration<this.iteration); Modified: trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-13 13:04:13 UTC (rev 2028) +++ trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-13 14:43:17 UTC (rev 2029) @@ -34,8 +34,8 @@ import org.dllearner.kb.sparql.SparqlQuery; import org.dllearner.kb.sparql.SparqlQueryDescriptionConvertVisitor; import org.dllearner.learningproblems.PosNegLPStandard; -import org.dllearner.parser.ParseException; import org.dllearner.reasoning.FastInstanceChecker; +import org.dllearner.refinementoperators.RhoDRDown; import org.dllearner.utilities.Helper; import org.dllearner.utilities.JamonMonitorLogger; import org.dllearner.utilities.examples.ExMakerFixedSize; @@ -68,7 +68,7 @@ - final static boolean debug = true; + final static boolean debug = false; //no randomization in examples final static boolean randomizedebug = !debug; @@ -77,10 +77,9 @@ Logger.getLogger(Cache.class).setLevel(Level.INFO); Logger.getLogger(ComponentPool.class).setLevel(Level.INFO); Logger.getLogger(ROLearner2.class).setLevel(Level.TRACE); + Logger.getLogger(RhoDRDown.class).setLevel(Level.TRACE); Logger.getLogger(SparqlQuery.class).setLevel(Level.INFO); - - try { sparqlEndpoint = new SparqlEndpoint(new URL(sparqlEndpointURL), new ArrayList<String>(Arrays .asList(new String[] { graph })), new ArrayList<String>()); @@ -93,16 +92,10 @@ SortedSet<String> positives; SortedSet<String> negatives; - if(debug) { - positives = read(test_has_pos);; - negatives = read(test_has_neg);; - }else{ -// positives = read(passiveWithZu); - positives = read(passiveNoZU); - negatives = read(active); - } +// positives = read(passiveWithZu); positives = read(passiveNoZU); negatives = read(active); + //removing overlap positives.removeAll(negatives); negatives.removeAll(positives); @@ -117,6 +110,7 @@ ExperimentConfig config = new ExperimentConfig(); firstContact( allExamples, config); + JamonMonitorLogger.writeHTMLReport("log/tiger.html"); //retrieved wird neues Example, als schnittmenge mit all //und den bisher gewaehlten //dann splits auswählen und @@ -241,7 +235,7 @@ FastInstanceChecker rc = ComponentFactory.getFastInstanceChecker(tmp); PosNegLPStandard lp = ComponentFactory .getPosNegLPStandard(rc, ex.getPosTrain(), ex.getNegTrain()); - LearningAlgorithm la = _getROLLearner(lp, rc, config ); + LearningAlgorithm la = _getROLLearner(lp, rc, config, ex); for (KnowledgeSource ks : tmp) { ks.init(); @@ -274,50 +268,46 @@ visit.setLimit(resultLimit); String sparqlQuery = ""; try { - logger.debug(PrefixMap.toKBSyntaxString(ed.getDescription())); -// sparqlQuery = visit.getSparqlQuery(ed.getDescription().toKBSyntaxString()); -// logger.debug(sparqlQuery); sparqlQuery = visit.getSparqlQuery(ed.getDescription()); - logger.debug(sparqlQuery); - if (true) { - System.exit(0); - } } catch (Exception e1) { e1.printStackTrace(); } - logger.debug(PrefixMap.toKBSyntaxString(ed.getDescription())); - sparqlQuery = " \n define input:inference \"" + rulegraph + "\" \n" + "" + sparqlQuery; logger.debug(sparqlQuery); Monitor m = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "sparqlquery").start(); result.addAll(sparqlTasks.queryAsSet(sparqlQuery, "subject")); logger.debug("query avg: " + ((double)m.getAvg() / (double)1000)+ " seconds (last: "+((double)m.getLastValue() / (double)1000)+")"); - if(debug && result.isEmpty()){ + if(result.isEmpty()){ + logger.error("sparql query returned no results "); + logger.error(sparqlQuery); System.exit(0); } return result; } - private static LearningAlgorithm _getROLLearner(LearningProblem lp, ReasonerComponent rc, ExperimentConfig config) + private static LearningAlgorithm _getROLLearner(LearningProblem lp, ReasonerComponent rc, ExperimentConfig config, Examples ex) throws Exception { + + int maxExecutionTime = config.maxExecutionTime; + int valueFrequencyThreshold = config.valueFrequencyThreshold; + if(config.adaptive){ + maxExecutionTime = 2 * ex.sizeOfTrainingSets(); + valueFrequencyThreshold = (int) Math.floor(0.8d*((double)ex.getPosTrain().size())); + + } + ROLComponent2 la = ComponentFactory.getROLComponent2(lp, rc); la.getConfigurator().setUseExistsConstructor(true); - // la.getConfigurator().setUseAllConstructor(true); - // la.getConfigurator().setUseCardinalityRestrictions(true); - // la.getConfigurator().setUseNegation(true); - // la.getConfigurator().setUseHasValueConstructor(true); - // la.getConfigurator().setValueFrequencyThreshold(10); - la.getConfigurator().setUseAllConstructor(false); la.getConfigurator().setUseCardinalityRestrictions(false); la.getConfigurator().setUseNegation(false); la.getConfigurator().setUseHasValueConstructor(false); la.getConfigurator().setUseDataHasValueConstructor(true); -// la.getConfigurator().setValueFrequencyThreshold(1); + la.getConfigurator().setValueFrequencyThreshold(valueFrequencyThreshold); la.getConfigurator().setIgnoredConcepts(new HashSet<String>(Arrays.asList(new String[]{ "http://nlp2rdf.org/ontology/sentencefinalpunctuation_tag", @@ -326,13 +316,14 @@ }))); - la.getConfigurator().setNoisePercentage(0); + la.getConfigurator().setNoisePercentage(config.noise); la.getConfigurator().setTerminateOnNoiseReached(true); -// la.getConfigurator().setStartClass(Config.getConfig().prefix + "Sentence"); - la.getConfigurator().setMaxExecutionTimeInSeconds(config.maxExecutionTime); -// la.getConfigurator().setMinExecutionTimeInSeconds(20); - - // la.getConfigurator().setMinExecutionTimeInSeconds(100); + la.getConfigurator().setMaxExecutionTimeInSeconds(maxExecutionTime); + + if(config.useStartClass){ + la.getConfigurator().setStartClass(prefix + "Sentence"); + } + la.getConfigurator().setWriteSearchTree(false); la.getConfigurator().setSearchTreeFile("log/searchTree.txt"); la.getConfigurator().setReplaceSearchTree(false); Modified: trunk/src/dl-learner/org/dllearner/utilities/JamonMonitorLogger.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/JamonMonitorLogger.java 2010-02-13 13:04:13 UTC (rev 2028) +++ trunk/src/dl-learner/org/dllearner/utilities/JamonMonitorLogger.java 2010-02-13 14:43:17 UTC (rev 2029) @@ -19,6 +19,7 @@ */ package org.dllearner.utilities; +import java.io.File; import java.util.Iterator; import java.util.LinkedList; import java.util.List; @@ -155,7 +156,13 @@ //System.out.println(m); } + public static void writeHTMLReport(String filename){ + File jamonlog = new File(filename); + Files.createFile(jamonlog, MonitorFactory.getReport()); + Files.appendFile(jamonlog, "<xmp>\n"+JamonMonitorLogger.getStringForAllSortedByLabel()); + } + } Modified: trunk/src/dl-learner/org/dllearner/utilities/examples/Examples.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/examples/Examples.java 2010-02-13 13:04:13 UTC (rev 2028) +++ trunk/src/dl-learner/org/dllearner/utilities/examples/Examples.java 2010-02-13 14:43:17 UTC (rev 2029) @@ -120,8 +120,8 @@ @Override public String toString() { String ret = "Total: " + size(); - double posPercent = posTrain.size() / (double) posSize(); - double negPercent = negTrain.size() / (double) negSize(); + double posPercent = posTrain.size() / (double) sizeTotalOfPositives(); + double negPercent = negTrain.size() / (double) sizeTotalOfNegatives(); ret += "\nPositive: " + posTrain.size() + " | " + posTest.size() + " (" + DecimalFormat.getPercentInstance().format(posPercent) + ")"; ret += "\nNegative: " + negTrain.size() + " | " + negTest.size() + " (" @@ -171,13 +171,17 @@ public int size(){ return posTrain.size()+negTrain.size()+posTest.size()+negTest.size(); } - public int posSize(){ + public int sizeTotalOfPositives(){ return posTrain.size()+posTest.size(); } - public int negSize(){ + public int sizeTotalOfNegatives(){ return negTrain.size()+negTest.size(); } + public int sizeOfTrainingSets(){ + return posTrain.size()+negTrain.size(); + } + public SortedSet<String> getPositiveExamples() { SortedSet<String> total = new TreeSet<String>(); total.addAll(posTrain); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |