You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(120) |
Sep
(36) |
Oct
(116) |
Nov
(17) |
Dec
(44) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(143) |
Feb
(192) |
Mar
(74) |
Apr
(84) |
May
(105) |
Jun
(64) |
Jul
(49) |
Aug
(120) |
Sep
(159) |
Oct
(156) |
Nov
(51) |
Dec
(28) |
2009 |
Jan
(17) |
Feb
(55) |
Mar
(33) |
Apr
(57) |
May
(54) |
Jun
(28) |
Jul
(6) |
Aug
(16) |
Sep
(38) |
Oct
(30) |
Nov
(26) |
Dec
(52) |
2010 |
Jan
(7) |
Feb
(91) |
Mar
(65) |
Apr
(2) |
May
(14) |
Jun
(25) |
Jul
(38) |
Aug
(48) |
Sep
(80) |
Oct
(70) |
Nov
(75) |
Dec
(77) |
2011 |
Jan
(68) |
Feb
(53) |
Mar
(51) |
Apr
(35) |
May
(65) |
Jun
(101) |
Jul
(29) |
Aug
(230) |
Sep
(95) |
Oct
(49) |
Nov
(110) |
Dec
(63) |
2012 |
Jan
(41) |
Feb
(42) |
Mar
(25) |
Apr
(46) |
May
(51) |
Jun
(44) |
Jul
(45) |
Aug
(29) |
Sep
(12) |
Oct
(9) |
Nov
(17) |
Dec
(2) |
2013 |
Jan
(12) |
Feb
(14) |
Mar
(7) |
Apr
(16) |
May
(54) |
Jun
(27) |
Jul
(11) |
Aug
(5) |
Sep
(85) |
Oct
(27) |
Nov
(37) |
Dec
(32) |
2014 |
Jan
(8) |
Feb
(29) |
Mar
(5) |
Apr
(3) |
May
(22) |
Jun
(3) |
Jul
(4) |
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
|
From: <ku...@us...> - 2008-05-15 16:44:10
|
Revision: 852 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=852&view=rev Author: kurzum Date: 2008-05-15 09:43:44 -0700 (Thu, 15 May 2008) Log Message: ----------- Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/core/owl/SubsumptionHierarchy.java trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java trunk/src/dl-learner/org/dllearner/utilities/Statistics.java Modified: trunk/src/dl-learner/org/dllearner/core/owl/SubsumptionHierarchy.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/owl/SubsumptionHierarchy.java 2008-05-15 16:32:46 UTC (rev 851) +++ trunk/src/dl-learner/org/dllearner/core/owl/SubsumptionHierarchy.java 2008-05-15 16:43:44 UTC (rev 852) @@ -74,7 +74,7 @@ for(Description c : allowedConceptsInSubsumptionHierarchy) { // schauen, ob es mehrere allgemeinere Nachbarn gibt SortedSet<Description> moreGeneral = subsumptionHierarchyUp.get(c); - //RBC + //RBC //HACK if(moreGeneral != null && moreGeneral.size()>0) { //System.out.println(moreGeneral); Description chosenParent = moreGeneral.first(); @@ -85,7 +85,8 @@ // for(Concept c : allowedConceptsInSubsumptionHierarchy) { for(Description c : allowedConceptsInSubsumptionHierarchy) { SortedSet<Description> moreSpecial = subsumptionHierarchyDown.get(c); - if(moreSpecial != null) { + //RBC //HACK + if(moreSpecial != null && moreSpecial.size()>0) { Description chosenParent = moreSpecial.first(); hierarchyUpNew.get(chosenParent).add(c); } Modified: trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java 2008-05-15 16:32:46 UTC (rev 851) +++ trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java 2008-05-15 16:43:44 UTC (rev 852) @@ -125,7 +125,9 @@ LearnSparql ls = new LearnSparql(); TreeSet<String> igno = new TreeSet<String>(); - System.out.println(oneConcept); + igno.add(oneConcept.replaceAll("\"", "")); + //igno.add("\""+oneConcept+"\""); + //System.out.println(oneConcept); ls.learnDBpedia(posExamples, negExamples, url,igno,recursiondepth, closeAfterRecursion,randomizeCache); Modified: trunk/src/dl-learner/org/dllearner/utilities/Statistics.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/Statistics.java 2008-05-15 16:32:46 UTC (rev 851) +++ trunk/src/dl-learner/org/dllearner/utilities/Statistics.java 2008-05-15 16:43:44 UTC (rev 852) @@ -77,8 +77,8 @@ printLong(timeCollecting, "collecting\t"); printLongAVG(timeCollecting,number,"collecting avg\t"); - printLong(timeLearning, "collecting\t"); - printLongAVG(timeLearning,number,"collecting avg\t"); + printLong(timeLearning, "learning\t"); + printLongAVG(timeLearning,number,"learning avg\t"); System.out.println("*****************Queries"); printInt(numberOfCachedSparqlQueries,"cached queries\t"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2008-05-15 16:32:53
|
Revision: 851 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=851&view=rev Author: kurzum Date: 2008-05-15 09:32:46 -0700 (Thu, 15 May 2008) Log Message: ----------- Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java trunk/src/dl-learner/org/dllearner/test/JenaHTTPTest.java trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java trunk/src/dl-learner/org/dllearner/utilities/Statistics.java Modified: trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java 2008-05-15 15:12:35 UTC (rev 850) +++ trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java 2008-05-15 16:32:46 UTC (rev 851) @@ -1,5 +1,8 @@ package org.dllearner.scripts; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; import java.util.SortedSet; import java.util.TreeSet; @@ -31,12 +34,12 @@ //static String algorithm="refexamples"; //vars - static boolean useRelated = true; + static boolean useRelated = false; static boolean useSuperClasses = true; static boolean useParallelClasses = true; - static int poslimit = 5; - static int neglimit = 5; - static boolean randomizeCache = false; + static int poslimit = 0; + static int neglimit = 0; + static boolean randomizeCache = true; /** * @param args @@ -86,11 +89,14 @@ SortedSet<String> posExamples = new TreeSet<String>(); SortedSet<String> negExamples = new TreeSet<String>(); + for (int a = 0; a < 3; a++) { + + poslimit+=5; + neglimit+=5; - for (String oneConcept : concepts) { int recursiondepth=0; - boolean closeAfterRecursion=false; + boolean closeAfterRecursion=true; System.out.println(oneConcept); AutomaticExampleFinderSPARQL ae= new AutomaticExampleFinderSPARQL( se); @@ -101,16 +107,18 @@ negExamples = ae.getNegExamples(); for(int i=0;i<3;i++) { - if(i==0){;} + /*if(i==0){;} else if(closeAfterRecursion) { closeAfterRecursion=false; recursiondepth++; } else { closeAfterRecursion=true; - } - Statistics.setCurrentLabel(recursiondepth+""+((closeAfterRecursion)?"+":"")); + }*/ + //Statistics.setCurrentLabel(recursiondepth+""+((closeAfterRecursion)?"+":"")); + Statistics.setCurrentLabel(recursiondepth+""+((closeAfterRecursion)?"":"")); + Statistics.print(number); System.out.println("currently at label "+Statistics.getCurrentLabel()+"||i: "+i); @@ -125,6 +133,19 @@ } } Statistics.print(number); + String pre="log/gnu_"; + String comment1="# "+poslimit+neglimit+"examples\n"; + String f1=pre+"1avgtrip_"+poslimit+neglimit+"example"+concepts.size()+"classes"; + writeToFile(f1, comment1+Statistics.getAVGTriplesForRecursionDepth(number)); + String comment2="# "+poslimit+neglimit+"examples\n"; + String f2=pre+"2avgTimeExtraction_"+poslimit+neglimit+"example"+concepts.size()+"classes"; + writeToFile(f2, comment2+Statistics.getAVGTimeCollecting(number)); + String comment3="# "+poslimit+neglimit+"examples\n"; + String f3=pre+"2avgTimeLearning_"+poslimit+neglimit+"example"+concepts.size()+"classes"; + writeToFile(f3, comment3+Statistics.getAVGTimeLearning(number)); + + + }//outer } @@ -164,8 +185,8 @@ SortedSet<String> concepts = new TreeSet<String>(); concepts.add("http://dbpedia.org/class/yago/AirLane108492546"); concepts.add("http://dbpedia.org/class/yago/AlphaBlocker102698769"); - //concepts.add("http://dbpedia.org/class/yago/Articulation107131854"); - /*concepts.add("http://dbpedia.org/class/yago/Caliphate108550766"); + concepts.add("http://dbpedia.org/class/yago/Articulation107131854"); + concepts.add("http://dbpedia.org/class/yago/Caliphate108550766"); concepts.add("http://dbpedia.org/class/yago/Ceremony107450842"); concepts.add("http://dbpedia.org/class/yago/CookingOil107673145"); concepts.add("http://dbpedia.org/class/yago/Corticosteroid114751417"); @@ -182,10 +203,25 @@ concepts.add("http://dbpedia.org/class/yago/Schoolteacher110560352"); concepts.add("http://dbpedia.org/class/yago/Singer110599806"); concepts.add("http://dbpedia.org/class/yago/SupremeCourt108336188"); - concepts.add("http://dbpedia.org/class/yago/AirLane108492546");*/ + concepts.add("http://dbpedia.org/class/yago/AirLane108492546"); return concepts; } + protected static void writeToFile(String filename, String content) { + // create the file we want to use + File file = new File( filename); + + try { + file.createNewFile(); + FileOutputStream fos = new FileOutputStream(filename, false); + // ObjectOutputStream o = new ObjectOutputStream(fos); + fos.write(content.getBytes()); + fos.flush(); + fos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } } Modified: trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-15 15:12:35 UTC (rev 850) +++ trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-15 16:32:46 UTC (rev 851) @@ -282,6 +282,7 @@ String query = "SELECT DISTINCT ?concept WHERE { \n" + "[] a ?concept .FILTER (regex(str(?concept),'yago'))" + " \n} \n"; //LIMIT "+number+" + String JSON = (c.executeSparqlQuery(new SparqlQuery(query, se))); ResultSet rs =SparqlQuery.JSONtoResultSet(JSON); Modified: trunk/src/dl-learner/org/dllearner/test/JenaHTTPTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/JenaHTTPTest.java 2008-05-15 15:12:35 UTC (rev 850) +++ trunk/src/dl-learner/org/dllearner/test/JenaHTTPTest.java 2008-05-15 16:32:46 UTC (rev 851) @@ -10,12 +10,39 @@ import com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP; public class JenaHTTPTest { + + static String query1="SELECT DISTINCT ?object\n"+ + "FROM <http://dbpedia.org>\n"+ + "WHERE { <http://dbpedia.org/resource/Leipzig> <http://www.w3.org/2000/01/rdf-schema#label> ?object}\n"; + + + static String query2 = "SELECT * WHERE { \n"+ + "<http://dbpedia.org/resource/County_Route_G7_%28California%29> ?predicate ?object. \n"+ + " FILTER( \n"+ + " (!isLiteral(?object))\n"+ + " &&( !regex(str(?predicate), 'http://dbpedia.org/property/relatedInstance') )\n"+ + " &&( !regex(str(?predicate), 'http://dbpedia.org/property/website') )\n"+ + " &&( !regex(str(?predicate), 'http://dbpedia.org/property/owner') )\n"+ + " &&( !regex(str(?predicate), 'http://dbpedia.org/property/wikiPageUsesTemplate') )\n"+ + " &&( !regex(str(?predicate), 'http://www.w3.org/2002/07/owl#sameAs') )\n"+ + " &&( !regex(str(?predicate), 'http://xmlns.com/foaf/0.1/') )\n"+ + " &&( !regex(str(?predicate), 'http://dbpedia.org/property/standard') )\n"+ + " &&( !regex(str(?predicate), 'http://dbpedia.org/property/wikipage') )\n"+ + " &&( !regex(str(?predicate), 'http://dbpedia.org/property/reference') )\n"+ + " &&( !regex(str(?predicate), 'http://www.w3.org/2004/02/skos/core') )\n"+ + " &&( !regex(str(?object), 'http://xmlns.com/foaf/0.1/') )\n"+ + " &&( !regex(str(?object), 'http://upload.wikimedia.org/wikipedia') )\n"+ + " &&( !regex(str(?object), 'http://www4.wiwiss.fu-berlin.de/flickrwrappr') )\n"+ + " &&( !regex(str(?object), 'http://dbpedia.org/resource/Template') )\n"+ + " &&( !regex(str(?object), 'http://upload.wikimedia.org/wikipedia/commons') )\n"+ + " &&( !regex(str(?object), 'http://www.w3.org/2006/03/wn/wn20/instances/synset') )\n"+ + " &&( !regex(str(?object), 'http://dbpedia.org/resource/Category:') )\n"+ + " &&( !regex(str(?object), 'http://www.w3.org/2004/02/skos/core') )\n"+ + " &&( !regex(str(?object), 'http://www.geonames.org') )).}\n"; + public static void main(String[] args) throws Exception{ - String query="SELECT DISTINCT ?object\n"+ - "FROM <http://dbpedia.org>\n"+ - "WHERE { <http://dbpedia.org/resource/Leipzig> <http://www.w3.org/2000/01/rdf-schema#label> ?object}\n"; - + String query=query2; double time=0; /*for (int i=0; i<101; i++) { @@ -27,6 +54,7 @@ time=0; for (int i=0; i<101; i++) { + if (i%20 ==0)System.out.println(i); if (i!=0) time+=JenaHTTPTest.jenaQuery(query); } time=time/100; @@ -35,10 +63,20 @@ time=0; for (int i=0; i<101; i++) { + if (i%20 ==0)System.out.println(i); if (i!=0) time+=JenaHTTPTest.jenaLocalQuery(query); } time=time/100; System.out.println("Durchschnittliche Zeit f�r eine Anfrage per DBpedia LOCAL: "+time); + + time=0; + for (int i=0; i<101; i++) + { + if (i%20 ==0)System.out.println(i); + if (i!=0) time+=JenaHTTPTest.jenaQuery(query); + } + time=time/100; + System.out.println("Durchschnittliche Zeit f�r eine Anfrage DBpedia: "+time); } private static double jenaQuery(String query) Modified: trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java 2008-05-15 15:12:35 UTC (rev 850) +++ trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java 2008-05-15 16:32:46 UTC (rev 851) @@ -56,7 +56,7 @@ ks.init(); Statistics.addTimeCollecting(sc.getTime()); sources.add(ks); - if (true)return; + //if (true)return; //System.out.println(ks.getNTripleURL()); // @@ -80,7 +80,8 @@ cm.applyConfigEntry(la,"useCardinalityRestrictions",false); cm.applyConfigEntry(la,"useNegation",false); cm.applyConfigEntry(la,"minExecutionTimeInSeconds",0); - cm.applyConfigEntry(la,"maxExecutionTimeInSeconds",10); + cm.applyConfigEntry(la,"maxExecutionTimeInSeconds",20); + //cm.applyConfigEntry(la,"guaranteeXgoodDescriptions",999999); cm.applyConfigEntry(la,"logLevel","TRACE"); @@ -91,9 +92,10 @@ la.init(); System.out.println("start learning"); + sc.setTime(); la.start(); + Statistics.addTimeLearning(sc.getTime()); - //System.out.println("best"+la(20)); //((ExampleBasedROLComponent)la).printBestSolutions(10000); Modified: trunk/src/dl-learner/org/dllearner/utilities/Statistics.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/Statistics.java 2008-05-15 15:12:35 UTC (rev 850) +++ trunk/src/dl-learner/org/dllearner/utilities/Statistics.java 2008-05-15 16:32:46 UTC (rev 851) @@ -11,6 +11,8 @@ private static LinkedList<String> order = new LinkedList<String>(); private static HashMap<String, Integer> numberOfTriples = new HashMap<String, Integer>(); private static HashMap<String, Long> timeCollecting = new HashMap<String, Long>(); + private static HashMap<String, Long> timeLearning = new HashMap<String, Long>(); + private static HashMap<String, Integer> numberOfSparqlQueries = new HashMap<String, Integer>(); private static HashMap<String, Integer> numberOfCachedSparqlQueries = new HashMap<String, Integer>(); @@ -37,6 +39,15 @@ } } + public static void addTimeLearning(long value) { + Long current = timeLearning.get(currentLabel); + if(current==null) + timeLearning.put(currentLabel, new Long(value)); + else { + timeLearning.put(currentLabel, new Long(current.longValue()+value)); + } + } + public static void increaseCachedQuery() { Integer current = numberOfCachedSparqlQueries.get(currentLabel); if(current==null) @@ -58,19 +69,23 @@ public static void print(int number){ - printInt(numberOfTriples,"triples"); - printIntAVG(numberOfTriples,number,"triples avg"); + System.out.println("*****************TRIPLES"); + printInt(numberOfTriples,"triples\t"); + printIntAVG(numberOfTriples,number,"triples avg\t"); System.out.println("*****************TIME"); - printLong(timeCollecting); - printLongAVG(timeCollecting,number); + printLong(timeCollecting, "collecting\t"); + printLongAVG(timeCollecting,number,"collecting avg\t"); + printLong(timeLearning, "collecting\t"); + printLongAVG(timeLearning,number,"collecting avg\t"); System.out.println("*****************Queries"); - printInt(numberOfCachedSparqlQueries,"cached queries"); - printInt(numberOfSparqlQueries,"total queries"); + printInt(numberOfCachedSparqlQueries,"cached queries\t"); + printInt(numberOfSparqlQueries,"total queries\t"); + //printIntAVG(numberOfTriples,number,"triples avg\t"); @@ -78,14 +93,50 @@ + } + + + public static String getAVGTriplesForRecursionDepth(int number){ + + String ret="#Label, i.e. rec depth \t avg number of triples\n"; + for (int i = 0; i < order.size(); i++) { + String label=order.get(i); + try { + ret+=label+"\t"+ (numberOfTriples.get(label).intValue()/number)+"\n"; + } catch (Exception e) { } + } + return ret; + } + + public static String getAVGTimeLearning(int number){ + String ret="#Label, i.e. rec depth \t avg time for learning including reasoning\n"; + for (int i = 0; i < order.size(); i++) { + String label=order.get(i); + try { + ret+=label+"\t"+ (timeLearning.get(label).longValue()/number)+"\n"; + } catch (Exception e) { } + } + return ret; +} + + public static String getAVGTimeCollecting(int number){ + + String ret="#Label, i.e. rec depth \t avg time for extraction\n"; + for (int i = 0; i < order.size(); i++) { + String label=order.get(i); + try { + ret+=label+"\t"+ (timeCollecting.get(label).longValue()/number)+"\n"; + } catch (Exception e) { } + } + return ret; } public static void printIntAVG(HashMap<String, Integer> hm, int number, String str){ for (int i = 0; i < order.size(); i++) { String label=order.get(i); try { - System.out.println(str+" "+label+"|"+ (hm.get(label).intValue()/number)); + System.out.println(str+""+label+" "+ (hm.get(label).intValue()/number)); } catch (Exception e) { } } } @@ -94,25 +145,25 @@ for (int i = 0; i < order.size(); i++) { String label=order.get(i); try { - System.out.println(str+" "+label+"|"+hm.get(label)); + System.out.println(str+""+label+" "+hm.get(label)); } catch (Exception e) { } } } - public static void printLongAVG(HashMap<String, Long> hm, int number){ + public static void printLongAVG(HashMap<String, Long> hm, int number, String str){ for (int i = 0; i < order.size(); i++) { String label=order.get(i); try { - System.out.println("timeCollect avg "+label+"|"+ (hm.get(label).intValue()/number)); + System.out.println(str+label+" "+ (hm.get(label).intValue()/number)); } catch (Exception e) { } } } - public static void printLong(HashMap<String, Long> hm){ + public static void printLong(HashMap<String, Long> hm,String str){ for (int i = 0; i < order.size(); i++) { String label=order.get(i); try { - System.out.println("timeCollect "+label+"|"+hm.get(label)); + System.out.println(str+label+"|"+hm.get(label)); } catch (Exception e) { } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2008-05-15 15:12:46
|
Revision: 850 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=850&view=rev Author: kurzum Date: 2008-05-15 08:12:35 -0700 (Thu, 15 May 2008) Log Message: ----------- I checked the dl-learner out on the server and created a local ant target, so I can compile it faster, sorry for the following commit and the many emails you will receive the next few days Modified Paths: -------------- trunk/build.xml Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2008-05-15 14:04:50 UTC (rev 849) +++ trunk/build.xml 2008-05-15 15:12:35 UTC (rev 850) @@ -27,7 +27,57 @@ <target name="full_release" depends="javadoc,build" description="full release, javadoc, scripts"> </target> + <!-- build target --> + <target name="local" depends="createScripts" description="fast build including scripts, + no javadoc, no tar, just executables in local, can be used on a server"> + + + <!-- compile project into temporary directory --> + <mkdir dir="classes_tmp"/> + <javac destdir="classes_tmp" target="1.5"> + <src path="${source_dir}"/> + <classpath refid="classpath"/> + </javac> + + <mkdir dir="${release_tmp_dir}"/> + <mkdir dir="${release_tmp_dir}/lib/"/> + <jar jarfile="${release_tmp_dir}/lib/dllearner.jar"> + <fileset dir="classes_tmp"/> + </jar> + <delete dir="classes_tmp"/> + + <!-- copy all other libraries --> + <copy toDir="${release_tmp_dir}/lib"> + <fileset dir="${lib_dir}" /> + </copy> + + <!-- copy binary files and examples --> + <copy toDir="${release_tmp_dir}/examples"> + <fileset dir="examples"/> + </copy> + <copy toDir="${release_tmp_dir}"> + <fileset dir="bin"/> + </copy> + + <!-- create file containing the build info --> + <echo file="${release_tmp_dir}/build.txt" append="false">DL-Learner Build ${today}</echo> + + <!-- create empty log directory for release --> + <mkdir dir="${release_tmp_dir}/log" /> + <mkdir dir="${release_tmp_dir}/cache" /> + + <mkdir dir="local" /> + <move toDir="local"> + <fileset dir="${release_tmp_dir}"/> + </move> + <delete dir="${release_tmp_dir}" /> + <delete dir="release" /> + + </target> + + + <!-- build target --> <target name="build" depends="createScripts" description="fast build including scripts, no javadoc"> <!-- write current build date into Info.java --> @@ -42,7 +92,7 @@ <!-- compile project into temporary directory --> <mkdir dir="classes_tmp"/> - <javac destdir="classes_tmp"> + <javac destdir="classes_tmp" target="1.5"> <src path="${source_dir}"/> <classpath refid="classpath"/> </javac> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2008-05-15 14:04:54
|
Revision: 849 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=849&view=rev Author: kurzum Date: 2008-05-15 07:04:50 -0700 (Thu, 15 May 2008) Log Message: ----------- intermediate Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/Info.java trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/Configuration.java trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderRolesSPARQL.java trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java trunk/src/dl-learner/org/dllearner/utilities/Statistics.java Modified: trunk/src/dl-learner/org/dllearner/Info.java =================================================================== --- trunk/src/dl-learner/org/dllearner/Info.java 2008-05-15 00:23:29 UTC (rev 848) +++ trunk/src/dl-learner/org/dllearner/Info.java 2008-05-15 14:04:50 UTC (rev 849) @@ -3,6 +3,6 @@ package org.dllearner; public class Info { - public static final String build = "2008-04-23"; + public static final String build = "2008-05-15"; } \ No newline at end of file Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java 2008-05-15 00:23:29 UTC (rev 848) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java 2008-05-15 14:04:50 UTC (rev 849) @@ -31,6 +31,8 @@ import java.util.LinkedList; import org.apache.log4j.Logger; +import org.dllearner.utilities.SimpleClock; +import org.dllearner.utilities.Statistics; /** * SPARQL query cache to avoid possibly expensive multiple queries. The queries @@ -75,9 +77,9 @@ /** * same ad Cache(String) default is "cache" */ - public Cache() { + /*public Cache() { this("cache"); - } + } */ /** * Constructor for the cache itself. @@ -86,6 +88,7 @@ * Where the base path to the cache is . */ public Cache(String cacheDir) { + this.cacheDir = cacheDir + File.separator; if (!new File(cacheDir).exists()) { logger @@ -218,12 +221,18 @@ * @return Jena result set. */ public String executeSparqlQuery(SparqlQuery query) { + + Statistics.increaseQuery(); String result = getCacheEntry(query.getQueryString()); if (result != null) { logger.trace("got from cache"); + + Statistics.increaseCachedQuery(); return result; } else { + //SimpleClock sc = new SimpleClock(); query.send(); + //sc.printAndSet("query"); String json = query.getResult(); if (json!=null){ addToCache(query.getQueryString(), json); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java 2008-05-15 00:23:29 UTC (rev 848) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java 2008-05-15 14:04:50 UTC (rev 849) @@ -46,11 +46,11 @@ public void useConfiguration(SparqlQueryType SparqlQueryType, SparqlEndpoint SparqlEndpoint, Manipulator manipulator, int recursiondepth, boolean getAllSuperClasses, - boolean closeAfterRecursion) { + boolean closeAfterRecursion, String cacheDir) { this.configuration = new Configuration(SparqlEndpoint, SparqlQueryType, manipulator, recursiondepth, getAllSuperClasses, - closeAfterRecursion); + closeAfterRecursion, cacheDir); //System.out.println(this.configuration); this.typedSparqlQuery = new TypedSparqlQuery(configuration); this.extractionAlgorithm = new ExtractionAlgorithm(configuration); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-05-15 00:23:29 UTC (rev 848) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-05-15 14:04:50 UTC (rev 849) @@ -61,8 +61,6 @@ */ public class SparqlKnowledgeSource extends KnowledgeSource { - //statistic - public int numberOfTriples=0; //DEFAULTS static int recursionDepthDefault = 1; @@ -85,6 +83,7 @@ private boolean closeAfterRecursion = true; private int breakSuperClassRetrievalAfter = 200; private String blankNodeIdentifier = "bnode"; + private String cacheDir = "cache"; // private boolean learnDomain = false; // private boolean learnRange = false; // private int numberOfInstancesUsedForRoleLearning = 40; @@ -124,6 +123,8 @@ public static Collection<ConfigOption<?>> createConfigOptions() { Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); options.add(new StringConfigOption("url", "URL of SPARQL Endpoint")); + options.add(new StringConfigOption("cacheDir", "dir of cache")); + // options.add(new StringConfigOption("host", "host of SPARQL // Endpoint")); options @@ -205,6 +206,8 @@ // host = (String) entry.getValue(); } else if (option.equals("instances")) { instances = (Set<String>) entry.getValue(); + }else if (option.equals("cacheDir")) { + cacheDir = (String) entry.getValue(); } else if (option.equals("recursionDepth")) { recursionDepth = (Integer) entry.getValue(); } else if (option.equals("predList")) { @@ -315,18 +318,21 @@ } // give everything to the manager m.useConfiguration(sparqlQueryType, endpoint, manipulator, - recursionDepth, getAllSuperClasses, closeAfterRecursion); + recursionDepth, getAllSuperClasses, closeAfterRecursion, cacheDir); + try { String ont = ""; // the actual extraction is started here + SimpleClock sc2=new SimpleClock(); + sc2.setTime(); ont = m.extract(instances); - - logger.info("Number of cached SPARQL queries: " + sc2.printAndSet("extraction needed"); + /*logger.info("Number of cached SPARQL queries: " + m.getConfiguration().numberOfCachedSparqlQueries); logger.info("Number of uncached SPARQL queries: " + m.getConfiguration().numberOfUncachedSparqlQueries); - +*/ logger.info("Finished collecting Fragment"); if (dumpToFile) { @@ -404,7 +410,8 @@ } public SparqlQueryThreaded sparqlQueryThreaded(String query){ - return new SparqlQueryThreaded(new Cache("cache"),this.sparqlQuery(query)); + //RBC + return new SparqlQueryThreaded(new Cache("cachet2"),this.sparqlQuery(query)); } /* (non-Javadoc) Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java 2008-05-15 00:23:29 UTC (rev 848) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java 2008-05-15 14:04:50 UTC (rev 849) @@ -25,6 +25,7 @@ import org.apache.log4j.Logger; import org.dllearner.kb.sparql.configuration.SparqlEndpoint; +import org.dllearner.utilities.SimpleClock; import com.hp.hpl.jena.query.ResultSet; import com.hp.hpl.jena.query.ResultSetFactory; @@ -85,8 +86,9 @@ try{ //TODO remove after overnext Jena release HttpQuery.urlLimit = 3*1024 ; + //SimpleClock sc=new SimpleClock(); rs = queryExecution.execSelect(); - + //sc.printAndSet("rs to list"); logger.debug("query SPARQL server ["+extraDebugInfo+"], retrieved: "+rs.getResultVars()); json=SparqlQuery.getAsJSON(rs); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java 2008-05-15 00:23:29 UTC (rev 848) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java 2008-05-15 14:04:50 UTC (rev 849) @@ -25,6 +25,7 @@ import java.util.Set; import org.dllearner.kb.sparql.configuration.Configuration; +import org.dllearner.utilities.SimpleClock; import org.dllearner.utilities.StringTuple; import com.hp.hpl.jena.query.ResultSet; @@ -52,7 +53,8 @@ this.configuration = Configuration; this.sparqlQueryMaker = new SparqlQueryMaker(Configuration .getSparqlQueryType()); - this.cache = new Cache("cache"); + + this.cache = new Cache(configuration.cacheDir); // this.sparqlQuery=new SparqlQuery(configuration.getSparqlEndpoint()); // this.cachedSparqlQuery=new // CachedSparqlQuery(this.sparqlQuery,this.cache); @@ -88,9 +90,12 @@ SparqlQuery query = new SparqlQuery(sparqlQueryString, configuration.getSparqlEndpoint()); query.extraDebugInfo=uri.toString(); - ResultSet rs = SparqlQuery.JSONtoResultSet(cache.executeSparqlQuery(query)); + String JSON = cache.executeSparqlQuery(query); + ResultSet rs = SparqlQuery.JSONtoResultSet(JSON); + List<ResultBinding> l = ResultSetFormatter.toList(rs); + p(l.toString()); for (ResultBinding resultBinding : l) { Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/Configuration.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/Configuration.java 2008-05-15 00:23:29 UTC (rev 848) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/Configuration.java 2008-05-15 14:04:50 UTC (rev 849) @@ -39,17 +39,19 @@ private boolean closeAfterRecursion = true; public int numberOfUncachedSparqlQueries = 0; public int numberOfCachedSparqlQueries = 0; + public String cacheDir="cache"; public Configuration(SparqlEndpoint specificSparqlEndpoint, SparqlQueryType sparqlQueryType, Manipulator manipulator, int recursiondepth, boolean getAllSuperClasses, - boolean closeAfterRecursion) { + boolean closeAfterRecursion, String cacheDir) { this.endpoint = specificSparqlEndpoint; this.sparqlQueryType = sparqlQueryType; this.manipulator = manipulator; this.recursiondepth = recursiondepth; this.getAllSuperClasses = getAllSuperClasses; this.closeAfterRecursion = closeAfterRecursion; + this.cacheDir=cacheDir; } @@ -57,7 +59,7 @@ // TODO must clone here return new Configuration(this.endpoint, sqt, this.manipulator, this.recursiondepth, this.getAllSuperClasses, - this.closeAfterRecursion); + this.closeAfterRecursion, this.cacheDir); } Modified: trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java 2008-05-15 00:23:29 UTC (rev 848) +++ trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java 2008-05-15 14:04:50 UTC (rev 849) @@ -1,6 +1,5 @@ package org.dllearner.scripts; -import java.net.URLEncoder; import java.util.SortedSet; import java.util.TreeSet; @@ -13,9 +12,7 @@ import org.dllearner.kb.sparql.SparqlKnowledgeSource; import org.dllearner.kb.sparql.SparqlQuery; import org.dllearner.kb.sparql.configuration.SparqlEndpoint; -import org.dllearner.utilities.AutomaticExampleFinderRolesSPARQL; import org.dllearner.utilities.AutomaticExampleFinderSPARQL; -import org.dllearner.utilities.ConfWriter; import org.dllearner.utilities.JenaResultSetConvenience; import org.dllearner.utilities.LearnSparql; import org.dllearner.utilities.SetManipulation; @@ -37,14 +34,16 @@ static boolean useRelated = true; static boolean useSuperClasses = true; static boolean useParallelClasses = true; - static int poslimit = 10; - static int neglimit = 10; + static int poslimit = 5; + static int neglimit = 5; + static boolean randomizeCache = false; /** * @param args */ public static void main(String[] args) { init(); + System.out.println("Start"); //logger.setLevel(Level.TRACE); logger.setLevel(Level.WARN); Logger.getLogger(SparqlKnowledgeSource.class).setLevel(Level.WARN); @@ -58,49 +57,71 @@ static void LocalDBpediaEvaluation(){ - se = SparqlEndpoint.EndpointLOCALDBpedia(); - int number=1; + boolean local=true; + String url=""; + if(local){ + se = SparqlEndpoint.EndpointLOCALDBpedia(); + + url = "http://139.18.2.37:8890/sparql"; + + }else{ + se = SparqlEndpoint.EndpointDBpedia(); + url= "http://dbpedia.openlinksw.com:8890/sparql"; + } + + SortedSet<String> concepts = new TreeSet<String>(); - SortedSet<String> tmpSet=selectDBpediaConcepts(number); - + SortedSet<String> tmpSet = new TreeSet<String>(); + //selectDBpediaConcepts(number); + tmpSet=initConcepts(); + int number=tmpSet.size(); + //concepts.add("\"http://dbpedia.org/class/yago/Flamethrower103356559\""); for (String string : tmpSet) { + //System.out.println("\""+string+"\","); concepts.add("\""+string+"\""); } + + SortedSet<String> posExamples = new TreeSet<String>(); SortedSet<String> negExamples = new TreeSet<String>(); - String url = "http://139.18.2.37:8890/sparql"; - int recursiondepth=0; - boolean closeAfterRecursion=false; - for(int i=0;i<8;i++) { - if(i==0){;} - else if(closeAfterRecursion) { - closeAfterRecursion=false; - recursiondepth++; - } - else { - closeAfterRecursion=true; - } - Statistics.setCurrentLabel(recursiondepth+""+((closeAfterRecursion)?"+":"")); + + for (String oneConcept : concepts) { + int recursiondepth=0; + boolean closeAfterRecursion=false; + System.out.println(oneConcept); + AutomaticExampleFinderSPARQL ae= new AutomaticExampleFinderSPARQL( se); - for (String oneConcept : concepts) { - AutomaticExampleFinderSPARQL ae= new AutomaticExampleFinderSPARQL( se); - - ae.initDBpedia(oneConcept, useRelated, useSuperClasses,useParallelClasses, poslimit, neglimit); - posExamples = ae.getPosExamples(); - negExamples = ae.getNegExamples(); + ae.initDBpedia(oneConcept, useRelated, useSuperClasses,useParallelClasses, poslimit, neglimit); + posExamples = ae.getPosExamples(); + negExamples = ae.getNegExamples(); + + for(int i=0;i<3;i++) { + if(i==0){;} + else if(closeAfterRecursion) { + closeAfterRecursion=false; + recursiondepth++; + } + else { + closeAfterRecursion=true; + } + Statistics.setCurrentLabel(recursiondepth+""+((closeAfterRecursion)?"+":"")); + Statistics.print(number); + + System.out.println("currently at label "+Statistics.getCurrentLabel()+"||i: "+i); + LearnSparql ls = new LearnSparql(); TreeSet<String> igno = new TreeSet<String>(); System.out.println(oneConcept); + + ls.learnDBpedia(posExamples, negExamples, url,igno,recursiondepth, closeAfterRecursion,randomizeCache); + - ls.learnDBpedia(posExamples, negExamples, url,igno,recursiondepth, closeAfterRecursion); - - } } Statistics.print(number); @@ -115,7 +136,7 @@ // its messages to the console) FileAppender fileAppender =null; ; try{ - fileAppender = new FileAppender(layout,"the_log.txt",false); + fileAppender = new FileAppender(layout,"log/sparqleval.txt",false); }catch (Exception e) {e.printStackTrace();} ConsoleAppender consoleAppender = new ConsoleAppender(layout); @@ -123,7 +144,7 @@ logger.addAppender(consoleAppender); logger.addAppender(fileAppender); - c = new Cache(); + c = new Cache("cachetemp"); } @@ -131,7 +152,7 @@ public static SortedSet<String> selectDBpediaConcepts(int number){ String query = "SELECT DISTINCT ?concept WHERE { \n" + "[] a ?concept .FILTER (regex(str(?concept),'yago'))" + - " \n} LIMIT "+1000+" \n"; // + " \n} LIMIT "+4000+" \n "; // String JSON = (c.executeSparqlQuery(new SparqlQuery(query, se))); ResultSet rs =SparqlQuery.JSONtoResultSet(JSON); @@ -139,6 +160,32 @@ return SetManipulation.fuzzyShrink(rsc.getStringListForVariable("concept"),number); } + public static SortedSet<String> initConcepts(){ + SortedSet<String> concepts = new TreeSet<String>(); + concepts.add("http://dbpedia.org/class/yago/AirLane108492546"); + concepts.add("http://dbpedia.org/class/yago/AlphaBlocker102698769"); + //concepts.add("http://dbpedia.org/class/yago/Articulation107131854"); + /*concepts.add("http://dbpedia.org/class/yago/Caliphate108550766"); + concepts.add("http://dbpedia.org/class/yago/Ceremony107450842"); + concepts.add("http://dbpedia.org/class/yago/CookingOil107673145"); + concepts.add("http://dbpedia.org/class/yago/Corticosteroid114751417"); + concepts.add("http://dbpedia.org/class/yago/Curlew102033561"); + concepts.add("http://dbpedia.org/class/yago/DataStructure105728493"); + concepts.add("http://dbpedia.org/class/yago/Disappearance100053609"); + concepts.add("http://dbpedia.org/class/yago/Flintstone114871268"); + concepts.add("http://dbpedia.org/class/yago/Form105930736"); + concepts.add("http://dbpedia.org/class/yago/Hypochondriac110195487"); + concepts.add("http://dbpedia.org/class/yago/Industrialist110204177"); + concepts.add("http://dbpedia.org/class/yago/Lifeboat103662601"); + concepts.add("http://dbpedia.org/class/yago/Particulate114839439"); + concepts.add("http://dbpedia.org/class/yago/Reservation108587174"); + concepts.add("http://dbpedia.org/class/yago/Schoolteacher110560352"); + concepts.add("http://dbpedia.org/class/yago/Singer110599806"); + concepts.add("http://dbpedia.org/class/yago/SupremeCourt108336188"); + concepts.add("http://dbpedia.org/class/yago/AirLane108492546");*/ + return concepts; + } + } Modified: trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-15 00:23:29 UTC (rev 848) +++ trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-15 14:04:50 UTC (rev 849) @@ -213,7 +213,7 @@ System.out.println(oneConcept); //igno.add(oneConcept.replaceAll("\"", "")); - ls.learnDBpedia(posExamples, negExamples, url,igno,recursiondepth, closeAfterRecursion); + ls.learnDBpedia(posExamples, negExamples, url,igno,recursiondepth, closeAfterRecursion,false); //System.out.println("AAAAAAAA"); //System.exit(0); @@ -273,7 +273,7 @@ logger.addAppender(consoleAppender); logger.addAppender(fileAppender); logger.setLevel(Level.DEBUG); - c = new Cache(); + c = new Cache("cachetemp"); } Modified: trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java 2008-05-15 00:23:29 UTC (rev 848) +++ trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java 2008-05-15 14:04:50 UTC (rev 849) @@ -51,7 +51,7 @@ m.useConfiguration( SparqlQueryType.getFilterByName("DBPEDIA"),SparqlEndpoint.getEndpointByName("YAGO"), new Manipulator("",200,new LinkedList<StringTuple>(),new LinkedList<StringTuple>()), - 1,true,true); + 1,true,true,"cache"); //, , //manipulator, recursiondepth, getAllSuperClasses, closeAfterRecursion) Modified: trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderRolesSPARQL.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderRolesSPARQL.java 2008-05-15 00:23:29 UTC (rev 848) +++ trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderRolesSPARQL.java 2008-05-15 14:04:50 UTC (rev 849) @@ -24,7 +24,7 @@ public AutomaticExampleFinderRolesSPARQL(SparqlEndpoint se){ - this.c=new Cache(); + this.c=new Cache("cachetemp"); this.se=se; posExamples = new TreeSet<String>(); negExamples = new TreeSet<String>(); Modified: trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java 2008-05-15 00:23:29 UTC (rev 848) +++ trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java 2008-05-15 14:04:50 UTC (rev 849) @@ -25,7 +25,7 @@ public AutomaticExampleFinderSPARQL(SparqlEndpoint se){ - this.c=new Cache(); + this.c=new Cache("cachetemp"); this.se=se; posExamples = new TreeSet<String>(); negExamples = new TreeSet<String>(); Modified: trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java 2008-05-15 00:23:29 UTC (rev 848) +++ trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java 2008-05-15 14:04:50 UTC (rev 849) @@ -24,7 +24,8 @@ public void learnDBpedia(SortedSet<String> posExamples,SortedSet<String> negExamples, - String uri, SortedSet<String> ignoredConcepts, int recursiondepth, boolean closeAfterRecursion){ + String uri, SortedSet<String> ignoredConcepts, int recursiondepth, + boolean closeAfterRecursion, boolean randomizeCache){ ComponentManager cm = ComponentManager.getInstance(); @@ -44,8 +45,11 @@ cm.applyConfigEntry(ks, "url",uri); cm.applyConfigEntry(ks, "recursionDepth",recursiondepth); cm.applyConfigEntry(ks, "closeAfterRecursion",closeAfterRecursion); - cm.applyConfigEntry(ks, "predefinedFilter","YAGOSKOS"); + cm.applyConfigEntry(ks, "predefinedFilter","YAGO"); cm.applyConfigEntry(ks, "predefinedEndpoint","DBPEDIA"); + if(randomizeCache) + cm.applyConfigEntry(ks, "cacheDir","cache/"+System.currentTimeMillis()+""); + else {} //cm.applyConfigEntry(ks, "format","KB"); sc.setTime(); Modified: trunk/src/dl-learner/org/dllearner/utilities/Statistics.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/Statistics.java 2008-05-15 00:23:29 UTC (rev 848) +++ trunk/src/dl-learner/org/dllearner/utilities/Statistics.java 2008-05-15 14:04:50 UTC (rev 849) @@ -2,60 +2,132 @@ import java.util.HashMap; -import java.util.TreeSet; +import java.util.LinkedList; public class Statistics { private static String currentLabel=""; + private static LinkedList<String> order = new LinkedList<String>(); private static HashMap<String, Integer> numberOfTriples = new HashMap<String, Integer>(); private static HashMap<String, Long> timeCollecting = new HashMap<String, Long>(); + private static HashMap<String, Integer> numberOfSparqlQueries = new HashMap<String, Integer>(); + private static HashMap<String, Integer> numberOfCachedSparqlQueries = new HashMap<String, Integer>(); public static void addTriples(int value) { + Integer current = numberOfTriples.get(currentLabel); if(current==null) - numberOfTriples.put(currentLabel, new Integer(0)); + numberOfTriples.put(currentLabel, new Integer(value)); else { - numberOfTriples.put(currentLabel, new Integer(current.intValue()+value)); + numberOfTriples.put(currentLabel, new Integer(current.intValue()+value)); } + + } public static void addTimeCollecting(long value) { Long current = timeCollecting.get(currentLabel); if(current==null) - timeCollecting.put(currentLabel, new Long(0)); + timeCollecting.put(currentLabel, new Long(value)); else { timeCollecting.put(currentLabel, new Long(current.longValue()+value)); } } + public static void increaseCachedQuery() { + Integer current = numberOfCachedSparqlQueries.get(currentLabel); + if(current==null) + numberOfCachedSparqlQueries.put(currentLabel, new Integer(1)); + else { + numberOfCachedSparqlQueries.put(currentLabel, new Integer(current.intValue()+1)); + } + } + + public static void increaseQuery() { + Integer current = numberOfSparqlQueries.get(currentLabel); + if(current==null) + numberOfSparqlQueries.put(currentLabel, new Integer(1)); + else { + numberOfSparqlQueries.put(currentLabel, new Integer(current.intValue()+1)); + } + } + + public static void print(int number){ - System.out.println(numberOfTriples); - TreeSet<String> s=new TreeSet<String>(); - for (String label : numberOfTriples.keySet()) { - s.add(label+"|"+numberOfTriples.get(label)); - System.out.println(label+"|"+numberOfTriples.get(label)); - System.out.println(label+"|"+ (numberOfTriples.get(label).intValue()/number)); - } - System.out.println(s); - + printInt(numberOfTriples,"triples"); + printIntAVG(numberOfTriples,number,"triples avg"); + System.out.println("*****************TIME"); - for (String label : timeCollecting.keySet()) { - System.out.println(label+"|"+timeCollecting.get(label)); - System.out.println(label+"|"+ (timeCollecting.get(label).intValue()/number)); - } + printLong(timeCollecting); + printLongAVG(timeCollecting,number); + System.out.println("*****************Queries"); + printInt(numberOfCachedSparqlQueries,"cached queries"); + printInt(numberOfSparqlQueries,"total queries"); + + + + + + + + + + } + public static void printIntAVG(HashMap<String, Integer> hm, int number, String str){ + for (int i = 0; i < order.size(); i++) { + String label=order.get(i); + try { + System.out.println(str+" "+label+"|"+ (hm.get(label).intValue()/number)); + } catch (Exception e) { } + } + } + + public static void printInt(HashMap<String, Integer> hm, String str){ + for (int i = 0; i < order.size(); i++) { + String label=order.get(i); + try { + System.out.println(str+" "+label+"|"+hm.get(label)); + } catch (Exception e) { } + } + } + + public static void printLongAVG(HashMap<String, Long> hm, int number){ + for (int i = 0; i < order.size(); i++) { + String label=order.get(i); + try { + System.out.println("timeCollect avg "+label+"|"+ (hm.get(label).intValue()/number)); + } catch (Exception e) { } + } + } + + public static void printLong(HashMap<String, Long> hm){ + for (int i = 0; i < order.size(); i++) { + String label=order.get(i); + try { + System.out.println("timeCollect "+label+"|"+hm.get(label)); + } catch (Exception e) { } + } + } + + public static void setCurrentLabel(String label) { currentLabel=label; + if (!order.contains(label))order.add(label); } + public static String getCurrentLabel() { + return currentLabel; + } + //stats This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2008-05-15 00:23:32
|
Revision: 848 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=848&view=rev Author: kurzum Date: 2008-05-14 17:23:29 -0700 (Wed, 14 May 2008) Log Message: ----------- evaluation Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/Configuration.java trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java trunk/src/dl-learner/org/dllearner/test/JenaHTTPTest.java trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java trunk/src/dl-learner/org/dllearner/utilities/SetManipulation.java trunk/src/dl-learner/org/dllearner/utilities/SimpleClock.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java trunk/src/dl-learner/org/dllearner/utilities/Statistics.java Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java 2008-05-14 16:15:43 UTC (rev 847) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java 2008-05-15 00:23:29 UTC (rev 848) @@ -28,6 +28,7 @@ import org.dllearner.kb.sparql.configuration.SparqlEndpoint; import org.dllearner.kb.sparql.configuration.SparqlQueryType; import org.dllearner.kb.sparql.datastructure.Node; +import org.dllearner.utilities.Statistics; /** * An object of this class encapsulates everything. @@ -40,7 +41,8 @@ private Configuration configuration; private TypedSparqlQuery typedSparqlQuery; private ExtractionAlgorithm extractionAlgorithm; - + + public void useConfiguration(SparqlQueryType SparqlQueryType, SparqlEndpoint SparqlEndpoint, Manipulator manipulator, int recursiondepth, boolean getAllSuperClasses, @@ -98,6 +100,7 @@ * ret.remove(tmp); System.out.println(ret.size()); } /*for (String str : * ret) { nt += str + "\n"; } */ + Statistics.addTriples(ret.size()); return nt.toString(); } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-05-14 16:15:43 UTC (rev 847) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-05-15 00:23:29 UTC (rev 848) @@ -49,6 +49,7 @@ import org.dllearner.parser.KBParser; import org.dllearner.reasoning.DIGConverter; import org.dllearner.reasoning.JenaOWLDIGConverter; +import org.dllearner.utilities.SimpleClock; import org.dllearner.utilities.StringTuple; /** @@ -60,6 +61,9 @@ */ public class SparqlKnowledgeSource extends KnowledgeSource { + //statistic + public int numberOfTriples=0; + //DEFAULTS static int recursionDepthDefault = 1; @@ -268,6 +272,7 @@ @Override public void init() { logger.info("SparqlModul: Collecting Ontology"); + SimpleClock sc=new SimpleClock(); /* * TODO remove when Jena works SparqlOntologyCollector oc= // new * SparqlOntologyCollector(Datastructures.setToArray(instances), // @@ -316,6 +321,7 @@ String ont = ""; // the actual extraction is started here ont = m.extract(instances); + logger.info("Number of cached SPARQL queries: " + m.getConfiguration().numberOfCachedSparqlQueries); logger.info("Number of uncached SPARQL queries: " @@ -352,7 +358,7 @@ } catch (Exception e) { e.printStackTrace(); } - logger.info("SparqlModul: ****Finished"); + logger.info("SparqlModul: ****Finished " + sc.getAndSet("") ); } /* Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/Configuration.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/Configuration.java 2008-05-14 16:15:43 UTC (rev 847) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/Configuration.java 2008-05-15 00:23:29 UTC (rev 848) @@ -34,7 +34,7 @@ private Manipulator manipulator; // the following needs to be moved to // class extraction algorithm or manipulator - private int recursiondepth = 2; + private int recursiondepth; private boolean getAllSuperClasses = true; private boolean closeAfterRecursion = true; public int numberOfUncachedSparqlQueries = 0; Added: trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/scripts/SPARQLExtractionEvaluation.java 2008-05-15 00:23:29 UTC (rev 848) @@ -0,0 +1,144 @@ +package org.dllearner.scripts; + +import java.net.URLEncoder; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.apache.log4j.ConsoleAppender; +import org.apache.log4j.FileAppender; +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.apache.log4j.SimpleLayout; +import org.dllearner.kb.sparql.Cache; +import org.dllearner.kb.sparql.SparqlKnowledgeSource; +import org.dllearner.kb.sparql.SparqlQuery; +import org.dllearner.kb.sparql.configuration.SparqlEndpoint; +import org.dllearner.utilities.AutomaticExampleFinderRolesSPARQL; +import org.dllearner.utilities.AutomaticExampleFinderSPARQL; +import org.dllearner.utilities.ConfWriter; +import org.dllearner.utilities.JenaResultSetConvenience; +import org.dllearner.utilities.LearnSparql; +import org.dllearner.utilities.SetManipulation; +import org.dllearner.utilities.SimpleClock; +import org.dllearner.utilities.Statistics; + +import com.hp.hpl.jena.query.ResultSet; + +public class SPARQLExtractionEvaluation { + + static Cache c; + static SparqlEndpoint se; + private static Logger logger = Logger.getRootLogger(); + + //static String standardSettings=""; + //static String algorithm="refexamples"; + + //vars + static boolean useRelated = true; + static boolean useSuperClasses = true; + static boolean useParallelClasses = true; + static int poslimit = 10; + static int neglimit = 10; + + /** + * @param args + */ + public static void main(String[] args) { + init(); + //logger.setLevel(Level.TRACE); + logger.setLevel(Level.WARN); + Logger.getLogger(SparqlKnowledgeSource.class).setLevel(Level.WARN); + //System.out.println(Logger.getLogger(SparqlQuery.class).getLevel()); + SimpleClock sc=new SimpleClock(); + LocalDBpediaEvaluation(); + + sc.printAndSet("Finished"); + + } + + + static void LocalDBpediaEvaluation(){ + se = SparqlEndpoint.EndpointLOCALDBpedia(); + int number=1; + SortedSet<String> concepts = new TreeSet<String>(); + SortedSet<String> tmpSet=selectDBpediaConcepts(number); + + for (String string : tmpSet) { + concepts.add("\""+string+"\""); + } + + SortedSet<String> posExamples = new TreeSet<String>(); + SortedSet<String> negExamples = new TreeSet<String>(); + + String url = "http://139.18.2.37:8890/sparql"; + int recursiondepth=0; + boolean closeAfterRecursion=false; + + for(int i=0;i<8;i++) { + if(i==0){;} + else if(closeAfterRecursion) { + closeAfterRecursion=false; + recursiondepth++; + } + else { + closeAfterRecursion=true; + } + Statistics.setCurrentLabel(recursiondepth+""+((closeAfterRecursion)?"+":"")); + + + for (String oneConcept : concepts) { + AutomaticExampleFinderSPARQL ae= new AutomaticExampleFinderSPARQL( se); + + ae.initDBpedia(oneConcept, useRelated, useSuperClasses,useParallelClasses, poslimit, neglimit); + posExamples = ae.getPosExamples(); + negExamples = ae.getNegExamples(); + + + LearnSparql ls = new LearnSparql(); + TreeSet<String> igno = new TreeSet<String>(); + System.out.println(oneConcept); + + ls.learnDBpedia(posExamples, negExamples, url,igno,recursiondepth, closeAfterRecursion); + + + } + } + Statistics.print(number); + } + + + + public static void init() { + + SimpleLayout layout = new SimpleLayout(); + // create logger (a simple logger which outputs + // its messages to the console) + FileAppender fileAppender =null; ; + try{ + fileAppender = new FileAppender(layout,"the_log.txt",false); + }catch (Exception e) {e.printStackTrace();} + + ConsoleAppender consoleAppender = new ConsoleAppender(layout); + logger.removeAllAppenders(); + logger.addAppender(consoleAppender); + logger.addAppender(fileAppender); + + c = new Cache(); + + + } + + public static SortedSet<String> selectDBpediaConcepts(int number){ + String query = "SELECT DISTINCT ?concept WHERE { \n" + + "[] a ?concept .FILTER (regex(str(?concept),'yago'))" + + " \n} LIMIT "+1000+" \n"; // + + String JSON = (c.executeSparqlQuery(new SparqlQuery(query, se))); + ResultSet rs =SparqlQuery.JSONtoResultSet(JSON); + JenaResultSetConvenience rsc = new JenaResultSetConvenience(rs); + return SetManipulation.fuzzyShrink(rsc.getStringListForVariable("concept"),number); + } + + + +} Modified: trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-14 16:15:43 UTC (rev 847) +++ trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-15 00:23:29 UTC (rev 848) @@ -1,7 +1,6 @@ package org.dllearner.scripts; import java.net.URLEncoder; -import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; @@ -21,6 +20,7 @@ import org.dllearner.utilities.LearnSparql; import org.dllearner.utilities.SetManipulation; import org.dllearner.utilities.SimpleClock; +import org.dllearner.utilities.Statistics; import com.hp.hpl.jena.query.ResultSet; @@ -159,6 +159,10 @@ concepts.remove(concepts.first()); concepts.remove(concepts.first()); concepts.remove(concepts.first()); + concepts.remove(concepts.first()); + concepts.remove(concepts.first()); + concepts.remove(concepts.first()); + //concepts.remove(concepts.first()); //concepts.add("(\"http://dbpedia.org/class/yago/HeadOfState110164747\" AND (\"http://dbpedia.org/class/yago/Negotiator110351874\" AND \"http://dbpedia.org/class/yago/Representative110522035\"))"); //concepts.add("\"http://dbpedia.org/class/yago/Person100007846\""); //concepts.add("\"http://dbpedia.org/class/yago/FieldMarshal110086821\""); @@ -174,46 +178,51 @@ //HashMap<String, String> result2 = new HashMap<String, String>(); //System.out.println(concepts.first()); //logger.setLevel(Level.TRACE); + String concept=concepts.first(); int i=0; + Statistics.setCurrentLabel("0"); + int recursiondepth=0; + boolean closeAfterRecursion=false; + int numberOfTriples = 0; for (String oneConcept : concepts) { - if(i>=3)break; - i++; - AutomaticExampleFinderSPARQL ae= new AutomaticExampleFinderSPARQL( se); + AutomaticExampleFinderSPARQL ae= new AutomaticExampleFinderSPARQL( se); useRelated = true; useSuperClasses = true; - useParallelClasses = true; - poslimit=2; - neglimit=2; - ae.initDBpedia(oneConcept, useRelated, useSuperClasses,useParallelClasses, poslimit, neglimit); + useParallelClasses = false; + + poslimit=10; + neglimit=10; + ae.initDBpedia(concept, useRelated, useSuperClasses,useParallelClasses, poslimit, neglimit); posExamples = ae.getPosExamples(); negExamples = ae.getNegExamples(); + - // System.out.println(posExamples); - // System.out.println(negExamples); - - String tmp = concepts.first().replace("http://dbpedia.org/resource/Category:", "").replace("\"",""); + /*String tmp = concepts.first().replace("http://dbpedia.org/resource/Category:", "").replace("\"",""); tmp = tmp.replace("http://dbpedia.org/class/yago/", ""); tmp = tmp.replace("http://dbpedia.org/property/", ""); String confname = ""; try{ confname = URLEncoder.encode(tmp, "UTF-8")+".conf"; - }catch (Exception e) {e.printStackTrace();} + }catch (Exception e) {e.printStackTrace();}*/ // //ConfWriter cf=new ConfWriter(); //cf.addToStats("relearned concept: "+concepts.first()); - System.out.println(confname); + //System.out.println(confname); LearnSparql ls = new LearnSparql(); TreeSet<String> igno = new TreeSet<String>(); System.out.println(oneConcept); //igno.add(oneConcept.replaceAll("\"", "")); - ls.learnDBpedia(posExamples, negExamples, url,igno,1); - System.out.println("AAAAAAAA"); + + ls.learnDBpedia(posExamples, negExamples, url,igno,recursiondepth, closeAfterRecursion); + + //System.out.println("AAAAAAAA"); //System.exit(0); //"relearned concept: "; //cf.writeSPARQL(confname, posExamples, negExamples, url, new TreeSet<String>(),standardSettings,algorithm); // } + //Statistics.print(); } @@ -272,7 +281,7 @@ public static SortedSet<String> selectDBpediaConcepts(int number){ String query = "SELECT DISTINCT ?concept WHERE { \n" + "[] a ?concept .FILTER (regex(str(?concept),'yago'))" + - " \n} LIMIT "+number+" \n"; + " \n} \n"; //LIMIT "+number+" String JSON = (c.executeSparqlQuery(new SparqlQuery(query, se))); ResultSet rs =SparqlQuery.JSONtoResultSet(JSON); Modified: trunk/src/dl-learner/org/dllearner/test/JenaHTTPTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/JenaHTTPTest.java 2008-05-14 16:15:43 UTC (rev 847) +++ trunk/src/dl-learner/org/dllearner/test/JenaHTTPTest.java 2008-05-15 00:23:29 UTC (rev 848) @@ -17,26 +17,34 @@ "WHERE { <http://dbpedia.org/resource/Leipzig> <http://www.w3.org/2000/01/rdf-schema#label> ?object}\n"; double time=0; - for (int i=0; i<101; i++) + /*for (int i=0; i<101; i++) { if (i!=0) time+=JenaHTTPTest.httpQuery(query); } time=time/100; System.out.println("Durchschnittliche Zeit f�r eine Anfrage per Http-Methode: "+time); - + */ time=0; for (int i=0; i<101; i++) { if (i!=0) time+=JenaHTTPTest.jenaQuery(query); } time=time/100; - System.out.println("Durchschnittliche Zeit f�r eine Anfrage per Jena-Methode: "+time); + System.out.println("Durchschnittliche Zeit f�r eine Anfrage DBpedia: "+time); + + time=0; + for (int i=0; i<101; i++) + { + if (i!=0) time+=JenaHTTPTest.jenaLocalQuery(query); + } + time=time/100; + System.out.println("Durchschnittliche Zeit f�r eine Anfrage per DBpedia LOCAL: "+time); } private static double jenaQuery(String query) { double start=System.currentTimeMillis(); - QueryEngineHTTP queryExecution=new QueryEngineHTTP("http://localhost:8890/sparql",query); + QueryEngineHTTP queryExecution=new QueryEngineHTTP("http://dbpedia.openlinksw.com:8890/sparql",query); queryExecution.addDefaultGraph("http://dbpedia.org"); // Jena access to DBpedia SPARQL endpoint // ResultSet rs = @@ -45,6 +53,18 @@ return ((end-start)/1000); } + private static double jenaLocalQuery(String query) + { + double start=System.currentTimeMillis(); + QueryEngineHTTP queryExecution=new QueryEngineHTTP("http://139.18.2.37:8890/sparql",query); + queryExecution.addDefaultGraph("http://dbpedia.org"); + // Jena access to DBpedia SPARQL endpoint + // ResultSet rs = + queryExecution.execSelect(); + double end=System.currentTimeMillis(); + return ((end-start)/1000); + } + private static double httpQuery(String query) throws Exception { char value[]={13,10}; Modified: trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java 2008-05-14 16:15:43 UTC (rev 847) +++ trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java 2008-05-15 00:23:29 UTC (rev 848) @@ -21,6 +21,7 @@ private SparqlEndpoint se; private SortedSet<String> posExamples; private SortedSet<String> negExamples; + private int limit=2000; public AutomaticExampleFinderSPARQL(SparqlEndpoint se){ @@ -98,10 +99,10 @@ private void dbpediaMakePositiveExamplesFromConcept(String concept){ logger.debug("making Positive Examples from Concept: "+concept); if(concept.contains("http://dbpedia.org/resource/Category:")) { - this.posExamples = new JenaResultSetConvenience(dbpediaQuerySKOSConcept(concept,0)) + this.posExamples = new JenaResultSetConvenience(dbpediaQuerySKOSConcept(concept,limit)) .getStringListForVariable("subject"); }else { - this.posExamples = new JenaResultSetConvenience(queryConcept(concept,0)) + this.posExamples = new JenaResultSetConvenience(queryConcept(concept,limit)) .getStringListForVariable("subject"); } logger.debug(" pos Example size: "+posExamples.size()); @@ -195,8 +196,8 @@ logger.debug("making neg Examples from "+superClasses.size()+" superclasses"); JenaResultSetConvenience rsc; for (String oneSuperClass : superClasses) { - - rsc = new JenaResultSetConvenience(queryConcept("\""+oneSuperClass+"\"", 0)); + logger.debug(oneSuperClass); + rsc = new JenaResultSetConvenience(queryConcept("\""+oneSuperClass+"\"", limit)); this.negExamples.addAll(rsc.getStringListForVariable("subject")); } logger.debug(" neg Example size: "+negExamples.size()); @@ -223,8 +224,8 @@ } logger.debug("getting negExamples from "+classes.size()+" parallel classes"); for (String oneClass : classes) { - - rsc = new JenaResultSetConvenience(queryConcept("\""+oneClass+"\"",0)); + logger.debug(oneClass); + rsc = new JenaResultSetConvenience(queryConcept("\""+oneClass+"\"",limit)); this.negExamples.addAll(rsc.getStringListForVariable("subject")); } logger.debug("neg Example size: "+negExamples.size()); @@ -241,15 +242,17 @@ String query = ""; for (; depth != 0 ; depth--) { for (String oneSuperClass : superClasses) { - //logger.debug("one"+oneSuperClass); + //tmp = oneSuperClass.replace("\"", ""); query = "SELECT * WHERE { \n" + "<" + oneSuperClass + "> " + "<http://www.w3.org/2000/01/rdf-schema#subClassOf> ?superclass. \n" + "}"; + String JSON = (c.executeSparqlQuery(new SparqlQuery(query, se))); ResultSet rs =SparqlQuery.JSONtoResultSet(JSON); rsc = new JenaResultSetConvenience(rs); tmpset.addAll(rsc.getStringListForVariable("superclass")); + } ret.addAll(tmpset); //logger.debug(ret); Modified: trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java 2008-05-14 16:15:43 UTC (rev 847) +++ trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java 2008-05-15 00:23:29 UTC (rev 848) @@ -18,11 +18,13 @@ import org.dllearner.reasoning.FastInstanceChecker; public class LearnSparql { - + public SimpleClock sc= new SimpleClock(); + + public void learnDBpedia(SortedSet<String> posExamples,SortedSet<String> negExamples, - String uri, SortedSet<String> ignoredConcepts, int recursiondepth){ + String uri, SortedSet<String> ignoredConcepts, int recursiondepth, boolean closeAfterRecursion){ ComponentManager cm = ComponentManager.getInstance(); @@ -41,12 +43,16 @@ cm.applyConfigEntry(ks, "instances",instances); cm.applyConfigEntry(ks, "url",uri); cm.applyConfigEntry(ks, "recursionDepth",recursiondepth); + cm.applyConfigEntry(ks, "closeAfterRecursion",closeAfterRecursion); cm.applyConfigEntry(ks, "predefinedFilter","YAGOSKOS"); cm.applyConfigEntry(ks, "predefinedEndpoint","DBPEDIA"); //cm.applyConfigEntry(ks, "format","KB"); + sc.setTime(); ks.init(); + Statistics.addTimeCollecting(sc.getTime()); sources.add(ks); + if (true)return; //System.out.println(ks.getNTripleURL()); // @@ -83,6 +89,7 @@ System.out.println("start learning"); la.start(); + //System.out.println("best"+la(20)); //((ExampleBasedROLComponent)la).printBestSolutions(10000); Modified: trunk/src/dl-learner/org/dllearner/utilities/SetManipulation.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/SetManipulation.java 2008-05-14 16:15:43 UTC (rev 847) +++ trunk/src/dl-learner/org/dllearner/utilities/SetManipulation.java 2008-05-15 00:23:29 UTC (rev 848) @@ -17,6 +17,7 @@ * @return */ public static SortedSet<String> fuzzyShrink(SortedSet<String> set, int limit) { + if (set.size()<=limit)return set; SortedSet<String> ret = new TreeSet<String>(); Random r = new Random(); double treshold = ((double)limit)/set.size(); @@ -24,6 +25,7 @@ //System.out.println("treshold"+allRetrieved.size()); //System.out.println("treshold"+treshold); + while(ret.size()< limit){ for (String oneInd : set) { if(r.nextDouble()<treshold) { Modified: trunk/src/dl-learner/org/dllearner/utilities/SimpleClock.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/SimpleClock.java 2008-05-14 16:15:43 UTC (rev 847) +++ trunk/src/dl-learner/org/dllearner/utilities/SimpleClock.java 2008-05-15 00:23:29 UTC (rev 848) @@ -20,9 +20,9 @@ * and resets the clock */ public void printAndSet() { - long now=System.currentTimeMillis(); - System.out.println("needed "+(now-time)+" ms"); - time=now; + + System.out.println("needed "+getTime()+" ms"); + setTime(); } @@ -32,15 +32,15 @@ * @param s String for printing */ public void printAndSet(String s) { - long now=System.currentTimeMillis(); - System.out.println(s+" needed "+(now-time)+" ms"); - time=now; + + System.out.println(s+" needed "+getTime()+" ms"); + setTime(); } public String getAndSet(String s) { - long now=System.currentTimeMillis(); - String ret = s+" needed "+(now-time)+" ms"; - time=now; + + String ret = s+" needed "+getTime()+" ms"; + setTime(); return ret; } @@ -52,13 +52,17 @@ * @param s String for printing */ public void print(String s) { - long now=System.currentTimeMillis(); - System.out.println(s+" needed "+(now-time)+" ms"); + System.out.println(s+" needed "+getTime()+" ms"); + } public void setTime() { time=System.currentTimeMillis(); } + public long getTime() { + long now=System.currentTimeMillis(); + return now-time; + } } Added: trunk/src/dl-learner/org/dllearner/utilities/Statistics.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/Statistics.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/utilities/Statistics.java 2008-05-15 00:23:29 UTC (rev 848) @@ -0,0 +1,68 @@ +package org.dllearner.utilities; + + +import java.util.HashMap; +import java.util.TreeSet; + + +public class Statistics { + + private static String currentLabel=""; + private static HashMap<String, Integer> numberOfTriples = new HashMap<String, Integer>(); + private static HashMap<String, Long> timeCollecting = new HashMap<String, Long>(); + + + public static void addTriples(int value) { + Integer current = numberOfTriples.get(currentLabel); + if(current==null) + numberOfTriples.put(currentLabel, new Integer(0)); + else { + numberOfTriples.put(currentLabel, new Integer(current.intValue()+value)); + } + + } + + public static void addTimeCollecting(long value) { + Long current = timeCollecting.get(currentLabel); + if(current==null) + timeCollecting.put(currentLabel, new Long(0)); + else { + timeCollecting.put(currentLabel, new Long(current.longValue()+value)); + } + } + + public static void print(int number){ + System.out.println(numberOfTriples); + TreeSet<String> s=new TreeSet<String>(); + for (String label : numberOfTriples.keySet()) { + s.add(label+"|"+numberOfTriples.get(label)); + System.out.println(label+"|"+numberOfTriples.get(label)); + System.out.println(label+"|"+ (numberOfTriples.get(label).intValue()/number)); + + } + System.out.println(s); + + System.out.println("*****************TIME"); + for (String label : timeCollecting.keySet()) { + System.out.println(label+"|"+timeCollecting.get(label)); + System.out.println(label+"|"+ (timeCollecting.get(label).intValue()/number)); + } + + + } + + public static void setCurrentLabel(String label) { + currentLabel=label; + } + + + //stats + + + + + + + + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2008-05-14 16:20:26
|
Revision: 846 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=846&view=rev Author: kurzum Date: 2008-05-14 09:09:37 -0700 (Wed, 14 May 2008) Log Message: ----------- small musicbrainz example Added Paths: ----------- trunk/examples/sparql/musicbrainz.conf Added: trunk/examples/sparql/musicbrainz.conf =================================================================== --- trunk/examples/sparql/musicbrainz.conf (rev 0) +++ trunk/examples/sparql/musicbrainz.conf 2008-05-14 16:09:37 UTC (rev 846) @@ -0,0 +1,48 @@ + + +/** + + http://www.govtrack.us/sparql.xpd?query=SELECT * WHERE { <http://www.rdfabout.com/rdf/usgov/congress/people/A000360> ?predicate ?object. FILTER( (!isLiteral(?object))).} + +**/ + +sparql.recursionDepth = 4; +sparql.predefinedEndpoint = "MUSICBRAINZ"; +sparql.predefinedFilter = "YAGO"; + +sparql.useLits=true; + +algorithm = refexamples; +//reasoner = owlAPI; + reasoner = fastInstanceChecker; + + + refexamples.useAllConstructor = false; + refexamples.useExistsConstructor = true; + refexamples.useCardinalityRestrictions = false; +refexamples.useNegation = false; + +import("http://dbtune.org/musicbrainz/sparql","SPARQL"); + + +/** +sparql.instances = { +"http://zitgist.com/music/artist/a066b730-3809-4b39-a091-2297d40b51db", +"http://zitgist.com/music/artist/cf0f4547-ffbd-4011-98ad-0bec9ba022db" +}; + ++"http://zitgist.com/music/artist/a066b730-3809-4b39-a091-2297d40b51db" +-"http://zitgist.com/music/artist/cf0f4547-ffbd-4011-98ad-0bec9ba022db" + + +http://dbtune.org/musicbrainz/resource/track/ +**/ + +sparql.instances = { +"http://dbtune.org/musicbrainz/resource/artist/a066b730-3809-4b39-a091-2297d40b51db", +"http://dbtune.org/musicbrainz/resource/artist/cf0f4547-ffbd-4011-98ad-0bec9ba022db" +}; + ++"http://dbtune.org/musicbrainz/resource/artist/a066b730-3809-4b39-a091-2297d40b51db" +-"http://dbtune.org/musicbrainz/resource/artist/cf0f4547-ffbd-4011-98ad-0bec9ba022db" + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2008-05-14 16:16:07
|
Revision: 847 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=847&view=rev Author: sknappe Date: 2008-05-14 09:15:43 -0700 (Wed, 14 May 2008) Log Message: ----------- Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/algorithms/DBpediaNavigationSuggestor.java Modified: trunk/src/dl-learner/org/dllearner/algorithms/DBpediaNavigationSuggestor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/DBpediaNavigationSuggestor.java 2008-05-14 16:09:37 UTC (rev 846) +++ trunk/src/dl-learner/org/dllearner/algorithms/DBpediaNavigationSuggestor.java 2008-05-14 16:15:43 UTC (rev 847) @@ -24,18 +24,25 @@ import java.util.LinkedList; import java.util.SortedSet; +import org.dllearner.algorithms.refexamples.ExampleBasedROLComponent; +import org.dllearner.algorithms.refexamples.ExampleBasedROLearner; import org.dllearner.core.ComponentInitException; import org.dllearner.core.LearningAlgorithm; import org.dllearner.core.LearningProblem; import org.dllearner.core.ReasoningService; import org.dllearner.core.Score; +import org.dllearner.core.config.BooleanConfigOption; +import org.dllearner.core.config.CommonConfigOptions; import org.dllearner.core.config.ConfigEntry; import org.dllearner.core.config.ConfigOption; +import org.dllearner.core.config.DoubleConfigOption; +import org.dllearner.core.config.IntegerConfigOption; import org.dllearner.core.config.InvalidConfigOptionValueException; import org.dllearner.core.config.StringConfigOption; import org.dllearner.core.owl.Description; import org.dllearner.core.owl.Individual; import org.dllearner.learningproblems.PosNegDefinitionLP; +import org.dllearner.learningproblems.PosNegLP; import org.dllearner.learningproblems.PosOnlyDefinitionLP; /** @@ -51,10 +58,18 @@ public class DBpediaNavigationSuggestor extends LearningAlgorithm { private ReasoningService rs; - private String filename; + private ExampleBasedROLComponent learner; + private static String defaultSearchTreeFile = "log/searchTree.txt"; public DBpediaNavigationSuggestor(LearningProblem learningProblem, ReasoningService rs) { this.rs=rs; + if(learningProblem instanceof PosNegLP) { + PosNegLP lp = (PosNegLP) learningProblem; + this.learner=new ExampleBasedROLComponent(lp, rs); + } else if(learningProblem instanceof PosOnlyDefinitionLP) { + PosOnlyDefinitionLP lp = (PosOnlyDefinitionLP) learningProblem; + this.learner=new ExampleBasedROLComponent(lp, rs); + } } public static Collection<Class<? extends LearningProblem>> supportedLearningProblems() { @@ -73,7 +88,41 @@ public static Collection<ConfigOption<?>> createConfigOptions() { Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); - options.add(new StringConfigOption("dumpFileName", "name of the file for the dump")); + options.add(new BooleanConfigOption("writeSearchTree", "specifies whether to write a search tree", false)); + options.add(new StringConfigOption("searchTreeFile","file to use for the search tree", defaultSearchTreeFile)); + options.add(new BooleanConfigOption("replaceSearchTree","specifies whether to replace the search tree in the log file after each run or append the new search tree", false)); + StringConfigOption heuristicOption = new StringConfigOption("heuristic", "specifiy the heuristic to use", "lexicographic"); + heuristicOption.setAllowedValues(new String[] {"lexicographic", "flexible"}); + options.add(heuristicOption); + options.add(new BooleanConfigOption("applyAllFilter", "usage of equivalence ALL R.C AND ALL R.D = ALL R.(C AND D)", true)); + options.add(new BooleanConfigOption("applyExistsFilter", "usage of equivalence EXISTS R.C OR EXISTS R.D = EXISTS R.(C OR D)", true)); + options.add(new BooleanConfigOption("useTooWeakList", "try to filter out too weak concepts without sending them to the reasoner", true)); + options.add(new BooleanConfigOption("useOverlyGeneralList", "try to find overly general concept without sending them to the reasoner", true)); + options.add(new BooleanConfigOption("useShortConceptConstruction", "shorten concept to see whether they already exist", true)); + DoubleConfigOption horizExp = new DoubleConfigOption("horizontalExpansionFactor", "horizontal expansion factor (see publication for description)", 0.6); + horizExp.setLowerLimit(0.0); + horizExp.setUpperLimit(1.0); + options.add(horizExp); + options.add(new BooleanConfigOption("improveSubsumptionHierarchy", "simplify subsumption hierarchy to reduce search space (see publication for description)", true)); + // allowed/ignored concepts/roles could also be a reasoner option (?) + options.add(CommonConfigOptions.allowedConcepts()); + options.add(CommonConfigOptions.ignoredConcepts()); + options.add(CommonConfigOptions.allowedRoles()); + options.add(CommonConfigOptions.ignoredRoles()); + options.add(CommonConfigOptions.useAllConstructor()); + options.add(CommonConfigOptions.useExistsConstructor()); + options.add(CommonConfigOptions.useCardinalityRestrictions()); + options.add(CommonConfigOptions.useNegation()); + options.add(CommonConfigOptions.useBooleanDatatypes()); + options.add(CommonConfigOptions.maxExecutionTimeInSeconds()); + options.add(CommonConfigOptions.minExecutionTimeInSeconds()); + options.add(CommonConfigOptions.guaranteeXgoodDescriptions()); + options.add(CommonConfigOptions.getLogLevel()); + DoubleConfigOption noisePercentage = new DoubleConfigOption("noisePercentage", "the (approximated) percentage of noise within the examples"); + noisePercentage.setLowerLimit(0); + noisePercentage.setUpperLimit(100); + options.add(noisePercentage); + options.add(new StringConfigOption("startClass", "the named class which should be used to start the algorithm (GUI: needs a widget for selecting a class)")); return options; } @@ -82,41 +131,32 @@ */ @Override public <T> void applyConfigEntry(ConfigEntry<T> entry) throws InvalidConfigOptionValueException { - String name = entry.getOptionName(); - if (name.equals("dumpFileName")) - filename = (String) entry.getValue(); + learner.applyConfigEntry(entry); } @Override public void init() throws ComponentInitException { - // TODO Auto-generated method stub - SortedSet<Individual> list=rs.getIndividuals(); - Iterator<Individual> iter=list.iterator(); - while (iter.hasNext()) - System.out.println(iter.next().toString()); + learner.init(); } @Override public void start() { - // TODO Auto-generated method stub + learner.start(); } @Override public void stop() { - // TODO Auto-generated method stub - + learner.stop(); } @Override public Description getBestSolution() { - // TODO Auto-generated method stub - return null; + return learner.getBestSolution(); } @Override public Score getSolutionScore() { - // TODO Auto-generated method stub - return null; + return learner.getSolutionScore(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2008-05-14 16:09:12
|
Revision: 845 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=845&view=rev Author: kurzum Date: 2008-05-14 09:07:24 -0700 (Wed, 14 May 2008) Log Message: ----------- added local SPARQL endpoint Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/cli/Start.java trunk/src/dl-learner/org/dllearner/core/owl/SubsumptionHierarchy.java trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java Modified: trunk/src/dl-learner/org/dllearner/cli/Start.java =================================================================== --- trunk/src/dl-learner/org/dllearner/cli/Start.java 2008-05-14 15:18:05 UTC (rev 844) +++ trunk/src/dl-learner/org/dllearner/cli/Start.java 2008-05-14 16:07:24 UTC (rev 845) @@ -125,7 +125,8 @@ logger.removeAllAppenders(); logger.addAppender(consoleAppender); logger.addAppender(fileAppender); - logger.setLevel(Level.DEBUG); + logger.setLevel(Level.TRACE); + //Logger.getLogger(KnowledgeSource.class).setLevel(Level.TRACE); Start start = null; start = new Start(file); Modified: trunk/src/dl-learner/org/dllearner/core/owl/SubsumptionHierarchy.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/owl/SubsumptionHierarchy.java 2008-05-14 15:18:05 UTC (rev 844) +++ trunk/src/dl-learner/org/dllearner/core/owl/SubsumptionHierarchy.java 2008-05-14 16:07:24 UTC (rev 845) @@ -76,7 +76,7 @@ SortedSet<Description> moreGeneral = subsumptionHierarchyUp.get(c); //RBC if(moreGeneral != null && moreGeneral.size()>0) { - System.out.println(moreGeneral); + //System.out.println(moreGeneral); Description chosenParent = moreGeneral.first(); hierarchyDownNew.get(chosenParent).add(c); } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-05-14 15:18:05 UTC (rev 844) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-05-14 16:07:24 UTC (rev 845) @@ -88,6 +88,8 @@ if (name.equals("DBPEDIA")) return EndpointDBpedia(); + if (name.equals("LOCALDBPEDIA")) + return EndpointLOCALDBpedia(); if (name.equals("LOCALJOSECKI")) return EndpointlocalJoseki(); if (name.equals("GOVTRACK")) @@ -104,6 +106,8 @@ return EndpointWorldFactBook(); if (name.equals("DBLP")) return EndpointDBLP(); + if (name.equals("MUSICBRAINZ")) + return EndpointMusicbrainz(); return null; } @@ -142,6 +146,18 @@ defaultGraphURIs.add("http://dbpedia.org"); return new SparqlEndpoint(u, defaultGraphURIs, new LinkedList<String>()); } + + public static SparqlEndpoint EndpointLOCALDBpedia() { + URL u = null; + try { + u = new URL("http://139.18.2.37:8890/sparql"); + } catch (Exception e) { + e.printStackTrace(); + } + LinkedList<String> defaultGraphURIs=new LinkedList<String>(); + defaultGraphURIs.add("http://dbpedia.org"); + return new SparqlEndpoint(u, defaultGraphURIs, new LinkedList<String>()); + } public static SparqlEndpoint EndpointlocalJoseki() { URL u = null; Modified: trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-14 15:18:05 UTC (rev 844) +++ trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-14 16:07:24 UTC (rev 845) @@ -6,6 +6,7 @@ import java.util.TreeSet; import org.apache.log4j.ConsoleAppender; +import org.apache.log4j.FileAppender; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.SimpleLayout; @@ -145,7 +146,7 @@ } static void DBpedia(){ - se = SparqlEndpoint.EndpointDBpedia(); + se = SparqlEndpoint.EndpointLOCALDBpedia(); //concepts.add("(EXISTS \"monarch\".TOP AND EXISTS \"predecessor\".(\"Knight\" OR \"Secretary\"))"); SortedSet<String> concepts = new TreeSet<String>(); @@ -156,6 +157,8 @@ } concepts.remove(concepts.first()); concepts.remove(concepts.first()); + concepts.remove(concepts.first()); + concepts.remove(concepts.first()); //concepts.add("(\"http://dbpedia.org/class/yago/HeadOfState110164747\" AND (\"http://dbpedia.org/class/yago/Negotiator110351874\" AND \"http://dbpedia.org/class/yago/Representative110522035\"))"); //concepts.add("\"http://dbpedia.org/class/yago/Person100007846\""); //concepts.add("\"http://dbpedia.org/class/yago/FieldMarshal110086821\""); @@ -166,21 +169,22 @@ SortedSet<String> posExamples = new TreeSet<String>(); SortedSet<String> negExamples = new TreeSet<String>(); String url = "http://dbpedia.openlinksw.com:8890/sparql"; + url = "http://139.18.2.37:8890/sparql"; //HashMap<String, ResultSet> result = new HashMap<String, ResultSet>(); //HashMap<String, String> result2 = new HashMap<String, String>(); //System.out.println(concepts.first()); //logger.setLevel(Level.TRACE); int i=0; for (String oneConcept : concepts) { - if(i>=2)break; + if(i>=3)break; i++; AutomaticExampleFinderSPARQL ae= new AutomaticExampleFinderSPARQL( se); - useRelated = false; - useSuperClasses=true; - useParallelClasses=false; + useRelated = true; + useSuperClasses = true; + useParallelClasses = true; poslimit=2; neglimit=2; - ae.initDBpedia(concepts.first(), useRelated, useSuperClasses,useParallelClasses, poslimit, neglimit); + ae.initDBpedia(oneConcept, useRelated, useSuperClasses,useParallelClasses, poslimit, neglimit); posExamples = ae.getPosExamples(); negExamples = ae.getNegExamples(); @@ -202,7 +206,7 @@ TreeSet<String> igno = new TreeSet<String>(); System.out.println(oneConcept); //igno.add(oneConcept.replaceAll("\"", "")); - ls.learnDBpedia(posExamples, negExamples, "http://dbpedia.openlinksw.com:8890/sparql",igno,1); + ls.learnDBpedia(posExamples, negExamples, url,igno,1); System.out.println("AAAAAAAA"); //System.exit(0); //"relearned concept: "; @@ -247,13 +251,18 @@ public static void init() { - + SimpleLayout layout = new SimpleLayout(); // create logger (a simple logger which outputs // its messages to the console) - SimpleLayout layout = new SimpleLayout(); + FileAppender fileAppender =null; ; + try{ + fileAppender = new FileAppender(layout,"the_log.txt",false); + }catch (Exception e) {e.printStackTrace();} + ConsoleAppender consoleAppender = new ConsoleAppender(layout); logger.removeAllAppenders(); logger.addAppender(consoleAppender); + logger.addAppender(fileAppender); logger.setLevel(Level.DEBUG); c = new Cache(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2008-05-14 15:18:24
|
Revision: 844 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=844&view=rev Author: sknappe Date: 2008-05-14 08:18:05 -0700 (Wed, 14 May 2008) Log Message: ----------- Modified Paths: -------------- trunk/src/dbpedia-navigator/index.php Modified: trunk/src/dbpedia-navigator/index.php =================================================================== --- trunk/src/dbpedia-navigator/index.php 2008-05-14 15:16:41 UTC (rev 843) +++ trunk/src/dbpedia-navigator/index.php 2008-05-14 15:18:05 UTC (rev 844) @@ -241,10 +241,7 @@ <li>[if possible] Find an easy way to validate HTML/JS in AJAX applications.</li> <li>[maybe] Would be interesting to somehow view the Wikipedia article (without the left navigation part, tabs etc.) as an overlay, because the Wikipedia article will almost always be a human-friendlier - description of an object compared to the extracted one.</li> - <li>Handle redirect for example if you look for 'Deutschland'</li> - <li>Ich habe mir gestern deswegen mal angeschaut welche fertigen SPARQL-APIs es gibt. Eine der verbreitesten und deshalb auch aktiven Projekt ist Jena. F�r uns relevant ist das ARQ-Teilprojekt: http://jena.sourceforge.net/ARQ/. - </li> + description of an object compared to the extracted one.</li> </ul> </div> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2008-05-14 15:17:01
|
Revision: 841 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=841&view=rev Author: sknappe Date: 2008-05-14 08:16:00 -0700 (Wed, 14 May 2008) Log Message: ----------- Modified Paths: -------------- trunk/src/dbpedia-navigator/DLLearnerConnection.php trunk/src/dbpedia-navigator/ajaxfunctions.php trunk/src/dbpedia-navigator/index.php Modified: trunk/src/dbpedia-navigator/DLLearnerConnection.php =================================================================== --- trunk/src/dbpedia-navigator/DLLearnerConnection.php 2008-05-14 14:26:34 UTC (rev 840) +++ trunk/src/dbpedia-navigator/DLLearnerConnection.php 2008-05-14 15:16:00 UTC (rev 841) @@ -44,9 +44,9 @@ { $this->client->applyConfigEntryInt($this->id, $this->ksID, "recursionDepth",1); $this->client->applyConfigEntryStringArray($this->id, $this->ksID, "instances", array_merge($posExamples,$negExamples)); - $this->client->applyConfigEntryInt($this->id, $this->ksID, "predefinedFilter", 1); - $this->client->applyConfigEntryInt($this->id, $this->ksID, "predefinedEndpoint", 1); - + $this->client->applyConfigEntryString($this->id, $this->ksID, "predefinedFilter", "YAGO"); + $this->client->applyConfigEntryString($this->id, $this->ksID, "predefinedEndpoint", "DBPEDIA"); + $this->client->setReasoner($this->id, "dig"); if(empty($negExamples)) $this->client->setLearningProblem($this->id, "posOnlyDefinition"); Modified: trunk/src/dbpedia-navigator/ajaxfunctions.php =================================================================== --- trunk/src/dbpedia-navigator/ajaxfunctions.php 2008-05-14 14:26:34 UTC (rev 840) +++ trunk/src/dbpedia-navigator/ajaxfunctions.php 2008-05-14 15:16:00 UTC (rev 841) @@ -220,7 +220,8 @@ $objResponse->assign("ArticleTitle","innerHTML",$artTitle); $objResponse->assign("lastarticles","innerHTML",$lastArticles); $objResponse->assign('Positives','innerHTML',$posInterests); - $objResponse->assign('Negatives','innerHTML',$negInterests); + $objResponse->assign('Negatives','innerHTML',$negInterests); + $objResponse->call('xajax_learnConcept'); return $objResponse; } @@ -394,7 +395,7 @@ foreach ($concepts as $con){ $concept.="<tr><td><a href=\"\" onclick=\"xajax_getSubjectsFromConcept('".urlencode($con)."');return false;\" onMouseOver=\"showdiv('div".$i."');showdiv('ConceptBox');\" onMouseOut=\"hidediv('div".$i."');hidediv('ConceptBox');\" />".$con."</a></td></tr>"; //put information about concepts in divs - $conceptinformation.="<div id=\"div".$i."\" style=\"display:none\">Concept Depth: ".$conceptDepth[$i-1]."<br/>Concept Arity: ".$conceptArity[$i-1]."<br/>Concept Length: ".$sc->getConceptLength($con)."</div>"; + //$conceptinformation.="<div id=\"div".$i."\" style=\"display:none\">Concept Depth: ".$conceptDepth[$i-1]."<br/>Concept Arity: ".$conceptArity[$i-1]."<br/>Concept Length: ".$sc->getConceptLength($con)."</div>"; $i++; } $concept.="</table>"; @@ -486,7 +487,7 @@ for ($j=0;($j<30)&&(($i*30+$j)<count($results));$j++) { $result=$results[$i*30+$j]; - $ret.=" <a href=\"\" onclick=\"xajax_getarticle('".urldecode(str_replace("_"," ",substr (strrchr ($result, "/"), 1)))."',-1);return false;\">".urldecode(str_replace("_"," ",substr (strrchr ($result, "/"), 1)))."</a><br/>"; + $ret.=" <a href=\"\" onclick=\"xajax_getarticle('".str_replace("_"," ",substr (strrchr ($result, "/"), 1))."',-1);return false;\">".urldecode(str_replace("_"," ",substr (strrchr ($result, "/"), 1)))."</a><br/>"; } $ret.="</div>"; $i++; Modified: trunk/src/dbpedia-navigator/index.php =================================================================== --- trunk/src/dbpedia-navigator/index.php 2008-05-14 14:26:34 UTC (rev 840) +++ trunk/src/dbpedia-navigator/index.php 2008-05-14 15:16:00 UTC (rev 841) @@ -149,8 +149,6 @@ <a href="http://www.w3.org/2001/sw/DataAccess/"><img src="<?php print $path;?>images/sw-sparql-green.png" alt="SPARQL logo"/></a> </div> - <input type="button" value="Learn" class="button" onclick="xajax_learnConcept();return false;" /> - </div><!-- END leftSidebar --> <div id="content"> @@ -212,25 +210,16 @@ <b>ToDo:</b> <ul style="float:left"> <li>Get learning component fast.</li> - <li>Learning as a Thread.</li> <li>Get local DBpedia SPARQL endpoint working (next DBpedia release expected at the endof January and then every two months, so it would be nice to have a script based partly automated or at least documented solution for creating a DBpedia mirror).</li> <li>Improve stability: Fix sometimes occurring PHP errors and warnings (check PHP error log).</li> - <li>Automatically learn concepts whenever an example has been added (and there is at least one - positive example present).</li> <li>For each result, display a "+" which shows more information about the concept in an overlay box, e.g. its Description Logic or OWL syntax, its classification accuracy on the examples, and which examples it classifies (in-)correctly.</li> - <li>Move the "Learned Concepts" box above the main box in the center.</li> - <li>Remove the "Subjects from Concept" box and instead change the learned concepts to links (clicking - on a link shows instances of the concept).</li> <li>Create a small number of test cases (e.g. 3), which can be used to verify that DBpedia Navigator is working in typical scenarios (in particular cases where concepts with length greater one are learned).</li> - <li>Display "server call" in progress (or "n server calls in progress") in the top right corner - of the screen whenever AJAX queries are executed.</li> <li>Allow to disable caching functionality (in Settings.php).</li> - <li>Fix the rebuild.php script such that PHP replaces the cached WSDL file by the new one.</li> <li>Make DBpedia Navigator RESTful, e.g. URLs $base/showArticle/$URL for displaying an article; $base/search/$phrase for searching; $base/listInstances/$complexClass for listing the instances of a learned. Maybe session variables (in particuar the selected positive and negative examples) can @@ -241,8 +230,6 @@ features.</li> <li>Improve search functionality [we will probably get feedback from Georgi in February].</li> <li>[maybe] Display a tag cloud similar to <a href="http://dbpedia.org/search/">DBpedia search</a>.</li> - <li>Get a nice DBpedia Navigator logo (preferrably in SVG format) [currently in contact with Matt, but not - sure he has time to help].</li> <li>[maybe] Instead of only allowing a search as entry point to the application, also display a navigatable class tree.</li> <li>[if possible] When expensive SPARQL queries or learning problems have been posed, there should be This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2008-05-14 15:16:50
|
Revision: 843 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=843&view=rev Author: sknappe Date: 2008-05-14 08:16:41 -0700 (Wed, 14 May 2008) Log Message: ----------- Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/algorithms/DBpediaNavigationSuggestor.java Modified: trunk/src/dl-learner/org/dllearner/algorithms/DBpediaNavigationSuggestor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/DBpediaNavigationSuggestor.java 2008-05-14 15:16:16 UTC (rev 842) +++ trunk/src/dl-learner/org/dllearner/algorithms/DBpediaNavigationSuggestor.java 2008-05-14 15:16:41 UTC (rev 843) @@ -19,14 +19,23 @@ */ package org.dllearner.algorithms; +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.SortedSet; + import org.dllearner.core.ComponentInitException; import org.dllearner.core.LearningAlgorithm; +import org.dllearner.core.LearningProblem; import org.dllearner.core.ReasoningService; import org.dllearner.core.Score; import org.dllearner.core.config.ConfigEntry; +import org.dllearner.core.config.ConfigOption; import org.dllearner.core.config.InvalidConfigOptionValueException; +import org.dllearner.core.config.StringConfigOption; import org.dllearner.core.owl.Description; -import org.dllearner.learningproblems.PosNegLP; +import org.dllearner.core.owl.Individual; +import org.dllearner.learningproblems.PosNegDefinitionLP; import org.dllearner.learningproblems.PosOnlyDefinitionLP; /** @@ -40,23 +49,51 @@ * */ public class DBpediaNavigationSuggestor extends LearningAlgorithm { - - public DBpediaNavigationSuggestor(PosNegLP learningProblem, ReasoningService rs) { - + + private ReasoningService rs; + private String filename; + + public DBpediaNavigationSuggestor(LearningProblem learningProblem, ReasoningService rs) { + this.rs=rs; } + public static Collection<Class<? extends LearningProblem>> supportedLearningProblems() { + Collection<Class<? extends LearningProblem>> problems = new LinkedList<Class<? extends LearningProblem>>(); + problems.add(LearningProblem.class); + return problems; + } + public DBpediaNavigationSuggestor(PosOnlyDefinitionLP learningProblem, ReasoningService rs) { - - } + System.out.println("test1"); + } + public DBpediaNavigationSuggestor(PosNegDefinitionLP learningProblem, ReasoningService rs) { + System.out.println("test2"); + } + + public static Collection<ConfigOption<?>> createConfigOptions() { + Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); + options.add(new StringConfigOption("dumpFileName", "name of the file for the dump")); + return options; + } + + /* (non-Javadoc) + * @see org.dllearner.core.Component#applyConfigEntry(org.dllearner.core.ConfigEntry) + */ @Override public <T> void applyConfigEntry(ConfigEntry<T> entry) throws InvalidConfigOptionValueException { - // TODO Auto-generated method stub + String name = entry.getOptionName(); + if (name.equals("dumpFileName")) + filename = (String) entry.getValue(); } @Override public void init() throws ComponentInitException { // TODO Auto-generated method stub + SortedSet<Individual> list=rs.getIndividuals(); + Iterator<Individual> iter=list.iterator(); + while (iter.hasNext()) + System.out.println(iter.next().toString()); } @Override This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2008-05-14 15:16:46
|
Revision: 842 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=842&view=rev Author: sknappe Date: 2008-05-14 08:16:16 -0700 (Wed, 14 May 2008) Log Message: ----------- Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java Modified: trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java =================================================================== --- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2008-05-14 15:16:00 UTC (rev 841) +++ trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2008-05-14 15:16:16 UTC (rev 842) @@ -36,6 +36,7 @@ import org.dllearner.Info; import org.dllearner.algorithms.BruteForceLearner; +import org.dllearner.algorithms.DBpediaNavigationSuggestor; import org.dllearner.algorithms.RandomGuesser; import org.dllearner.algorithms.gp.GP; import org.dllearner.algorithms.refexamples.ExampleBasedROLComponent; @@ -105,6 +106,7 @@ learningAlgorithmMapping.put("gp", GP.class); learningAlgorithmMapping.put("refinement", ROLearner.class); learningAlgorithmMapping.put("refexamples", ExampleBasedROLComponent.class); + learningAlgorithmMapping.put("dbpediaNavigationSuggestor", DBpediaNavigationSuggestor.class); components = Helper.union(knowledgeSourceMapping.keySet(),reasonerMapping.keySet()); components = Helper.union(components, learningProblemMapping.keySet()); components = Helper.union(components, learningAlgorithmMapping.keySet()); @@ -591,11 +593,9 @@ } @WebMethod - public void SparqlRetrievalThreaded(int id, int componentID, String conceptString) throws ClientNotKnownException, ParseException { -// ClientState state = getState(id); + public String SparqlRetrieval(String conceptString) throws ParseException { // call parser to parse concept - String sparqlQuery = SparqlQueryDescriptionConvertVisitor.getSparqlQuery(conceptString); - sparqlQueryThreaded(id, componentID,sparqlQuery); + return SparqlQueryDescriptionConvertVisitor.getSparqlQuery(conceptString); } @WebMethod This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2008-05-14 14:26:40
|
Revision: 840 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=840&view=rev Author: kurzum Date: 2008-05-14 07:26:34 -0700 (Wed, 14 May 2008) Log Message: ----------- quick hack Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java trunk/src/dl-learner/org/dllearner/core/owl/SubsumptionHierarchy.java trunk/src/dl-learner/org/dllearner/kb/sparql/datastructure/InstanceNode.java trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java Modified: trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-05-14 12:15:26 UTC (rev 839) +++ trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-05-14 14:26:34 UTC (rev 840) @@ -1067,9 +1067,10 @@ nrOfSolutions=candidatesStable.size(); int i=0; for(ExampleBasedNode n : candidatesStable.descendingSet()) { + if (n.getAccuracy(nrOfPositiveExamples, nrOfNegativeExamples)<1)break; logger.trace("best: "+n.getShortDescription(nrOfPositiveExamples, nrOfNegativeExamples, baseURI)); if(i==nrOfSolutions) - return ; + break ; i++; } Modified: trunk/src/dl-learner/org/dllearner/core/owl/SubsumptionHierarchy.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/owl/SubsumptionHierarchy.java 2008-05-14 12:15:26 UTC (rev 839) +++ trunk/src/dl-learner/org/dllearner/core/owl/SubsumptionHierarchy.java 2008-05-14 14:26:34 UTC (rev 840) @@ -74,7 +74,9 @@ for(Description c : allowedConceptsInSubsumptionHierarchy) { // schauen, ob es mehrere allgemeinere Nachbarn gibt SortedSet<Description> moreGeneral = subsumptionHierarchyUp.get(c); - if(moreGeneral != null) { + //RBC + if(moreGeneral != null && moreGeneral.size()>0) { + System.out.println(moreGeneral); Description chosenParent = moreGeneral.first(); hierarchyDownNew.get(chosenParent).add(c); } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/datastructure/InstanceNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/datastructure/InstanceNode.java 2008-05-14 12:15:26 UTC (rev 839) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/datastructure/InstanceNode.java 2008-05-14 14:26:34 UTC (rev 840) @@ -60,6 +60,9 @@ Iterator<StringTuple> it = s.iterator(); while (it.hasNext()) { StringTuple t = (StringTuple) it.next(); + //RBC + if(!t.b.startsWith("http:"))continue; + // basically : if p is rdf:type then o is a class // else it is an instance try { Modified: trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-14 12:15:26 UTC (rev 839) +++ trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-14 14:26:34 UTC (rev 840) @@ -1,6 +1,7 @@ package org.dllearner.scripts; import java.net.URLEncoder; +import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; @@ -16,6 +17,7 @@ import org.dllearner.utilities.AutomaticExampleFinderSPARQL; import org.dllearner.utilities.ConfWriter; import org.dllearner.utilities.JenaResultSetConvenience; +import org.dllearner.utilities.LearnSparql; import org.dllearner.utilities.SetManipulation; import org.dllearner.utilities.SimpleClock; @@ -152,7 +154,8 @@ for (String string : tmpSet) { concepts.add("\""+string+"\""); } - + concepts.remove(concepts.first()); + concepts.remove(concepts.first()); //concepts.add("(\"http://dbpedia.org/class/yago/HeadOfState110164747\" AND (\"http://dbpedia.org/class/yago/Negotiator110351874\" AND \"http://dbpedia.org/class/yago/Representative110522035\"))"); //concepts.add("\"http://dbpedia.org/class/yago/Person100007846\""); //concepts.add("\"http://dbpedia.org/class/yago/FieldMarshal110086821\""); @@ -167,37 +170,46 @@ //HashMap<String, String> result2 = new HashMap<String, String>(); //System.out.println(concepts.first()); //logger.setLevel(Level.TRACE); - AutomaticExampleFinderSPARQL ae= new AutomaticExampleFinderSPARQL( se); - //System.out.println(new JenaResultSetConvenience(ae.queryConcept(concepts.first(), 0)).getStringListForVariable("?subject") );; - //System.out.println(new JenaResultSetConvenience(ae.queryConcept(concepts.first(), 0)).getStringListForVariable("?subject").size() );; - //ae.getSubClasses(concepts.first()); - //System.exit(0); - - ae.initDBpedia(concepts.first(), useRelated, useSuperClasses,useParallelClasses, poslimit, neglimit); + int i=0; + for (String oneConcept : concepts) { + if(i>=2)break; + i++; + AutomaticExampleFinderSPARQL ae= new AutomaticExampleFinderSPARQL( se); + useRelated = false; + useSuperClasses=true; + useParallelClasses=false; + poslimit=2; + neglimit=2; + ae.initDBpedia(concepts.first(), useRelated, useSuperClasses,useParallelClasses, poslimit, neglimit); + posExamples = ae.getPosExamples(); + negExamples = ae.getNegExamples(); + + // System.out.println(posExamples); + // System.out.println(negExamples); + + String tmp = concepts.first().replace("http://dbpedia.org/resource/Category:", "").replace("\"",""); + tmp = tmp.replace("http://dbpedia.org/class/yago/", ""); + tmp = tmp.replace("http://dbpedia.org/property/", ""); + String confname = ""; + try{ + confname = URLEncoder.encode(tmp, "UTF-8")+".conf"; + }catch (Exception e) {e.printStackTrace();} + // + //ConfWriter cf=new ConfWriter(); + //cf.addToStats("relearned concept: "+concepts.first()); + System.out.println(confname); + LearnSparql ls = new LearnSparql(); + TreeSet<String> igno = new TreeSet<String>(); + System.out.println(oneConcept); + //igno.add(oneConcept.replaceAll("\"", "")); + ls.learnDBpedia(posExamples, negExamples, "http://dbpedia.openlinksw.com:8890/sparql",igno,1); + System.out.println("AAAAAAAA"); + //System.exit(0); + //"relearned concept: "; + //cf.writeSPARQL(confname, posExamples, negExamples, url, new TreeSet<String>(),standardSettings,algorithm); + // - posExamples = ae.getPosExamples(); - negExamples = ae.getNegExamples(); - - System.out.println(posExamples); - System.out.println(negExamples); - //System.exit(0); - String tmp = concepts.first().replace("http://dbpedia.org/resource/Category:", "").replace("\"",""); - tmp = tmp.replace("http://dbpedia.org/class/yago/", ""); - tmp = tmp.replace("http://dbpedia.org/property/", ""); - String confname = ""; - try{ - confname = URLEncoder.encode(tmp, "UTF-8")+".conf"; - }catch (Exception e) {e.printStackTrace();} - // - ConfWriter cf=new ConfWriter(); - cf.addToStats("relearned concept: "+concepts.first()); - - //System.exit(0); - //"relearned concept: "; - cf.writeSPARQL(confname, posExamples, negExamples, url, new TreeSet<String>(),standardSettings,algorithm); - //new LearnSparql().learn(posExamples, negExamples, "http://dbpedia.openlinksw.com:8890/sparql", new TreeSet<String>()); - - + } } @@ -250,7 +262,8 @@ public static SortedSet<String> selectDBpediaConcepts(int number){ String query = "SELECT DISTINCT ?concept WHERE { \n" + - "[] a ?concept }\n"; + "[] a ?concept .FILTER (regex(str(?concept),'yago'))" + + " \n} LIMIT "+number+" \n"; String JSON = (c.executeSparqlQuery(new SparqlQuery(query, se))); ResultSet rs =SparqlQuery.JSONtoResultSet(JSON); Modified: trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java 2008-05-14 12:15:26 UTC (rev 839) +++ trunk/src/dl-learner/org/dllearner/utilities/LearnSparql.java 2008-05-14 14:26:34 UTC (rev 840) @@ -21,8 +21,8 @@ - public void learn(SortedSet<String> posExamples,SortedSet<String> negExamples, - String uri, SortedSet<String> ignoredConcepts){ + public void learnDBpedia(SortedSet<String> posExamples,SortedSet<String> negExamples, + String uri, SortedSet<String> ignoredConcepts, int recursiondepth){ ComponentManager cm = ComponentManager.getInstance(); @@ -40,9 +40,9 @@ instances.addAll(negExamples); cm.applyConfigEntry(ks, "instances",instances); cm.applyConfigEntry(ks, "url",uri); - cm.applyConfigEntry(ks, "recursionDepth",1); - cm.applyConfigEntry(ks, "predefinedFilter",1); - cm.applyConfigEntry(ks, "predefinedEndpoint",1); + cm.applyConfigEntry(ks, "recursionDepth",recursiondepth); + cm.applyConfigEntry(ks, "predefinedFilter","YAGOSKOS"); + cm.applyConfigEntry(ks, "predefinedEndpoint","DBPEDIA"); //cm.applyConfigEntry(ks, "format","KB"); ks.init(); @@ -70,11 +70,12 @@ cm.applyConfigEntry(la,"useCardinalityRestrictions",false); cm.applyConfigEntry(la,"useNegation",false); cm.applyConfigEntry(la,"minExecutionTimeInSeconds",0); - cm.applyConfigEntry(la,"maxExecutionTimeInSeconds",900); - cm.applyConfigEntry(la,"guaranteeXgoodDescriptions",999999); + cm.applyConfigEntry(la,"maxExecutionTimeInSeconds",10); + //cm.applyConfigEntry(la,"guaranteeXgoodDescriptions",999999); cm.applyConfigEntry(la,"logLevel","TRACE"); //cm.applyConfigEntry(la,"quiet",false); + //System.out.println(ignoredConcepts.first());; if(ignoredConcepts.size()>0) cm.applyConfigEntry(la,"ignoredConcepts",ignoredConcepts); la.init(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-05-14 12:15:33
|
Revision: 839 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=839&view=rev Author: jenslehmann Date: 2008-05-14 05:15:26 -0700 (Wed, 14 May 2008) Log Message: ----------- GovTrack test Added Paths: ----------- trunk/examples/sparql/govtrack.conf Added: trunk/examples/sparql/govtrack.conf =================================================================== --- trunk/examples/sparql/govtrack.conf (rev 0) +++ trunk/examples/sparql/govtrack.conf 2008-05-14 12:15:26 UTC (rev 839) @@ -0,0 +1,17 @@ + +sparql.recursionDepth = 2; +sparql.predefinedEndpoint = "GOVTRACK"; + +algorithm = refexamples; +reasoner = owlAPI; +// reasoner = fastInstanceChecker; + +import("http://rdfabout.com/sparql/","SPARQL"); + +sparql.instances = { +"http://www.rdfabout.com/rdf/usgov/congress/people/A000069", +"http://www.rdfabout.com/rdf/usgov/congress/people/A000360" +}; + ++"http://www.rdfabout.com/rdf/usgov/congress/people/A000069" +-"http://www.rdfabout.com/rdf/usgov/congress/people/A000360" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2008-05-14 09:33:51
|
Revision: 838 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=838&view=rev Author: kurzum Date: 2008-05-14 02:33:35 -0700 (Wed, 14 May 2008) Log Message: ----------- added endpoints: sparql.predefinedEndpoint = "GOVTRACK"; sparql.predefinedEndpoint = "SPARQLETTE"; sparql.predefinedEndpoint = "SWCONFERENCE"; Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-05-13 23:55:24 UTC (rev 837) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-05-14 09:33:35 UTC (rev 838) @@ -84,7 +84,7 @@ public static SparqlEndpoint getEndpointByName(String name) { - + name = name.toUpperCase(); if (name.equals("DBPEDIA")) return EndpointDBpedia(); @@ -92,6 +92,10 @@ return EndpointlocalJoseki(); if (name.equals("GOVTRACK")) return EndpointGovTrack(); + if (name.equals("SPARQLETTE")) + return EndpointSparqlette(); + if (name.equals("SWCONFERENCE")) + return EndpointSWConference(); if (name.equals("REVYU")) return EndpointRevyu(); if (name.equals("MYOPENLINK")) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2008-05-13 23:55:29
|
Revision: 837 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=837&view=rev Author: kurzum Date: 2008-05-13 16:55:24 -0700 (Tue, 13 May 2008) Log Message: ----------- more endpoints, started to implement experiment Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java trunk/src/dl-learner/org/dllearner/utilities/SetManipulation.java Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-05-13 15:55:28 UTC (rev 836) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-05-13 23:55:24 UTC (rev 837) @@ -120,6 +120,10 @@ ll.add(EndpointSWConference()); ll.add(EndpointUSCensus()); ll.add(EndpointWorldFactBook()); + ll.add(EndpointRiese()); + ll.add(EndpointTalisBlogs()); + ll.add(EndpointSWSchool()); + ll.add(EndpointSparqlette()); return ll; } @@ -282,6 +286,16 @@ } return new SparqlEndpoint(u); } + + public static SparqlEndpoint EndpointRiese() { + URL u = null; + try { + u = new URL("http://riese.joanneum.at:3020/"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SparqlEndpoint(u); + } public static SparqlEndpoint EndpointUSCensus() { @@ -312,9 +326,41 @@ return new SparqlEndpoint(u); } + + public static SparqlEndpoint EndpointTalisBlogs() { + URL u = null; + try { + u = new URL("http://api.talis.com/stores/talisians/services/sparql"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SparqlEndpoint(u); + } + + public static SparqlEndpoint EndpointSparqlette() { + URL u = null; + try { + u = new URL("http://www.wasab.dk/morten/2005/04/sparqlette/"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SparqlEndpoint(u); + } + + + + public static SparqlEndpoint EndpointSWSchool() { + URL u = null; + try { + u = new URL("http://sparql.semantic-web.at/snorql/"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SparqlEndpoint(u); + } + - } Modified: trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-13 15:55:28 UTC (rev 836) +++ trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-13 23:55:24 UTC (rev 837) @@ -10,12 +10,17 @@ import org.apache.log4j.SimpleLayout; import org.dllearner.kb.sparql.Cache; import org.dllearner.kb.sparql.SparqlKnowledgeSource; +import org.dllearner.kb.sparql.SparqlQuery; import org.dllearner.kb.sparql.configuration.SparqlEndpoint; import org.dllearner.utilities.AutomaticExampleFinderRolesSPARQL; import org.dllearner.utilities.AutomaticExampleFinderSPARQL; import org.dllearner.utilities.ConfWriter; +import org.dllearner.utilities.JenaResultSetConvenience; +import org.dllearner.utilities.SetManipulation; import org.dllearner.utilities.SimpleClock; +import com.hp.hpl.jena.query.ResultSet; + public class SPARQLMassLearning { static Cache c; @@ -72,9 +77,9 @@ standardSettings=standardSettingsRefexamples+standardDBpedia; //standardSettings=standardSettingsRefinement+standardDBpedia; - //DBpedia(); + DBpedia(); //algorithm="refinement"; - roles(); + //roles(); /*System.out.println(Level.DEBUG.getClass()); System.out.println(Level.toLevel("INFO")); @@ -142,7 +147,13 @@ //concepts.add("(EXISTS \"monarch\".TOP AND EXISTS \"predecessor\".(\"Knight\" OR \"Secretary\"))"); SortedSet<String> concepts = new TreeSet<String>(); - concepts.add("(\"http://dbpedia.org/class/yago/HeadOfState110164747\" AND (\"http://dbpedia.org/class/yago/Negotiator110351874\" AND \"http://dbpedia.org/class/yago/Representative110522035\"))"); + SortedSet<String> tmpSet=selectDBpediaConcepts(20); + System.out.println(concepts.size()); + for (String string : tmpSet) { + concepts.add("\""+string+"\""); + } + + //concepts.add("(\"http://dbpedia.org/class/yago/HeadOfState110164747\" AND (\"http://dbpedia.org/class/yago/Negotiator110351874\" AND \"http://dbpedia.org/class/yago/Representative110522035\"))"); //concepts.add("\"http://dbpedia.org/class/yago/Person100007846\""); //concepts.add("\"http://dbpedia.org/class/yago/FieldMarshal110086821\""); //concepts.add("http://dbpedia.org/resource/Category:Prime_Ministers_of_the_United_Kingdom"); @@ -232,10 +243,21 @@ logger.removeAllAppenders(); logger.addAppender(consoleAppender); logger.setLevel(Level.DEBUG); + c = new Cache(); } + public static SortedSet<String> selectDBpediaConcepts(int number){ + String query = "SELECT DISTINCT ?concept WHERE { \n" + + "[] a ?concept }\n"; + + String JSON = (c.executeSparqlQuery(new SparqlQuery(query, se))); + ResultSet rs =SparqlQuery.JSONtoResultSet(JSON); + JenaResultSetConvenience rsc = new JenaResultSetConvenience(rs); + return SetManipulation.fuzzyShrink(rsc.getStringListForVariable("concept"),number); + } + } Modified: trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java 2008-05-13 15:55:28 UTC (rev 836) +++ trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java 2008-05-13 23:55:24 UTC (rev 837) @@ -34,9 +34,9 @@ logger.addAppender(consoleAppender); logger.setLevel(Level.DEBUG); Logger.getLogger(SparqlKnowledgeSource.class).setLevel(Level.INFO); + //SELECT DISTINCT ?c WHERE {[] a ?c }LIMIT 100 - LinkedList<SparqlEndpoint> ll = SparqlEndpoint.listEndpoints(); Modified: trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java 2008-05-13 15:55:28 UTC (rev 836) +++ trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java 2008-05-13 23:55:24 UTC (rev 837) @@ -34,7 +34,10 @@ dbpediaMakePositiveExamplesFromConcept( concept); SortedSet<String> keepForClean = new TreeSet<String>(); keepForClean.addAll(this.posExamples); + this.posExamples = SetManipulation.fuzzyShrink(this.posExamples, poslimit); + + logger.trace("shrinking: pos Example size: "+posExamples.size()); if(useRelated) { Modified: trunk/src/dl-learner/org/dllearner/utilities/SetManipulation.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/SetManipulation.java 2008-05-13 15:55:28 UTC (rev 836) +++ trunk/src/dl-learner/org/dllearner/utilities/SetManipulation.java 2008-05-13 23:55:24 UTC (rev 837) @@ -24,10 +24,12 @@ //System.out.println("treshold"+allRetrieved.size()); //System.out.println("treshold"+treshold); - for (String oneInd : set) { - if(r.nextDouble()<treshold) { - ret.add(oneInd); - + while(ret.size()< limit){ + for (String oneInd : set) { + if(r.nextDouble()<treshold) { + ret.add(oneInd); + if(ret.size()>= limit)break; + } } } return ret; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2008-05-13 15:58:34
|
Revision: 836 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=836&view=rev Author: kurzum Date: 2008-05-13 08:55:28 -0700 (Tue, 13 May 2008) Log Message: ----------- moved most special comparator to function printbestsolutions Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java Modified: trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-05-13 14:17:32 UTC (rev 835) +++ trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-05-13 15:55:28 UTC (rev 836) @@ -456,16 +456,7 @@ logger.debug(manchester); logger.debug(KBSyntax); - boolean showOrderedSolutions = true; - if(showOrderedSolutions) { - System.out.println("ordered by generality (most special solutions first):"); - SubsumptionComparator sc = new SubsumptionComparator(rs); - TreeSet<Description> solutionsOrderedBySubsumption = new TreeSet<Description>(sc); - solutionsOrderedBySubsumption.addAll(solutions); - for(Description d : solutionsOrderedBySubsumption) - System.out.println(d); - } } logger.debug("size of candidate set: " + candidates.size()); @@ -1076,11 +1067,22 @@ nrOfSolutions=candidatesStable.size(); int i=0; for(ExampleBasedNode n : candidatesStable.descendingSet()) { - logger.trace(n.getShortDescription(nrOfPositiveExamples, nrOfNegativeExamples, baseURI)); + logger.trace("best: "+n.getShortDescription(nrOfPositiveExamples, nrOfNegativeExamples, baseURI)); if(i==nrOfSolutions) return ; i++; } + + boolean showOrderedSolutions = true; + + if(showOrderedSolutions) { + logger.trace("ordered by generality (most special solutions first):"); + SubsumptionComparator sc = new SubsumptionComparator(rs); + TreeSet<Description> solutionsOrderedBySubsumption = new TreeSet<Description>(sc); + solutionsOrderedBySubsumption.addAll(solutions); + for(Description d : solutionsOrderedBySubsumption) + logger.trace("special: "+d); + } /*for (int j = 0; j < solutions.size(); j++) { Description d = solutions.get(j); logger.trace(d.toString()); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-05-13 14:17:32 UTC (rev 835) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-05-13 15:55:28 UTC (rev 836) @@ -276,7 +276,7 @@ public static SparqlEndpoint EndpointMusicbrainz() { URL u = null; try { - u = new URL(" http://dbtune.org/musicbrainz/sparql"); + u = new URL("http://dbtune.org/musicbrainz/sparql"); } catch (Exception e) { e.printStackTrace(); } @@ -287,7 +287,7 @@ public static SparqlEndpoint EndpointUSCensus() { URL u = null; try { - u = new URL(" http://www.rdfabout.com/sparql"); + u = new URL("http://www.rdfabout.com/sparql"); } catch (Exception e) { e.printStackTrace(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Jen...@us...> - 2008-05-13 14:17:49
|
Revision: 835 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=835&view=rev Author: JensLehmann Date: 2008-05-13 07:17:32 -0700 (Tue, 13 May 2008) Log Message: ----------- fixed cardinality restriction bugs in fast instance checker Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java Modified: trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-05-13 13:45:10 UTC (rev 834) +++ trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-05-13 14:17:32 UTC (rev 835) @@ -1069,8 +1069,11 @@ public void printBestSolutions(int nrOfSolutions){ - if(!logger.getLevel().toString().equalsIgnoreCase("TRACE"))return; - if(nrOfSolutions==0)nrOfSolutions=candidatesStable.size(); + if(!logger.isTraceEnabled()) + return; +// if(!logger.getLevel().toString().equalsIgnoreCase("TRACE"))return; + if(nrOfSolutions==0) + nrOfSolutions=candidatesStable.size(); int i=0; for(ExampleBasedNode n : candidatesStable.descendingSet()) { logger.trace(n.getShortDescription(nrOfPositiveExamples, nrOfNegativeExamples, baseURI)); Modified: trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java 2008-05-13 13:45:10 UTC (rev 834) +++ trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java 2008-05-13 14:17:32 UTC (rev 835) @@ -337,6 +337,9 @@ int nrOfFillers = 0; SortedSet<Individual> roleFillers = opPos.get(op).get(individual); + // special case: there are always at least zero fillers + if(number == 0) + return true; // return false if there are none or not enough role fillers if (roleFillers == null || roleFillers.size() < number) return false; @@ -372,19 +375,21 @@ } int number = ((ObjectCardinalityRestriction) description).getNumber(); - int nrOfFillers = 0; + int nrOfFillers = 0; SortedSet<Individual> roleFillers = opPos.get(op).get(individual); - // return false if there are none or not enough role fillers - if (roleFillers == null || roleFillers.size() > number) + // return true if there are none or not enough role fillers + if (roleFillers == null || roleFillers.size() < number) return true; +// System.out.println(description + " " + individual); + int index = 0; for (Individual roleFiller : roleFillers) { index++; if (instanceCheck(child, roleFiller)) { nrOfFillers++; - if(nrOfFillers == number) + if(nrOfFillers > number) return false; // earyl abort: e.g. <= 5 hasStructure.Methyl; // if there are 6 fillers and 2 are not Methyl, the result is true This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Jen...@us...> - 2008-05-13 13:45:15
|
Revision: 834 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=834&view=rev Author: JensLehmann Date: 2008-05-13 06:45:10 -0700 (Tue, 13 May 2008) Log Message: ----------- comparator finished Modified Paths: -------------- trunk/examples/sparql/Aristotle.conf trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java trunk/src/dl-learner/org/dllearner/algorithms/refexamples/SubsumptionComparator.java Added Paths: ----------- trunk/examples/sparql/AristotlePos.conf Modified: trunk/examples/sparql/Aristotle.conf =================================================================== --- trunk/examples/sparql/Aristotle.conf 2008-05-13 13:23:45 UTC (rev 833) +++ trunk/examples/sparql/Aristotle.conf 2008-05-13 13:45:10 UTC (rev 834) @@ -15,6 +15,8 @@ sparql.predefinedEndpoint = "DBPEDIA"; import("http://dbpedia.openlinksw.com:8890/sparql","SPARQL"); +algorithm = refexamples; +reasoner = fastInstanceChecker; sparql.instances = { "http://dbpedia.org/resource/Democritus", Added: trunk/examples/sparql/AristotlePos.conf =================================================================== --- trunk/examples/sparql/AristotlePos.conf (rev 0) +++ trunk/examples/sparql/AristotlePos.conf 2008-05-13 13:45:10 UTC (rev 834) @@ -0,0 +1,41 @@ +/** + * Some people from Greece. + * Note: DBpedia is always subject to change, solutions will change over time + + * Possible Solution: + * Theorist OR (Mathematician AND Physicist) + * + */ + +// SPARQL options +sparql.recursionDepth = 1; + +//predefined filter (1 = YAGO based learning) +sparql.predefinedFilter = "YAGO"; +sparql.predefinedEndpoint = "DBPEDIA"; + +import("http://dbpedia.openlinksw.com:8890/sparql","SPARQL"); + +algorithm = refexamples; +reasoner = fastInstanceChecker; +problem = posOnlyDefinitionLP; + +sparql.instances = { + "http://dbpedia.org/resource/Democritus", + "http://dbpedia.org/resource/Zeno_of_Elea", + "http://dbpedia.org/resource/Plato", + "http://dbpedia.org/resource/Socrates", + "http://dbpedia.org/resource/Archytas", + "http://dbpedia.org/resource/Pythagoras", + "http://dbpedia.org/resource/Philolaus" +}; + ++"http://dbpedia.org/resource/Pythagoras" ++"http://dbpedia.org/resource/Philolaus" ++"http://dbpedia.org/resource/Archytas" +/* +-"http://dbpedia.org/resource/Socrates" +-"http://dbpedia.org/resource/Plato" +-"http://dbpedia.org/resource/Zeno_of_Elea" +-"http://dbpedia.org/resource/Democritus" +*/ Modified: trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-05-13 13:23:45 UTC (rev 833) +++ trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-05-13 13:45:10 UTC (rev 834) @@ -455,6 +455,17 @@ } logger.debug(manchester); logger.debug(KBSyntax); + + boolean showOrderedSolutions = true; + + if(showOrderedSolutions) { + System.out.println("ordered by generality (most special solutions first):"); + SubsumptionComparator sc = new SubsumptionComparator(rs); + TreeSet<Description> solutionsOrderedBySubsumption = new TreeSet<Description>(sc); + solutionsOrderedBySubsumption.addAll(solutions); + for(Description d : solutionsOrderedBySubsumption) + System.out.println(d); + } } logger.debug("size of candidate set: " + candidates.size()); Modified: trunk/src/dl-learner/org/dllearner/algorithms/refexamples/SubsumptionComparator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/SubsumptionComparator.java 2008-05-13 13:23:45 UTC (rev 833) +++ trunk/src/dl-learner/org/dllearner/algorithms/refexamples/SubsumptionComparator.java 2008-05-13 13:45:10 UTC (rev 834) @@ -4,10 +4,12 @@ import org.dllearner.core.ReasoningService; import org.dllearner.core.owl.Description; +import org.dllearner.utilities.ConceptComparator; -public class SubsumptionComparator implements Comparator<ExampleBasedNode> { +public class SubsumptionComparator implements Comparator<Description> { - public ReasoningService rs; + private ReasoningService rs; + private ConceptComparator cc = new ConceptComparator(); public SubsumptionComparator(ReasoningService rs) { this.rs = rs; @@ -16,6 +18,10 @@ public int compare(ExampleBasedNode arg0, ExampleBasedNode arg1) { Description concept1 = arg0.getConcept(); Description concept2 = arg1.getConcept(); + return compare(concept1, concept2); + } + + public int compare(Description concept1, Description concept2) { // return true if concept1 is a super concept of concept2 boolean value1 = rs.subsumes(concept1, concept2); if(value1) @@ -25,8 +31,10 @@ if(value2) return -1; - // both concepts are equal - return 0; +// System.out.println("Incomparable: " + concept1 + " " + concept2); + + // both concepts are incomparable => order them syntactically + return cc.compare(concept1, concept2); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Jen...@us...> - 2008-05-13 13:23:47
|
Revision: 833 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=833&view=rev Author: JensLehmann Date: 2008-05-13 06:23:45 -0700 (Tue, 13 May 2008) Log Message: ----------- started new comparator for ordering solutions Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedNode.java trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/SubsumptionComparator.java Modified: trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedNode.java 2008-05-13 11:11:07 UTC (rev 832) +++ trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedNode.java 2008-05-13 13:23:45 UTC (rev 833) @@ -22,6 +22,7 @@ import java.text.DecimalFormat; import java.util.Set; +import java.util.SortedSet; import java.util.TreeSet; import org.dllearner.core.owl.Description; @@ -64,9 +65,9 @@ // link to parent in search tree private ExampleBasedNode parent = null; - private Set<ExampleBasedNode> children = new TreeSet<ExampleBasedNode>(nodeComparator); + private SortedSet<ExampleBasedNode> children = new TreeSet<ExampleBasedNode>(nodeComparator); // apart from the child nodes, we also keep child concepts - private Set<Description> childConcepts = new TreeSet<Description>(conceptComparator); + private SortedSet<Description> childConcepts = new TreeSet<Description>(conceptComparator); public ExampleBasedNode(Description concept) { this.concept = concept; @@ -210,11 +211,11 @@ return coveredNegatives; } - public Set<ExampleBasedNode> getChildren() { + public SortedSet<ExampleBasedNode> getChildren() { return children; } - public Set<Description> getChildConcepts() { + public SortedSet<Description> getChildConcepts() { return childConcepts; } Modified: trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-05-13 11:11:07 UTC (rev 832) +++ trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-05-13 13:23:45 UTC (rev 833) @@ -96,6 +96,12 @@ private double noise = 0.0; private int allowedMisclassifications = 0; + // positive only learning options: + // if no negatives are given, then one possible strategy is to find a very special concept still entailing all positive examples; + // this is realised by changing the termination criterion: a concept is a solution if it has been expanded x times (x is + // configurable) but no more special concept is found (all are either equivalent or too weak) + private int maxPosOnlyExpansion = 3; + // search tree options private boolean writeSearchTree; private File searchTreeFile; @@ -118,7 +124,7 @@ // but the disadvantage of properness testing are additional reasoner // queries and a search bias towards ALL r.something because // ALL r.TOP is improper and automatically expanded further - private boolean testProperness = false; + private boolean testProperness = true; // tree traversal means to run through the most promising concepts // and connect them in an intersection to find a solution @@ -402,6 +408,23 @@ Files.appendFile(searchTreeFile, treeString); } + // special situation for positive only learning: the expanded node can become a solution (see explanations + // for maxPosOnlyExpansion above) + if(posOnly && (bestNode.getHorizontalExpansion() - bestNode.getConcept().getLength() >= maxPosOnlyExpansion)) { + // check whether there are any child concept, which are not too weak (we only need to check whether the best concept + // is too weak) + ExampleBasedNode bestChild = null; + if(bestNode.getChildren().size() > 0) + bestChild = bestNode.getChildren().last(); + if(bestNode.getChildren().size() == 0 || bestChild.isTooWeak()) { + solutions.add(bestNode.getConcept()); + System.out.println("solution: " + bestNode.getConcept()); + System.out.println("TODO: needs to be integrated with other stopping criteria"); + System.exit(0); + } + } + + // handle termination criteria handleStoppingConditions(); //logger.info(minExecutionTimeReached()+"aaaaaaa "+solutions.size()+"::"+guaranteeXgoodDescriptions); @@ -716,7 +739,7 @@ tooWeakList.add(refinement); } else { // Lösung gefunden - if(quality >= 0 && quality<=allowedMisclassifications) { + if(quality >= 0 && quality<=allowedMisclassifications && !posOnly) { solutionFound = true; solutions.add(refinement); } Added: trunk/src/dl-learner/org/dllearner/algorithms/refexamples/SubsumptionComparator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/SubsumptionComparator.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/algorithms/refexamples/SubsumptionComparator.java 2008-05-13 13:23:45 UTC (rev 833) @@ -0,0 +1,32 @@ +package org.dllearner.algorithms.refexamples; + +import java.util.Comparator; + +import org.dllearner.core.ReasoningService; +import org.dllearner.core.owl.Description; + +public class SubsumptionComparator implements Comparator<ExampleBasedNode> { + + public ReasoningService rs; + + public SubsumptionComparator(ReasoningService rs) { + this.rs = rs; + } + + public int compare(ExampleBasedNode arg0, ExampleBasedNode arg1) { + Description concept1 = arg0.getConcept(); + Description concept2 = arg1.getConcept(); + // return true if concept1 is a super concept of concept2 + boolean value1 = rs.subsumes(concept1, concept2); + if(value1) + return 1; + + boolean value2 = rs.subsumes(concept2, concept1); + if(value2) + return -1; + + // both concepts are equal + return 0; + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Jen...@us...> - 2008-05-13 11:11:13
|
Revision: 832 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=832&view=rev Author: JensLehmann Date: 2008-05-13 04:11:07 -0700 (Tue, 13 May 2008) Log Message: ----------- started posonly learning for refexamples algorithm Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLComponent.java trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java trunk/src/dl-learner/org/dllearner/cli/Start.java trunk/src/dl-learner/org/dllearner/tools/protege/ButtonList.java trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerModel.java trunk/src/dl-learner/org/dllearner/tools/protege/SuggestEquivalentClassView.java Modified: trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLComponent.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLComponent.java 2008-05-06 18:27:11 UTC (rev 831) +++ trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLComponent.java 2008-05-13 11:11:07 UTC (rev 832) @@ -45,6 +45,7 @@ import org.dllearner.core.owl.ObjectProperty; import org.dllearner.learningproblems.PosNegLP; import org.dllearner.learningproblems.PosOnlyDefinitionLP; +import org.dllearner.learningproblems.PosOnlyLP; import org.dllearner.refinementoperators.RhoDRDown; import org.dllearner.utilities.Files; import org.dllearner.utilities.Helper; @@ -274,10 +275,12 @@ } algHeuristic = new FlexibleHeuristic(((PosNegLP)learningProblem).getNegativeExamples().size(), ((PosNegLP)learningProblem).getPercentPerLengthUnit()); } else { - if(learningProblem instanceof PosOnlyDefinitionLP) { - throw new RuntimeException("does not work with positive examples only yet"); - } - algHeuristic = new MultiHeuristic(((PosNegLP)learningProblem).getPositiveExamples().size(),((PosNegLP)learningProblem).getNegativeExamples().size()); + if(learningProblem instanceof PosOnlyLP) { +// throw new RuntimeException("does not work with positive examples only yet"); + algHeuristic = new MultiHeuristic(((PosOnlyLP)learningProblem).getPositiveExamples().size(),0); + } else { + algHeuristic = new MultiHeuristic(((PosNegLP)learningProblem).getPositiveExamples().size(),((PosNegLP)learningProblem).getNegativeExamples().size()); + } } // compute used concepts/roles from allowed/ignored Modified: trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-05-06 18:27:11 UTC (rev 831) +++ trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-05-13 11:11:07 UTC (rev 832) @@ -80,13 +80,17 @@ // basic setup: learning problem and reasoning service private ReasoningService rs; + // often the learning problems needn't be accessed directly; instead + // use the example sets below and the posonly variable private PosNegLP learningProblem; private PosOnlyDefinitionLP posOnlyLearningProblem; private Description startDescription; private boolean posOnly = false; private int nrOfExamples; private int nrOfPositiveExamples; + private Set<Individual> positiveExamples; private int nrOfNegativeExamples; + private Set<Individual> negativeExamples; // noise regulates how many positives can be misclassified and when the algorithm terminates private double noise = 0.0; @@ -199,7 +203,6 @@ private long evaluateSetCreationTimeNs = 0; private long improperConceptsRemovalTimeNs = 0; - // prefixes private String baseURI; @@ -227,8 +230,10 @@ PosNegLP lp = (PosNegLP) learningProblem; this.learningProblem = lp; posOnly = false; - nrOfPositiveExamples = lp.getPositiveExamples().size(); - nrOfNegativeExamples = lp.getNegativeExamples().size(); + positiveExamples = lp.getPositiveExamples(); + negativeExamples = lp.getNegativeExamples(); + nrOfPositiveExamples = positiveExamples.size(); + nrOfNegativeExamples = negativeExamples.size(); // System.out.println(nrOfPositiveExamples); // System.out.println(nrOfNegativeExamples); @@ -238,8 +243,11 @@ PosOnlyDefinitionLP lp = (PosOnlyDefinitionLP) learningProblem; this.posOnlyLearningProblem = lp; posOnly = true; + positiveExamples = lp.getPositiveExamples(); + negativeExamples = new TreeSet<Individual>(); nrOfPositiveExamples = lp.getPositiveExamples().size(); - nrOfNegativeExamples = lp.getPseudoNegatives().size(); +// nrOfNegativeExamples = lp.getPseudoNegatives().size(); + nrOfNegativeExamples = 0; } nrOfExamples = nrOfPositiveExamples + nrOfNegativeExamples; this.rs = rs; @@ -312,11 +320,11 @@ // start search with start class if(startDescription == null) { startNode = new ExampleBasedNode(Thing.instance); - startNode.setCoveredExamples(learningProblem.getPositiveExamples(), learningProblem.getNegativeExamples()); + startNode.setCoveredExamples(positiveExamples, negativeExamples); } else { startNode = new ExampleBasedNode(startDescription); - Set<Individual> coveredNegatives = rs.instanceCheck(startDescription, learningProblem.getNegativeExamples()); - Set<Individual> coveredPositives = rs.instanceCheck(startDescription, learningProblem.getPositiveExamples()); + Set<Individual> coveredNegatives = rs.instanceCheck(startDescription, negativeExamples); + Set<Individual> coveredPositives = rs.instanceCheck(startDescription, positiveExamples); startNode.setCoveredExamples(coveredPositives, coveredNegatives); } @@ -635,10 +643,11 @@ if(useOverlyGeneralList && refinement instanceof Union) { if(containsOverlyGeneralElement((Union)refinement)) { conceptTestsOverlyGeneralList++; - quality = getNumberOfNegatives(); +// quality = getNumberOfNegatives(); + quality = nrOfNegativeExamples; qualityKnown = true; newNode.setQualityEvaluationMethod(ExampleBasedNode.QualityEvaluationMethod.OVERLY_GENERAL_LIST); - newNode.setCoveredExamples(learningProblem.getPositiveExamples(), learningProblem.getNegativeExamples()); + newNode.setCoveredExamples(positiveExamples, negativeExamples); } } @@ -717,7 +726,7 @@ // we need to make sure that all positives are covered // before adding something to the overly general list - if((newNode.getCoveredPositives().size() == nrOfPositiveExamples) && quality == getNumberOfNegatives()) + if((newNode.getCoveredPositives().size() == nrOfPositiveExamples) && quality == nrOfNegativeExamples) overlyGeneralList.add(refinement); } @@ -833,20 +842,20 @@ + conceptTestsTooWeakList + "/" + conceptTestsOverlyGeneralList + "/" + redundantConcepts); } - @SuppressWarnings({"unused"}) - private int coveredNegativesOrTooWeak(Description concept) { - if(posOnly) - return posOnlyLearningProblem.coveredPseudoNegativeExamplesOrTooWeak(concept); - else - return learningProblem.coveredNegativeExamplesOrTooWeak(concept); - } +// @SuppressWarnings({"unused"}) +// private int coveredNegativesOrTooWeak(Description concept) { +// if(posOnly) +// return posOnlyLearningProblem.coveredPseudoNegativeExamplesOrTooWeak(concept); +// else +// return learningProblem.coveredNegativeExamplesOrTooWeak(concept); +// } - private int getNumberOfNegatives() { - if(posOnly) - return posOnlyLearningProblem.getPseudoNegatives().size(); - else - return learningProblem.getNegativeExamples().size(); - } +// private int getNumberOfNegatives() { +// if(posOnly) +// return posOnlyLearningProblem.getPseudoNegatives().size(); +// else +// return learningProblem.getNegativeExamples().size(); +// } private boolean containsTooWeakElement(Intersection mc) { for(Description child : mc.getChildren()) { @@ -1047,7 +1056,7 @@ return posOnlyLearningProblem.computeScore(getBestSolution()); else return learningProblem.computeScore(getBestSolution()); - } + } public ExampleBasedNode getStartNode() { return startNode; Modified: trunk/src/dl-learner/org/dllearner/cli/Start.java =================================================================== --- trunk/src/dl-learner/org/dllearner/cli/Start.java 2008-05-06 18:27:11 UTC (rev 831) +++ trunk/src/dl-learner/org/dllearner/cli/Start.java 2008-05-13 11:11:07 UTC (rev 832) @@ -787,11 +787,11 @@ */ public static Class<? extends LearningProblem> getLearningProblemClass(ConfFileOption problemOption) { Class<? extends LearningProblem> lpClass = null; - if (problemOption == null || problemOption.getStringValue().equals("posNegDefinition")) + if (problemOption == null || problemOption.getStringValue().equals("posNegDefinitionLP")) lpClass = PosNegDefinitionLP.class; - else if (problemOption.getStringValue().equals("posNegInclusion")) + else if (problemOption.getStringValue().equals("posNegInclusionLP")) lpClass = PosNegInclusionLP.class; - else if (problemOption.getStringValue().equals("posOnlyDefinition")) + else if (problemOption.getStringValue().equals("posOnlyDefinitionLP")) lpClass = PosOnlyDefinitionLP.class; else handleError("Unknown value " + problemOption.getValue() + " for option \"problem\"."); Modified: trunk/src/dl-learner/org/dllearner/tools/protege/ButtonList.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/protege/ButtonList.java 2008-05-06 18:27:11 UTC (rev 831) +++ trunk/src/dl-learner/org/dllearner/tools/protege/ButtonList.java 2008-05-13 11:11:07 UTC (rev 832) @@ -4,7 +4,6 @@ import org.protege.editor.owl.ui.frame.InheritedAnonymousClassesFrameSection; import org.protege.editor.owl.ui.frame.OWLClassAssertionAxiomIndividualSection; import org.protege.editor.owl.ui.frame.OWLDisjointClassesAxiomFrameSection; -import org.protege.editor.owl.ui.frame.OWLEquivalentClassesAxiomFrameSection; import org.protege.editor.owl.ui.frame.OWLSubClassAxiomFrameSection; import org.semanticweb.owl.model.OWLClass; import org.protege.editor.owl.OWLEditorKit; Modified: trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerModel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerModel.java 2008-05-06 18:27:11 UTC (rev 831) +++ trunk/src/dl-learner/org/dllearner/tools/protege/DLLearnerModel.java 2008-05-13 11:11:07 UTC (rev 832) @@ -19,7 +19,6 @@ import org.semanticweb.owl.apibinding.OWLManager; import org.semanticweb.owl.model.AddAxiom; import org.semanticweb.owl.model.OWLAxiom; -import org.semanticweb.owl.model.OWLClass; import org.semanticweb.owl.model.OWLDataFactory; import org.semanticweb.owl.model.OWLDescription; import org.semanticweb.owl.model.OWLOntology; Modified: trunk/src/dl-learner/org/dllearner/tools/protege/SuggestEquivalentClassView.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/protege/SuggestEquivalentClassView.java 2008-05-06 18:27:11 UTC (rev 831) +++ trunk/src/dl-learner/org/dllearner/tools/protege/SuggestEquivalentClassView.java 2008-05-13 11:11:07 UTC (rev 832) @@ -5,7 +5,6 @@ import java.awt.GridLayout; import java.util.*; -import org.semanticweb.owl.model.OWLAxiom; import org.semanticweb.owl.model.OWLClass; import org.protege.editor.owl.ui.frame.OWLFrame; import javax.swing.JButton; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2008-05-06 18:27:27
|
Revision: 831 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=831&view=rev Author: kurzum Date: 2008-05-06 11:27:11 -0700 (Tue, 06 May 2008) Log Message: ----------- small fix Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java Modified: trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-06 18:16:26 UTC (rev 830) +++ trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-06 18:27:11 UTC (rev 831) @@ -70,7 +70,7 @@ SimpleClock sc=new SimpleClock(); standardSettings=standardSettingsRefexamples+standardDBpedia; - standardSettings=standardSettingsRefinement+standardDBpedia; + //standardSettings=standardSettingsRefinement+standardDBpedia; //DBpedia(); //algorithm="refinement"; @@ -87,18 +87,18 @@ } - static void DBpedia(){ + + + + static void roles(){ + se = SparqlEndpoint.EndpointDBpedia(); - //concepts.add("(EXISTS \"monarch\".TOP AND EXISTS \"predecessor\".(\"Knight\" OR \"Secretary\"))"); + //se = SparqlEndpoint.EndpointUSCensus(); + SortedSet<String> roles = new TreeSet<String>(); + roles.add("http://dbpedia.org/property/birthPlace"); + //roles.add("http://www.rdfabout.com/rdf/schema/census/landArea"); + standardSettings+=algorithm+".ignoredRoles = {\""+roles.first()+"\"};\n"; - SortedSet<String> concepts = new TreeSet<String>(); - concepts.add("(\"http://dbpedia.org/class/yago/HeadOfState110164747\" AND (\"http://dbpedia.org/class/yago/Negotiator110351874\" AND \"http://dbpedia.org/class/yago/Representative110522035\"))"); - //concepts.add("\"http://dbpedia.org/class/yago/Person100007846\""); - //concepts.add("\"http://dbpedia.org/class/yago/FieldMarshal110086821\""); - //concepts.add("http://dbpedia.org/resource/Category:Prime_Ministers_of_the_United_Kingdom"); - //concepts.add("http://dbpedia.org/resource/Category:Grammy_Award_winners"); - //concepts.add("EXISTS \"http://dbpedia.org/property/grammyawards\".TOP"); - SortedSet<String> posExamples = new TreeSet<String>(); SortedSet<String> negExamples = new TreeSet<String>(); String url = "http://dbpedia.openlinksw.com:8890/sparql"; @@ -106,13 +106,9 @@ //HashMap<String, String> result2 = new HashMap<String, String>(); //System.out.println(concepts.first()); //logger.setLevel(Level.TRACE); - AutomaticExampleFinderSPARQL ae= new AutomaticExampleFinderSPARQL( se); - //System.out.println(new JenaResultSetConvenience(ae.queryConcept(concepts.first(), 0)).getStringListForVariable("?subject") );; - //System.out.println(new JenaResultSetConvenience(ae.queryConcept(concepts.first(), 0)).getStringListForVariable("?subject").size() );; - //ae.getSubClasses(concepts.first()); - //System.exit(0); + AutomaticExampleFinderRolesSPARQL ae= new AutomaticExampleFinderRolesSPARQL( se); - ae.initDBpedia(concepts.first(), useRelated, useSuperClasses,useParallelClasses, poslimit, neglimit); + ae.initDomainRange(roles.first(), poslimit, neglimit); posExamples = ae.getPosExamples(); negExamples = ae.getNegExamples(); @@ -120,36 +116,39 @@ System.out.println(posExamples); System.out.println(negExamples); //System.exit(0); - String tmp = concepts.first().replace("http://dbpedia.org/resource/Category:", "").replace("\"",""); - tmp = tmp.replace("http://dbpedia.org/class/yago/", ""); - tmp = tmp.replace("http://dbpedia.org/property/", ""); - String confname = ""; + String tmp = roles.first().replace("http://dbpedia.org/property/", "").replace("\"",""); + String confname1 = ""; + String confname2 = ""; try{ - confname = URLEncoder.encode(tmp, "UTF-8")+".conf"; + confname1 = URLEncoder.encode(tmp, "UTF-8")+"_domain.conf"; + confname2 = URLEncoder.encode(tmp, "UTF-8")+"_range.conf"; }catch (Exception e) {e.printStackTrace();} // ConfWriter cf=new ConfWriter(); - cf.addToStats("relearned concept: "+concepts.first()); + cf.addToStats("relearned role: "+roles.first()); //System.exit(0); //"relearned concept: "; - cf.writeSPARQL(confname, posExamples, negExamples, url, new TreeSet<String>(),standardSettings,algorithm); + cf.writeSPARQL(confname1, negExamples,posExamples, url, new TreeSet<String>(),standardSettings,algorithm); + + cf.writeSPARQL(confname2, posExamples, negExamples, url, new TreeSet<String>(),standardSettings,algorithm); //new LearnSparql().learn(posExamples, negExamples, "http://dbpedia.openlinksw.com:8890/sparql", new TreeSet<String>()); } - - - static void roles(){ - + static void DBpedia(){ se = SparqlEndpoint.EndpointDBpedia(); - //se = SparqlEndpoint.EndpointUSCensus(); - SortedSet<String> roles = new TreeSet<String>(); - roles.add("http://dbpedia.org/property/birthPlace"); - //roles.add("http://www.rdfabout.com/rdf/schema/census/landArea"); - standardSettings+=algorithm+".ignoredRoles = {\""+roles.first()+"\"};\n"; + //concepts.add("(EXISTS \"monarch\".TOP AND EXISTS \"predecessor\".(\"Knight\" OR \"Secretary\"))"); + SortedSet<String> concepts = new TreeSet<String>(); + concepts.add("(\"http://dbpedia.org/class/yago/HeadOfState110164747\" AND (\"http://dbpedia.org/class/yago/Negotiator110351874\" AND \"http://dbpedia.org/class/yago/Representative110522035\"))"); + //concepts.add("\"http://dbpedia.org/class/yago/Person100007846\""); + //concepts.add("\"http://dbpedia.org/class/yago/FieldMarshal110086821\""); + //concepts.add("http://dbpedia.org/resource/Category:Prime_Ministers_of_the_United_Kingdom"); + //concepts.add("http://dbpedia.org/resource/Category:Grammy_Award_winners"); + //concepts.add("EXISTS \"http://dbpedia.org/property/grammyawards\".TOP"); + SortedSet<String> posExamples = new TreeSet<String>(); SortedSet<String> negExamples = new TreeSet<String>(); String url = "http://dbpedia.openlinksw.com:8890/sparql"; @@ -157,9 +156,13 @@ //HashMap<String, String> result2 = new HashMap<String, String>(); //System.out.println(concepts.first()); //logger.setLevel(Level.TRACE); - AutomaticExampleFinderRolesSPARQL ae= new AutomaticExampleFinderRolesSPARQL( se); + AutomaticExampleFinderSPARQL ae= new AutomaticExampleFinderSPARQL( se); + //System.out.println(new JenaResultSetConvenience(ae.queryConcept(concepts.first(), 0)).getStringListForVariable("?subject") );; + //System.out.println(new JenaResultSetConvenience(ae.queryConcept(concepts.first(), 0)).getStringListForVariable("?subject").size() );; + //ae.getSubClasses(concepts.first()); + //System.exit(0); - ae.initDomainRange(roles.first(), poslimit, neglimit); + ae.initDBpedia(concepts.first(), useRelated, useSuperClasses,useParallelClasses, poslimit, neglimit); posExamples = ae.getPosExamples(); negExamples = ae.getNegExamples(); @@ -167,14 +170,16 @@ System.out.println(posExamples); System.out.println(negExamples); //System.exit(0); - String tmp = roles.first().replace("http://dbpedia.org/property/", "").replace("\"",""); + String tmp = concepts.first().replace("http://dbpedia.org/resource/Category:", "").replace("\"",""); + tmp = tmp.replace("http://dbpedia.org/class/yago/", ""); + tmp = tmp.replace("http://dbpedia.org/property/", ""); String confname = ""; try{ confname = URLEncoder.encode(tmp, "UTF-8")+".conf"; }catch (Exception e) {e.printStackTrace();} // ConfWriter cf=new ConfWriter(); - cf.addToStats("relearned role: "+roles.first()); + cf.addToStats("relearned concept: "+concepts.first()); //System.exit(0); //"relearned concept: "; @@ -183,6 +188,7 @@ } + /*************************************************************************** * *********************OLDCODE String This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2008-05-06 18:16:31
|
Revision: 830 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=830&view=rev Author: kurzum Date: 2008-05-06 11:16:26 -0700 (Tue, 06 May 2008) Log Message: ----------- script for learning roles automatically, conf files are created in a folder examples/stest, which must exist Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java trunk/src/dl-learner/org/dllearner/utilities/ConfWriter.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderRolesSPARQL.java trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java Modified: trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java 2008-05-06 15:02:50 UTC (rev 829) +++ trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java 2008-05-06 18:16:26 UTC (rev 830) @@ -567,9 +567,11 @@ if(show>=5){break;} show++; } + } logger.info(" horizontal expansion: " + minimumHorizontalExpansion + " to " + maximumHorizontalExpansion); logger.info(" size of candidate set: " + candidates.size()); + //logger.trace("test"); //logger.trace(solutions.size()); printBestSolutions(0); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-05-06 15:02:50 UTC (rev 829) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-05-06 18:16:26 UTC (rev 830) @@ -291,7 +291,9 @@ } catch (Exception e) { e.printStackTrace(); } - return new SparqlEndpoint(u); + LinkedList<String> defaultGraphURIs=new LinkedList<String>(); + defaultGraphURIs.add("http://www.rdfabout.com/rdf/schema/census/"); + return new SparqlEndpoint(u, defaultGraphURIs, new LinkedList<String>()); } Modified: trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-06 15:02:50 UTC (rev 829) +++ trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-06 18:16:26 UTC (rev 830) @@ -11,6 +11,7 @@ import org.dllearner.kb.sparql.Cache; import org.dllearner.kb.sparql.SparqlKnowledgeSource; import org.dllearner.kb.sparql.configuration.SparqlEndpoint; +import org.dllearner.utilities.AutomaticExampleFinderRolesSPARQL; import org.dllearner.utilities.AutomaticExampleFinderSPARQL; import org.dllearner.utilities.ConfWriter; import org.dllearner.utilities.SimpleClock; @@ -20,82 +21,168 @@ static Cache c; static SparqlEndpoint se; private static Logger logger = Logger.getRootLogger(); + + static String standardSettings=""; + static String algorithm="refexamples"; + static String standardSettingsRefexamples = + "refexamples.minExecutionTimeInSeconds = 30;\n" + + "refexamples.maxExecutionTimeInSeconds = 30;\n" + + "//refexamples.guaranteeXgoodDescriptions = 10;\n" + + "refexamples.logLevel=\"TRACE\";\n" + + "refexamples.noisePercentage = 0.10;\n" + + "refexamples.writeSearchTree = false;\n" + + "refexamples.searchTreeFile = \"searchTree.txt\";\n" + + "refexamples.replaceSearchTree = true;\n\n" ; + + static String standardSettingsRefinement = + "refinement.minExecutionTimeInSeconds = 30;\n" + + "refinement.maxExecutionTimeInSeconds = 30;\n" + + "//refinement.guaranteeXgoodDescriptions = 10;\n" + + "refinement.logLevel=\"TRACE\";\n" + + "refinement.writeSearchTree = false;\n" + + "refinement.searchTreeFile = \"searchTree.txt\";\n" + + "refinement.replaceSearchTree = true;\n\n" ; + + + + static String standardDBpedia="" + + "sparql.recursionDepth = 1;\n" + + "sparql.predefinedFilter = \"YAGO\";\n" + + "sparql.predefinedEndpoint = \"DBPEDIA\";\n"; + //"sparql.logLevel = \"INFO\";\n"; + + + //vars + static boolean useRelated = false; + static boolean useSuperClasses = false; + static boolean useParallelClasses = true; + static int poslimit = 10; + static int neglimit = 20; + /** * @param args */ public static void main(String[] args) { init(); + //logger.setLevel(Level.TRACE); + Logger.getLogger(SparqlKnowledgeSource.class).setLevel(Level.INFO); + //System.out.println(Logger.getLogger(SparqlQuery.class).getLevel()); + SimpleClock sc=new SimpleClock(); - //vars - boolean useRelated = false; - boolean useSuperClasses = false; - boolean useParallelClasses = true; - int poslimit = 10; - int neglimit = 20; + standardSettings=standardSettingsRefexamples+standardDBpedia; + standardSettings=standardSettingsRefinement+standardDBpedia; + //DBpedia(); + //algorithm="refinement"; + roles(); - - try { - //logger.setLevel(Level.TRACE); - Logger.getLogger(SparqlKnowledgeSource.class).setLevel(Level.INFO); - //System.out.println(Logger.getLogger(SparqlQuery.class).getLevel()); - - /*System.out.println(Level.DEBUG.getClass()); + /*System.out.println(Level.DEBUG.getClass()); System.out.println(Level.toLevel("INFO")); System.out.println(Level.INFO);*/ //System.exit(0); - SimpleClock sc=new SimpleClock(); - //concepts.add("(EXISTS \"monarch\".TOP AND EXISTS \"predecessor\".(\"Knight\" OR \"Secretary\"))"); - - SortedSet<String> concepts = new TreeSet<String>(); - concepts.add("(\"http://dbpedia.org/class/yago/HeadOfState110164747\" AND (\"http://dbpedia.org/class/yago/Negotiator110351874\" AND \"http://dbpedia.org/class/yago/Representative110522035\"))"); - //concepts.add("\"http://dbpedia.org/class/yago/Person100007846\""); - //concepts.add("\"http://dbpedia.org/class/yago/FieldMarshal110086821\""); - //concepts.add("http://dbpedia.org/resource/Category:Prime_Ministers_of_the_United_Kingdom"); - //concepts.add("http://dbpedia.org/resource/Category:Grammy_Award_winners"); - //concepts.add("EXISTS \"http://dbpedia.org/property/grammyawards\".TOP"); - SortedSet<String> posExamples = new TreeSet<String>(); - SortedSet<String> negExamples = new TreeSet<String>(); - String url = "http://dbpedia.openlinksw.com:8890/sparql"; - //HashMap<String, ResultSet> result = new HashMap<String, ResultSet>(); - //HashMap<String, String> result2 = new HashMap<String, String>(); - //System.out.println(concepts.first()); - //logger.setLevel(Level.TRACE); - AutomaticExampleFinderSPARQL ae= new AutomaticExampleFinderSPARQL( se); - //System.out.println(new JenaResultSetConvenience(ae.queryConcept(concepts.first(), 0)).getStringListForVariable("?subject") );; - //System.out.println(new JenaResultSetConvenience(ae.queryConcept(concepts.first(), 0)).getStringListForVariable("?subject").size() );; - //ae.getSubClasses(concepts.first()); - //System.exit(0); - - ae.init(concepts.first(), useRelated, useSuperClasses,useParallelClasses, poslimit, neglimit); + - posExamples = ae.getPosExamples(); - negExamples = ae.getNegExamples(); - - System.out.println(posExamples); - System.out.println(negExamples); - //System.exit(0); - String tmp = concepts.first().replace("http://dbpedia.org/resource/Category:", "").replace("\"",""); - tmp = tmp.replace("http://dbpedia.org/class/yago/", ""); - tmp = tmp.replace("http://dbpedia.org/property/", ""); - String confname = URLEncoder.encode(tmp, "UTF-8")+".conf"; - // - ConfWriter cf=new ConfWriter(); - cf.addToStats("relearned concept: "+concepts.first()); - - //System.exit(0); - //"relearned concept: "; - cf.writeSPARQL(confname, posExamples, negExamples, url, new TreeSet<String>()); - //new LearnSparql().learn(posExamples, negExamples, "http://dbpedia.openlinksw.com:8890/sparql", new TreeSet<String>()); - sc.printAndSet("Finished"); - } catch (Exception e) { - e.printStackTrace(); - } - } + + static void DBpedia(){ + se = SparqlEndpoint.EndpointDBpedia(); + //concepts.add("(EXISTS \"monarch\".TOP AND EXISTS \"predecessor\".(\"Knight\" OR \"Secretary\"))"); + + SortedSet<String> concepts = new TreeSet<String>(); + concepts.add("(\"http://dbpedia.org/class/yago/HeadOfState110164747\" AND (\"http://dbpedia.org/class/yago/Negotiator110351874\" AND \"http://dbpedia.org/class/yago/Representative110522035\"))"); + //concepts.add("\"http://dbpedia.org/class/yago/Person100007846\""); + //concepts.add("\"http://dbpedia.org/class/yago/FieldMarshal110086821\""); + //concepts.add("http://dbpedia.org/resource/Category:Prime_Ministers_of_the_United_Kingdom"); + //concepts.add("http://dbpedia.org/resource/Category:Grammy_Award_winners"); + //concepts.add("EXISTS \"http://dbpedia.org/property/grammyawards\".TOP"); + + SortedSet<String> posExamples = new TreeSet<String>(); + SortedSet<String> negExamples = new TreeSet<String>(); + String url = "http://dbpedia.openlinksw.com:8890/sparql"; + //HashMap<String, ResultSet> result = new HashMap<String, ResultSet>(); + //HashMap<String, String> result2 = new HashMap<String, String>(); + //System.out.println(concepts.first()); + //logger.setLevel(Level.TRACE); + AutomaticExampleFinderSPARQL ae= new AutomaticExampleFinderSPARQL( se); + //System.out.println(new JenaResultSetConvenience(ae.queryConcept(concepts.first(), 0)).getStringListForVariable("?subject") );; + //System.out.println(new JenaResultSetConvenience(ae.queryConcept(concepts.first(), 0)).getStringListForVariable("?subject").size() );; + //ae.getSubClasses(concepts.first()); + //System.exit(0); + + ae.initDBpedia(concepts.first(), useRelated, useSuperClasses,useParallelClasses, poslimit, neglimit); + + posExamples = ae.getPosExamples(); + negExamples = ae.getNegExamples(); + + System.out.println(posExamples); + System.out.println(negExamples); + //System.exit(0); + String tmp = concepts.first().replace("http://dbpedia.org/resource/Category:", "").replace("\"",""); + tmp = tmp.replace("http://dbpedia.org/class/yago/", ""); + tmp = tmp.replace("http://dbpedia.org/property/", ""); + String confname = ""; + try{ + confname = URLEncoder.encode(tmp, "UTF-8")+".conf"; + }catch (Exception e) {e.printStackTrace();} + // + ConfWriter cf=new ConfWriter(); + cf.addToStats("relearned concept: "+concepts.first()); + + //System.exit(0); + //"relearned concept: "; + cf.writeSPARQL(confname, posExamples, negExamples, url, new TreeSet<String>(),standardSettings,algorithm); + //new LearnSparql().learn(posExamples, negExamples, "http://dbpedia.openlinksw.com:8890/sparql", new TreeSet<String>()); + + + } + + + + static void roles(){ + + se = SparqlEndpoint.EndpointDBpedia(); + //se = SparqlEndpoint.EndpointUSCensus(); + SortedSet<String> roles = new TreeSet<String>(); + roles.add("http://dbpedia.org/property/birthPlace"); + //roles.add("http://www.rdfabout.com/rdf/schema/census/landArea"); + standardSettings+=algorithm+".ignoredRoles = {\""+roles.first()+"\"};\n"; + + SortedSet<String> posExamples = new TreeSet<String>(); + SortedSet<String> negExamples = new TreeSet<String>(); + String url = "http://dbpedia.openlinksw.com:8890/sparql"; + //HashMap<String, ResultSet> result = new HashMap<String, ResultSet>(); + //HashMap<String, String> result2 = new HashMap<String, String>(); + //System.out.println(concepts.first()); + //logger.setLevel(Level.TRACE); + AutomaticExampleFinderRolesSPARQL ae= new AutomaticExampleFinderRolesSPARQL( se); + + ae.initDomainRange(roles.first(), poslimit, neglimit); + + posExamples = ae.getPosExamples(); + negExamples = ae.getNegExamples(); + + System.out.println(posExamples); + System.out.println(negExamples); + //System.exit(0); + String tmp = roles.first().replace("http://dbpedia.org/property/", "").replace("\"",""); + String confname = ""; + try{ + confname = URLEncoder.encode(tmp, "UTF-8")+".conf"; + }catch (Exception e) {e.printStackTrace();} + // + ConfWriter cf=new ConfWriter(); + cf.addToStats("relearned role: "+roles.first()); + + //System.exit(0); + //"relearned concept: "; + cf.writeSPARQL(confname, posExamples, negExamples, url, new TreeSet<String>(),standardSettings,algorithm); + //new LearnSparql().learn(posExamples, negExamples, "http://dbpedia.openlinksw.com:8890/sparql", new TreeSet<String>()); + + + } /*************************************************************************** * *********************OLDCODE String @@ -131,7 +218,7 @@ public static void init() { - se = SparqlEndpoint.EndpointDBpedia(); + // create logger (a simple logger which outputs // its messages to the console) SimpleLayout layout = new SimpleLayout(); Modified: trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java 2008-05-06 15:02:50 UTC (rev 829) +++ trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java 2008-05-06 18:16:26 UTC (rev 830) @@ -5,6 +5,7 @@ import java.util.Set; import org.apache.log4j.ConsoleAppender; +import org.apache.log4j.FileAppender; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.SimpleLayout; @@ -24,7 +25,12 @@ public static void main(String[] args) { SimpleLayout layout = new SimpleLayout(); ConsoleAppender consoleAppender = new ConsoleAppender(layout); + FileAppender fileAppender =null; ; + try{ + fileAppender = new FileAppender(layout,"endpoints.txt",false); + }catch (Exception e) {e.printStackTrace();} logger.removeAllAppenders(); + logger.addAppender(fileAppender); logger.addAppender(consoleAppender); logger.setLevel(Level.DEBUG); Logger.getLogger(SparqlKnowledgeSource.class).setLevel(Level.INFO); Added: trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderRolesSPARQL.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderRolesSPARQL.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderRolesSPARQL.java 2008-05-06 18:16:26 UTC (rev 830) @@ -0,0 +1,123 @@ +package org.dllearner.utilities; + +import java.util.SortedSet; +import java.util.TreeSet; + +import org.apache.log4j.Logger; +import org.dllearner.core.ComponentManager; +import org.dllearner.kb.sparql.Cache; +import org.dllearner.kb.sparql.SparqlQuery; +import org.dllearner.kb.sparql.configuration.SparqlEndpoint; + +import com.hp.hpl.jena.query.ResultSet; + +public class AutomaticExampleFinderRolesSPARQL { + + private static Logger logger = Logger + .getLogger(ComponentManager.class); + + private Cache c; + private SparqlEndpoint se; + private SortedSet<String> posExamples; + private SortedSet<String> negExamples; + private int roleLimit=1000; + + + public AutomaticExampleFinderRolesSPARQL(SparqlEndpoint se){ + this.c=new Cache(); + this.se=se; + posExamples = new TreeSet<String>(); + negExamples = new TreeSet<String>(); + } + + public void initDomainRange(String role, int poslimit, int neglimit) { + makePositiveExamplesAsDomain( role); + SortedSet<String> keepForClean = new TreeSet<String>(); + keepForClean.addAll(this.posExamples); + this.posExamples = SetManipulation.fuzzyShrink(this.posExamples, poslimit); + logger.trace("shrinking: pos Example size: "+posExamples.size()); + + makeNegativeExamplesAsRange( role); + + + //clean + negExamples.removeAll(keepForClean); + logger.trace("neg Example size after cleaning: "+negExamples.size()); + this.negExamples = SetManipulation.fuzzyShrink(negExamples, neglimit); + logger.debug("pos Example size after shrinking: "+posExamples.size()); + logger.debug("neg Example size after shrinking: "+negExamples.size()); + logger.debug("Finished examples for role: "+role); + } + + + + + private void makePositiveExamplesAsDomain(String role){ + logger.debug("making Positive Examples from Role as Domain: "+role); + this.posExamples.addAll(getDomain( role, roleLimit)); + logger.debug(" pos Example size: "+posExamples.size()); + } + + private void makeNegativeExamplesAsRange(String role){ + logger.debug("making Negative Examples from Role as Range: "+role); + this.negExamples.addAll(getRange( role, roleLimit)); + logger.debug(" neg Example size: "+negExamples.size()); + } + + private SortedSet<String> getDomain(String role,int limit){ + + String query = "" + + "SELECT DISTINCT ?domain " + + "WHERE { \n" + + "?domain <" + role + "> " + " ?o. \n" + + "?domain a []\n." + + "FILTER (!isLiteral(?domain))." + + "}\n" + + "LIMIT "+limit; + + + String JSON = (c.executeSparqlQuery(new SparqlQuery(query, se))); + ResultSet rs =SparqlQuery.JSONtoResultSet(JSON); + JenaResultSetConvenience rsc = new JenaResultSetConvenience(rs); + return rsc.getStringListForVariable("domain"); + + } + + private SortedSet<String> getRange(String role,int limit){ + + String query = "" + + "SELECT DISTINCT ?range " + + "WHERE { \n" + + "?s <" + role + "> " + " ?range. \n" + + "?range a [].\n" + + "FILTER (!isLiteral(?range))." + + "}\n" + + "LIMIT "+limit; + + + String JSON = (c.executeSparqlQuery(new SparqlQuery(query, se))); + ResultSet rs =SparqlQuery.JSONtoResultSet(JSON); + JenaResultSetConvenience rsc = new JenaResultSetConvenience(rs); + return rsc.getStringListForVariable("range"); + + } + + + + + + + public SortedSet<String> getPosExamples() { + return posExamples; + } + + public SortedSet<String> getNegExamples() { + return negExamples; + } + + + + + + +} Deleted: trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java 2008-05-06 15:02:50 UTC (rev 829) +++ trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java 2008-05-06 18:16:26 UTC (rev 830) @@ -1,294 +0,0 @@ -package org.dllearner.utilities; - -import java.util.SortedSet; -import java.util.TreeSet; - -import org.apache.log4j.Logger; -import org.dllearner.core.ComponentManager; -import org.dllearner.kb.sparql.Cache; -import org.dllearner.kb.sparql.SparqlQuery; -import org.dllearner.kb.sparql.SparqlQueryDescriptionConvertVisitor; -import org.dllearner.kb.sparql.configuration.SparqlEndpoint; - -import com.hp.hpl.jena.query.ResultSet; - -public class AutomaticExampleFinderSPARQL { - - private static Logger logger = Logger - .getLogger(ComponentManager.class); - - private Cache c; - private SparqlEndpoint se; - private SortedSet<String> posExamples; - private SortedSet<String> negExamples; - - - public AutomaticExampleFinderSPARQL(SparqlEndpoint se){ - this.c=new Cache(); - this.se=se; - posExamples = new TreeSet<String>(); - negExamples = new TreeSet<String>(); - } - - public void init(String concept, boolean useRelated, boolean useSuperclasses,boolean useParallelClasses, int poslimit, int neglimit) { - makePositiveExamplesFromConcept( concept); - SortedSet<String> keepForClean = new TreeSet<String>(); - keepForClean.addAll(this.posExamples); - this.posExamples = SetManipulation.fuzzyShrink(this.posExamples, poslimit); - logger.trace("shrinking: pos Example size: "+posExamples.size()); - - if(useRelated) { - dbpediaMakeNegativeExamplesFromRelatedInstances(this.posExamples); - } - if(useSuperclasses) { - dbpediaMakeNegativeExamplesFromSuperClasses(concept); - } - if(useParallelClasses) { - dbpediaMakeNegativeExamplesFromClassesOfInstances(); - } - //clean - negExamples.removeAll(keepForClean); - logger.trace("neg Example size after cleaning: "+negExamples.size()); - this.negExamples = SetManipulation.fuzzyShrink(negExamples, neglimit); - logger.debug("pos Example size after shrinking: "+posExamples.size()); - logger.debug("neg Example size after shrinking: "+negExamples.size()); - logger.debug("Finished examples for concept: "+concept); - } - - public SortedSet<String> getPosOnly(String concept, int limit){ - makePositiveExamplesFromConcept( concept); - return SetManipulation.fuzzyShrink(this.posExamples, limit); - } - - private void makePositiveExamplesFromConcept(String concept){ - logger.debug("making Positive Examples from Concept: "+concept); - if(concept.contains("http://dbpedia.org/resource/Category:")) { - this.posExamples = new JenaResultSetConvenience(querySKOSConcept(concept,0)) - .getStringListForVariable("subject"); - }else { - this.posExamples = new JenaResultSetConvenience(queryConcept(concept,0)) - .getStringListForVariable("subject"); - } - logger.debug(" pos Example size: "+posExamples.size()); - } - - - - - - private void dbpediaMakeNegativeExamplesFromRelatedInstances(SortedSet<String> subject) { - logger.debug("making examples from related instances"); - for (String string : subject) { - dbpediaMakeNegativeExamplesFromRelatedInstances(string); - } - logger.debug(" negExample size: "+negExamples.size()); - } - - - /** - * - * @param subject - * @return - */ - private void dbpediaMakeNegativeExamplesFromRelatedInstances(String subject) { - // SortedSet<String> result = new TreeSet<String>(); - - String query = "SELECT * WHERE { \n" + "<" + subject + "> " + "?p ?o. \n" - + "FILTER (REGEX(str(?o), 'http://dbpedia.org/resource/')).\n" - + "FILTER (!REGEX(str(?p), 'http://www.w3.org/2004/02/skos'))\n" - + "}"; - - String JSON = (c.executeSparqlQuery(new SparqlQuery(query, se))); - ResultSet rs =SparqlQuery.JSONtoResultSet(JSON); - JenaResultSetConvenience rsc = new JenaResultSetConvenience(rs); - this.negExamples.addAll(rsc.getStringListForVariable("o")); - - - } - - - private void dbpediaMakeNegativeExamplesFromSuperClasses(String concept) { - - SortedSet<String> superClasses = new TreeSet<String>(); - superClasses.add(concept.replace("\"", "")); - //logger.debug("before"+superClasses); - superClasses = dbpediaGetSuperClasses( superClasses, 4); - logger.debug("making neg Examples from "+superClasses.size()+" superclasses"); - JenaResultSetConvenience rsc; - for (String oneSuperClass : superClasses) { - - rsc = new JenaResultSetConvenience(queryConcept("\""+oneSuperClass+"\"", 0)); - this.negExamples.addAll(rsc.getStringListForVariable("subject")); - } - logger.debug(" neg Example size: "+negExamples.size()); - } - - private void dbpediaMakeNegativeExamplesFromClassesOfInstances() { - logger.debug("making neg Examples from parallel classes"); - SortedSet<String> classes = new TreeSet<String>(); - //superClasses.add(concept.replace("\"", "")); - //logger.debug("before"+superClasses); - //superClasses = dbpediaGetSuperClasses( superClasses, 4); - //logger.debug("getting negExamples from "+superClasses.size()+" superclasses"); - JenaResultSetConvenience rsc; - ResultSet rs=null; - for (String instance : posExamples) { - //System.out.println(instance); - rs = getClassesForInstance(instance); - //System.out.println(ResultSetFormatter.asXMLString(rs)); - rsc = new JenaResultSetConvenience(rs); - classes.addAll(rsc.getStringListForVariable("subject")); - //System.out.println(classes); - } - logger.debug("getting negExamples from "+classes.size()+" parallel classes"); - for (String oneClass : classes) { - - rsc = new JenaResultSetConvenience(queryConcept("\""+oneClass+"\"",0)); - this.negExamples.addAll(rsc.getStringListForVariable("subject")); - } - logger.debug("neg Example size: "+negExamples.size()); - - } - - private SortedSet<String> dbpediaGetSuperClasses(SortedSet<String> superClasses, int depth) { - SortedSet<String> ret = new TreeSet<String>(); - SortedSet<String> tmpset = new TreeSet<String>(); - ret.addAll(superClasses); - //logger.debug(superClasses); - JenaResultSetConvenience rsc; - - String query = ""; - for (; depth != 0 ; depth--) { - for (String oneSuperClass : superClasses) { - //logger.debug("one"+oneSuperClass); - //tmp = oneSuperClass.replace("\"", ""); - query = "SELECT * WHERE { \n" + "<" + oneSuperClass + "> " - + "<http://www.w3.org/2000/01/rdf-schema#subClassOf> ?superclass. \n" - + "}"; - String JSON = (c.executeSparqlQuery(new SparqlQuery(query, se))); - ResultSet rs =SparqlQuery.JSONtoResultSet(JSON); - rsc = new JenaResultSetConvenience(rs); - tmpset.addAll(rsc.getStringListForVariable("superclass")); - } - ret.addAll(tmpset); - //logger.debug(ret); - superClasses.clear(); - superClasses.addAll(tmpset); - tmpset.clear(); - } - //logger.debug(concept); - //logger.debug(query); - return ret; - } - - public ResultSet queryConcept(String concept,int limit) { - ResultSet rs = null; - try { - String query = SparqlQueryDescriptionConvertVisitor - .getSparqlQuery(concept,limit); - - SparqlQuery sq = new SparqlQuery(query, se); - String JSON = c.executeSparqlQuery(sq); - //System.out.println("JSON:\n"+JSON); - rs = SparqlQuery.JSONtoResultSet(JSON); - - } catch (Exception e) { - e.printStackTrace(); - } - - return rs; - } - - public ResultSet querySKOSConcept(String SKOSconcept,int limit) { - if(limit==0)limit=99999; - // - ResultSet rs = null; - try { - - String query = "SELECT * WHERE { \n " + - "?subject " + - "<http://www.w3.org/2004/02/skos/core#subject> " + - "<" + SKOSconcept + "> \n" + - "} LIMIT "+limit; - SparqlQuery sq = new SparqlQuery(query, se); - String JSON = c.executeSparqlQuery(sq); - //System.out.println(JSON); - rs = SparqlQuery.JSONtoResultSet(JSON); - - } catch (Exception e) { - e.printStackTrace(); - } - - return rs; - } - - public ResultSet getClassesForInstance(String instance) { - ResultSet rs = null; - try { - - String query = "SELECT ?subject WHERE { \n " + - "<" + instance + ">"+ - " a " + - "?subject " + - "\n" + - "}"; - SparqlQuery sq = new SparqlQuery(query, se); - //System.out.println(query); - String JSON = c.executeSparqlQuery(sq); - //System.out.println(JSON); - rs = SparqlQuery.JSONtoResultSet(JSON); - - } catch (Exception e) { - e.printStackTrace(); - } - - return rs; - } - - public SortedSet<String> getPosExamples() { - return posExamples; - } - - public SortedSet<String> getNegExamples() { - return negExamples; - } - - - /** - * NOT WORKING - * @param description - */ - public void getSubClasses(String description) { - ResultSet rs = null; - try { - String query = SparqlQueryDescriptionConvertVisitor - .getSparqlSubclassQuery(description.replace("\"", "")); - - rs = new SparqlQuery(query, se).send(); - System.out.println(query); - //System.out.println(SparqlQuery.getAsXMLString(rs)); - System.out.println(rs.getResultVars()); - SortedSet<String> remainingClasses = new JenaResultSetConvenience(rs).getStringListForVariable("subject"); - SortedSet<String> alreadyQueried = new TreeSet<String>(); - alreadyQueried.add(description); - while (remainingClasses.size()!=0){ - String tmp = remainingClasses.first(); - remainingClasses.remove(tmp); - query = SparqlQueryDescriptionConvertVisitor - .getSparqlSubclassQuery(tmp); - alreadyQueried.add(tmp); - rs = new SparqlQuery(query, se).send(); - remainingClasses.addAll(new JenaResultSetConvenience(rs).getStringListForVariable("subject")); - } - //System.out.println(JSON); - System.out.println(alreadyQueried); - - } catch (Exception e) { - e.printStackTrace(); - } - - } - - - -} Added: trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java 2008-05-06 18:16:26 UTC (rev 830) @@ -0,0 +1,374 @@ +package org.dllearner.utilities; + +import java.util.SortedSet; +import java.util.TreeSet; + +import org.apache.log4j.Logger; +import org.dllearner.core.ComponentManager; +import org.dllearner.kb.sparql.Cache; +import org.dllearner.kb.sparql.SparqlQuery; +import org.dllearner.kb.sparql.SparqlQueryDescriptionConvertVisitor; +import org.dllearner.kb.sparql.configuration.SparqlEndpoint; + +import com.hp.hpl.jena.query.ResultSet; + +public class AutomaticExampleFinderSPARQL { + + private static Logger logger = Logger + .getLogger(ComponentManager.class); + + private Cache c; + private SparqlEndpoint se; + private SortedSet<String> posExamples; + private SortedSet<String> negExamples; + + + public AutomaticExampleFinderSPARQL(SparqlEndpoint se){ + this.c=new Cache(); + this.se=se; + posExamples = new TreeSet<String>(); + negExamples = new TreeSet<String>(); + } + + public void initDBpedia(String concept, boolean useRelated, boolean useSuperclasses,boolean useParallelClasses, int poslimit, int neglimit) { + dbpediaMakePositiveExamplesFromConcept( concept); + SortedSet<String> keepForClean = new TreeSet<String>(); + keepForClean.addAll(this.posExamples); + this.posExamples = SetManipulation.fuzzyShrink(this.posExamples, poslimit); + logger.trace("shrinking: pos Example size: "+posExamples.size()); + + if(useRelated) { + dbpediaMakeNegativeExamplesFromRelatedInstances(this.posExamples); + } + if(useSuperclasses) { + makeNegativeExamplesFromSuperClasses(concept); + } + if(useParallelClasses) { + makeNegativeExamplesFromClassesOfInstances(); + } + //clean + negExamples.removeAll(keepForClean); + logger.trace("neg Example size after cleaning: "+negExamples.size()); + this.negExamples = SetManipulation.fuzzyShrink(negExamples, neglimit); + logger.debug("pos Example size after shrinking: "+posExamples.size()); + logger.debug("neg Example size after shrinking: "+negExamples.size()); + logger.debug("Finished examples for concept: "+concept); + } + + public void init(String concept, String namespace, boolean useRelated, boolean useSuperclasses,boolean useParallelClasses, int poslimit, int neglimit) { + makePositiveExamplesFromConcept( concept); + SortedSet<String> keepForClean = new TreeSet<String>(); + keepForClean.addAll(this.posExamples); + this.posExamples = SetManipulation.fuzzyShrink(this.posExamples, poslimit); + logger.trace("shrinking: pos Example size: "+posExamples.size()); + + if(useRelated) { + makeNegativeExamplesFromRelatedInstances(this.posExamples,namespace); + } + if(useSuperclasses) { + makeNegativeExamplesFromSuperClasses(concept); + } + if(useParallelClasses) { + makeNegativeExamplesFromClassesOfInstances(); + } + //clean + negExamples.removeAll(keepForClean); + logger.trace("neg Example size after cleaning: "+negExamples.size()); + this.negExamples = SetManipulation.fuzzyShrink(negExamples, neglimit); + logger.debug("pos Example size after shrinking: "+posExamples.size()); + logger.debug("neg Example size after shrinking: "+negExamples.size()); + logger.debug("Finished examples for concept: "+concept); + } + + + + public SortedSet<String> dbpediaGetPosOnly(String concept, int limit){ + dbpediaMakePositiveExamplesFromConcept( concept); + return SetManipulation.fuzzyShrink(this.posExamples, limit); + } + + public SortedSet<String> getPosOnly(String concept, int limit){ + makePositiveExamplesFromConcept( concept); + return SetManipulation.fuzzyShrink(this.posExamples, limit); + } + + private void dbpediaMakePositiveExamplesFromConcept(String concept){ + logger.debug("making Positive Examples from Concept: "+concept); + if(concept.contains("http://dbpedia.org/resource/Category:")) { + this.posExamples = new JenaResultSetConvenience(dbpediaQuerySKOSConcept(concept,0)) + .getStringListForVariable("subject"); + }else { + this.posExamples = new JenaResultSetConvenience(queryConcept(concept,0)) + .getStringListForVariable("subject"); + } + logger.debug(" pos Example size: "+posExamples.size()); + } + + private void makePositiveExamplesFromConcept(String concept){ + logger.debug("making Positive Examples from Concept: "+concept); + this.posExamples = new JenaResultSetConvenience(queryConcept(concept,0)) + .getStringListForVariable("subject"); + logger.debug(" pos Example size: "+posExamples.size()); + } + + + + /*private void makePositiveExamplesFromConcept(String concept){ + logger.debug("making Positive Examples from Concept: "+concept); + if(concept.contains("http://dbpedia.org/resource/Category:")) { + this.posExamples = new JenaResultSetConvenience(querySKOSConcept(concept,0)) + .getStringListForVariable("subject"); + }else { + this.posExamples = new JenaResultSetConvenience(queryConcept(concept,0)) + .getStringListForVariable("subject"); + } + logger.debug(" pos Example size: "+posExamples.size()); + }*/ + + + + + + private void dbpediaMakeNegativeExamplesFromRelatedInstances(SortedSet<String> subject) { + logger.debug("making examples from related instances"); + for (String string : subject) { + dbpediaMakeNegativeExamplesFromRelatedInstances(string); + } + logger.debug(" negExample size: "+negExamples.size()); + } + + private void makeNegativeExamplesFromRelatedInstances(SortedSet<String> subject, String namespace) { + logger.debug("making examples from related instances"); + for (String string : subject) { + makeNegativeExamplesFromRelatedInstances(string,namespace); + } + logger.debug(" negExample size: "+negExamples.size()); + } + + + /** + * + * @param subject + * @return + */ + private void dbpediaMakeNegativeExamplesFromRelatedInstances(String subject) { + // SortedSet<String> result = new TreeSet<String>(); + + String query = "SELECT * WHERE { \n" + "<" + subject + "> " + "?p ?o. \n" + + "FILTER (REGEX(str(?o), 'http://dbpedia.org/resource/')).\n" + + "FILTER (!REGEX(str(?p), 'http://www.w3.org/2004/02/skos'))\n" + + "}"; + + String JSON = (c.executeSparqlQuery(new SparqlQuery(query, se))); + ResultSet rs =SparqlQuery.JSONtoResultSet(JSON); + JenaResultSetConvenience rsc = new JenaResultSetConvenience(rs); + this.negExamples.addAll(rsc.getStringListForVariable("o")); + + + } + + private void makeNegativeExamplesFromRelatedInstances(String subject, String namespace) { + // SortedSet<String> result = new TreeSet<String>(); + + String query = "SELECT * WHERE { \n" + "<" + subject + "> " + "?p ?o. \n" + + "FILTER (REGEX(str(?o), '"+namespace+"')).\n" + + "}"; + + String JSON = (c.executeSparqlQuery(new SparqlQuery(query, se))); + ResultSet rs =SparqlQuery.JSONtoResultSet(JSON); + JenaResultSetConvenience rsc = new JenaResultSetConvenience(rs); + this.negExamples.addAll(rsc.getStringListForVariable("o")); + + + } + + + private void makeNegativeExamplesFromSuperClasses(String concept) { + + SortedSet<String> superClasses = new TreeSet<String>(); + superClasses.add(concept.replace("\"", "")); + //logger.debug("before"+superClasses); + superClasses = getSuperClasses( superClasses, 4); + logger.debug("making neg Examples from "+superClasses.size()+" superclasses"); + JenaResultSetConvenience rsc; + for (String oneSuperClass : superClasses) { + + rsc = new JenaResultSetConvenience(queryConcept("\""+oneSuperClass+"\"", 0)); + this.negExamples.addAll(rsc.getStringListForVariable("subject")); + } + logger.debug(" neg Example size: "+negExamples.size()); + } + + + + private void makeNegativeExamplesFromClassesOfInstances() { + logger.debug("making neg Examples from parallel classes"); + SortedSet<String> classes = new TreeSet<String>(); + //superClasses.add(concept.replace("\"", "")); + //logger.debug("before"+superClasses); + //superClasses = dbpediaGetSuperClasses( superClasses, 4); + //logger.debug("getting negExamples from "+superClasses.size()+" superclasses"); + JenaResultSetConvenience rsc; + ResultSet rs=null; + for (String instance : posExamples) { + //System.out.println(instance); + rs = getClassesForInstance(instance); + //System.out.println(ResultSetFormatter.asXMLString(rs)); + rsc = new JenaResultSetConvenience(rs); + classes.addAll(rsc.getStringListForVariable("subject")); + //System.out.println(classes); + } + logger.debug("getting negExamples from "+classes.size()+" parallel classes"); + for (String oneClass : classes) { + + rsc = new JenaResultSetConvenience(queryConcept("\""+oneClass+"\"",0)); + this.negExamples.addAll(rsc.getStringListForVariable("subject")); + } + logger.debug("neg Example size: "+negExamples.size()); + + } + + private SortedSet<String> getSuperClasses(SortedSet<String> superClasses, int depth) { + SortedSet<String> ret = new TreeSet<String>(); + SortedSet<String> tmpset = new TreeSet<String>(); + ret.addAll(superClasses); + //logger.debug(superClasses); + JenaResultSetConvenience rsc; + + String query = ""; + for (; depth != 0 ; depth--) { + for (String oneSuperClass : superClasses) { + //logger.debug("one"+oneSuperClass); + //tmp = oneSuperClass.replace("\"", ""); + query = "SELECT * WHERE { \n" + "<" + oneSuperClass + "> " + + "<http://www.w3.org/2000/01/rdf-schema#subClassOf> ?superclass. \n" + + "}"; + String JSON = (c.executeSparqlQuery(new SparqlQuery(query, se))); + ResultSet rs =SparqlQuery.JSONtoResultSet(JSON); + rsc = new JenaResultSetConvenience(rs); + tmpset.addAll(rsc.getStringListForVariable("superclass")); + } + ret.addAll(tmpset); + //logger.debug(ret); + superClasses.clear(); + superClasses.addAll(tmpset); + tmpset.clear(); + } + //logger.debug(concept); + //logger.debug(query); + return ret; + } + + + + public ResultSet queryConcept(String concept,int limit) { + ResultSet rs = null; + try { + String query = SparqlQueryDescriptionConvertVisitor + .getSparqlQuery(concept,limit); + + SparqlQuery sq = new SparqlQuery(query, se); + String JSON = c.executeSparqlQuery(sq); + //System.out.println("JSON:\n"+JSON); + rs = SparqlQuery.JSONtoResultSet(JSON); + + } catch (Exception e) { + e.printStackTrace(); + } + + return rs; + } + + public ResultSet dbpediaQuerySKOSConcept(String SKOSconcept,int limit) { + if(limit==0)limit=99999; + // + ResultSet rs = null; + try { + + String query = "SELECT * WHERE { \n " + + "?subject " + + "<http://www.w3.org/2004/02/skos/core#subject> " + + "<" + SKOSconcept + "> \n" + + "} LIMIT "+limit; + SparqlQuery sq = new SparqlQuery(query, se); + String JSON = c.executeSparqlQuery(sq); + //System.out.println(JSON); + rs = SparqlQuery.JSONtoResultSet(JSON); + + } catch (Exception e) { + e.printStackTrace(); + } + + return rs; + } + + public ResultSet getClassesForInstance(String instance) { + ResultSet rs = null; + try { + + String query = "SELECT ?subject WHERE { \n " + + "<" + instance + ">"+ + " a " + + "?subject " + + "\n" + + "}"; + SparqlQuery sq = new SparqlQuery(query, se); + //System.out.println(query); + String JSON = c.executeSparqlQuery(sq); + //System.out.println(JSON); + rs = SparqlQuery.JSONtoResultSet(JSON); + + } catch (Exception e) { + e.printStackTrace(); + } + + return rs; + } + + public SortedSet<String> getPosExamples() { + return posExamples; + } + + public SortedSet<String> getNegExamples() { + return negExamples; + } + + + /** + * NOT WORKING + * @param description + */ + public void getSubClasses(String description) { + ResultSet rs = null; + try { + String query = SparqlQueryDescriptionConvertVisitor + .getSparqlSubclassQuery(description.replace("\"", "")); + + rs = new SparqlQuery(query, se).send(); + System.out.println(query); + //System.out.println(SparqlQuery.getAsXMLString(rs)); + System.out.println(rs.getResultVars()); + SortedSet<String> remainingClasses = new JenaResultSetConvenience(rs).getStringListForVariable("subject"); + SortedSet<String> alreadyQueried = new TreeSet<String>(); + alreadyQueried.add(description); + while (remainingClasses.size()!=0){ + String tmp = remainingClasses.first(); + remainingClasses.remove(tmp); + query = SparqlQueryDescriptionConvertVisitor + .getSparqlSubclassQuery(tmp); + alreadyQueried.add(tmp); + rs = new SparqlQuery(query, se).send(); + remainingClasses.addAll(new JenaResultSetConvenience(rs).getStringListForVariable("subject")); + } + //System.out.println(JSON); + System.out.println(alreadyQueried); + + } catch (Exception e) { + e.printStackTrace(); + } + + } + + + +} Modified: trunk/src/dl-learner/org/dllearner/utilities/ConfWriter.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/ConfWriter.java 2008-05-06 15:02:50 UTC (rev 829) +++ trunk/src/dl-learner/org/dllearner/utilities/ConfWriter.java 2008-05-06 18:16:26 UTC (rev 830) @@ -43,23 +43,12 @@ } public void writeSPARQL(String filename, SortedSet<String> pos, SortedSet<String> neg, - String uri, SortedSet<String> ignoredConcepts) { + String uri, SortedSet<String> ignoredConcepts, String standardSettings, String prefixAlgortihm) { - String prefixAlgortihm = "refexamples"; + String prefixSparql = "sparql"; - String standardSettings = - "sparql.recursionDepth = 1;\n" + - "sparql.predefinedFilter = \"YAGO\";\n" + - "sparql.predefinedEndpoint = \"DBPEDIA\";\n" + - "refexamples.minExecutionTimeInSeconds = 30;\n" + - "refexamples.maxExecutionTimeInSeconds = 30;\n" + - "//refexamples.guaranteeXgoodDescriptions = 10;\n" + - "refexamples.logLevel=\"TRACE\";\n" + - "refexamples.noisePercentage = 0.10;\n" + - "refexamples.writeSearchTree = true;\n" + - "refexamples.searchTreeFile = \"searchTree.txt\";\n"+ - "refexamples.replaceSearchTree = true;\n\n" ; + // "sparql.format = \"KB\";\n\n"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2008-05-06 15:03:02
|
Revision: 829 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=829&view=rev Author: kurzum Date: 2008-05-06 08:02:50 -0700 (Tue, 06 May 2008) Log Message: ----------- more predefined sparqlendpoints Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java trunk/src/dl-learner/org/dllearner/test/JenaQueryToResultSpeedTest.java trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-04-28 09:43:43 UTC (rev 828) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-05-06 15:02:50 UTC (rev 829) @@ -87,21 +87,43 @@ if (name.equals("DBPEDIA")) - return dbpediaEndpoint(); + return EndpointDBpedia(); if (name.equals("LOCALJOSECKI")) - return localJoseki(); + return EndpointlocalJoseki(); if (name.equals("GOVTRACK")) - return govTrack(); + return EndpointGovTrack(); if (name.equals("REVYU")) - return revyu(); + return EndpointRevyu(); if (name.equals("MYOPENLINK")) - return myopenlink(); + return EndpointMyOpenlink(); if (name.equals("FACTBOOK")) - return worldFactBook(); + return EndpointWorldFactBook(); + if (name.equals("DBLP")) + return EndpointDBLP(); return null; } - public static SparqlEndpoint dbpediaEndpoint() { + + public static LinkedList<SparqlEndpoint> listEndpoints() { + LinkedList<SparqlEndpoint> ll =new LinkedList<SparqlEndpoint>(); + ll.add(EndpointDBLP()); + ll.add(EndpointDBpedia()); + ll.add(EndpointDOAPspace()); + ll.add(EndpointGovTrack()); + ll.add(EndpointJamendo()); + ll.add(EndpointJohnPeel()); + ll.add(EndpointlocalJoseki()); + ll.add(EndpointMagnaTune()); + ll.add(EndpointMusicbrainz()); + ll.add(EndpointMyOpenlink()); + ll.add(EndpointRevyu()); + ll.add(EndpointSWConference()); + ll.add(EndpointUSCensus()); + ll.add(EndpointWorldFactBook()); + return ll; + } + + public static SparqlEndpoint EndpointDBpedia() { URL u = null; try { u = new URL("http://dbpedia.openlinksw.com:8890/sparql"); @@ -113,7 +135,7 @@ return new SparqlEndpoint(u, defaultGraphURIs, new LinkedList<String>()); } - public static SparqlEndpoint localJoseki() { + public static SparqlEndpoint EndpointlocalJoseki() { URL u = null; try { u = new URL("http://localhost:2020/books"); @@ -123,7 +145,7 @@ return new SparqlEndpoint(u, new LinkedList<String>(), new LinkedList<String>()); } - public static SparqlEndpoint worldFactBook() { + public static SparqlEndpoint EndpointWorldFactBook() { URL u = null; try { u = new URL("http://www4.wiwiss.fu-berlin.de/factbook/sparql"); @@ -134,7 +156,7 @@ } - public static SparqlEndpoint govTrack() { + public static SparqlEndpoint EndpointGovTrack() { URL u = null; try { u = new URL("http://www.rdfabout.com/sparql"); @@ -144,7 +166,7 @@ return new SparqlEndpoint(u, new LinkedList<String>(), new LinkedList<String>()); } - public static SparqlEndpoint revyu() { + public static SparqlEndpoint EndpointRevyu() { URL u = null; try { u = new URL("http://revyu.com/sparql"); @@ -154,7 +176,7 @@ return new SparqlEndpoint(u, new LinkedList<String>(), new LinkedList<String>()); } - public static SparqlEndpoint myopenlink() { + public static SparqlEndpoint EndpointMyOpenlink() { URL u = null; try { u = new URL("http://myopenlink.net:8890/sparql/"); @@ -167,9 +189,46 @@ } + public static SparqlEndpoint EndpointDOAPspace() { + URL u = null; + try { + u = new URL("http://doapspace.org/sparql"); + } catch (Exception e) { + e.printStackTrace(); + } + + return new SparqlEndpoint(u); + + } + public static SparqlEndpoint EndpointJohnPeel() { + URL u = null; + try { + u = new URL("http://dbtune.org:3030/sparql/"); + } catch (Exception e) { + e.printStackTrace(); + } + + return new SparqlEndpoint(u); + + } + + + + public static SparqlEndpoint EndpointSWConference() { + URL u = null; + try { + u = new URL("http://data.semanticweb.org:8080/openrdf-sesame/repositories/SWC"); + } catch (Exception e) { + e.printStackTrace(); + } + + return new SparqlEndpoint(u); + + } // returns strange xml - /*public static SpecificSparqlEndpoint dbtune() { + /* + public static SpecificSparqlEndpoint dbtune() { URL u = null; HashMap<String, String> m = new HashMap<String, String>(); // m.put("default-graph-uri", "http://dbpedia.org"); @@ -191,25 +250,69 @@ return new SpecificSparqlEndpoint(u, "dbtune.org", m); }*/ + public static SparqlEndpoint EndpointJamendo() { + URL u = null; + try { + u = new URL("http://dbtune.org:2105/sparql/"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SparqlEndpoint(u); + } + + + public static SparqlEndpoint EndpointMagnaTune() { + URL u = null; + try { + u = new URL("http://dbtune.org:2020/sparql/"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SparqlEndpoint(u); + } + + public static SparqlEndpoint EndpointMusicbrainz() { + URL u = null; + try { + u = new URL(" http://dbtune.org/musicbrainz/sparql"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SparqlEndpoint(u); + } + + public static SparqlEndpoint EndpointUSCensus() { + URL u = null; + try { + u = new URL(" http://www.rdfabout.com/sparql"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SparqlEndpoint(u); + } + + + + /* * it only has 4 classes - public static SpecificSparqlEndpoint dblp() { + */ + public static SparqlEndpoint EndpointDBLP() { URL u = null; - HashMap<String, String> m = new HashMap<String, String>(); - // m.put("default-graph-uri", "http://dbpedia.org"); - // m.put("format", "application/sparql-results.xml"); - try { + try { u = new URL("http://www4.wiwiss.fu-berlin.de/dblp/sparql"); } catch (Exception e) { e.printStackTrace(); } - return new SpecificSparqlEndpoint(u, "www4.wiwiss.fu-berlin.de", m); + return new SparqlEndpoint(u); } - */ + + + } Modified: trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-04-28 09:43:43 UTC (rev 828) +++ trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-05-06 15:02:50 UTC (rev 829) @@ -10,7 +10,6 @@ import org.apache.log4j.SimpleLayout; import org.dllearner.kb.sparql.Cache; import org.dllearner.kb.sparql.SparqlKnowledgeSource; -import org.dllearner.kb.sparql.SparqlQuery; import org.dllearner.kb.sparql.configuration.SparqlEndpoint; import org.dllearner.utilities.AutomaticExampleFinderSPARQL; import org.dllearner.utilities.ConfWriter; @@ -132,7 +131,7 @@ public static void init() { - se = SparqlEndpoint.dbpediaEndpoint(); + se = SparqlEndpoint.EndpointDBpedia(); // create logger (a simple logger which outputs // its messages to the console) SimpleLayout layout = new SimpleLayout(); Modified: trunk/src/dl-learner/org/dllearner/test/JenaQueryToResultSpeedTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/JenaQueryToResultSpeedTest.java 2008-04-28 09:43:43 UTC (rev 828) +++ trunk/src/dl-learner/org/dllearner/test/JenaQueryToResultSpeedTest.java 2008-05-06 15:02:50 UTC (rev 829) @@ -51,7 +51,7 @@ public static void testJenaAsXML(int howOften, String queryString){ - SparqlEndpoint sse = SparqlEndpoint.dbpediaEndpoint(); + SparqlEndpoint sse = SparqlEndpoint.EndpointDBpedia(); SparqlQuery sqJena = new SparqlQuery(queryString, sse); // first query is not counted ResultSet rs = sqJena.send(); @@ -73,7 +73,7 @@ } public static void testJenaAsList(int howOften, String queryString){ - SparqlEndpoint sse = SparqlEndpoint.dbpediaEndpoint(); + SparqlEndpoint sse = SparqlEndpoint.EndpointDBpedia(); SparqlQuery sqJena = new SparqlQuery(queryString, sse); // first query is not counted //sqJena.getAsList(); @@ -97,7 +97,7 @@ } public static void testJenaAsJSON(int howOften, String queryString){ - SparqlEndpoint sse = SparqlEndpoint.dbpediaEndpoint(); + SparqlEndpoint sse = SparqlEndpoint.EndpointDBpedia(); SparqlQuery sqJena = new SparqlQuery(queryString, sse); // first query is not counted ResultSet rs = sqJena.send(); @@ -120,7 +120,7 @@ } public static void testJenaAsJSONandBack(int howOften, String queryString){ - SparqlEndpoint sse = SparqlEndpoint.dbpediaEndpoint(); + SparqlEndpoint sse = SparqlEndpoint.EndpointDBpedia(); SparqlQuery sqJena = new SparqlQuery(queryString, sse); // first query is not counted ResultSet rs = sqJena.send(); @@ -146,7 +146,7 @@ public static void compareResults(String queryString) { - SparqlEndpoint sse = SparqlEndpoint.dbpediaEndpoint(); + SparqlEndpoint sse = SparqlEndpoint.EndpointDBpedia(); SparqlQuery sqJena = new SparqlQuery(queryString, sse); // SparqlQueryConventional sqConv=new SparqlQueryConventional(sse); Modified: trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java 2008-04-28 09:43:43 UTC (rev 828) +++ trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java 2008-05-06 15:02:50 UTC (rev 829) @@ -1,6 +1,7 @@ package org.dllearner.test; import java.util.HashSet; +import java.util.LinkedList; import java.util.Set; import org.apache.log4j.ConsoleAppender; @@ -30,19 +31,15 @@ - Set<SparqlEndpoint> set = new HashSet<SparqlEndpoint>(); - set.add(SparqlEndpoint.dbpediaEndpoint()); - set.add(SparqlEndpoint.govTrack()); - set.add(SparqlEndpoint.localJoseki()); - set.add(SparqlEndpoint.myopenlink()); - set.add(SparqlEndpoint.worldFactBook()); - set.add(SparqlEndpoint.revyu()); + LinkedList<SparqlEndpoint> ll = SparqlEndpoint.listEndpoints(); + int i=1; - for (SparqlEndpoint sparqlEndpoint : set) { - testEndPoint(sparqlEndpoint); - logger.info("finished "+i+" of "+set.size()); + for (int j = 0; j < ll.size(); j++) { + + testEndPoint(ll.get(j)); + logger.info("finished "+i+" of "+ll.size()); i++; } logger.info("**************"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2008-04-28 09:43:46
|
Revision: 828 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=828&view=rev Author: kurzum Date: 2008-04-28 02:43:43 -0700 (Mon, 28 Apr 2008) Log Message: ----------- fixed IS TRUE bug, changed query output to logger Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/cli/Start.java trunk/src/dl-learner/org/dllearner/core/owl/BooleanValueRestriction.java Modified: trunk/src/dl-learner/org/dllearner/cli/Start.java =================================================================== --- trunk/src/dl-learner/org/dllearner/cli/Start.java 2008-04-25 14:33:54 UTC (rev 827) +++ trunk/src/dl-learner/org/dllearner/cli/Start.java 2008-04-28 09:43:43 UTC (rev 828) @@ -633,23 +633,24 @@ // performs a query - used for debugging learning examples private static void processQueryMode(LearningProblem lp, ReasoningService rs) { - System.out.println("Entering query mode. Enter a concept for performing " + logger.info("Entering query mode. Enter a concept for performing " + "retrieval or q to quit. Use brackets for complex expresssions," + "e.g. (a AND b)."); String queryStr = ""; do { - System.out.print("enter query: "); + logger.info("enter query: "); // read input string BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); try { queryStr = input.readLine(); + logger.debug(queryStr); } catch (IOException e) { e.printStackTrace(); } - if (!queryStr.equals("q")) { + if (!(queryStr.equalsIgnoreCase("q") ||queryStr.equalsIgnoreCase("quit"))) { // parse concept Description concept = null; @@ -694,12 +695,11 @@ boolean nonExistingConstructs = false; if (occurringConcepts.size() != 0 || occurringRoles.size() != 0) { - System.out - .println("You used non-existing atomic concepts or roles. Please correct your query."); + logger.debug("You used non-existing atomic concepts or roles. Please correct your query."); if (occurringConcepts.size() > 0) - System.out.println("non-existing concepts: " + occurringConcepts); + logger.debug("non-existing concepts: " + occurringConcepts); if (occurringRoles.size() > 0) - System.out.println("non-existing roles: " + occurringRoles); + logger.debug("non-existing roles: " + occurringRoles); nonExistingConstructs = true; } @@ -707,26 +707,25 @@ if (!queryStr.startsWith("(") && (queryStr.contains("AND") || queryStr.contains("OR"))) { - System.out - .println("Make sure you did not forget to use outer brackets."); + logger.info("Make sure you did not forget to use outer brackets."); } - System.out.println("The query is: " + concept + "."); + logger.info("The query is: " + concept.toKBSyntaxString() + "."); // pose retrieval query Set<Individual> result = null; result = rs.retrieval(concept); - System.out.println("retrieval result ("+result.size()+"): " + result); + logger.info("retrieval result ("+result.size()+"): " + result); Score score = lp.computeScore(concept); - System.out.println(score); + logger.info(score); } } - } + }//end if - } while (!queryStr.equals("q")); + } while (!(queryStr.equalsIgnoreCase("q")||queryStr.equalsIgnoreCase("quit"))); } Modified: trunk/src/dl-learner/org/dllearner/core/owl/BooleanValueRestriction.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/owl/BooleanValueRestriction.java 2008-04-25 14:33:54 UTC (rev 827) +++ trunk/src/dl-learner/org/dllearner/core/owl/BooleanValueRestriction.java 2008-04-28 09:43:43 UTC (rev 828) @@ -19,7 +19,9 @@ */ package org.dllearner.core.owl; +import java.util.Map; + /** * Convenience class for boolean value restrictions. * @@ -60,9 +62,10 @@ return 2; } - /*@Override + @Override public String toKBSyntaxString(String baseURI, Map<String,String> prefixes) { - throw new Error("BooleanValueRestriction: not implemented"); + String ret= "("+restrictedPropertyExpression.toKBSyntaxString(baseURI, prefixes) + " IS " + ((String)value.toKBSyntaxString(baseURI, prefixes)).toUpperCase()+")"; + return ret; - }*/ + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |