From: <jen...@us...> - 2011-08-03 15:31:52
|
Revision: 2982 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2982&view=rev Author: jenslehmann Date: 2011-08-03 15:31:45 +0000 (Wed, 03 Aug 2011) Log Message: ----------- - added annotation to assign a name to a component usage: @ComponentAnn(name="subPropertyOf learner") to get the name: ComponentManager.getName(Component) - ctd. evaluation script Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/PropertyDomainAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SubPropertyOfAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/core/Component.java trunk/components-core/src/main/java/org/dllearner/core/ComponentManager.java trunk/components-core/src/main/java/org/dllearner/core/config/ConfigHelper.java trunk/components-core/src/main/java/org/dllearner/kb/sparql/SparqlQuery.java trunk/scripts/src/main/java/org/dllearner/scripts/evaluation/EnrichmentEvaluation.java Added Paths: ----------- trunk/components-core/src/main/java/org/dllearner/core/ComponentAnn.java Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/PropertyDomainAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/PropertyDomainAxiomLearner.java 2011-08-03 14:49:36 UTC (rev 2981) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/PropertyDomainAxiomLearner.java 2011-08-03 15:31:45 UTC (rev 2982) @@ -246,7 +246,7 @@ f.set(l, editor.getValue()); } } - ConfigHelper.configurate(l, "propertyToDescribe", "test"); + ConfigHelper.configure(l, "propertyToDescribe", "test"); l.init(); l.start(); System.out.println(l.getCurrentlyBestEvaluatedAxioms(3)); Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SubPropertyOfAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SubPropertyOfAxiomLearner.java 2011-08-03 14:49:36 UTC (rev 2981) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SubPropertyOfAxiomLearner.java 2011-08-03 15:31:45 UTC (rev 2982) @@ -11,6 +11,7 @@ import org.dllearner.core.AxiomLearningAlgorithm; import org.dllearner.core.Component; import org.dllearner.core.ComponentInitException; +import org.dllearner.core.ComponentAnn; import org.dllearner.core.EvaluatedAxiom; import org.dllearner.core.config.ConfigOption; import org.dllearner.core.config.IntegerEditor; @@ -26,6 +27,7 @@ import com.hp.hpl.jena.query.ResultSet; import com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP; +@ComponentAnn(name="subPropertyOf learner") public class SubPropertyOfAxiomLearner extends Component implements AxiomLearningAlgorithm { @ConfigOption(name="propertyToDescribe", description="", propertyEditorClass=ObjectPropertyEditor.class) Modified: trunk/components-core/src/main/java/org/dllearner/core/Component.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/Component.java 2011-08-03 14:49:36 UTC (rev 2981) +++ trunk/components-core/src/main/java/org/dllearner/core/Component.java 2011-08-03 15:31:45 UTC (rev 2982) @@ -53,8 +53,12 @@ * component" is returned, but all implementations of components * are strongly encouraged to provide a static method returning * the name. + * + * Use the DLComponent annotation instead of setting a name through this method. + * * @return The name of this component. */ + @Deprecated public static String getName() { return "unnamed component"; } Added: trunk/components-core/src/main/java/org/dllearner/core/ComponentAnn.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/ComponentAnn.java (rev 0) +++ trunk/components-core/src/main/java/org/dllearner/core/ComponentAnn.java 2011-08-03 15:31:45 UTC (rev 2982) @@ -0,0 +1,43 @@ +/** + * Copyright (C) 2007-2011, 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/>. + * + */ +package org.dllearner.core; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * + * Annotation for DL-Learner components. Each component has to implement the interface as + * well as use this notation. + * + * @author Jens Lehmann + * + */ +@Retention(RetentionPolicy.RUNTIME) +public @interface ComponentAnn { + + /** + * The name of this component. + * @see ComponentManager#getName(Component) + * @return The name of this component. + */ + String name(); + +} Modified: trunk/components-core/src/main/java/org/dllearner/core/ComponentManager.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/ComponentManager.java 2011-08-03 14:49:36 UTC (rev 2981) +++ trunk/components-core/src/main/java/org/dllearner/core/ComponentManager.java 2011-08-03 15:31:45 UTC (rev 2982) @@ -24,6 +24,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -731,7 +732,14 @@ return list; } + /** + * Returns the name of a DL-Learner component. + * @param component + * @return Name of the component. + */ + public static String getName(Component component){ + ComponentAnn ann = component.getClass().getAnnotation(ComponentAnn.class); + return ann.name(); + } - - } Modified: trunk/components-core/src/main/java/org/dllearner/core/config/ConfigHelper.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/config/ConfigHelper.java 2011-08-03 14:49:36 UTC (rev 2981) +++ trunk/components-core/src/main/java/org/dllearner/core/config/ConfigHelper.java 2011-08-03 15:31:45 UTC (rev 2982) @@ -1,6 +1,7 @@ package org.dllearner.core.config; import java.beans.PropertyEditor; +import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; @@ -15,7 +16,7 @@ * @param configName the name of the config option * @param configValue the value of the config option */ - public static void configurate(Component component, String configName, String configValue){ + public static void configure(Component component, String configName, String configValue){ Field[] fields = component.getClass().getDeclaredFields(); for(Field f : fields){ ConfigOption option = f.getAnnotation(ConfigOption.class); Modified: trunk/components-core/src/main/java/org/dllearner/kb/sparql/SparqlQuery.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/sparql/SparqlQuery.java 2011-08-03 14:49:36 UTC (rev 2981) +++ trunk/components-core/src/main/java/org/dllearner/kb/sparql/SparqlQuery.java 2011-08-03 15:31:45 UTC (rev 2982) @@ -220,7 +220,7 @@ private static void writeToSparqlLog(String s) { File f = new File(sparqlLog); if(!f.canWrite() ){ - logger.info("could not write SPARQL log to : "+sparqlLog); + logger.info("could not write SPARQL log to : " + f.getAbsolutePath()); return ; } Modified: trunk/scripts/src/main/java/org/dllearner/scripts/evaluation/EnrichmentEvaluation.java =================================================================== --- trunk/scripts/src/main/java/org/dllearner/scripts/evaluation/EnrichmentEvaluation.java 2011-08-03 14:49:36 UTC (rev 2981) +++ trunk/scripts/src/main/java/org/dllearner/scripts/evaluation/EnrichmentEvaluation.java 2011-08-03 15:31:45 UTC (rev 2982) @@ -25,7 +25,9 @@ import org.apache.log4j.Logger; import org.dllearner.algorithms.properties.SubPropertyOfAxiomLearner; +import org.dllearner.core.ComponentManager; import org.dllearner.core.EvaluatedAxiom; +import org.dllearner.core.config.ConfigHelper; import org.dllearner.core.owl.ObjectProperty; import org.dllearner.kb.SparqlEndpointKS; import org.dllearner.kb.sparql.SparqlEndpoint; @@ -66,7 +68,6 @@ SparqlEndpoint se = SparqlEndpoint.getEndpointDBpediaLiveAKSW(); Set<ObjectProperty> properties = getAllObjectProperties(se); - System.out.println(properties); SparqlEndpointKS ks = new SparqlEndpointKS(se); @@ -75,6 +76,7 @@ SubPropertyOfAxiomLearner learner = new SubPropertyOfAxiomLearner(ks); learner.setPropertyToDescribe(property); learner.setMaxExecutionTimeInSeconds(10); + System.out.println("Applying " + ComponentManager.getName(learner) + " on " + property + " ... "); learner.start(); List<EvaluatedAxiom> learnedAxioms = learner.getCurrentlyBestEvaluatedAxioms(nrOfAxiomsToLearn); for(EvaluatedAxiom learnedAxiom : learnedAxioms) { @@ -102,7 +104,6 @@ ResultSet q = sq.send(); while(q.hasNext()) { QuerySolution qs = q.next(); - System.out.println(qs); properties.add(new ObjectProperty(qs.getResource("p").getURI())); } return properties; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |