From: <jen...@us...> - 2007-11-12 14:26:11
|
Revision: 281 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=281&view=rev Author: jenslehmann Date: 2007-11-12 06:26:03 -0800 (Mon, 12 Nov 2007) Log Message: ----------- - now all options for the refinement operator based learning algorithm are thread safe - fixed some warnings Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/Config.java trunk/src/dl-learner/org/dllearner/ConfigurationManager.java trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java trunk/src/dl-learner/org/dllearner/algorithms/refinement/RhoDown.java trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java trunk/src/dl-learner/org/dllearner/utilities/PaperStatistics.java Modified: trunk/src/dl-learner/org/dllearner/Config.java =================================================================== --- trunk/src/dl-learner/org/dllearner/Config.java 2007-11-12 14:11:18 UTC (rev 280) +++ trunk/src/dl-learner/org/dllearner/Config.java 2007-11-12 14:26:03 UTC (rev 281) @@ -123,11 +123,11 @@ // public static boolean useShortConceptConstruction = true; - public static double horizontalExpansionFactor = 0.6; +// public static double horizontalExpansionFactor = 0.6; - public static boolean improveSubsumptionHierarchy = true; +// public static boolean improveSubsumptionHierarchy = true; - public static boolean quiet = false; +// public static boolean quiet = false; // public static boolean writeSearchTree = false; @@ -168,13 +168,13 @@ // max. Verschachtelungstiefe der Lösung // nicht implementiert - public static int maxDepth = 0; +// public static int maxDepth = 0; // Konstruktoren an- und abschalten // nicht implementiert - public static boolean useAllConstructor = true; - public static boolean useExistsConstructor = true; - public static boolean useNegation = true; +// public static boolean useAllConstructor = true; +// public static boolean useExistsConstructor = true; +// public static boolean useNegation = true; // public static boolean useDisjunction = true; // public static boolean useConjunction = true; Modified: trunk/src/dl-learner/org/dllearner/ConfigurationManager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/ConfigurationManager.java 2007-11-12 14:11:18 UTC (rev 280) +++ trunk/src/dl-learner/org/dllearner/ConfigurationManager.java 2007-11-12 14:26:03 UTC (rev 281) @@ -402,8 +402,8 @@ Config.GP.hillClimbingProbability = value / (double) 100; else if (option.equals("gp.refinementPercent")) Config.GP.refinementProbability = value / (double) 100; - else if (option.equals("refinement.horizontalExpansionFactor")) - Config.Refinement.horizontalExpansionFactor = value; +// else if (option.equals("refinement.horizontalExpansionFactor")) +// Config.Refinement.horizontalExpansionFactor = value; else if (option.equals("percentPerLengthUnit")) ; // Config.percentPerLengthUnit = value; } @@ -482,9 +482,9 @@ // Config.Refinement.heuristic = Config.Refinement.Heuristic.LEXICOGRAPHIC; // else // Config.Refinement.heuristic = Config.Refinement.Heuristic.FLEXIBLE; - } else if (option.equals("refinement.quiet")) - Config.Refinement.quiet = Datastructures.strToBool(value); - else if (option.equals("refinement.writeSearchTree")) + } else if (option.equals("refinement.quiet")) { +// Config.Refinement.quiet = Datastructures.strToBool(value); + } else if (option.equals("refinement.writeSearchTree")) ; //Config.Refinement.writeSearchTree = Datastructures.strToBool(value); else if (option.equals("refinement.searchTreeFile")) { ; // Config.Refinement.searchTreeFile = new File(value); @@ -498,12 +498,12 @@ // Config.Refinement.useOverlyGeneralList = Datastructures.strToBool(value); // else if (option.equals("refinement.useShortConceptConstruction")) // Config.Refinement.useShortConceptConstruction = Datastructures.strToBool(value); - } else if (option.equals("refinement.useAllConstructor")) - Config.Refinement.useAllConstructor = Datastructures.strToBool(value); - else if (option.equals("refinement.useExistsConstructor")) - Config.Refinement.useExistsConstructor = Datastructures.strToBool(value); - else if (option.equals("refinement.useNegation")) - Config.Refinement.useNegation = Datastructures.strToBool(value); +// } else if (option.equals("refinement.useAllConstructor")) +// Config.Refinement.useAllConstructor = Datastructures.strToBool(value); +// else if (option.equals("refinement.useExistsConstructor")) +// Config.Refinement.useExistsConstructor = Datastructures.strToBool(value); +// else if (option.equals("refinement.useNegation")) +// Config.Refinement.useNegation = Datastructures.strToBool(value); // else if (option.equals("reasoner")) { // if(value.equals("dig")) // Config.reasonerType = ReasonerType.DIG; @@ -511,7 +511,7 @@ // Config.reasonerType = ReasonerType.KAON2; // else if(value.equals("fastRetrieval")) // Config.reasonerType = ReasonerType.FAST_RETRIEVAL; - else if (option.equals("digReasonerURL")) { +// else if (option.equals("digReasonerURL")) { // try { // Config.digReasonerURL = new URL(value); // } catch (MalformedURLException e) { Modified: trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java 2007-11-12 14:11:18 UTC (rev 280) +++ trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java 2007-11-12 14:26:03 UTC (rev 281) @@ -11,7 +11,6 @@ import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.Config; import org.dllearner.core.LearningAlgorithm; import org.dllearner.core.LearningProblem; import org.dllearner.core.ReasoningService; @@ -58,8 +57,14 @@ private boolean applyExistsFilter = true; private boolean useTooWeakList = true; private boolean useOverlyGeneralList = true; - private boolean useShortConceptConstruction = true; + private boolean useShortConceptConstruction = true; + private double horizontalExpansionFactor = 0.6; + private boolean useAllConstructor = true; + private boolean useExistsConstructor = true; + private boolean useNegation = true; + private boolean quiet = false; + private boolean stop = false; private ReasoningService rs; @@ -229,6 +234,14 @@ useOverlyGeneralList = (Boolean) entry.getValue(); } else if(name.equals("useShortConceptConstruction")) { useShortConceptConstruction = (Boolean) entry.getValue(); + } else if(name.equals("horzontalExpansionFactor")) { + horizontalExpansionFactor = (Double) entry.getValue(); + } else if(name.equals("useAllConstructor")) { + useAllConstructor = (Boolean) entry.getValue(); + } else if(name.equals("useExistsConstructor")) { + useExistsConstructor = (Boolean) entry.getValue(); + } else if(name.equals("useNegation")) { + useNegation = (Boolean) entry.getValue(); } } @@ -255,7 +268,7 @@ } // this.learningProblem2 = learningProblem2; - operator = new RhoDown(rs, applyAllFilter, applyExistsFilter); + operator = new RhoDown(rs, applyAllFilter, applyExistsFilter, useAllConstructor, useExistsConstructor, useNegation); // candidate sets entsprechend der gewählten Heuristik initialisieren candidates = new TreeSet<Node>(nodeComparator); @@ -343,7 +356,7 @@ // proper refinements mehr gefunden werden, aber wie stelle man das fest? while(!solutionFound && !stop) { - if(!Config.Refinement.quiet) + if(!quiet) printStatistics(false); // besten Knoten nach Heuristik auswählen @@ -360,7 +373,7 @@ // minimum horizontal expansion berechnen if(bestNode.getHorizontalExpansion()>maximumHorizontalExpansion) maximumHorizontalExpansion = bestNode.getHorizontalExpansion(); - minimumHorizontalExpansion = (int) Math.floor(Config.Refinement.horizontalExpansionFactor*maximumHorizontalExpansion); + minimumHorizontalExpansion = (int) Math.floor(horizontalExpansionFactor*maximumHorizontalExpansion); // neu: es werden solange Knoten erweitert bis wirklich jeder Knoten die // notwendige minimum horizontal expansion hat @@ -443,7 +456,7 @@ // Anzahl Schleifendurchläufe loop++; - if(!Config.Refinement.quiet) + if(!quiet) System.out.println("--- loop " + loop + " finished ---"); } Modified: trunk/src/dl-learner/org/dllearner/algorithms/refinement/RhoDown.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refinement/RhoDown.java 2007-11-12 14:11:18 UTC (rev 280) +++ trunk/src/dl-learner/org/dllearner/algorithms/refinement/RhoDown.java 2007-11-12 14:26:03 UTC (rev 281) @@ -29,7 +29,6 @@ import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.Config; import org.dllearner.core.ReasoningService; import org.dllearner.core.dl.All; import org.dllearner.core.dl.AtomicConcept; @@ -90,13 +89,21 @@ private boolean applyAllFilter = true; private boolean applyExistsFilter = true; + private boolean useAllConstructor = true; + private boolean useExistsConstructor = true; + private boolean useNegation = true; // braucht man wirklich das learningProblem oder reicht der Reasoning-Service? // TODO: conceptComparator könnte auch noch Parameter sein - public RhoDown(ReasoningService reasoningService, boolean applyAllFilter, boolean applyExistsFilter) { + public RhoDown(ReasoningService reasoningService, boolean applyAllFilter, boolean applyExistsFilter, boolean useAllConstructor, + boolean useExistsConstructor, boolean useNegation) { this.rs = reasoningService; this.applyAllFilter = applyAllFilter; this.applyExistsFilter = applyExistsFilter; + this.useAllConstructor = useAllConstructor; + this.useExistsConstructor = useExistsConstructor; + this.useNegation = useNegation; + // this.learningProblem = learningProblem; // rs = learningProblem.getReasoningService(); } @@ -517,7 +524,7 @@ if(topRefinementsLength<2 && maxLength>1) { // Konzepte der Länge 2 = Negation aller Konzepte, die über Bottom liegen - if(Config.Refinement.useNegation) { + if(useNegation) { Set<Concept> m2tmp = rs.getMoreGeneralConcepts(new Bottom()); Set<Concept> m2 = new TreeSet<Concept>(conceptComparator); for(Concept c : m2tmp) { @@ -529,7 +536,7 @@ if(topRefinementsLength<3 && maxLength>2) { // Konzepte der Länge 3: EXISTS r.TOP - if(Config.Refinement.useExistsConstructor) { + if(useExistsConstructor) { Set<Concept> m3 = new TreeSet<Concept>(conceptComparator); // previous operator: uses all roles // for(AtomicRole r : Config.Refinement.allowedRoles) { @@ -544,7 +551,7 @@ } if(maxLength>2) { - if(Config.Refinement.useAllConstructor) { + if(useAllConstructor) { // Konzepte, die mit ALL r starten // alle existierenden Konzepte durchgehen, die maximal 2 k�rzer als // die maximale L�nge sind Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java 2007-11-12 14:11:18 UTC (rev 280) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java 2007-11-12 14:26:03 UTC (rev 281) @@ -33,9 +33,7 @@ import java.util.Iterator; import java.util.Vector; -import org.dllearner.utilities.Datastructures; - /** * This class collects the ontology from dbpedia, * everything is saved in hashsets, so the doublettes are taken care of @@ -157,7 +155,7 @@ String end="</uri></binding>"; String predtmp=""; String objtmp=""; - ArrayList<String> al=new ArrayList<String>(); + // ArrayList<String> al=new ArrayList<String>(); while(xml.indexOf(one)!=-1){ //get pred xml=xml.substring(xml.indexOf(one)+one.length()); Modified: trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java =================================================================== --- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2007-11-12 14:11:18 UTC (rev 280) +++ trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2007-11-12 14:26:03 UTC (rev 281) @@ -20,8 +20,6 @@ package org.dllearner.server; import java.util.Arrays; -import java.util.Calendar; -import java.util.Date; import java.util.List; import java.util.Map; import java.util.Random; Modified: trunk/src/dl-learner/org/dllearner/utilities/PaperStatistics.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/PaperStatistics.java 2007-11-12 14:11:18 UTC (rev 280) +++ trunk/src/dl-learner/org/dllearner/utilities/PaperStatistics.java 2007-11-12 14:26:03 UTC (rev 281) @@ -215,8 +215,8 @@ if(algorithmNr==0) { // Config.algorithm = Algorithm.REFINEMENT; // Config.Refinement.heuristic = Config.Refinement.Heuristic.FLEXIBLE; - Config.Refinement.horizontalExpansionFactor = 0.6; - Config.Refinement.quiet = true; +// Config.Refinement.horizontalExpansionFactor = 0.6; +// Config.Refinement.quiet = true; // Config.percentPerLengthUnit = 0.05; // learningAlgorithm = new ROLearner(learningProblem); // learningAlgorithm = cm.learningAlgorithm(ROLearner.class, learningProblem); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |