From: <ku...@us...> - 2008-09-30 18:48:55
|
Revision: 1324 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1324&view=rev Author: kurzum Date: 2008-09-30 18:48:39 +0000 (Tue, 30 Sep 2008) Log Message: ----------- server commit Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/SPARQLTasks.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java trunk/src/dl-learner/org/dllearner/scripts/SemanticBibleComparison.java trunk/src/dl-learner/org/dllearner/scripts/WikipediaCategoryCleaner.java trunk/src/dl-learner/org/dllearner/scripts/improveWikipedia/ConceptSPARQLReEvaluator.java Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SPARQLTasks.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SPARQLTasks.java 2008-09-30 15:30:28 UTC (rev 1323) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SPARQLTasks.java 2008-09-30 18:48:39 UTC (rev 1324) @@ -263,6 +263,8 @@ sparqlQueryString = SparqlQueryDescriptionConvertVisitor .getSparqlQueryIncludingSubclasses(conceptKBSyntax, sparqlResultLimit, this, maxDepth); + //RBC + System.out.println(sparqlQueryString); } catch (Exception e) { logger.warn(e.getMessage()); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java 2008-09-30 15:30:28 UTC (rev 1323) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java 2008-09-30 18:48:39 UTC (rev 1324) @@ -240,6 +240,8 @@ return getAllowYAGOandSKOSFilter(); else if (name.equalsIgnoreCase("YAGOSPECIALHIERARCHY")) return getYagoSpecialHierarchyFilter(); + else if (name.equalsIgnoreCase("YAGOONLY")) + return getAllowYAGO_ONLYFilter(); else if (name.equalsIgnoreCase("TEST")) return getTestFilter(); else if (name.equalsIgnoreCase("DBPEDIA-NAVIGATOR")) @@ -254,6 +256,12 @@ addObjectFilter("http://dbpedia.org/resource/Category:"); addObjectFilter("http://dbpedia.org/resource/Template"); } + + private void addFiltersForDBpediaUMBEL() { + addObjectFilter("http://umbel.org/umbel/sc/"); + } + + private void addFiltersForYago() { addObjectFilter("http://dbpedia.org/class/yago"); @@ -309,6 +317,14 @@ sqm.addFiltersForDBpediaSKOS(); return sqm; } + + public static SparqlQueryMaker getAllowYAGO_ONLYFilter() { + SparqlQueryMaker sqm = new SparqlQueryMaker("forbid", new TreeSet<String>(), new TreeSet<String>(), false); + sqm.combineWith(getAllowYAGOandSKOSFilter()); + sqm.addFiltersForDBpediaSKOS(); + sqm.addFiltersForDBpediaUMBEL(); + return sqm; + } public static SparqlQueryMaker getDBpediaNavigatorFilter() { SparqlQueryMaker sqm = new SparqlQueryMaker("allow", new TreeSet<String>(), new TreeSet<String>(), false); Modified: trunk/src/dl-learner/org/dllearner/scripts/SemanticBibleComparison.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SemanticBibleComparison.java 2008-09-30 15:30:28 UTC (rev 1323) +++ trunk/src/dl-learner/org/dllearner/scripts/SemanticBibleComparison.java 2008-09-30 18:48:39 UTC (rev 1324) @@ -79,8 +79,8 @@ private static int nrOfFilesInExperiment = 200; - private static boolean limit = true; + private static ReasoningService reasoningService; private static Logger logger = Logger.getRootLogger(); @@ -208,12 +208,12 @@ //conductExperiment(Experiments.SPARQL_1000_CTESTS); //conductExperiment(Experiments.NORMAL_10s); - conductExperiment(Experiments.SPARQL_100s); - limit = false; - conductExperiment(Experiments.NORMAL_100s); - conductExperiment(Experiments.SPARQL_10000_CTESTS); + //conductExperiment(Experiments.SPARQL_100s); + //conductExperiment(Experiments.NORMAL_100s); + //conductExperiment(Experiments.SPARQL_10000_CTESTS); + //EXTRA conductExperiment(Experiments.SPARQL_10000_CTESTS_SPECIAL_REC2_NOPROP); conductExperiment(Experiments.SPARQL_10000_CTESTS_SPECIAL_REC2_NOCLOSE_NOPROP); @@ -257,7 +257,7 @@ for (String filename : confs) { SimpleClock oneExperiment = new SimpleClock(); try{ - if(((count+1)<65) && limit) continue; + if (count == nrOfFilesInExperiment){break;} Modified: trunk/src/dl-learner/org/dllearner/scripts/WikipediaCategoryCleaner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/WikipediaCategoryCleaner.java 2008-09-30 15:30:28 UTC (rev 1323) +++ trunk/src/dl-learner/org/dllearner/scripts/WikipediaCategoryCleaner.java 2008-09-30 18:48:39 UTC (rev 1324) @@ -19,7 +19,9 @@ */ package org.dllearner.scripts; +import java.io.File; import java.net.URI; +import java.net.URLEncoder; import java.util.Collection; import java.util.HashSet; import java.util.List; @@ -38,6 +40,7 @@ import org.dllearner.core.KnowledgeSource; import org.dllearner.core.ReasoningService; import org.dllearner.core.configurators.ComponentFactory; +import org.dllearner.core.configurators.ExampleBasedROLComponentConfigurator; import org.dllearner.core.configurators.SparqlKnowledgeSourceConfigurator; import org.dllearner.core.owl.Individual; import org.dllearner.kb.extraction.ExtractionAlgorithm; @@ -52,6 +55,7 @@ import org.dllearner.scripts.improveWikipedia.ConceptSPARQLReEvaluator; import org.dllearner.scripts.improveWikipedia.ConceptSelector; import org.dllearner.scripts.improveWikipedia.WikipediaCategoryTasks; +import org.dllearner.utilities.Files; import org.dllearner.utilities.datastructures.SetManipulation; import org.dllearner.utilities.examples.AutomaticNegativeExampleFinderSPARQL; import org.dllearner.utilities.examples.AutomaticPositiveExampleFinderSPARQL; @@ -66,7 +70,7 @@ private static Logger logger = Logger.getRootLogger(); // localEndpoint switch - private static final boolean LOCAL = false; + private static final boolean LOCAL = true; // parameters // used for developing, @@ -102,15 +106,20 @@ //System.out.println(returnCat().size()); //System.exit(0); //String test = "http://dbpedia.org/resource/Category:Prime_Ministers_of_the_United_Kingdom"; - //wikipediaCategories.add(test); + wikipediaCategories.add("http://dbpedia.org/resource/Category:Prime_Ministers_of_the_United_Kingdom"); + wikipediaCategories.add("http://dbpedia.org/resource/Category:Best_Actor_Academy_Award_winners"); //test = "http://dbpedia.org/resource/Category:Best_Actor_Academy_Award_winners"; wikipediaCategories.addAll(returnCat()); // <http://dbpedia.org/resource/Category:Assassinated_monarchs> // <http://dbpedia.org/resource/Category:Alabama_musicians> // wikipediaCategories.add(test); - + int skipFirst = 1; + int i = 0; for (String target : wikipediaCategories) { - + if(i<skipFirst){ + i++; + continue; + } doit(target); } @@ -123,6 +132,13 @@ private static void doit(String target) { + String dir=""; + try{ + dir = "wiki/"+URLEncoder.encode(target,"UTF-8")+"/"; + Files.mkdir(dir); + }catch (Exception e) { + e.printStackTrace(); + } List<EvaluatedDescription> conceptresults; SortedSet<String> currentPOSITIVEex = new TreeSet<String>(); SortedSet<String> currentNEGATIVEex = new TreeSet<String>(); @@ -148,23 +164,54 @@ conceptresults = selectConcepts(conceptresults); wrongIndividuals = wikiTasks.calculateWrongIndividualsAndNewPosEx( conceptresults, currentPOSITIVEex); + + writeList(dir+"wrongIndividuals.html",wrongIndividuals); currentPOSITIVEex.clear(); currentPOSITIVEex.addAll(wikiTasks.getCleanedPositiveSet()); + writeList(dir+"correctIndividuals.html",currentPOSITIVEex); + + String content = ""; + for (EvaluatedDescription string : conceptresults) { + content+=string+"\n"; + + } + content+=conceptresults.size()+"\n"; + Files.createFile(new File(dir+"concepts.html"), content); + + // reevaluate versus the Endpoint conceptresults = csparql.reevaluateConceptsByLowestRecall( conceptresults, currentPOSITIVEex); - WikipediaCategoryCleaner.printEvaluatedDescriptionCollection(2, + try{ + + SortedSet<Individual> found = new TreeSet<Individual>( conceptresults.get(0).getNotCoveredPositives()); + writeList(dir+"foundIndividuals1.html",SetManipulation.indToString(found)); + + found = new TreeSet<Individual>( conceptresults.get(1).getNotCoveredPositives()); + writeList(dir+"foundIndividuals2.html",SetManipulation.indToString(found)); + + + }catch (Exception e) { + e.printStackTrace(); + } + + WikipediaCategoryCleaner.printEvaluatedDescriptionCollection(5, conceptresults); - - printIntermediateResults(wikiTasks.getFullPositiveSet(), + + System.exit(0); + return; + /*WikipediaCategoryCleaner.printEvaluatedDescriptionCollection(2, + conceptresults); +*/ + /*printIntermediateResults(wikiTasks.getFullPositiveSet(), wikiTasks.getCleanedPositiveSet(), - wrongIndividuals, conceptresults.size()); + wrongIndividuals, conceptresults.size());*/ - System.exit(0); + //System.exit(0); // PHASE 2 *********************** - logger.info("PHASE 2 ***********************"); + /*logger.info("PHASE 2 ***********************"); logger.info("making new Negative Examples"); currentNEGATIVEex = wikiTasks.makeNewNegativeExamples(conceptresults, currentPOSITIVEex, NEGFACTOR); @@ -180,9 +227,20 @@ conceptresults, currentPOSITIVEex); printEvaluatedDescriptionCollection(2, conceptresults); - collectResults(wikiTasks); + collectResults(wikiTasks);*/ } + + + private static void writeList(String file, Collection<String> c){ + String content = ""; + for (String string : c) { + content+="<a href='"+string+"'>"+string+"</a><br>\n"; + + } + content+=c.size()+"\n"; + Files.createFile(new File(file), content); + } private static void collectResults(WikipediaCategoryTasks wikiTasks) { //logger.setLevel(Level.DEBUG); @@ -236,15 +294,16 @@ c.setGetPropertyInformation(false); c.setVerbosity("warning"); c.setCacheDir(Cache.getPersistantCacheDir()); + c.setPredefinedFilter("YAGOONLY"); - Set<KnowledgeSource> tmp = new HashSet<KnowledgeSource>(); tmp.add(ks); // reasoner - FastInstanceChecker f = ComponentFactory - .getFastInstanceChecker(tmp); + FastInstanceChecker f = ComponentFactory.getFastInstanceChecker(tmp); + f.getConfigurator().setDefaultNegation(false); + //OWLAPIReasoner f = ComponentFactory.getOWLAPIReasoner(tmp); ReasoningService rs = ComponentManager.getInstance() .reasoningService(f); @@ -254,10 +313,21 @@ // learning algorithm la = ComponentFactory.getExampleBasedROLComponent(lp, rs); + ExampleBasedROLComponentConfigurator lc = la.getConfigurator(); la.getConfigurator().setNoisePercentage(20); la.getConfigurator().setGuaranteeXgoodDescriptions(100); la.getConfigurator().setMaxExecutionTimeInSeconds(50); + lc.setUseAllConstructor(false); + lc.setUseBooleanDatatypes(false); + lc.setUseCardinalityRestrictions(false); + lc.setUseNegation(false); + lc.setUseHasValueConstructor(false); + lc.setUseDoubleDatatypes(false); + lc.setWriteSearchTree(true); + lc.setSearchTreeFile("log/dbpedia.txt"); + lc.setReplaceSearchTree(true); + ks.init(); f.init(); lp.init(); Modified: trunk/src/dl-learner/org/dllearner/scripts/improveWikipedia/ConceptSPARQLReEvaluator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/improveWikipedia/ConceptSPARQLReEvaluator.java 2008-09-30 15:30:28 UTC (rev 1323) +++ trunk/src/dl-learner/org/dllearner/scripts/improveWikipedia/ConceptSPARQLReEvaluator.java 2008-09-30 18:48:39 UTC (rev 1324) @@ -111,11 +111,20 @@ // PosAsNeg PosAsNeg.addAll(positiveSet); PosAsNeg.removeAll(PosAsPos); - - returnSet.add(new EvaluatedDescription(ed.getDescription(), Helper + + EvaluatedDescription d = new EvaluatedDescription(ed.getDescription(), Helper .getIndividualSet(PosAsPos), Helper - .getIndividualSet(PosAsNeg), NegAsPos, NegAsNeg)); + .getIndividualSet(PosAsNeg), NegAsPos, NegAsNeg); + + if(d.getAccuracy()<0.1 || d.getNotCoveredPositives().isEmpty()){ + + }else{ + returnSet.add(d); + } + + + }catch(Exception e){ logger.warn("ERROR occured, while evaluating, I'm ignoring it : "+e.toString()); logger.warn("Concept was: "+ed.getDescription().toKBSyntaxString()); @@ -166,9 +175,18 @@ PosAsNeg.addAll(instances); PosAsNeg.removeAll(PosAsPos); - returnSet.add(new EvaluatedDescription(ed.getDescription(), Helper + EvaluatedDescription d = new EvaluatedDescription(ed.getDescription(), Helper .getIndividualSet(PosAsPos), Helper - .getIndividualSet(PosAsNeg), NegAsPos, NegAsNeg)); + .getIndividualSet(PosAsNeg), NegAsPos, NegAsNeg); + + + if(d.getNotCoveredPositives().isEmpty()){ + + }else{ + returnSet.add(d); + } + + }catch(Exception e){ logger.warn("ERROR occured, while evaluating, I'm ignoring it :"+e.toString()); logger.warn("Concept was: "+ed.getDescription().toKBSyntaxString()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |