From: <lor...@us...> - 2011-12-07 15:24:24
|
Revision: 3483 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3483&view=rev Author: lorenz_b Date: 2011-12-07 15:24:10 +0000 (Wed, 07 Dec 2011) Log Message: ----------- Some changes for release. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/algorithms/SimpleSubclassLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/properties/EquivalentObjectPropertyAxiomLearner.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/core/AbstractAxiomLearningAlgorithm.java trunk/components-core/src/main/java/org/dllearner/kb/sparql/ConciseBoundedDescriptionGeneratorImpl.java trunk/components-core/src/main/java/org/dllearner/reasoning/FastInstanceChecker.java trunk/components-core/src/main/java/org/dllearner/refinementoperators/RhoDRDown.java trunk/interfaces/pom.xml trunk/interfaces/src/main/java/org/dllearner/cli/CLI.java trunk/interfaces/src/main/java/org/dllearner/cli/Enrichment.java trunk/interfaces/src/main/java/org/dllearner/cli/QuickStart.java Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/SimpleSubclassLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/SimpleSubclassLearner.java 2011-12-07 15:18:27 UTC (rev 3482) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/SimpleSubclassLearner.java 2011-12-07 15:24:10 UTC (rev 3483) @@ -226,7 +226,7 @@ l.setReasoner(reasoner); ConfigHelper.configure(l, "maxExecutionTimeInSeconds", 10); - l.setClassToDescribe(new NamedClass("http://dbpedia.org/ontology/AdministrativeRegion")); + l.setClassToDescribe(new NamedClass("http://dbpedia.org/ontology/Olympics")); l.init(); l.start(); 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-12-07 15:18:27 UTC (rev 3482) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/EquivalentObjectPropertyAxiomLearner.java 2011-12-07 15:24:10 UTC (rev 3483) @@ -19,7 +19,9 @@ package org.dllearner.algorithms.properties; +import java.net.URL; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -36,6 +38,7 @@ import org.dllearner.core.owl.EquivalentObjectPropertiesAxiom; import org.dllearner.core.owl.ObjectProperty; import org.dllearner.kb.SparqlEndpointKS; +import org.dllearner.kb.sparql.SparqlEndpoint; import org.dllearner.learningproblems.AxiomScore; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -132,5 +135,15 @@ return axioms; } + public static void main(String[] args) throws Exception{ + EquivalentObjectPropertyAxiomLearner l = new EquivalentObjectPropertyAxiomLearner(new SparqlEndpointKS(new SparqlEndpoint( + new URL("http://dbpedia.aksw.org:8902/sparql"), Collections.singletonList("http://dbpedia.org"), Collections.<String>emptyList())));//.getEndpointDBpediaLiveAKSW())); + l.setPropertyToDescribe(new ObjectProperty("http://dbpedia.org/ontology/country")); + l.setMaxExecutionTimeInSeconds(10); + l.init(); + l.start(); + System.out.println(l.getCurrentlyBestEvaluatedAxioms(5, 0.75)); + } + } 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-12-07 15:18:27 UTC (rev 3482) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/IrreflexiveObjectPropertyAxiomLearner.java 2011-12-07 15:24:10 UTC (rev 3483) @@ -19,6 +19,8 @@ package org.dllearner.algorithms.properties; +import java.net.MalformedURLException; +import java.net.URL; import java.util.ArrayList; import org.dllearner.core.AbstractAxiomLearningAlgorithm; @@ -101,10 +103,14 @@ logger.info("...finished in {}ms.", (System.currentTimeMillis()-startTime)); } - public static void main(String[] args) { - IrreflexiveObjectPropertyAxiomLearner l = new IrreflexiveObjectPropertyAxiomLearner(new SparqlEndpointKS(SparqlEndpoint.getEndpointDBpediaLiveAKSW())); - l.setPropertyToDescribe(new ObjectProperty("http://dbpedia.org/ontology/thumbnail")); + public static void main(String[] args) throws Exception { + SparqlEndpointKS ks = new SparqlEndpointKS(new SparqlEndpoint(new URL("http://dbpedia.aksw.org:8902/sparql"))); + + IrreflexiveObjectPropertyAxiomLearner l = new IrreflexiveObjectPropertyAxiomLearner(ks); + l.setPropertyToDescribe(new ObjectProperty("http://dbpedia.org/ontology/author")); l.start(); + + System.out.println(l.getCurrentlyBestEvaluatedAxioms(10, 0.75)); } } 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-12-07 15:18:27 UTC (rev 3482) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/properties/ObjectPropertyDomainAxiomLearner.java 2011-12-07 15:24:10 UTC (rev 3483) @@ -176,21 +176,21 @@ } public static void main(String[] args) throws Exception{ - SparqlEndpointKS ks = new SparqlEndpointKS(new SparqlEndpoint(new URL("http://factforge.net/sparql")));//.getEndpointDBpediaLiveAKSW())); + SparqlEndpointKS ks = new SparqlEndpointKS(new SparqlEndpoint(new URL("http://dbpedia.aksw.org:8902/sparql")));//.getEndpointDBpediaLiveAKSW())); SPARQLReasoner reasoner = new SPARQLReasoner(ks); -// reasoner.prepareSubsumptionHierarchy(); + reasoner.prepareSubsumptionHierarchy(); ObjectPropertyDomainAxiomLearner l = new ObjectPropertyDomainAxiomLearner(ks); l.setReasoner(reasoner); - l.setPropertyToDescribe(new ObjectProperty("http://dbpedia.org/ontology/industry")); + l.setPropertyToDescribe(new ObjectProperty("http://dbpedia.org/ontology/officialLanguage")); l.setMaxExecutionTimeInSeconds(10); - l.setReturnOnlyNewAxioms(true); +// l.setReturnOnlyNewAxioms(true); l.init(); l.start(); - System.out.println(l.getCurrentlyBestEvaluatedAxioms(5)); + System.out.println(l.getCurrentlyBestEvaluatedAxioms(10, 0.75)); } } Modified: trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java 2011-12-07 15:18:27 UTC (rev 3482) +++ trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java 2011-12-07 15:24:10 UTC (rev 3483) @@ -28,6 +28,7 @@ import java.util.SortedSet; import java.util.TreeSet; +import org.aksw.commons.jena.CollectionResultSet; import org.dllearner.core.config.BooleanEditor; import org.dllearner.core.config.ConfigOption; import org.dllearner.core.config.IntegerEditor; @@ -190,6 +191,13 @@ queryExecution.setDefaultGraphURIs(ks.getEndpoint().getDefaultGraphURIs()); queryExecution.setNamedGraphURIs(ks.getEndpoint().getNamedGraphURIs()); +// ResultSet resultSet = null; +// try { +// resultSet = queryExecution.execSelect(); +// } catch (Exception e) { +// logger.error("Got a timeout during query execution.", e); +// resultSet = new CollectionResultSet(Collections.<String>emptyList(), Collections.<QuerySolution>emptyList()); +// } ResultSet resultSet = queryExecution.execSelect(); return resultSet; Modified: trunk/components-core/src/main/java/org/dllearner/kb/sparql/ConciseBoundedDescriptionGeneratorImpl.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/sparql/ConciseBoundedDescriptionGeneratorImpl.java 2011-12-07 15:18:27 UTC (rev 3482) +++ trunk/components-core/src/main/java/org/dllearner/kb/sparql/ConciseBoundedDescriptionGeneratorImpl.java 2011-12-07 15:24:10 UTC (rev 3483) @@ -80,15 +80,19 @@ StringBuilder sb = new StringBuilder(); sb.append("CONSTRUCT {\n"); sb.append("<").append(resource).append("> ").append("?p0 ").append("?o0").append(".\n"); + sb.append("?p0 a ?type0.\n"); for(int i = 1; i < depth; i++){ sb.append("?o").append(i-1).append(" ").append("?p").append(i).append(" ").append("?o").append(i).append(".\n"); + sb.append("?p").append(i).append(" ").append("a").append(" ").append("?type").append(i).append(".\n"); } sb.append("}\n"); sb.append("WHERE {\n"); sb.append("<").append(resource).append("> ").append("?p0 ").append("?o0").append(".\n"); + sb.append("?p0 a ?type0.\n"); for(int i = 1; i < depth; i++){ sb.append("OPTIONAL{\n"); sb.append("?o").append(i-1).append(" ").append("?p").append(i).append(" ").append("?o").append(i).append(".\n"); + sb.append("?p").append(i).append(" ").append("a").append(" ").append("?type").append(i).append(".\n"); } for(int i = 1; i < depth; i++){ sb.append("}"); @@ -96,7 +100,6 @@ sb.append("}\n"); sb.append("LIMIT ").append(limit).append("\n"); sb.append("OFFSET ").append(offset); - return sb.toString(); } Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/FastInstanceChecker.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/FastInstanceChecker.java 2011-12-07 15:18:27 UTC (rev 3482) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/FastInstanceChecker.java 2011-12-07 15:24:10 UTC (rev 3483) @@ -514,7 +514,11 @@ // policy: returned sets are clones, i.e. can be modified // (of course we only have to clone the leafs of a class description tree) if (description instanceof NamedClass) { - return (TreeSet<Individual>) classInstancesPos.get((NamedClass) description).clone(); + if(classInstancesPos.containsKey((NamedClass) description)){ + return (TreeSet<Individual>) classInstancesPos.get((NamedClass) description).clone(); + } else { + return new TreeSet<Individual>(); + } } else if (description instanceof Negation) { if(description.getChild(0) instanceof NamedClass) { return (TreeSet<Individual>) classInstancesNeg.get((NamedClass) description.getChild(0)).clone(); Modified: trunk/components-core/src/main/java/org/dllearner/refinementoperators/RhoDRDown.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/refinementoperators/RhoDRDown.java 2011-12-07 15:18:27 UTC (rev 3482) +++ trunk/components-core/src/main/java/org/dllearner/refinementoperators/RhoDRDown.java 2011-12-07 15:24:10 UTC (rev 3483) @@ -351,7 +351,7 @@ // we do not need the temporary set anymore and let the // garbage collector take care of it valueFrequency = null; - dataValueFrequency = null; + dataValueFrequency.clear();// = null; // System.out.println("freqDataValues: " + frequentDataValues); Modified: trunk/interfaces/pom.xml =================================================================== --- trunk/interfaces/pom.xml 2011-12-07 15:18:27 UTC (rev 3482) +++ trunk/interfaces/pom.xml 2011-12-07 15:24:10 UTC (rev 3483) @@ -15,7 +15,7 @@ </parent> <properties> - <release.name>1.0-alpha-2</release.name> + <release.name>1.0-beta-1</release.name> </properties> <profiles> @@ -202,12 +202,10 @@ <groupId>org.dllearner</groupId> <artifactId>components-core</artifactId> </dependency> - <!-- - <dependency> + <!--dependency> <groupId>org.dllearner</groupId> <artifactId>components-ext</artifactId> - </dependency> - --> + </dependency--> <!-- Added the dependency of the core tests so that they will be accessible from the tests in this component --> <dependency> @@ -279,6 +277,12 @@ <groupId>org.json</groupId> <artifactId>json</artifactId> </dependency> + + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.3</version> +</dependency> <!--BEGIN Logging Dependencies--> Modified: trunk/interfaces/src/main/java/org/dllearner/cli/CLI.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/cli/CLI.java 2011-12-07 15:18:27 UTC (rev 3482) +++ trunk/interfaces/src/main/java/org/dllearner/cli/CLI.java 2011-12-07 15:24:10 UTC (rev 3483) @@ -123,7 +123,7 @@ AbstractCELA la = context.getBean(AbstractCELA.class); new CrossValidation(la,lp,rs,nrOfFolds,false); } else { - knowledgeSource = context.getBean(KnowledgeSource.class); + knowledgeSource = context.getBeansOfType(KnowledgeSource.class).entrySet().iterator().next().getValue(); algorithm = context.getBean(LearningAlgorithm.class); algorithm.start(); } Modified: trunk/interfaces/src/main/java/org/dllearner/cli/Enrichment.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/cli/Enrichment.java 2011-12-07 15:18:27 UTC (rev 3482) +++ trunk/interfaces/src/main/java/org/dllearner/cli/Enrichment.java 2011-12-07 15:24:10 UTC (rev 3483) @@ -128,6 +128,7 @@ import org.semanticweb.owlapi.io.SystemOutDocumentTarget; import org.semanticweb.owlapi.model.IRI; import org.semanticweb.owlapi.model.OWLAnnotation; +import org.semanticweb.owlapi.model.OWLAnnotationProperty; import org.semanticweb.owlapi.model.OWLAxiom; import org.semanticweb.owlapi.model.OWLDataFactory; import org.semanticweb.owlapi.model.OWLIndividual; @@ -223,6 +224,7 @@ AbstractReasonerComponent rcCached; private Set<OWLAxiom> learnedOWLAxioms; + private Set<EvaluatedAxiom> learnedEvaluatedAxioms; public Enrichment(SparqlEndpoint se, Entity resource, double threshold, int nrOfAxiomsToLearn, boolean useInference, boolean verbose) { this.se = se; @@ -263,6 +265,7 @@ algorithmRuns = new LinkedList<AlgorithmRun>(); learnedOWLAxioms = new HashSet<OWLAxiom>(); + learnedEvaluatedAxioms = new HashSet<EvaluatedAxiom>(); } public void start() throws ComponentInitException, IllegalArgumentException, SecurityException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, LearningProblemUnsupportedException, MalformedURLException { @@ -444,7 +447,7 @@ learnedAxioms.add(new EvaluatedAxiom(axiom, score)); } System.out.println(prettyPrint(learnedAxioms)); - + learnedEvaluatedAxioms.addAll(learnedAxioms); algorithmRuns.add(new AlgorithmRun(CELOE.class, learnedAxioms, ConfigHelper.getConfigOptionValues(la))); return learnedAxioms; } @@ -485,7 +488,7 @@ List<EvaluatedAxiom> learnedAxioms = learner .getCurrentlyBestEvaluatedAxioms(nrOfAxiomsToLearn, threshold); System.out.println(prettyPrint(learnedAxioms)); - + learnedEvaluatedAxioms.addAll(learnedAxioms); for(EvaluatedAxiom evAx : learnedAxioms){ learnedOWLAxioms.add(OWLAPIAxiomConvertVisitor.convertAxiom(evAx.getAxiom())); } @@ -665,7 +668,7 @@ return model; } - private OWLOntology getGeneratedOntology(){ + public OWLOntology getGeneratedOntology(){ OWLOntology ontology = null; try { OWLOntologyManager man = OWLManager.createOWLOntologyManager(); @@ -677,6 +680,31 @@ return ontology; } + public OWLOntology getGeneratedOntology(boolean withConfidenceAsAnnotations){ + OWLOntology ontology = null; + try { + OWLOntologyManager man = OWLManager.createOWLOntologyManager(); + OWLDataFactory factory = man.getOWLDataFactory(); + if(withConfidenceAsAnnotations){ + OWLAnnotationProperty confAnnoProp = factory.getOWLAnnotationProperty(IRI.create(EnrichmentVocabulary.NS + "confidence")); + Set<OWLAxiom> axioms = new HashSet<OWLAxiom>(); + for(EvaluatedAxiom evAx : learnedEvaluatedAxioms){ + OWLAxiom ax = OWLAPIAxiomConvertVisitor.convertAxiom(evAx.getAxiom()); + ax = ax.getAnnotatedAxiom(Collections.singleton( + factory.getOWLAnnotation(confAnnoProp, factory.getOWLLiteral(evAx.getScore().getAccuracy())))); + axioms.add(ax); + } + ontology = man.createOntology(axioms); + } else { + ontology = man.createOntology(learnedOWLAxioms); + } + } catch (OWLOntologyCreationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return ontology; + } + /* * Write axioms in Turtle syntax. */ @@ -748,6 +776,8 @@ "Specifies whether to use inference. If yes, the schema will be loaded into a reasoner and used for computing the scores.").withOptionalArg().ofType(Boolean.class).defaultsTo(true); parser.acceptsAll(asList("s", "serialize"), "Specify a file where the ontology with all axioms can be written.") .withRequiredArg().ofType(File.class); + parser.acceptsAll(asList("a", "annotations"), + "Specifies whether to save scores as annotations.").withOptionalArg().ofType(Boolean.class).defaultsTo(true); // parse options and display a message for the user in case of problems OptionSet options = null; try { @@ -885,7 +915,7 @@ if(options.has("s")){ File file = (File)options.valueOf("s"); try { - OWLOntology ontology = e.getGeneratedOntology(); + OWLOntology ontology = e.getGeneratedOntology(options.has("a")); OutputStream os = new BufferedOutputStream(new FileOutputStream(file)); OWLManager.createOWLOntologyManager().saveOntology(ontology, new RDFXMLOntologyFormat(), os); } catch (OWLOntologyStorageException e1) { Modified: trunk/interfaces/src/main/java/org/dllearner/cli/QuickStart.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/cli/QuickStart.java 2011-12-07 15:18:27 UTC (rev 3482) +++ trunk/interfaces/src/main/java/org/dllearner/cli/QuickStart.java 2011-12-07 15:24:10 UTC (rev 3483) @@ -177,7 +177,7 @@ public static void getAllConfs(File f, String path, Map<String, ArrayList<String>> confs) { path = path + File.separator; // System.out.println(path); - String[] act = f.list(); + String[] act = f.list();System.out.println(f); for (int i = 0; i < act.length; i++) { // System.out.println(act[i]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |