From: <ku...@us...> - 2010-07-02 08:18:41
|
Revision: 2183 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2183&view=rev Author: kurzum Date: 2010-07-02 08:18:30 +0000 (Fri, 02 Jul 2010) Log Message: ----------- some documentation Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java trunk/src/dl-learner/org/dllearner/utilities/experiments/ExMakerCrossFolds.java trunk/src/dl-learner/org/dllearner/utilities/experiments/ExMakerFixedSize.java trunk/src/dl-learner/org/dllearner/utilities/experiments/Examples.java Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-06-28 20:26:43 UTC (rev 2182) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-07-02 08:18:30 UTC (rev 2183) @@ -316,6 +316,23 @@ } } + public static void testTrans() throws Exception{ +// String ttt = "(\"http://dbpedia.org/ontology/Plant\" AND (\"http://dbpedia.org/ontology/kingdom\" hasValue \"http://dbpedia.org/resource/Plantae\" OR EXISTS \"http://dbpedia.org/ontology/family\".\"http://dbpedia.org/ontology/FloweringPlant\"))"; +// String ttt = "(\"http://dbpedia.org/ontology/Plant\" AND ((\"http://dbpedia.org/ontology/kingdom\" HASVALUE \"http://dbpedia.org/resource/Plantae\") OR EXISTS \"http://dbpedia.org/ontology/family\".\"http://dbpedia.org/ontology/FloweringPlant\"))"; + String ttt = "EXISTS \"http://dbpedia.org/ontology/kingdom\".\"http://dbpedia.org/resource/Plantae\""; + SparqlQueryDescriptionConvertVisitor testVisitor = new SparqlQueryDescriptionConvertVisitor(); + testVisitor.setTransitiveProperties(new TreeSet<String>(Arrays.asList(new String[]{"http://dbpedia.org/ontology/kingdom" }))); + String q = testVisitor.getSparqlQuery(ttt); + System.out.println(q); + Description description = KBParser.parseConcept(ttt); + System.out.println(description.toString()); + System.out.println(description.toKBSyntaxString()); + System.out.println(description.toKBSyntaxString(null,null)); + if (true) { + System.exit(0); + } + + } /** * Used for testing the Sparql Query converter. @@ -325,7 +342,7 @@ public static void main(String[] args) throws Exception{ try { - +// testTrans(); testHasValue(); Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/ExMakerCrossFolds.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/experiments/ExMakerCrossFolds.java 2010-06-28 20:26:43 UTC (rev 2182) +++ trunk/src/dl-learner/org/dllearner/utilities/experiments/ExMakerCrossFolds.java 2010-07-02 08:18:30 UTC (rev 2183) @@ -1,3 +1,22 @@ +/** + * Copyright (C) 2007-2008, 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.utilities.experiments; import java.util.ArrayList; Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/ExMakerFixedSize.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/experiments/ExMakerFixedSize.java 2010-06-28 20:26:43 UTC (rev 2182) +++ trunk/src/dl-learner/org/dllearner/utilities/experiments/ExMakerFixedSize.java 2010-07-02 08:18:30 UTC (rev 2183) @@ -72,10 +72,8 @@ } /** - * returns a new example object based on all Examples in the old set - * picks a fixed number of examples, puts them into - * training sets, rest to test set - * based on all examples found in examples object + * returns a new example object based on ALL (train and test) examples in the old set + * picks a fixed number of examples, puts them into training sets, rest to test set * @param nrOfPos * @param nrOfNeg * @return Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/Examples.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/experiments/Examples.java 2010-06-28 20:26:43 UTC (rev 2182) +++ trunk/src/dl-learner/org/dllearner/utilities/experiments/Examples.java 2010-07-02 08:18:30 UTC (rev 2183) @@ -21,6 +21,7 @@ import java.io.FileWriter; import java.text.DecimalFormat; +import java.util.Arrays; import java.util.Collection; import java.util.SortedSet; import java.util.TreeSet; @@ -30,10 +31,10 @@ import org.dllearner.utilities.URLencodeUTF8; /** - * a container for examples - * used for operations like randomization + * a container for examples used for operations like randomization + * * @author Sebastian Hellmann <hel...@in...> - * + * */ public class Examples { private static final Logger logger = Logger.getLogger(Examples.class); @@ -42,103 +43,124 @@ public static DecimalFormat df3 = new DecimalFormat("00.###%"); private DecimalFormat myDf = df2; -// private final SortedSet<String> positiveExamples = new TreeSet<String>(); -// private final SortedSet<String> negativeExamples = new TreeSet<String>(); private final SortedSet<String> posTrain = new TreeSet<String>(); private final SortedSet<String> negTrain = new TreeSet<String>(); private final SortedSet<String> posTest = new TreeSet<String>(); private final SortedSet<String> negTest = new TreeSet<String>(); - public Examples() { } - - public Examples(SortedSet<String> posTrain , SortedSet<String> negTrain, SortedSet<String> posTest, SortedSet<String> negTest){ + /** + * default constructor + */ + public Examples() { + } + + /** + * constructor to add training examples + * + * @param posTrain + * @param negTrain + */ + public Examples(SortedSet<String> posTrain, SortedSet<String> negTrain) { this.addPosTrain(posTrain); + this.addNegTrain(negTrain); + } + + /** + * adds all examples, doublettes are removed automatically + * + * @param posTrain + * @param negTrain + * @param posTest + * @param negTest + */ + public Examples(SortedSet<String> posTrain, SortedSet<String> negTrain, SortedSet<String> posTest, + SortedSet<String> negTest) { + this.addPosTrain(posTrain); this.addPosTest(posTest); this.addNegTrain(negTrain); this.addNegTest(negTest); } - - public static Examples getInstance(Collection<String> pos, Collection<String> neg){ - Examples ex = new Examples(); - for (String p : pos) { - ex.addPosTrain(p); - } - for (String n : neg) { - ex.addNegTrain(n); - } - return ex; - } - + /** - * calculates precision based on the test set - * CAVE: incorrect + * calculates precision based on the test set removes all training data from + * retrieved first + * * @param retrieved * @return */ - public double precision(SortedSet<String> retrieved){ - if(retrieved.size()==0){return 0.0d;} + public double precision(SortedSet<String> retrieved) { + if (retrieved.size() == 0) { + return 0.0d; + } SortedSet<String> retrievedClean = new TreeSet<String>(retrieved); retrievedClean.removeAll(posTrain); retrievedClean.removeAll(negTrain); - + int posAsPos = Helper.intersection(retrievedClean, getPosTest()).size(); - return ((double)posAsPos)/((double)retrievedClean.size()); + return ((double) posAsPos) / ((double) retrievedClean.size()); } - + /** * calculates recall based on the test set + * + * * @param retrieved * @return */ - public double recall( SortedSet<String> retrieved){ - if(sizeTotalOfPositives()==0){return 0.0d;} - int posAsPos = Helper.intersection( getPosTest() , retrieved).size(); - return ((double)posAsPos)/((double)posTest.size()); + public double recall(SortedSet<String> retrieved) { + if (sizeTotalOfPositives() == 0) { + return 0.0d; + } + int posAsPos = Helper.intersection(getPosTest(), retrieved).size(); + return ((double) posAsPos) / ((double) posTest.size()); } - - private void _remove(String toBeRemoved ){ - posTrain.remove(toBeRemoved); - negTrain.remove(toBeRemoved); - posTest.remove(toBeRemoved); - negTest.remove(toBeRemoved); + + private void _remove(String toBeRemoved) { + _removeAll(Arrays.asList(new String[] { toBeRemoved })); } - private void _removeAll(Collection<String> toBeRemoved){ - posTrain.removeAll(toBeRemoved); - negTrain.removeAll(toBeRemoved); - posTest.removeAll(toBeRemoved); - negTest.removeAll(toBeRemoved); + + private void _removeAll(Collection<String> toBeRemoved) { + if (posTrain.removeAll(toBeRemoved) || negTrain.removeAll(toBeRemoved) + || posTest.removeAll(toBeRemoved) || negTest.removeAll(toBeRemoved)) { + logger.warn("There has been some overlap in the examples, but it was removed automatically"); + } } - + public void addPosTrain(Collection<String> pos) { _removeAll(pos); posTrain.addAll(pos); } + public void addPosTest(Collection<String> pos) { _removeAll(pos); posTest.addAll(pos); } + public void addNegTrain(Collection<String> neg) { _removeAll(neg); negTrain.addAll(neg); } + public void addNegTest(Collection<String> neg) { _removeAll(neg); negTest.addAll(neg); } - - + public void addPosTrain(String pos) { _remove(pos); posTrain.add(pos); } + public void addPosTest(String pos) { _remove(pos); posTest.add(pos); } + public void addNegTrain(String neg) { _remove(neg); negTrain.add(neg); } + public void addNegTest(String neg) { _remove(neg); negTest.add(neg); @@ -156,17 +178,17 @@ @Override public String toString() { - String ret = "Total: " + size(); + String ret = "Total: " + size(); double posPercent = posTrain.size() / (double) sizeTotalOfPositives(); double negPercent = negTrain.size() / (double) sizeTotalOfNegatives(); - ret += "\nPositive: " + posTrain.size() + " | " + posTest.size() + " (" - + myDf.format(posPercent) + ")"; - ret += "\nNegative: " + negTrain.size() + " | " + negTest.size() + " (" - + myDf.format(negPercent) + ")"; + ret += "\nPositive: " + posTrain.size() + " | " + posTest.size() + " (" + myDf.format(posPercent) + + ")"; + ret += "\nNegative: " + negTrain.size() + " | " + negTest.size() + " (" + myDf.format(negPercent) + + ")"; return ret; } - + public String toFullString() { String ret = "Training:\n"; @@ -184,25 +206,25 @@ ret += "-\"" + one + "\"\n"; } - return ret+this.toString(); - + return ret + this.toString(); + } public void writeExamples(String filename) { try { FileWriter a = new FileWriter(filename, false); - + StringBuffer buffer = new StringBuffer(); buffer.append("\n\n\n\n\n"); for (String s : posTrain) { - a.write("import(\""+URLencodeUTF8.encode(s)+"\");\n"); + a.write("import(\"" + URLencodeUTF8.encode(s) + "\");\n"); buffer.append("+\"" + s + "\"\n"); } for (String s : negTrain) { - a.write("import(\""+URLencodeUTF8.encode(s)+"\");\n"); + a.write("import(\"" + URLencodeUTF8.encode(s) + "\");\n"); buffer.append("-\"" + s + "\"\n"); } - + a.write(buffer.toString()); a.flush(); a.close(); @@ -212,30 +234,37 @@ } } - public int size(){ - return posTrain.size()+negTrain.size()+posTest.size()+negTest.size(); + /** + * sum of training and test data + * @return + */ + public int size() { + return posTrain.size() + negTrain.size() + posTest.size() + negTest.size(); } - public int sizeTotalOfPositives(){ - return posTrain.size()+posTest.size(); + + public int sizeTotalOfPositives() { + return posTrain.size() + posTest.size(); } - public int sizeTotalOfNegatives(){ - return negTrain.size()+negTest.size(); + + public int sizeTotalOfNegatives() { + return negTrain.size() + negTest.size(); } - public int sizeOfTrainingSets(){ - return posTrain.size()+negTrain.size(); + + public int sizeOfTrainingSets() { + return posTrain.size() + negTrain.size(); } - - public int sizeOfTestSets(){ - return posTest.size()+negTest.size(); + + public int sizeOfTestSets() { + return posTest.size() + negTest.size(); } - + public SortedSet<String> getAllExamples() { SortedSet<String> total = new TreeSet<String>(); total.addAll(getPositiveExamples()); total.addAll(getNegativeExamples()); return total; } - + public SortedSet<String> getPositiveExamples() { SortedSet<String> total = new TreeSet<String>(); total.addAll(posTrain); @@ -249,13 +278,14 @@ total.addAll(negTest); return total; } - + public SortedSet<String> getTestExamples() { SortedSet<String> total = new TreeSet<String>(); total.addAll(posTest); total.addAll(negTest); return total; } + public SortedSet<String> getTrainExamples() { SortedSet<String> total = new TreeSet<String>(); total.addAll(posTrain); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |