From: <lor...@us...> - 2011-08-19 08:51:29
|
Revision: 3070 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3070&view=rev Author: lorenz_b Date: 2011-08-19 08:51:21 +0000 (Fri, 19 Aug 2011) Log Message: ----------- Added methods to get only axioms whose accuracy is above a specific threshold. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/SimpleSubclassLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DataPropertyDomainAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DataPropertyRangeAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DisjointDataPropertyAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DisjointObjectPropertyAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/EquivalentDataPropertyAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/EquivalentObjectPropertyAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/FunctionalDataPropertyAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/FunctionalObjectPropertyAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/InverseFunctionalObjectPropertyAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/IrreflexiveObjectPropertyAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/ObjectPropertyDomainAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/ObjectPropertyRangeAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/ReflexiveObjectPropertyAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SubDataPropertyOfAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SubObjectPropertyOfAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SymmetricObjectPropertyAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/TransitiveObjectPropertyAxiomLearner.java trunk/components-core/src/main/java/org/dllearner/core/AxiomLearningAlgorithm.java trunk/components-core/src/main/java/org/dllearner/core/EvaluatedAxiom.java Added Paths: ----------- trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -30,7 +30,7 @@ import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ClassExpressionLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; @@ -63,7 +63,7 @@ * */ @ComponentAnn(name = "disjoint classes learner", shortName = "cldisjoint", version = 0.1) -public class DisjointClassesLearner implements ClassExpressionLearningAlgorithm, AxiomLearningAlgorithm { +public class DisjointClassesLearner extends AbstractAxiomLearningAlgorithm implements ClassExpressionLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(DisjointClassesLearner.class); Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/SimpleSubclassLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/SimpleSubclassLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/SimpleSubclassLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -28,7 +28,7 @@ import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ClassExpressionLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; @@ -62,7 +62,7 @@ * */ @ComponentAnn(name = "simple subclass learner", shortName = "clsub", version = 0.1) -public class SimpleSubclassLearner implements ClassExpressionLearningAlgorithm, AxiomLearningAlgorithm { +public class SimpleSubclassLearner extends AbstractAxiomLearningAlgorithm implements ClassExpressionLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(SimpleSubclassLearner.class); Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DataPropertyDomainAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DataPropertyDomainAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DataPropertyDomainAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -3,15 +3,13 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.core.AbstractComponent; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -19,7 +17,6 @@ import org.dllearner.core.config.DataPropertyEditor; import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.DatatypeProperty; import org.dllearner.core.owl.DatatypePropertyDomainAxiom; import org.dllearner.core.owl.Description; @@ -37,7 +34,7 @@ import com.hp.hpl.jena.query.ResultSet; @ComponentAnn(name="dataproperty domain axiom learner", shortName="dpldomain", version=0.1) -public class DataPropertyDomainAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class DataPropertyDomainAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(DataPropertyDomainAxiomLearner.class); @@ -107,25 +104,9 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - List<Axiom> bestAxioms = new ArrayList<Axiom>(); - - Iterator<EvaluatedAxiom> it = currentlyBestAxioms.iterator(); - while(bestAxioms.size() < nrOfAxioms && it.hasNext()){ - bestAxioms.add(it.next().getAxiom()); - } - - return bestAxioms; + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { + return currentlyBestAxioms; } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { - int max = Math.min(currentlyBestAxioms.size(), nrOfAxioms); - - List<EvaluatedAxiom> bestAxioms = currentlyBestAxioms.subList(0, max); - - return bestAxioms; - } @Override public Configurator getConfigurator() { Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DataPropertyRangeAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DataPropertyRangeAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DataPropertyRangeAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -10,8 +10,7 @@ import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.core.AbstractComponent; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -36,7 +35,7 @@ import com.hp.hpl.jena.query.ResultSet; @ComponentAnn(name="dataproperty range learner", shortName="dblrange", version=0.1) -public class DataPropertyRangeAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class DataPropertyRangeAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(DataPropertyRangeAxiomLearner.class); @@ -106,25 +105,9 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - List<Axiom> bestAxioms = new ArrayList<Axiom>(); - - Iterator<EvaluatedAxiom> it = currentlyBestAxioms.iterator(); - while(bestAxioms.size() < nrOfAxioms && it.hasNext()){ - bestAxioms.add(it.next().getAxiom()); - } - - return bestAxioms; + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { + return currentlyBestAxioms; } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { - int max = Math.min(currentlyBestAxioms.size(), nrOfAxioms); - - List<EvaluatedAxiom> bestAxioms = currentlyBestAxioms.subList(0, max); - - return bestAxioms; - } @Override public Configurator getConfigurator() { Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DisjointDataPropertyAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DisjointDataPropertyAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DisjointDataPropertyAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -3,7 +3,6 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -11,8 +10,7 @@ import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.core.AbstractComponent; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -20,10 +18,8 @@ import org.dllearner.core.config.DataPropertyEditor; import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.DatatypeProperty; import org.dllearner.core.owl.DisjointDatatypePropertyAxiom; -import org.dllearner.core.owl.SubDatatypePropertyAxiom; import org.dllearner.kb.SparqlEndpointKS; import org.dllearner.kb.sparql.ExtendedQueryEngineHTTP; import org.dllearner.kb.sparql.SparqlEndpoint; @@ -36,7 +32,7 @@ import com.hp.hpl.jena.query.ResultSet; @ComponentAnn(name="disjoint dataproperty axiom learner", shortName="dpldisjoint", version=0.1) -public class DisjointDataPropertyAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class DisjointDataPropertyAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(ObjectPropertyDomainAxiomLearner.class); @@ -133,25 +129,9 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - List<Axiom> bestAxioms = new ArrayList<Axiom>(); - - Iterator<EvaluatedAxiom> it = currentlyBestAxioms.iterator(); - while(bestAxioms.size() < nrOfAxioms && it.hasNext()){ - bestAxioms.add(it.next().getAxiom()); - } - - return bestAxioms; + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { + return currentlyBestAxioms; } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { - int max = Math.min(currentlyBestAxioms.size(), nrOfAxioms); - - List<EvaluatedAxiom> bestAxioms = currentlyBestAxioms.subList(0, max); - - return bestAxioms; - } @Override public Configurator getConfigurator() { Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DisjointObjectPropertyAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DisjointObjectPropertyAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/DisjointObjectPropertyAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -3,7 +3,6 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -11,8 +10,7 @@ import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.core.AbstractComponent; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -20,13 +18,11 @@ import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.config.ObjectPropertyEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.DisjointObjectPropertyAxiom; import org.dllearner.core.owl.ObjectProperty; import org.dllearner.kb.SparqlEndpointKS; import org.dllearner.kb.sparql.ExtendedQueryEngineHTTP; import org.dllearner.kb.sparql.SPARQLTasks; -import org.dllearner.kb.sparql.SparqlEndpoint; import org.dllearner.learningproblems.AxiomScore; import org.dllearner.reasoning.SPARQLReasoner; import org.slf4j.Logger; @@ -36,7 +32,7 @@ import com.hp.hpl.jena.query.ResultSet; @ComponentAnn(name="disjoint objectproperty axiom learner", shortName="opldisjoint", version=0.1) -public class DisjointObjectPropertyAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class DisjointObjectPropertyAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(ObjectPropertyDomainAxiomLearner.class); @@ -132,27 +128,13 @@ logger.info("...finished in {}ms.", (System.currentTimeMillis()-startTime)); } - - @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - List<Axiom> bestAxioms = new ArrayList<Axiom>(); - - for(EvaluatedAxiom evAx : getCurrentlyBestEvaluatedAxioms(nrOfAxioms)){ - bestAxioms.add(evAx.getAxiom()); - } - - return bestAxioms; - } @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { - int max = Math.min(currentlyBestAxioms.size(), nrOfAxioms); - - List<EvaluatedAxiom> bestAxioms = currentlyBestAxioms.subList(0, max); - - return bestAxioms; + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { + return currentlyBestAxioms; } + @Override public Configurator getConfigurator() { // TODO Auto-generated method stub @@ -238,12 +220,6 @@ return resultSet; } - public static void main(String[] args) throws Exception{ - DisjointObjectPropertyAxiomLearner l = new DisjointObjectPropertyAxiomLearner(new SparqlEndpointKS(SparqlEndpoint.getEndpointDBpedia())); - l.setPropertyToDescribe(new ObjectProperty("http://dbpedia.org/ontology/assembly")); - l.init(); - l.start(); - System.out.println(l.getCurrentlyBestEvaluatedAxioms(5)); - } - + + } Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/EquivalentDataPropertyAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/EquivalentDataPropertyAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/EquivalentDataPropertyAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -3,15 +3,13 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.core.AbstractComponent; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -19,7 +17,6 @@ import org.dllearner.core.config.DataPropertyEditor; import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.DatatypeProperty; import org.dllearner.core.owl.EquivalentDatatypePropertiesAxiom; import org.dllearner.kb.SparqlEndpointKS; @@ -33,7 +30,7 @@ import com.hp.hpl.jena.query.ResultSet; @ComponentAnn(name="equivalent dataproperty axiom learner", shortName="dplequiv", version=0.1) -public class EquivalentDataPropertyAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class EquivalentDataPropertyAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(EquivalentDataPropertyAxiomLearner.class); @@ -129,25 +126,9 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - List<Axiom> bestAxioms = new ArrayList<Axiom>(); - - Iterator<EvaluatedAxiom> it = currentlyBestAxioms.iterator(); - while(bestAxioms.size() < nrOfAxioms && it.hasNext()){ - bestAxioms.add(it.next().getAxiom()); - } - - return bestAxioms; + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { + return currentlyBestAxioms; } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { - int max = Math.min(currentlyBestAxioms.size(), nrOfAxioms); - - List<EvaluatedAxiom> bestAxioms = currentlyBestAxioms.subList(0, max); - - return bestAxioms; - } @Override public Configurator getConfigurator() { Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/EquivalentObjectPropertyAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/EquivalentObjectPropertyAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/EquivalentObjectPropertyAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -3,15 +3,13 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.core.AbstractComponent; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -19,12 +17,10 @@ import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.config.ObjectPropertyEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.EquivalentObjectPropertiesAxiom; import org.dllearner.core.owl.ObjectProperty; import org.dllearner.kb.SparqlEndpointKS; import org.dllearner.kb.sparql.ExtendedQueryEngineHTTP; -import org.dllearner.kb.sparql.SparqlQuery; import org.dllearner.learningproblems.AxiomScore; import org.dllearner.reasoning.SPARQLReasoner; import org.slf4j.Logger; @@ -32,10 +28,9 @@ import com.hp.hpl.jena.query.QuerySolution; import com.hp.hpl.jena.query.ResultSet; -import com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP; @ComponentAnn(name="equivalent objectproperty axiom learner", shortName="oplequiv", version=0.1) -public class EquivalentObjectPropertyAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class EquivalentObjectPropertyAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(EquivalentObjectPropertyAxiomLearner.class); @@ -131,25 +126,9 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - List<Axiom> bestAxioms = new ArrayList<Axiom>(); - - Iterator<EvaluatedAxiom> it = currentlyBestAxioms.iterator(); - while(bestAxioms.size() < nrOfAxioms && it.hasNext()){ - bestAxioms.add(it.next().getAxiom()); - } - - return bestAxioms; + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { + return currentlyBestAxioms; } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { - int max = Math.min(currentlyBestAxioms.size(), nrOfAxioms); - - List<EvaluatedAxiom> bestAxioms = currentlyBestAxioms.subList(0, max); - - return bestAxioms; - } @Override public Configurator getConfigurator() { Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/FunctionalDataPropertyAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/FunctionalDataPropertyAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/FunctionalDataPropertyAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -1,11 +1,9 @@ package org.dllearner.algorithms.properties; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import org.dllearner.core.AbstractComponent; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -13,7 +11,6 @@ import org.dllearner.core.config.DataPropertyEditor; import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.DatatypeProperty; import org.dllearner.core.owl.FunctionalDatatypePropertyAxiom; import org.dllearner.kb.SparqlEndpointKS; @@ -29,7 +26,7 @@ import com.hp.hpl.jena.vocabulary.OWL; @ComponentAnn(name="functional dataproperty axiom learner", shortName="dplfunc", version=0.1) -public class FunctionalDataPropertyAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class FunctionalDataPropertyAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(FunctionalDataPropertyAxiomLearner.class); @@ -117,12 +114,7 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - return currentlyBestAxioms.isEmpty() ? Collections.<Axiom>emptyList() : Collections.singletonList(currentlyBestAxioms.get(0).getAxiom()); - } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { return currentlyBestAxioms; } Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/FunctionalObjectPropertyAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/FunctionalObjectPropertyAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/FunctionalObjectPropertyAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -1,11 +1,9 @@ package org.dllearner.algorithms.properties; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import org.dllearner.core.AxiomLearningAlgorithm; -import org.dllearner.core.AbstractComponent; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -13,7 +11,6 @@ import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.config.ObjectPropertyEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.FunctionalObjectPropertyAxiom; import org.dllearner.core.owl.ObjectProperty; import org.dllearner.kb.SparqlEndpointKS; @@ -29,7 +26,7 @@ import com.hp.hpl.jena.vocabulary.OWL; @ComponentAnn(name="functional objectproperty axiom learner", shortName="oplfunc", version=0.1) -public class FunctionalObjectPropertyAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class FunctionalObjectPropertyAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(FunctionalObjectPropertyAxiomLearner.class); @@ -117,12 +114,7 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - return currentlyBestAxioms.isEmpty() ? Collections.<Axiom>emptyList() : Collections.singletonList(currentlyBestAxioms.get(0).getAxiom()); - } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { return currentlyBestAxioms; } Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/InverseFunctionalObjectPropertyAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/InverseFunctionalObjectPropertyAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/InverseFunctionalObjectPropertyAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -1,11 +1,9 @@ package org.dllearner.algorithms.properties; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import org.dllearner.core.AbstractComponent; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -13,7 +11,6 @@ import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.config.ObjectPropertyEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.InverseFunctionalObjectPropertyAxiom; import org.dllearner.core.owl.ObjectProperty; import org.dllearner.kb.SparqlEndpointKS; @@ -29,7 +26,7 @@ import com.hp.hpl.jena.vocabulary.OWL; @ComponentAnn(name="inversefunctional objectproperty axiom learner", shortName="oplinvfunc", version=0.1) -public class InverseFunctionalObjectPropertyAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class InverseFunctionalObjectPropertyAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(InverseFunctionalObjectPropertyAxiomLearner.class); @@ -117,12 +114,7 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - return currentlyBestAxioms.isEmpty() ? Collections.<Axiom>emptyList() : Collections.singletonList(currentlyBestAxioms.get(0).getAxiom()); - } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { return currentlyBestAxioms; } Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/IrreflexiveObjectPropertyAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/IrreflexiveObjectPropertyAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/IrreflexiveObjectPropertyAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -1,11 +1,9 @@ package org.dllearner.algorithms.properties; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import org.dllearner.core.AbstractComponent; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -13,7 +11,6 @@ import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.config.ObjectPropertyEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.IrreflexiveObjectPropertyAxiom; import org.dllearner.core.owl.ObjectProperty; import org.dllearner.kb.SparqlEndpointKS; @@ -29,7 +26,7 @@ import com.hp.hpl.jena.vocabulary.OWL2; @ComponentAnn(name="irreflexive objectproperty axiom learner", shortName="oplirrefl", version=0.1) -public class IrreflexiveObjectPropertyAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class IrreflexiveObjectPropertyAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(IrreflexiveObjectPropertyAxiomLearner.class); @@ -120,12 +117,7 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - return currentlyBestAxioms.isEmpty() ? Collections.<Axiom>emptyList() : Collections.singletonList(currentlyBestAxioms.get(0).getAxiom()); - } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { return currentlyBestAxioms; } Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/ObjectPropertyDomainAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/ObjectPropertyDomainAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/ObjectPropertyDomainAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -3,17 +3,13 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.core.AbstractComponent; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -21,8 +17,6 @@ import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.config.ObjectPropertyEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; -import org.dllearner.core.owl.DatatypeProperty; import org.dllearner.core.owl.Description; import org.dllearner.core.owl.Individual; import org.dllearner.core.owl.NamedClass; @@ -30,8 +24,6 @@ import org.dllearner.core.owl.ObjectPropertyDomainAxiom; import org.dllearner.kb.SparqlEndpointKS; import org.dllearner.kb.sparql.ExtendedQueryEngineHTTP; -import org.dllearner.kb.sparql.SparqlEndpoint; -import org.dllearner.kb.sparql.SparqlQuery; import org.dllearner.learningproblems.AxiomScore; import org.dllearner.reasoning.SPARQLReasoner; import org.slf4j.Logger; @@ -41,7 +33,7 @@ import com.hp.hpl.jena.query.ResultSet; @ComponentAnn(name="objectproperty domain axiom learner", shortName="opldomain", version=0.1) -public class ObjectPropertyDomainAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class ObjectPropertyDomainAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(ObjectPropertyDomainAxiomLearner.class); @@ -111,25 +103,9 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - List<Axiom> bestAxioms = new ArrayList<Axiom>(); - - Iterator<EvaluatedAxiom> it = currentlyBestAxioms.iterator(); - while(bestAxioms.size() < nrOfAxioms && it.hasNext()){ - bestAxioms.add(it.next().getAxiom()); - } - - return bestAxioms; + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { + return currentlyBestAxioms; } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { - int max = Math.min(currentlyBestAxioms.size(), nrOfAxioms); - - List<EvaluatedAxiom> bestAxioms = currentlyBestAxioms.subList(0, max); - - return bestAxioms; - } @Override public Configurator getConfigurator() { @@ -238,6 +214,5 @@ ResultSet resultSet = queryExecution.execSelect(); return resultSet; } - } Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/ObjectPropertyRangeAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/ObjectPropertyRangeAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/ObjectPropertyRangeAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -3,15 +3,13 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.core.AbstractComponent; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -19,7 +17,6 @@ import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.config.ObjectPropertyEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.Description; import org.dllearner.core.owl.Individual; import org.dllearner.core.owl.NamedClass; @@ -37,7 +34,7 @@ import com.hp.hpl.jena.query.ResultSet; @ComponentAnn(name="objectproperty range learner", shortName="oplrange", version=0.1) -public class ObjectPropertyRangeAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class ObjectPropertyRangeAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(ObjectPropertyRangeAxiomLearner.class); @@ -107,25 +104,9 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - List<Axiom> bestAxioms = new ArrayList<Axiom>(); - - Iterator<EvaluatedAxiom> it = currentlyBestAxioms.iterator(); - while(bestAxioms.size() < nrOfAxioms && it.hasNext()){ - bestAxioms.add(it.next().getAxiom()); - } - - return bestAxioms; + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { + return currentlyBestAxioms; } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { - int max = Math.min(currentlyBestAxioms.size(), nrOfAxioms); - - List<EvaluatedAxiom> bestAxioms = currentlyBestAxioms.subList(0, max); - - return bestAxioms; - } @Override public Configurator getConfigurator() { Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/ReflexiveObjectPropertyAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/ReflexiveObjectPropertyAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/ReflexiveObjectPropertyAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -1,11 +1,9 @@ package org.dllearner.algorithms.properties; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import org.dllearner.core.AxiomLearningAlgorithm; -import org.dllearner.core.AbstractComponent; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -13,7 +11,6 @@ import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.config.ObjectPropertyEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.ObjectProperty; import org.dllearner.core.owl.ReflexiveObjectPropertyAxiom; import org.dllearner.kb.SparqlEndpointKS; @@ -29,7 +26,7 @@ import com.hp.hpl.jena.vocabulary.OWL2; @ComponentAnn(name="reflexive objectproperty axiom learner", shortName="oplrefl", version=0.1) -public class ReflexiveObjectPropertyAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class ReflexiveObjectPropertyAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(ReflexiveObjectPropertyAxiomLearner.class); @@ -110,12 +107,7 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - return currentlyBestAxioms.isEmpty() ? Collections.<Axiom>emptyList() : Collections.singletonList(currentlyBestAxioms.get(0).getAxiom()); - } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { return currentlyBestAxioms; } Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SubDataPropertyOfAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SubDataPropertyOfAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SubDataPropertyOfAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -3,15 +3,13 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.core.AbstractComponent; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -19,7 +17,6 @@ import org.dllearner.core.config.DataPropertyEditor; import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.DatatypeProperty; import org.dllearner.core.owl.SubDatatypePropertyAxiom; import org.dllearner.kb.SparqlEndpointKS; @@ -33,7 +30,7 @@ import com.hp.hpl.jena.query.ResultSet; @ComponentAnn(name="data subPropertyOf axiom learner", shortName="dplsubprop", version=0.1) -public class SubDataPropertyOfAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class SubDataPropertyOfAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(ObjectPropertyDomainAxiomLearner.class); @@ -129,25 +126,9 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - List<Axiom> bestAxioms = new ArrayList<Axiom>(); - - Iterator<EvaluatedAxiom> it = currentlyBestAxioms.iterator(); - while(bestAxioms.size() < nrOfAxioms && it.hasNext()){ - bestAxioms.add(it.next().getAxiom()); - } - - return bestAxioms; + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { + return currentlyBestAxioms; } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { - int max = Math.min(currentlyBestAxioms.size(), nrOfAxioms); - - List<EvaluatedAxiom> bestAxioms = currentlyBestAxioms.subList(0, max); - - return bestAxioms; - } @Override public Configurator getConfigurator() { Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SubObjectPropertyOfAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SubObjectPropertyOfAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SubObjectPropertyOfAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -3,15 +3,13 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.SortedSet; import java.util.TreeSet; -import org.dllearner.core.AbstractComponent; -import org.dllearner.core.AxiomLearningAlgorithm; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -19,7 +17,6 @@ import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.config.ObjectPropertyEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.ObjectProperty; import org.dllearner.core.owl.SubObjectPropertyAxiom; import org.dllearner.kb.SparqlEndpointKS; @@ -29,15 +26,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.hp.hpl.jena.query.QueryExecution; -import com.hp.hpl.jena.query.QueryFactory; import com.hp.hpl.jena.query.QuerySolution; import com.hp.hpl.jena.query.ResultSet; -import com.hp.hpl.jena.query.Syntax; -import com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP; @ComponentAnn(name="object subPropertyOf axiom learner", shortName="oplsubprop", version=0.1) -public class SubObjectPropertyOfAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class SubObjectPropertyOfAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(ObjectPropertyDomainAxiomLearner.class); @@ -133,25 +126,9 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - List<Axiom> bestAxioms = new ArrayList<Axiom>(); - - Iterator<EvaluatedAxiom> it = currentlyBestAxioms.iterator(); - while(bestAxioms.size() < nrOfAxioms && it.hasNext()){ - bestAxioms.add(it.next().getAxiom()); - } - - return bestAxioms; + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { + return currentlyBestAxioms; } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { - int max = Math.min(currentlyBestAxioms.size(), nrOfAxioms); - - List<EvaluatedAxiom> bestAxioms = currentlyBestAxioms.subList(0, max); - - return bestAxioms; - } @Override public Configurator getConfigurator() { Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SymmetricObjectPropertyAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SymmetricObjectPropertyAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/SymmetricObjectPropertyAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -1,11 +1,9 @@ package org.dllearner.algorithms.properties; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import org.dllearner.core.AxiomLearningAlgorithm; -import org.dllearner.core.AbstractComponent; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -13,7 +11,6 @@ import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.config.ObjectPropertyEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.ObjectProperty; import org.dllearner.core.owl.SymmetricObjectPropertyAxiom; import org.dllearner.kb.SparqlEndpointKS; @@ -29,7 +26,7 @@ import com.hp.hpl.jena.vocabulary.OWL2; @ComponentAnn(name="symmetric objectproperty axiom learner", shortName="oplsymm", version=0.1) -public class SymmetricObjectPropertyAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class SymmetricObjectPropertyAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(SymmetricObjectPropertyAxiomLearner.class); @@ -110,12 +107,7 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - return currentlyBestAxioms.isEmpty() ? Collections.<Axiom>emptyList() : Collections.singletonList(currentlyBestAxioms.get(0).getAxiom()); - } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { return currentlyBestAxioms; } Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/properties/TransitiveObjectPropertyAxiomLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/properties/TransitiveObjectPropertyAxiomLearner.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/TransitiveObjectPropertyAxiomLearner.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -1,11 +1,9 @@ package org.dllearner.algorithms.properties; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import org.dllearner.core.AxiomLearningAlgorithm; -import org.dllearner.core.AbstractComponent; +import org.dllearner.core.AbstractAxiomLearningAlgorithm; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.EvaluatedAxiom; @@ -13,7 +11,6 @@ import org.dllearner.core.config.IntegerEditor; import org.dllearner.core.config.ObjectPropertyEditor; import org.dllearner.core.configurators.Configurator; -import org.dllearner.core.owl.Axiom; import org.dllearner.core.owl.ObjectProperty; import org.dllearner.core.owl.TransitiveObjectPropertyAxiom; import org.dllearner.kb.SparqlEndpointKS; @@ -30,7 +27,7 @@ import com.hp.hpl.jena.vocabulary.OWL; @ComponentAnn(name="transitive objectproperty axiom learner", shortName="opltrans", version=0.1) -public class TransitiveObjectPropertyAxiomLearner extends AbstractComponent implements AxiomLearningAlgorithm { +public class TransitiveObjectPropertyAxiomLearner extends AbstractAxiomLearningAlgorithm { private static final Logger logger = LoggerFactory.getLogger(TransitiveObjectPropertyAxiomLearner.class); @@ -111,12 +108,7 @@ } @Override - public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { - return currentlyBestAxioms.isEmpty() ? Collections.<Axiom>emptyList() : Collections.singletonList(currentlyBestAxioms.get(0).getAxiom()); - } - - @Override - public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { return currentlyBestAxioms; } Added: trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java (rev 0) +++ trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -0,0 +1,91 @@ +/** + * 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.util.ArrayList; +import java.util.List; + +import org.dllearner.core.configurators.Configurator; +import org.dllearner.core.owl.Axiom; + +/** + * @author Lorenz Bühmann + * @author Jens Lehmann + */ +public class AbstractAxiomLearningAlgorithm extends AbstractComponent implements AxiomLearningAlgorithm{ + + @Override + public void start() { + } + + @Override + public void init() throws ComponentInitException { + } + + @Override + public List<Axiom> getCurrentlyBestAxioms() { + return null; + } + + public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms) { + return getCurrentlyBestAxioms(nrOfAxioms, 0.0); + } + + public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms, + double accuracyThreshold) { + List<Axiom> bestAxioms = new ArrayList<Axiom>(); + for(EvaluatedAxiom evAx : getCurrentlyBestEvaluatedAxioms(nrOfAxioms, accuracyThreshold)){ + bestAxioms.add(evAx.getAxiom()); + } + return bestAxioms; + } + + @Override + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms() { + return null; + } + + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms) { + return getCurrentlyBestEvaluatedAxioms(nrOfAxioms, 0.0); + } + + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms, + double accuracyThreshold) { + List<EvaluatedAxiom> returnList = new ArrayList<EvaluatedAxiom>(); + + //get the currently best evaluated axioms + List<EvaluatedAxiom> currentlyBestEvAxioms = getCurrentlyBestEvaluatedAxioms(); + + for(EvaluatedAxiom evAx : currentlyBestEvAxioms){ + if(evAx.getScore().getAccuracy() >= accuracyThreshold && returnList.size() < nrOfAxioms){ + returnList.add(evAx); + } + } + + return returnList; + } + + @Override + public Configurator getConfigurator() { + // TODO Auto-generated method stub + return null; + } + +} Modified: trunk/components-core/src/main/java/org/dllearner/core/AxiomLearningAlgorithm.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/AxiomLearningAlgorithm.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/core/AxiomLearningAlgorithm.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -6,16 +6,30 @@ public interface AxiomLearningAlgorithm extends LearningAlgorithm { + + /** + * @return The best axioms found by the learning algorithm so far. + */ + public List<Axiom> getCurrentlyBestAxioms(); + + /** * @param nrOfAxioms Limit for the number or returned axioms. * @return The best axioms found by the learning algorithm so far. */ public List<Axiom> getCurrentlyBestAxioms(int nrOfAxioms); /** + * @return The best evaluated axioms found by the learning algorithm so far. + */ + public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(); + + /** * @param nrOfAxioms Limit for the number or returned evaluated axioms. * @return The best evaluated axioms found by the learning algorithm so far. */ public List<EvaluatedAxiom> getCurrentlyBestEvaluatedAxioms(int nrOfAxioms); + + } Modified: trunk/components-core/src/main/java/org/dllearner/core/EvaluatedAxiom.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/EvaluatedAxiom.java 2011-08-18 14:49:21 UTC (rev 3069) +++ trunk/components-core/src/main/java/org/dllearner/core/EvaluatedAxiom.java 2011-08-19 08:51:21 UTC (rev 3070) @@ -63,9 +63,9 @@ ax.accept(r); OWLAxiom ax1 = f.getOWLClassAssertionAxiom(EnrichmentVocabulary.Suggestion, ind); -// OWLAxiom ax2 = f.getOWLDataPropertyAssertionAxiom(EnrichmentVocabulary.hasAxiom, ind, sw.toString()); + OWLAxiom ax2 = f.getOWLDataPropertyAssertionAxiom(EnrichmentVocabulary.hasAxiom, ind, sw.toString()); OWLAnnotation anno = f.getOWLAnnotation(EnrichmentVocabulary.belongsTo, ind.getIRI()); - OWLAxiom ax2 = ax.getAnnotatedAxiom(Collections.singleton(anno)); +// OWLAxiom ax2 = ax.getAnnotatedAxiom(Collections.singleton(anno)); OWLAxiom ax3 = f.getOWLDataPropertyAssertionAxiom(EnrichmentVocabulary.confidence, ind, score.getAccuracy()); List<OWLAxiom> axioms = new ArrayList<OWLAxiom>(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |