From: <ku...@us...> - 2008-04-25 09:28:13
|
Revision: 823 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=823&view=rev Author: kurzum Date: 2008-04-25 02:28:05 -0700 (Fri, 25 Apr 2008) Log Message: ----------- some changes mostly options and output Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.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/SparqlQueryDescriptionConvertVisitor.java trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlQueryType.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/AutomaticExampleFinderSPARQL.java trunk/src/dl-learner/org/dllearner/utilities/ConfWriter.java trunk/src/dl-learner/org/dllearner/utilities/JenaResultSetConvenience.java trunk/src/dl-learner/org/dllearner/utilities/SimpleClock.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java Modified: trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/algorithms/refexamples/ExampleBasedROLearner.java 2008-04-25 09:28:05 UTC (rev 823) @@ -777,7 +777,7 @@ // searchTree += bestNodeString + "\n"; logger.debug(bestNodeString); - logger.trace(startNode.getStats(nrOfPositiveExamples, nrOfNegativeExamples)); + logger.trace(bestNode.getStats(nrOfPositiveExamples, nrOfNegativeExamples)); logger.debug(bestNodeStringKBSyntax); if(bestNode.getCoveredNegatives().size()<=5)logger.trace("covered negs: "+bestNode.getCoveredNegatives()); String expandedNodeString = "next expanded node: " + candidates.last().getShortDescription(nrOfPositiveExamples, nrOfNegativeExamples, baseURI); @@ -1035,10 +1035,10 @@ return ; i++; } - for (int j = 0; j < solutions.size(); j++) { + /*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/Cache.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java 2008-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java 2008-04-25 09:28:05 UTC (rev 823) @@ -220,6 +220,7 @@ public String executeSparqlQuery(SparqlQuery query) { String result = getCacheEntry(query.getQueryString()); if (result != null) { + logger.trace("got from cache"); return result; } else { query.send(); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java 2008-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java 2008-04-25 09:28:05 UTC (rev 823) @@ -106,10 +106,11 @@ } HashSet<String> hadAlready = new HashSet<String>(); - logger.info("Get all superclasses"); + //p(configuration.toString()); // gets All Class Nodes and expands them further if (this.configuration.isGetAllSuperClasses()) { + logger.info("Get all superclasses"); // Set<Node> classes = new TreeSet<Node>(); Vector<Node> classes = new Vector<Node>(); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-04-25 09:28:05 UTC (rev 823) @@ -60,14 +60,17 @@ */ public class SparqlKnowledgeSource extends KnowledgeSource { + //DEFAULTS + static int recursionDepthDefault = 1; + // ConfigOptions public URL url; // String host; private Set<String> instances = new HashSet<String>();; private URL dumpFile; - private int recursionDepth = 1; - private int predefinedFilter = 0; - private int predefinedEndpoint = 0; + private int recursionDepth = recursionDepthDefault; + private String predefinedFilter = null; + private String predefinedEndpoint = null; private Set<String> predList = new HashSet<String>(); private Set<String> objList = new HashSet<String>(); // private Set<String> classList; @@ -123,11 +126,11 @@ .add(new StringSetConfigOption("instances", "relevant instances e.g. positive and negative examples in a learning problem")); options.add(new IntegerConfigOption("recursionDepth", - "recursion depth of KB fragment selection", 2)); - options.add(new IntegerConfigOption("predefinedFilter", - "the mode of the SPARQL Filter")); - options.add(new IntegerConfigOption("predefinedEndpoint", - "the mode of the SPARQL Filter")); + "recursion depth of KB fragment selection", recursionDepthDefault)); + options.add(new StringConfigOption("predefinedFilter", + "the mode of the SPARQL Filter, use one of YAGO,SKOS,YAGOSKOS , YAGOSPECIALHIERARCHY, TEST")); + options.add(new StringConfigOption("predefinedEndpoint", + "the mode of the SPARQL Filter, use one of DBPEDIA, LOCAL, GOVTRACK, REVYU, MYOPENLINK, FACTBOOK")); options.add(new StringSetConfigOption("predList", "list of all ignored roles")); @@ -207,9 +210,9 @@ // } else if (option.equals("classList")) { // classList = (Set<String>) entry.getValue(); } else if (option.equals("predefinedEndpoint")) { - predefinedEndpoint = (Integer) entry.getValue(); + predefinedEndpoint = ((String) entry.getValue()).toUpperCase(); } else if (option.equals("predefinedFilter")) { - predefinedFilter = (Integer) entry.getValue(); + predefinedFilter = ((String) entry.getValue()).toUpperCase(); } else if (option.equals("format")) { format = (String) entry.getValue(); } else if (option.equals("dumpToFile")) { @@ -285,8 +288,9 @@ breakSuperClassRetrievalAfter, replacePredicate, replaceObject); // get Options for endpoints - if (predefinedEndpoint >= 1) { - endpoint = SparqlEndpoint.getEndpointByNumber(predefinedEndpoint); + if (predefinedEndpoint != null) { + //endpoint = SparqlEndpoint.getEndpointByNumber(predefinedEndpoint); + endpoint = SparqlEndpoint.getEndpointByName(predefinedEndpoint); } else { // TODO this is not optimal, because not all options are used // like default-graph uri @@ -295,9 +299,9 @@ // get Options for Filters - if (predefinedFilter >= 1) { + if (predefinedFilter != null) { sparqlQueryType = SparqlQueryType - .getFilterByNumber(predefinedFilter); + .getFilterByName(predefinedFilter); } else { sparqlQueryType = new SparqlQueryType("forbid", objList, predList, Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java 2008-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java 2008-04-25 09:28:05 UTC (rev 823) @@ -43,6 +43,7 @@ private static Logger logger = Logger.getLogger(SparqlKnowledgeSource.class); + public String extraDebugInfo = ""; private boolean isRunning = false; private String queryString; private QueryEngineHTTP queryExecution; @@ -65,6 +66,7 @@ * Sends a SPARQL query using the Jena library. */ public ResultSet send() { + isRunning = true; ResultSet rs=null; logger.trace(queryString); @@ -84,7 +86,8 @@ //TODO remove after overnext Jena release HttpQuery.urlLimit = 3*1024 ; rs = queryExecution.execSelect(); - logger.debug("query SPARQL server, retrieved: "+rs.getResultVars()); + + logger.debug("query SPARQL server ["+extraDebugInfo+"], retrieved: "+rs.getResultVars()); json=SparqlQuery.getAsJSON(rs); logger.trace(rs.getResultVars().toString()); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2008-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2008-04-25 09:28:05 UTC (rev 823) @@ -38,6 +38,10 @@ * */ public class SparqlQueryDescriptionConvertVisitor implements DescriptionVisitor{ + + //private SparqlEndpoint se = null; + //private boolean RDFSReasoning = false; + private static Logger logger = Logger.getLogger(ComponentManager.class); @@ -53,6 +57,13 @@ stack.push("subject"); } + /*public SparqlQueryDescriptionConvertVisitor(SparqlEndpoint se, boolean RDFSReasoning) + { + stack.push("subject"); + this.se = se; + this.RDFSReasoning = RDFSReasoning; + }*/ + public String getSparqlQuery() { query="SELECT ?subject\nWHERE {"+query; @@ -69,6 +80,15 @@ return query; } + public static String getSparqlSubclassQuery(String description) + { String ret = "SELECT ?subject \n"; + ret+= "WHERE {\n"; + ret+=" ?subject <http://www.w3.org/2000/01/rdf-schema#subClassOf> <"+description+"> \n"; + ret+="}\n"; + + return ret; + } + public static String getSparqlQuery(String description) throws ParseException { Description d = KBParser.parseConcept(description); @@ -85,6 +105,22 @@ return visitor.getSparqlQuery(limit); } + /** + * includes subclasses, costly function, because subclasses habe to be recieved first. + * @param description + * @param limit + * @param se + * @return + * @throws ParseException + */ + /*public static String getSparqlQueryIncludingSubclasses(String description, int limit, SparqlEndpoint se) throws ParseException + { if(limit==0)limit=99999; + Description d = KBParser.parseConcept(description); + SparqlQueryDescriptionConvertVisitor visitor=new SparqlQueryDescriptionConvertVisitor(se, true); + d.accept(visitor); + return visitor.getSparqlQuery(limit); + }*/ + public static String getSparqlQuery(Description description) { SparqlQueryDescriptionConvertVisitor visitor=new SparqlQueryDescriptionConvertVisitor(); @@ -235,9 +271,12 @@ * @see org.dllearner.core.owl.DescriptionVisitor#visit(org.dllearner.core.owl.NamedClass) */ public void visit(NamedClass description) { + logger.trace("NamedClass"); query+="?"+stack.peek()+" a <"+description.getName()+">"; } + + /* (non-Javadoc) * @see org.dllearner.core.owl.DescriptionVisitor#visit(org.dllearner.algorithms.gp.ADC) Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java 2008-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java 2008-04-25 09:28:05 UTC (rev 823) @@ -87,6 +87,7 @@ // .getSparqlEndpoint(), cache, uri.toString(), sparqlQueryString); SparqlQuery query = new SparqlQuery(sparqlQueryString, configuration.getSparqlEndpoint()); + query.extraDebugInfo=uri.toString(); ResultSet rs = SparqlQuery.JSONtoResultSet(cache.executeSparqlQuery(query)); List<ResultBinding> l = ResultSetFormatter.toList(rs); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java 2008-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java 2008-04-25 09:28:05 UTC (rev 823) @@ -64,6 +64,7 @@ + "}"; SparqlQuery query = new SparqlQuery(sparqlQueryString, configuration.getSparqlEndpoint()); + query.extraDebugInfo=uri.toString(); ResultSet rs = SparqlQuery.JSONtoResultSet(cache.executeSparqlQuery(query)); List<ResultBinding> l = ResultSetFormatter.toList(rs); 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-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-04-25 09:28:05 UTC (rev 823) @@ -61,7 +61,7 @@ return namedGraphURIs; } - public static SparqlEndpoint getEndpointByNumber(int i) { + /*public static SparqlEndpoint getEndpointByNumber(int i) { switch (i) { case 0:break; @@ -80,6 +80,25 @@ return worldFactBook(); } return null; + }*/ + + public static SparqlEndpoint getEndpointByName(String name) { + + + + if (name.equals("DBPEDIA")) + return dbpediaEndpoint(); + if (name.equals("LOCALJOSECKI")) + return localJoseki(); + if (name.equals("GOVTRACK")) + return govTrack(); + if (name.equals("REVYU")) + return revyu(); + if (name.equals("MYOPENLINK")) + return myopenlink(); + if (name.equals("FACTBOOK")) + return worldFactBook(); + return null; } public static SparqlEndpoint dbpediaEndpoint() { Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlQueryType.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlQueryType.java 2008-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlQueryType.java 2008-04-25 09:28:05 UTC (rev 823) @@ -65,22 +65,20 @@ //System.out.println("added filter: "+filter); } - public static SparqlQueryType getFilterByNumber(int i) { - - switch (i) { - case 0:break; - //should not be filled - case 1: + public static SparqlQueryType getFilterByName(String name) { + + + if (name.equals("YAGO")) return YagoFilter(); - case 2: + if (name.equals("SKOS")) return SKOS(); - case 3: + if (name.equals("YAGOSKOS")) return YAGOSKOS(); - case 4: + if (name.equals("YAGOSPECIALHIERARCHY")) return YagoSpecialHierarchy(); - case 5: + if (name.equals("TEST")) return test(); - } + return null; } Modified: trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java =================================================================== --- trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/scripts/SPARQLMassLearning.java 2008-04-25 09:28:05 UTC (rev 823) @@ -9,6 +9,8 @@ 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.AutomaticExampleFinderSPARQL; import org.dllearner.utilities.ConfWriter; @@ -26,32 +28,47 @@ init(); //vars - boolean useRelated = true; - boolean useSuperClasses = true; - int poslimit = 10; - int neglimit = 10; + boolean useRelated = false; + boolean useSuperClasses = false; + boolean useParallelClasses = true; + int poslimit = 15; + int neglimit = 200; + try { - - //System.out.println(logger.setLevel(TRACE)); + //logger.setLevel(Level.TRACE); + Logger.getLogger(SparqlKnowledgeSource.class).setLevel(Level.TRACE); + System.out.println(Logger.getLogger(SparqlQuery.class).getLevel()); + /*System.out.println(Level.DEBUG.getClass()); System.out.println(Level.toLevel("INFO")); - System.out.println(Level.INFO); - System.exit(0);*/ + 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/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"); + 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); - AutomaticExampleFinderSPARQL ae= new AutomaticExampleFinderSPARQL( se); - ae.init(concepts.first(), useRelated, useSuperClasses, poslimit, neglimit); + ae.init(concepts.first(), useRelated, useSuperClasses,useParallelClasses, poslimit, neglimit); posExamples = ae.getPosExamples(); negExamples = ae.getNegExamples(); @@ -59,13 +76,14 @@ System.out.println(posExamples); System.out.println(negExamples); //System.exit(0); - String concept = concepts.first().replace("http://dbpedia.org/resource/Category:", ""); - concept = concept.replace("http://dbpedia.org/class/yago/", ""); - String confname = URLEncoder.encode(concept, "UTF-8")+".conf"; + String tmp = concepts.first().replace("http://dbpedia.org/resource/Category:", "").replace("\"",""); + tmp = tmp.replace("http://dbpedia.org/class/yago/", ""); + 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>()); Added: trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/test/SparqlEndpointTest.java 2008-04-25 09:28:05 UTC (rev 823) @@ -0,0 +1,85 @@ +package org.dllearner.test; + +import java.util.HashSet; +import java.util.Set; + +import org.apache.log4j.ConsoleAppender; +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.apache.log4j.SimpleLayout; +import org.dllearner.kb.sparql.SparqlKnowledgeSource; +import org.dllearner.kb.sparql.SparqlQuery; +import org.dllearner.kb.sparql.configuration.SparqlEndpoint; +import org.dllearner.utilities.JenaResultSetConvenience; +import org.dllearner.utilities.SimpleClock; + +import com.hp.hpl.jena.query.ResultSet; + +public class SparqlEndpointTest { + private static Logger logger = Logger.getRootLogger(); + static Set<String> working = new HashSet<String>(); + static Set<String> notworking = new HashSet<String>(); + + public static void main(String[] args) { + SimpleLayout layout = new SimpleLayout(); + ConsoleAppender consoleAppender = new ConsoleAppender(layout); + logger.removeAllAppenders(); + logger.addAppender(consoleAppender); + logger.setLevel(Level.DEBUG); + Logger.getLogger(SparqlKnowledgeSource.class).setLevel(Level.INFO); + + + + 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()); + + + int i=1; + for (SparqlEndpoint sparqlEndpoint : set) { + testEndPoint(sparqlEndpoint); + logger.info("finished "+i+" of "+set.size()); + i++; + } + logger.info("**************"); + for (String str : working) { + logger.info(str); + } + for (String str : notworking) { + logger.info(str); + + } + //set.add(SparqlEndpoint.); + + } + + + public static void testEndPoint(SparqlEndpoint se) { + SimpleClock sc = new SimpleClock(); + try{ + + String query ="" + + "SELECT DISTINCT ?c " + + "WHERE {[] a ?c }" + + "LIMIT 100"; + + query ="SELECT DISTINCT ?c WHERE {[] a ?c }LIMIT 100"; + + SparqlQuery s = new SparqlQuery(query,se); + + s.send(); + String result = s.getResult(); + ResultSet rs = SparqlQuery.JSONtoResultSet(result); + + JenaResultSetConvenience jsr = new JenaResultSetConvenience(rs); + int i = jsr.getStringListForVariable("c").size(); + + working.add(sc.getAndSet("endpoint working: "+se.getURL()+" ("+((i==100)?"more than 100 concepts":"about "+i+" concepts")+" )")); + }catch (Exception e) {notworking.add(sc.getAndSet("endpoint NOT working: "+se.getURL()));} + } + +} Modified: trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java 2008-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java 2008-04-25 09:28:05 UTC (rev 823) @@ -49,7 +49,7 @@ URI u2 = new URI("http://dbpedia.org/resource/Angela_Merkel"); m.useConfiguration( - SparqlQueryType.getFilterByNumber(1),SparqlEndpoint.getEndpointByNumber(1), + SparqlQueryType.getFilterByName("DBPEDIA"),SparqlEndpoint.getEndpointByName("YAGO"), new Manipulator("",200,new LinkedList<StringTuple>(),new LinkedList<StringTuple>()), 1,true,true); //, , Modified: trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java 2008-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/utilities/AutomaticExampleFinderSPARQL.java 2008-04-25 09:28:05 UTC (rev 823) @@ -30,11 +30,12 @@ negExamples = new TreeSet<String>(); } - public void init(String concept, boolean useRelated, boolean useSuperclasses, int poslimit, int neglimit) { + 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); @@ -42,10 +43,16 @@ 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("Finished examples for concept :"+concept); + 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){ @@ -54,6 +61,7 @@ } 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"); @@ -61,6 +69,7 @@ this.posExamples = new JenaResultSetConvenience(queryConcept(concept,0)) .getStringListForVariable("subject"); } + logger.debug(" pos Example size: "+posExamples.size()); } @@ -68,9 +77,11 @@ 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()); } @@ -92,6 +103,7 @@ JenaResultSetConvenience rsc = new JenaResultSetConvenience(rs); this.negExamples.addAll(rsc.getStringListForVariable("o")); + } @@ -101,14 +113,42 @@ superClasses.add(concept.replace("\"", "")); //logger.debug("before"+superClasses); superClasses = dbpediaGetSuperClasses( superClasses, 4); - logger.debug("getting negExamples from "+superClasses.size()+" superclasses"); + 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>(); @@ -181,7 +221,30 @@ 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; } @@ -191,5 +254,41 @@ } + /** + * 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-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/utilities/ConfWriter.java 2008-04-25 09:28:05 UTC (rev 823) @@ -50,11 +50,15 @@ String standardSettings = "sparql.recursionDepth = 1;\n" + - "sparql.predefinedFilter = 1;\n" + - "sparql.predefinedEndpoint = 1;\n" + - "refexamples.minExecutionTimeInSeconds = 10;\n" + - "refexamples.maxExecutionTimeInSeconds = 10;\n" + - "refexamples.logLevel=\"TRACE\";\n" ; + "sparql.predefinedFilter = \"YAGO\";\n" + + "sparql.predefinedEndpoint = \"DBPEDIA\";\n" + + "refexamples.minExecutionTimeInSeconds = 30;\n" + + "refexamples.maxExecutionTimeInSeconds = 30;\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"; Modified: trunk/src/dl-learner/org/dllearner/utilities/JenaResultSetConvenience.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/JenaResultSetConvenience.java 2008-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/utilities/JenaResultSetConvenience.java 2008-04-25 09:28:05 UTC (rev 823) @@ -20,6 +20,7 @@ public SortedSet<String> getStringListForVariable(String var){ SortedSet<String> result = new TreeSet<String>(); + //String s=ResultSetFormatter.asXMLString(this.rs); List<ResultBinding> l = ResultSetFormatter.toList(this.rs); for (ResultBinding resultBinding : l) { Modified: trunk/src/dl-learner/org/dllearner/utilities/SimpleClock.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/SimpleClock.java 2008-04-24 17:39:36 UTC (rev 822) +++ trunk/src/dl-learner/org/dllearner/utilities/SimpleClock.java 2008-04-25 09:28:05 UTC (rev 823) @@ -37,7 +37,15 @@ time=now; } + public String getAndSet(String s) { + long now=System.currentTimeMillis(); + String ret = s+" needed "+(now-time)+" ms"; + time=now; + return ret; + + } + /** * prints time needed * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |