From: <jen...@us...> - 2011-08-31 11:15:18
|
Revision: 3182 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3182&view=rev Author: jenslehmann Date: 2011-08-31 11:15:09 +0000 (Wed, 31 Aug 2011) Log Message: ----------- cleanup up OCEL (refinement operator options now separated) and fixed a bug Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/algorithms/ocel/OCEL.java trunk/examples/trains/trains.conf trunk/scripts/src/main/java/org/dllearner/scripts/NewSample.java trunk/scripts/src/main/java/org/dllearner/scripts/SemanticBibleComparison.java trunk/scripts/src/main/java/org/dllearner/scripts/WikipediaCategoryCleaner.java trunk/scripts/src/main/java/org/dllearner/scripts/tiger/TestIterativeLearning.java Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/ocel/OCEL.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/ocel/OCEL.java 2011-08-31 09:24:25 UTC (rev 3181) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/ocel/OCEL.java 2011-08-31 11:15:09 UTC (rev 3182) @@ -112,20 +112,20 @@ // these are computed as the result of the previous four settings Set<NamedClass> usedConcepts; Set<ObjectProperty> usedRoles; - private boolean applyAllFilter = true; - private boolean applyExistsFilter = true; +// private boolean applyAllFilter = true; +// private boolean applyExistsFilter = true; private boolean useTooWeakList = true; private boolean useOverlyGeneralList = true; private boolean useShortConceptConstruction = true; private boolean improveSubsumptionHierarchy = true; - private boolean useAllConstructor = CommonConfigOptions.useAllConstructorDefault; - private boolean useExistsConstructor = CommonConfigOptions.useExistsConstructorDefault; - private boolean useHasValueConstructor = CommonConfigOptions.useHasValueConstructorDefault; - private int valueFrequencyThreshold = CommonConfigOptions.valueFrequencyThresholdDefault; - private boolean useCardinalityRestrictions = CommonConfigOptions.useCardinalityRestrictionsDefault; - private boolean useNegation = CommonConfigOptions.useNegationDefault; - private boolean useBooleanDatatypes = CommonConfigOptions.useBooleanDatatypesDefault; - private boolean useDoubleDatatypes = CommonConfigOptions.useDoubleDatatypesDefault; +// private boolean useAllConstructor = CommonConfigOptions.useAllConstructorDefault; +// private boolean useExistsConstructor = CommonConfigOptions.useExistsConstructorDefault; +// private boolean useHasValueConstructor = CommonConfigOptions.useHasValueConstructorDefault; +// private int valueFrequencyThreshold = CommonConfigOptions.valueFrequencyThresholdDefault; +// private boolean useCardinalityRestrictions = CommonConfigOptions.useCardinalityRestrictionsDefault; +// private boolean useNegation = CommonConfigOptions.useNegationDefault; +// private boolean useBooleanDatatypes = CommonConfigOptions.useBooleanDatatypesDefault; +// private boolean useDoubleDatatypes = CommonConfigOptions.useDoubleDatatypesDefault; private static double noisePercentageDefault = 0.0; private double noisePercentage = noisePercentageDefault; private NamedClass startClass = null; @@ -144,10 +144,10 @@ private int guaranteeXgoodDescriptions = CommonConfigOptions.guaranteeXgoodDescriptionsDefault; private int maxClassDescriptionTests = CommonConfigOptions.maxClassDescriptionTestsDefault; - private double negativeWeight; - private double startNodeBonus; - private double expansionPenaltyFactor; - private int negationPenalty; + private double negativeWeight = 1.0; + private double startNodeBonus = 1.0; + private double expansionPenaltyFactor = 0.02; + private int negationPenalty = 0; private boolean terminateOnNoiseReached = true; // Variablen zur Einstellung der Protokollierung @@ -155,9 +155,9 @@ boolean showBenchmarkInformation = false; // boolean createTreeString = false; // String searchTree = new String(); - private int cardinalityLimit; - private boolean useStringDatatypes; - private boolean instanceBasedDisjoints; +// private int cardinalityLimit = 5; +// private boolean useStringDatatypes = false; +// private boolean instanceBasedDisjoints = true; // Konfiguration des Algorithmus // Faktor für horizontale Erweiterung (notwendig für completeness) @@ -266,9 +266,9 @@ } else if(name.equals("ignoredRoles")) { ignoredRoles = CommonConfigMappings.getAtomicRoleSet((Set<String>)entry.getValue()); } else if(name.equals("applyAllFilter")) { - applyAllFilter = (Boolean) entry.getValue(); +// applyAllFilter = (Boolean) entry.getValue(); } else if(name.equals("applyExistsFilter")) { - applyExistsFilter = (Boolean) entry.getValue(); +// applyExistsFilter = (Boolean) entry.getValue(); } else if(name.equals("useTooWeakList")) { useTooWeakList = (Boolean) entry.getValue(); } else if(name.equals("useOverlyGeneralList")) { @@ -278,23 +278,23 @@ } else if(name.equals("improveSubsumptionHierarchy")) { improveSubsumptionHierarchy = (Boolean) entry.getValue(); } else if(name.equals("useAllConstructor")) { - useAllConstructor = (Boolean) entry.getValue(); +// useAllConstructor = (Boolean) entry.getValue(); } else if(name.equals("useExistsConstructor")) { - useExistsConstructor = (Boolean) entry.getValue(); +// useExistsConstructor = (Boolean) entry.getValue(); } else if(name.equals("useHasValueConstructor")) { - useHasValueConstructor = (Boolean) entry.getValue(); +// useHasValueConstructor = (Boolean) entry.getValue(); } else if(name.equals("valueFrequencyThreshold")) { - valueFrequencyThreshold = (Integer) entry.getValue(); +// valueFrequencyThreshold = (Integer) entry.getValue(); } else if(name.equals("useCardinalityRestrictions")) { - useCardinalityRestrictions = (Boolean) entry.getValue(); +// useCardinalityRestrictions = (Boolean) entry.getValue(); } else if(name.equals("useNegation")) { - useNegation = (Boolean) entry.getValue(); +// useNegation = (Boolean) entry.getValue(); } else if(name.equals("noisePercentage")) { noisePercentage = (Double) entry.getValue(); } else if(name.equals("useBooleanDatatypes")) { - useBooleanDatatypes = (Boolean) entry.getValue(); +// useBooleanDatatypes = (Boolean) entry.getValue(); } else if(name.equals("useDoubleDatatypes")) { - useDoubleDatatypes = (Boolean) entry.getValue(); +// useDoubleDatatypes = (Boolean) entry.getValue(); } else if(name.equals("usePropernessChecks")) { usePropernessChecks = (Boolean) entry.getValue(); } else if(name.equals("maxPosOnlyExpansion")) { @@ -409,27 +409,33 @@ // variables to it // RhoDRDown if(operator == null) { - // TODO: switch to default constructor and inject only - // the necessary things (class hierarchy) - operator = new RhoDRDown( - reasoner, - classHierarchy, -// configurator, - applyAllFilter, - applyExistsFilter, - useAllConstructor, - useExistsConstructor, - useHasValueConstructor, - valueFrequencyThreshold, - useCardinalityRestrictions, - useNegation, - useBooleanDatatypes, - useDoubleDatatypes, - startClass, - cardinalityLimit, - useStringDatatypes, - instanceBasedDisjoints - ); + // we use a default operator and inject the class hierarchy for now + operator = new RhoDRDown(); + ((RhoDRDown)operator).setSubHierarchy(classHierarchy); + ((RhoDRDown)operator).setReasoner(reasoner); + ((RhoDRDown)operator).init(); + +// operator = new RhoDRDown( +// reasoner, +// classHierarchy, +//// configurator, +// applyAllFilter, +// applyExistsFilter, +//// useAllConstructor, +// true, +//// useExistsConstructor, +// true, +// useHasValueConstructor, +// valueFrequencyThreshold, +// useCardinalityRestrictions, +// useNegation, +// useBooleanDatatypes, +// useDoubleDatatypes, +// startClass, +// cardinalityLimit, +// useStringDatatypes, +// instanceBasedDisjoints +// ); } else { // we still have to inject the class hierarchy even if the operator is configured operator.setSubHierarchy(classHierarchy); @@ -622,22 +628,6 @@ this.usedRoles = usedRoles; } - public boolean isApplyAllFilter() { - return applyAllFilter; - } - - public void setApplyAllFilter(boolean applyAllFilter) { - this.applyAllFilter = applyAllFilter; - } - - public boolean isApplyExistsFilter() { - return applyExistsFilter; - } - - public void setApplyExistsFilter(boolean applyExistsFilter) { - this.applyExistsFilter = applyExistsFilter; - } - public boolean isUseTooWeakList() { return useTooWeakList; } @@ -670,70 +660,6 @@ this.improveSubsumptionHierarchy = improveSubsumptionHierarchy; } - public boolean isUseAllConstructor() { - return useAllConstructor; - } - - public void setUseAllConstructor(boolean useAllConstructor) { - this.useAllConstructor = useAllConstructor; - } - - public boolean isUseExistsConstructor() { - return useExistsConstructor; - } - - public void setUseExistsConstructor(boolean useExistsConstructor) { - this.useExistsConstructor = useExistsConstructor; - } - - public boolean isUseHasValueConstructor() { - return useHasValueConstructor; - } - - public void setUseHasValueConstructor(boolean useHasValueConstructor) { - this.useHasValueConstructor = useHasValueConstructor; - } - - public int getValueFrequencyThreshold() { - return valueFrequencyThreshold; - } - - public void setValueFrequencyThreshold(int valueFrequencyThreshold) { - this.valueFrequencyThreshold = valueFrequencyThreshold; - } - - public boolean isUseCardinalityRestrictions() { - return useCardinalityRestrictions; - } - - public void setUseCardinalityRestrictions(boolean useCardinalityRestrictions) { - this.useCardinalityRestrictions = useCardinalityRestrictions; - } - - public boolean isUseNegation() { - return useNegation; - } - - public void setUseNegation(boolean useNegation) { - this.useNegation = useNegation; - } - - public boolean isUseBooleanDatatypes() { - return useBooleanDatatypes; - } - - public void setUseBooleanDatatypes(boolean useBooleanDatatypes) { - this.useBooleanDatatypes = useBooleanDatatypes; - } - - public boolean isUseDoubleDatatypes() { - return useDoubleDatatypes; - } - - public void setUseDoubleDatatypes(boolean useDoubleDatatypes) { - this.useDoubleDatatypes = useDoubleDatatypes; - } - public double getNoisePercentage() { return noisePercentage; } Modified: trunk/examples/trains/trains.conf =================================================================== --- trunk/examples/trains/trains.conf 2011-08-31 09:24:25 UTC (rev 3181) +++ trunk/examples/trains/trains.conf 2011-08-31 11:15:09 UTC (rev 3182) @@ -47,4 +47,5 @@ lp.negativeExamples = {"kb:west6", "kb:west7", "kb:west8", "kb:west9", "kb:west10"} alg.type = "ocel" -alg.maxExecutionTimeInSeconds = 10 +alg.maxExecutionTimeInSeconds = 5 + Modified: trunk/scripts/src/main/java/org/dllearner/scripts/NewSample.java =================================================================== --- trunk/scripts/src/main/java/org/dllearner/scripts/NewSample.java 2011-08-31 09:24:25 UTC (rev 3181) +++ trunk/scripts/src/main/java/org/dllearner/scripts/NewSample.java 2011-08-31 11:15:09 UTC (rev 3182) @@ -43,6 +43,7 @@ import org.dllearner.learningproblems.EvaluatedDescriptionPosNeg; import org.dllearner.learningproblems.PosNegLPStandard; import org.dllearner.reasoning.FastInstanceChecker; +import org.dllearner.refinementoperators.RhoDRDown; import org.dllearner.utilities.Files; import org.dllearner.utilities.Helper; @@ -134,12 +135,13 @@ // learning algorithm OCEL la = ComponentManager.getInstance().learningAlgorithm(OCEL.class, lp, f); + RhoDRDown op = (RhoDRDown) la.getOperator(); //OPTIONAL PARAMETERS - la.setUseAllConstructor( false); - la.setUseExistsConstructor(true); - la.setUseCardinalityRestrictions(false); - la.setUseExistsConstructor(true); - la.setUseNegation(false); + op.setUseAllConstructor( false); + op.setUseExistsConstructor(true); + op.setUseCardinalityRestrictions(false); + op.setUseExistsConstructor(true); + op.setUseNegation(false); la.setWriteSearchTree(false); // la.setSearchTreeFile("log/searchTree.txt"); la.setReplaceSearchTree(true); Modified: trunk/scripts/src/main/java/org/dllearner/scripts/SemanticBibleComparison.java =================================================================== --- trunk/scripts/src/main/java/org/dllearner/scripts/SemanticBibleComparison.java 2011-08-31 09:24:25 UTC (rev 3181) +++ trunk/scripts/src/main/java/org/dllearner/scripts/SemanticBibleComparison.java 2011-08-31 11:15:09 UTC (rev 3182) @@ -58,6 +58,7 @@ import org.dllearner.reasoning.FastInstanceChecker; import org.dllearner.reasoning.OWLAPIReasoner; import org.dllearner.reasoning.ReasonerType; +import org.dllearner.refinementoperators.RhoDRDown; import org.dllearner.utilities.Files; import org.dllearner.utilities.JamonMonitorLogger; import org.dllearner.utilities.StringFormatter; @@ -378,14 +379,17 @@ public static OCEL experimentalSetup(Experiments exp,SortedSet<Individual> posExamples, SortedSet<Individual> negExamples ){ OCEL la = null; - if(exp.toString().contains("SPARQL")) + RhoDRDown op = null; + if(exp.toString().contains("SPARQL")) { la = prepareSparqlExperiment(exp, posExamples, negExamples); - else if(exp.toString().contains("NORMAL")){ + op = (RhoDRDown) la.getOperator(); + } else if(exp.toString().contains("NORMAL")){ if(exp.equals(Experiments.NORMAL_10000_CTESTS_FASTINST)){ la = prepareNormalExperiment(true, posExamples, negExamples); - la.setUseAllConstructor(false); - la.setUseNegation(false); - la.setUseCardinalityRestrictions(false); + op = (RhoDRDown) la.getOperator(); + op.setUseAllConstructor(false); + op.setUseNegation(false); + op.setUseCardinalityRestrictions(false); }else{ la = prepareNormalExperiment(false, posExamples, negExamples); } @@ -397,13 +401,13 @@ // OCELConfigurator c = la.getConfigurator(); //defaultSettings: - la.setUseHasValueConstructor(false); - la.setUseBooleanDatatypes(false); - la.setUseDoubleDatatypes(false); + op.setUseHasValueConstructor(false); + op.setUseBooleanDatatypes(false); + op.setUseDoubleDatatypes(false); if(exp.toString().contains("HASVALUE")){ - la.setUseHasValueConstructor(true); + op.setUseHasValueConstructor(true); } Modified: trunk/scripts/src/main/java/org/dllearner/scripts/WikipediaCategoryCleaner.java =================================================================== --- trunk/scripts/src/main/java/org/dllearner/scripts/WikipediaCategoryCleaner.java 2011-08-31 09:24:25 UTC (rev 3181) +++ trunk/scripts/src/main/java/org/dllearner/scripts/WikipediaCategoryCleaner.java 2011-08-31 11:15:09 UTC (rev 3182) @@ -48,6 +48,7 @@ import org.dllearner.learningproblems.EvaluatedDescriptionPosNeg; import org.dllearner.learningproblems.PosNegLPStandard; import org.dllearner.reasoning.FastInstanceChecker; +import org.dllearner.refinementoperators.RhoDRDown; import org.dllearner.scripts.improveWikipedia.ConceptSPARQLReEvaluator; import org.dllearner.scripts.improveWikipedia.ConceptSelector; import org.dllearner.scripts.improveWikipedia.WikipediaCategoryTasks; @@ -318,13 +319,14 @@ la.setNoisePercentage(20); la.setGuaranteeXgoodDescriptions(100); la.setMaxExecutionTimeInSeconds(50); + RhoDRDown op = (RhoDRDown) la.getOperator(); - la.setUseAllConstructor(false); - la.setUseBooleanDatatypes(false); - la.setUseCardinalityRestrictions(false); - la.setUseNegation(false); - la.setUseHasValueConstructor(false); - la.setUseDoubleDatatypes(false); + op.setUseAllConstructor(false); + op.setUseBooleanDatatypes(false); + op.setUseCardinalityRestrictions(false); + op.setUseNegation(false); + op.setUseHasValueConstructor(false); + op.setUseDoubleDatatypes(false); la.setWriteSearchTree(true); // la.setSearchTreeFile("log/dbpedia.txt"); la.setReplaceSearchTree(true); Modified: trunk/scripts/src/main/java/org/dllearner/scripts/tiger/TestIterativeLearning.java =================================================================== --- trunk/scripts/src/main/java/org/dllearner/scripts/tiger/TestIterativeLearning.java 2011-08-31 09:24:25 UTC (rev 3181) +++ trunk/scripts/src/main/java/org/dllearner/scripts/tiger/TestIterativeLearning.java 2011-08-31 11:15:09 UTC (rev 3182) @@ -637,15 +637,16 @@ } OCEL la = ComponentManager.getInstance().learningAlgorithm(OCEL.class, lp, rc); + RhoDRDown op = (RhoDRDown) la.getOperator(); // CELOE la = ComponentFactory.getCELOE(lp, rc); - la.setUseExistsConstructor(true); + op.setUseExistsConstructor(true); - la.setUseAllConstructor(false); - la.setUseCardinalityRestrictions(false); - la.setUseNegation(false); - la.setUseHasValueConstructor(false); - la.setUseDataHasValueConstructor(config.useDataHasValue); - la.setValueFrequencyThreshold(valueFrequencyThreshold); + op.setUseAllConstructor(false); + op.setUseCardinalityRestrictions(false); + op.setUseNegation(false); + op.setUseHasValueConstructor(false); + op.setUseDataHasValueConstructor(config.useDataHasValue); + op.setFrequencyThreshold(valueFrequencyThreshold); // la.getConfigurator().setInstanceBasedDisjoints(true); // la.getConfigurator().setIgnoredConcepts( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |