From: <ku...@us...> - 2008-01-18 23:22:04
|
Revision: 395 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=395&view=rev Author: kurzum Date: 2008-01-18 15:21:56 -0800 (Fri, 18 Jan 2008) Log Message: ----------- a lot of changes, see email, will remove warnings soon Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.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/kb/sparql/query/CachedSparqlQuery.java trunk/src/dl-learner/org/dllearner/kb/sparql/query/SparqlQuery.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/kb/sparql/old/SparqlQueryConventional.java trunk/src/dl-learner/org/dllearner/kb/sparql/test/ trunk/src/dl-learner/org/dllearner/kb/sparql/test/JenaTestScript.java trunk/src/dl-learner/org/dllearner/kb/sparql/test/Test.java trunk/src/dl-learner/org/dllearner/kb/sparql/test/TestResultSet.java trunk/src/dl-learner/org/dllearner/kb/sparql/test/TestSparqlQuery.java Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/kb/sparql/Test.java trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/PredefinedEndpoint.java trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/PredefinedFilter.java trunk/src/dl-learner/org/dllearner/kb/sparql/query/JenaTestScript.java trunk/src/dl-learner/org/dllearner/kb/sparql/query/SparqlQueryAbstract.java trunk/src/dl-learner/org/dllearner/kb/sparql/query/SparqlQueryConventional.java trunk/src/dl-learner/org/dllearner/kb/sparql/query/TestSparqlQuery.java Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-01-18 18:49:49 UTC (rev 394) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-01-18 23:21:56 UTC (rev 395) @@ -43,11 +43,9 @@ import org.dllearner.core.config.StringSetConfigOption; import org.dllearner.core.config.StringTupleListConfigOption; import org.dllearner.core.dl.KB; -import org.dllearner.kb.sparql.configuration.PredefinedEndpoint; -import org.dllearner.kb.sparql.configuration.PredefinedFilter; +import org.dllearner.kb.sparql.configuration.SparqlEndpoint; import org.dllearner.kb.sparql.configuration.SparqlQueryType; -import org.dllearner.kb.sparql.configuration.SparqlEndpoint; -import org.dllearner.kb.sparql.old.*; +import org.dllearner.kb.sparql.old.oldSparqlOntologyCollector; import org.dllearner.kb.sparql.query.SparqlQuery; import org.dllearner.parser.KBParser; import org.dllearner.reasoning.DIGConverter; @@ -66,13 +64,13 @@ // ConfigOptions private URL url; String host; - private Set<String> instances=new HashSet<String>();; + private Set<String> instances = new HashSet<String>();; private URL dumpFile; private int recursionDepth = 1; private int predefinedFilter = 0; private int predefinedEndpoint = 0; - private Set<String> predList=new HashSet<String>(); - private Set<String> objList=new HashSet<String>(); + private Set<String> predList = new HashSet<String>(); + private Set<String> objList = new HashSet<String>(); // private Set<String> classList; private String format = "N-TRIPLES"; private boolean dumpToFile = true; @@ -83,16 +81,16 @@ private boolean learnDomain = false; private boolean learnRange = false; - private int numberOfInstancesUsedForRoleLearning=40; - private String role=""; + private int numberOfInstancesUsedForRoleLearning = 40; + private String role = ""; private String blankNodeIdentifier = "bnode"; - + LinkedList<StringTuple> URIParameters = new LinkedList<StringTuple>(); LinkedList<StringTuple> replacePredicate = new LinkedList<StringTuple>(); LinkedList<StringTuple> replaceObject = new LinkedList<StringTuple>(); SparqlEndpoint sse = null; - + /** * Holds the results of the calculateSubjects method */ @@ -146,37 +144,58 @@ Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); options.add(new StringConfigOption("url", "URL of SPARQL Endpoint")); options.add(new StringConfigOption("host", "host of SPARQL Endpoint")); - options.add(new StringSetConfigOption("instances", - "relevant instances e.g. positive and negative examples in a learning problem")); + options + .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")); + options.add(new IntegerConfigOption("predefinedFilter", + "the mode of the SPARQL Filter")); + options.add(new IntegerConfigOption("predefinedEndpoint", + "the mode of the SPARQL Filter")); - options.add(new StringSetConfigOption("predList", "list of all ignored roles")); - options.add(new StringSetConfigOption("objList", "list of all ignored objects")); - options.add(new StringSetConfigOption("classList", "list of all ignored classes")); - options.add(new StringConfigOption("format", "N-TRIPLES or KB format", "N-TRIPLES")); - options.add(new BooleanConfigOption("dumpToFile", - "Specifies whether the extracted ontology is written to a file or not.", true)); - options.add(new BooleanConfigOption("useLits", "use Literals in SPARQL query")); - options.add(new BooleanConfigOption("getAllSuperClasses", "If true then all superclasses are retrieved until the most general class (owl:Thing) is reached.", true)); + options.add(new StringSetConfigOption("predList", + "list of all ignored roles")); + options.add(new StringSetConfigOption("objList", + "list of all ignored objects")); + options.add(new StringSetConfigOption("classList", + "list of all ignored classes")); + options.add(new StringConfigOption("format", "N-TRIPLES or KB format", + "N-TRIPLES")); + options + .add(new BooleanConfigOption( + "dumpToFile", + "Specifies whether the extracted ontology is written to a file or not.", + true)); + options.add(new BooleanConfigOption("useLits", + "use Literals in SPARQL query")); + options + .add(new BooleanConfigOption( + "getAllSuperClasses", + "If true then all superclasses are retrieved until the most general class (owl:Thing) is reached.", + true)); - options.add(new BooleanConfigOption("learnDomain", "learns the Domain for a Role")); - options.add(new BooleanConfigOption("learnRange", "learns the Range for a Role")); - options.add(new StringConfigOption("role", "role to learn Domain/Range from")); + options.add(new BooleanConfigOption("learnDomain", + "learns the Domain for a Role")); + options.add(new BooleanConfigOption("learnRange", + "learns the Range for a Role")); + options.add(new StringConfigOption("role", + "role to learn Domain/Range from")); options.add(new StringConfigOption("blankNodeIdentifier", "used to identify blanknodes in Tripels")); options.add(new StringTupleListConfigOption("example", "example")); - options.add(new StringTupleListConfigOption("replacePredicate", "rule for replacing predicates")); - options.add(new StringTupleListConfigOption("replaceObject", "rule for replacing predicates")); - options.add(new IntegerConfigOption("breakSuperClassRetrievalAfter", "stops a cyclic hierarchy after specified number of classes")); - options.add(new IntegerConfigOption("numberOfInstancesUsedForRoleLearning", "")); - options.add(new BooleanConfigOption("closeAfterRecursion", "gets all classes for all instances")); - - - + options.add(new StringTupleListConfigOption("replacePredicate", + "rule for replacing predicates")); + options.add(new StringTupleListConfigOption("replaceObject", + "rule for replacing predicates")); + options.add(new IntegerConfigOption("breakSuperClassRetrievalAfter", + "stops a cyclic hierarchy after specified number of classes")); + options.add(new IntegerConfigOption( + "numberOfInstancesUsedForRoleLearning", "")); + options.add(new BooleanConfigOption("closeAfterRecursion", + "gets all classes for all instances")); + return options; } @@ -185,15 +204,16 @@ */ @Override @SuppressWarnings( { "unchecked" }) - public <T> void applyConfigEntry(ConfigEntry<T> entry) throws InvalidConfigOptionValueException { + public <T> void applyConfigEntry(ConfigEntry<T> entry) + throws InvalidConfigOptionValueException { String option = entry.getOptionName(); if (option.equals("url")) { String s = (String) entry.getValue(); try { url = new URL(s); } catch (MalformedURLException e) { - throw new InvalidConfigOptionValueException(entry.getOption(), entry.getValue(), - "malformed URL " + s); + throw new InvalidConfigOptionValueException(entry.getOption(), + entry.getValue(), "malformed URL " + s); } } else if (option.equals("host")) { host = (String) entry.getValue(); @@ -205,8 +225,8 @@ predList = (Set<String>) entry.getValue(); } else if (option.equals("objList")) { objList = (Set<String>) entry.getValue(); - //} else if (option.equals("classList")) { - // classList = (Set<String>) entry.getValue(); + // } else if (option.equals("classList")) { + // classList = (Set<String>) entry.getValue(); } else if (option.equals("predefinedEndpoint")) { predefinedEndpoint = (Integer) entry.getValue(); } else if (option.equals("predefinedFilter")) { @@ -221,26 +241,26 @@ getAllSuperClasses = (Boolean) entry.getValue(); } else if (option.equals("learnDomain")) { learnDomain = (Boolean) entry.getValue(); - }else if (option.equals("learnRange")) { + } else if (option.equals("learnRange")) { learnRange = (Boolean) entry.getValue(); } else if (option.equals("role")) { role = (String) entry.getValue(); } else if (option.equals("blankNodeIdentifier")) { blankNodeIdentifier = (String) entry.getValue(); } else if (option.equals("example")) { - //System.out.println(entry.getValue()); - }else if (option.equals("replacePredicate")) { - replacePredicate = (LinkedList)entry.getValue(); - }else if (option.equals("replaceObject")) { - replaceObject = (LinkedList)entry.getValue(); - }else if (option.equals("breakSuperClassRetrievalAfter")) { + // System.out.println(entry.getValue()); + } else if (option.equals("replacePredicate")) { + replacePredicate = (LinkedList) entry.getValue(); + } else if (option.equals("replaceObject")) { + replaceObject = (LinkedList) entry.getValue(); + } else if (option.equals("breakSuperClassRetrievalAfter")) { breakSuperClassRetrievalAfter = (Integer) entry.getValue(); - }else if (option.equals("numberOfInstancesUsedForRoleLearning")) { + } else if (option.equals("numberOfInstancesUsedForRoleLearning")) { numberOfInstancesUsedForRoleLearning = (Integer) entry.getValue(); - }else if (option.equals("closeAfterRecursion")) { + } else if (option.equals("closeAfterRecursion")) { closeAfterRecursion = (Boolean) entry.getValue(); - } - + } + } /* @@ -259,92 +279,99 @@ Manager m = new Manager(); SparqlQueryType sqt = null; // get Options for Manipulator - Manipulator man = new Manipulator(blankNodeIdentifier,breakSuperClassRetrievalAfter,replacePredicate,replaceObject); + Manipulator man = new Manipulator(blankNodeIdentifier, + breakSuperClassRetrievalAfter, replacePredicate, replaceObject); HashMap<String, String> parameters = new HashMap<String, String>(); parameters.put("default-graph-uri", "http://dbpedia.org"); parameters.put("format", "application/sparql-results.xml"); // get Options for endpoints if (predefinedEndpoint >= 1) { - sse = PredefinedEndpoint.getEndpoint(predefinedEndpoint); + sse = SparqlEndpoint.getEndpointByNumber(predefinedEndpoint); } else { - sse = new SparqlEndpoint(url, host, parameters); + // TODO this is not optimal, because not all options are used + sse = new SparqlEndpoint(url); } // get Options for Filters - + if (predefinedFilter >= 1) { - sqt = PredefinedFilter.getFilter(predefinedFilter); + sqt = SparqlQueryType.getFilter(predefinedFilter); } else { sqt = new SparqlQueryType("forbid", objList, predList, useLits + ""); - + } // give everything to the manager - m.useConfiguration(sqt, sse, man, recursionDepth, getAllSuperClasses,closeAfterRecursion); + m.useConfiguration(sqt, sse, man, recursionDepth, getAllSuperClasses, + closeAfterRecursion); try { String ont = ""; - //System.out.println(learnDomain); + // System.out.println(learnDomain); // used to learn a domain of a role if (learnDomain || learnRange) { - Set<String> pos=new HashSet<String>(); - Set<String> neg=new HashSet<String>(); - if(learnDomain){ + Set<String> pos = new HashSet<String>(); + Set<String> neg = new HashSet<String>(); + if (learnDomain) { pos = m.getDomainInstancesForRole(role); neg = m.getRangeInstancesForRole(role); - }else if(learnRange){ + } else if (learnRange) { neg = m.getDomainInstancesForRole(role); pos = m.getRangeInstancesForRole(role); } - //choose 30 - - - Set<String> tmp=new HashSet<String>(); - for(String one:pos){ - tmp.add(one); - if(tmp.size()>=numberOfInstancesUsedForRoleLearning)break; - } - pos=tmp; - System.out.println("Instances used: "+pos.size()); - - tmp=new HashSet<String>(); - for(String one:neg){ - tmp.add(one); - if(tmp.size()>=numberOfInstancesUsedForRoleLearning)break; - } - neg=tmp; - - instances=new HashSet<String>(); - instances.addAll(pos); - - instances.addAll(neg); - - for(String one:pos){ - System.out.println("+\""+one+"\""); - } - for(String one:neg){ - System.out.println("-\""+one+"\""); - } - - /*Random r= new Random(); - - - Object[] arr=instances.toArray(); - while(instances.size()>=30){ - - }*/ + // choose 30 + + Set<String> tmp = new HashSet<String>(); + for (String one : pos) { + tmp.add(one); + if (tmp.size() >= numberOfInstancesUsedForRoleLearning) + break; + } + pos = tmp; + System.out.println("Instances used: " + pos.size()); + + tmp = new HashSet<String>(); + for (String one : neg) { + tmp.add(one); + if (tmp.size() >= numberOfInstancesUsedForRoleLearning) + break; + } + neg = tmp; + + instances = new HashSet<String>(); + instances.addAll(pos); + + instances.addAll(neg); + + for (String one : pos) { + System.out.println("+\"" + one + "\""); + } + for (String one : neg) { + System.out.println("-\"" + one + "\""); + } + + /* + * Random r= new Random(); + * + * + * Object[] arr=instances.toArray(); + * while(instances.size()>=30){ + * } + */ // add the role to the filter(a solution is always EXISTS // role.TOP) m.addPredicateFilter(role); - //System.out.println(instances); - // THIS is a workaround - + // System.out.println(instances); + // THIS is a workaround + } // the actual extraction is started here ont = m.extract(instances); - System.out.println("Number of cached SPARQL queries: "+m.getConfiguration().numberOfCachedSparqlQueries); - System.out.println("Number of uncached SPARQL queries: "+m.getConfiguration().numberOfUncachedSparqlQueries); - + System.out.println("Number of cached SPARQL queries: " + + m.getConfiguration().numberOfCachedSparqlQueries); + System.out.println("Number of uncached SPARQL queries: " + + m.getConfiguration().numberOfUncachedSparqlQueries); + System.out.println("Finished collecting Fragment"); if (dumpToFile) { @@ -354,7 +381,8 @@ if (!new File(basedir).exists()) new File(basedir).mkdir(); - FileWriter fw = new FileWriter(new File(basedir + filename), true); + FileWriter fw = new FileWriter( + new File(basedir + filename), true); fw.write(ont); fw.flush(); fw.close(); @@ -366,8 +394,8 @@ } if (format.equals("KB")) { try { - //kb = KBParser.parseKBFile(new StringReader(ont)); - kb=KBParser.parseKBFile(dumpFile); + // kb = KBParser.parseKBFile(new StringReader(ont)); + kb = KBParser.parseKBFile(dumpFile); } catch (Exception e) { e.printStackTrace(); } @@ -386,7 +414,8 @@ @Override public String toDIG(URI kbURI) { if (format.equals("N-TRIPLES")) - return JenaOWLDIGConverter.getTellsString(dumpFile, OntologyFormat.N_TRIPLES, kbURI); + return JenaOWLDIGConverter.getTellsString(dumpFile, + OntologyFormat.N_TRIPLES, kbURI); else return DIGConverter.getDIGString(kb, kbURI).toString(); } @@ -398,7 +427,8 @@ * org.dllearner.core.OntologyFormat) */ @Override - public void export(File file, OntologyFormat format) throws OntologyFormatUnsupportedException { + public void export(File file, OntologyFormat format) + throws OntologyFormatUnsupportedException { // currently no export functions implemented, so we just throw an // exception throw new OntologyFormatUnsupportedException("export", format); @@ -412,9 +442,9 @@ return ontArray; } - /** * TODO SparqlOntologyCollector needs to be removed + * * @param label * @param limit */ @@ -432,6 +462,7 @@ /** * TODO SparqlOntologyCollector needs to be removed + * * @param subject */ public void calculateTriples(String subject) { @@ -448,6 +479,7 @@ /** * TODO SparqlOntologyCollector needs to be removed + * * @param concept */ public void calculateConceptSubjects(String concept) { @@ -521,8 +553,8 @@ public String[] getConceptSubjects() { return conceptSubjects; } - + public SparqlQuery sparqlQuery(String query) { - return new SparqlQuery(sse, query); + return new SparqlQuery(query, sse); } } Deleted: trunk/src/dl-learner/org/dllearner/kb/sparql/Test.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Test.java 2008-01-18 18:49:49 UTC (rev 394) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Test.java 2008-01-18 23:21:56 UTC (rev 395) @@ -1,56 +0,0 @@ -/** - * Copyright (C) 2007, Sebastian Hellmann - * - * This file is part of DL-Learner. - * - * DL-Learner is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * DL-Learner is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package org.dllearner.kb.sparql; - -import java.io.File; -import java.io.FileWriter; -import java.net.URI; - -/** - * Test class. - * - * @author Sebastian Hellmann - * - */ -public class Test { - - public static void main(String[] args) { - System.out.println("Start"); - // String test2 = "http://www.extraction.org/config#dbpediatest"; - // String test = "http://www.extraction.org/config#localjoseki"; - try { - // URI u = new URI(test); - Manager m = new Manager(); - // m.usePredefinedConfiguration(u); - - URI u2 = new URI("http://dbpedia.org/resource/Angela_Merkel"); - - String filename = System.currentTimeMillis() + ".nt"; - FileWriter fw = new FileWriter(new File(filename), true); - fw.write(m.extract(u2)); - fw.flush(); - fw.close(); - - } catch (Exception e) { - e.printStackTrace(); - } - } - -} Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java 2008-01-18 18:49:49 UTC (rev 394) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java 2008-01-18 23:21:56 UTC (rev 395) @@ -43,15 +43,15 @@ * Can execute different queries. * * @author Sebastian Hellmann - * + * */ -public class TypedSparqlQuery implements TypedSparqlQueryInterface{ - boolean print_flag=false; - boolean debug_no_cache=false;// true means no cahce is used +public class TypedSparqlQuery implements TypedSparqlQueryInterface { + boolean print_flag = false; + boolean debug_no_cache = false;// true means no cahce is used private Configuration configuration; // private SparqlHTTPRequest SparqlHTTPRequest; private SparqlQueryMaker sparqlQueryMaker; - private SparqlQuery sparqlQuery; + // private SparqlQuery sparqlQuery; private CachedSparqlQuery cachedSparqlQuery; Cache cache; @@ -59,16 +59,20 @@ this.configuration = Configuration; // this.SparqlHTTPRequest = new // SparqlHTTPRequest(Configuration.getSparqlEndpoint()); - this.sparqlQueryMaker = new SparqlQueryMaker(Configuration.getSparqlQueryType()); - this.sparqlQuery=new SparqlQuery(configuration.getSparqlEndpoint()); + this.sparqlQueryMaker = new SparqlQueryMaker(Configuration + .getSparqlQueryType()); + // this.sparqlQuery=new SparqlQuery(configuration.getSparqlEndpoint()); this.cache = new Cache("cache"); - this.cachedSparqlQuery=new CachedSparqlQuery(this.sparqlQuery,this.cache); + // this.cachedSparqlQuery=new + // CachedSparqlQuery(this.sparqlQuery,this.cache); } + // standard query get a tupels (p,o) for subject s public Set<StringTuple> query(URI u) { // getQuery - String sparql = sparqlQueryMaker.makeSubjectQueryUsingFilters(u.toString()); + String sparql = sparqlQueryMaker.makeSubjectQueryUsingFilters(u + .toString()); return cachedSparql(u, sparql, "predicate", "object"); } @@ -77,17 +81,20 @@ public Set<StringTuple> getTupelsForRole(URI u) { // getQuery - String sparql = sparqlQueryMaker.makeRoleQueryUsingFilters(u.toString()); + String sparql = sparqlQueryMaker + .makeRoleQueryUsingFilters(u.toString()); Set<StringTuple> s = cachedSparql(u, sparql, "subject", "object"); // System.out.println(s); return s; } - public Set<StringTuple> getTupelsForRole(URI u,boolean domain) { + public Set<StringTuple> getTupelsForRole(URI u, boolean domain) { + // getQuery - String sparql = sparqlQueryMaker.makeRoleQueryUsingFilters(u.toString(),domain); + String sparql = sparqlQueryMaker.makeRoleQueryUsingFilters( + u.toString(), domain); Set<StringTuple> s = cachedSparql(u, sparql, "subject", "object"); // System.out.println(s); @@ -95,106 +102,135 @@ } - - // uses a cache - private Set<StringTuple> cachedSparql(URI u, String sparql, String a, String b) { + // uses a cache + private Set<StringTuple> cachedSparql(URI u, String sparql, String a, + String b) { // check cache - String xml=this.cachedSparqlQuery.getAsXMLString(u, sparql); + String FromCache = cache.get(u.toString(), sparql); + if (debug_no_cache) { + FromCache = null; + } + String xml = null; + // if not in cache get it from EndPoint + if (FromCache == null) { + configuration.increaseNumberOfuncachedSparqlQueries(); + // try { + xml = sendAndReceiveSPARQL(sparql); + /* + * } catch (IOException e) {e.printStackTrace();} + */ + p(sparql); + // System.out.println(xml); + if (!debug_no_cache) { + cache.put(u.toString(), sparql, xml); + } + // System.out.print("\n"); + } else { + configuration.increaseNumberOfCachedSparqlQueries(); + xml = FromCache; + // System.out.println("FROM CACHE"); + } // System.out.println(sparql); // System.out.println(xml); // process XML Set<StringTuple> s = processResult(xml, a, b); try { - //System.out.println("retrieved " + s.size() + " tupels\n"); + // System.out.println("retrieved " + s.size() + " tupels\n"); } catch (Exception e) { } return s; + } public Set<StringTuple> processResult(String xml, String a, String b) { Set<StringTuple> ret = new HashSet<StringTuple>(); // TODO if result is empty, catch exceptions - String resEnd="</result>"; + String resEnd = "</result>"; String one = "binding name=\"" + a + "\""; String two = "binding name=\"" + b + "\""; - String endbinding= "binding"; - String uri="uri"; - //String uridel = "<uri>"; + String endbinding = "binding"; + String uri = "uri"; + // String uridel = "<uri>"; String bnode = "<bnode>"; - //String uriend = "</uri>"; + // String uriend = "</uri>"; String predtmp = ""; String objtmp = ""; - //System.out.println(getNextResult(xml)); - String nextResult=""; - while ((nextResult=getNextResult( xml))!=null){ - //System.out.println(xml.indexOf(resEnd)); - //System.out.println(xml); - if(nextResult.indexOf(bnode)!=-1) - {xml=xml.substring(xml.indexOf(resEnd)+resEnd.length());continue;} + // System.out.println(getNextResult(xml)); + String nextResult = ""; + while ((nextResult = getNextResult(xml)) != null) { + // System.out.println(xml.indexOf(resEnd)); + // System.out.println(xml); + if (nextResult.indexOf(bnode) != -1) { + xml = xml.substring(xml.indexOf(resEnd) + resEnd.length()); + continue; + } // get pred - //predtmp = nextResult.substring(nextResult.indexOf(one) + one.length()); - predtmp=getinTag(nextResult, one,endbinding); - predtmp=getinTag(predtmp, uri,uri); - //System.out.println(predtmp); - + // predtmp = nextResult.substring(nextResult.indexOf(one) + + // one.length()); + predtmp = getinTag(nextResult, one, endbinding); + predtmp = getinTag(predtmp, uri, uri); + // System.out.println(predtmp); + // getobj - objtmp=getinTag(nextResult, two,endbinding); - objtmp=getinTag(objtmp, uri,uri); - //System.out.println(objtmp); - - StringTuple st=new StringTuple(predtmp, objtmp); - //System.out.println(st); + objtmp = getinTag(nextResult, two, endbinding); + objtmp = getinTag(objtmp, uri, uri); + // System.out.println(objtmp); + + StringTuple st = new StringTuple(predtmp, objtmp); + // System.out.println(st); ret.add(st); - xml=xml.substring(xml.indexOf(resEnd)+resEnd.length()); - + xml = xml.substring(xml.indexOf(resEnd) + resEnd.length()); + } - /*while (xml.indexOf(one) != -1) { - - + /* + * while (xml.indexOf(one) != -1) { + * + * + * + * // System.out.println(new Tupel(predtmp,objtmp)); } + */ - - // System.out.println(new Tupel(predtmp,objtmp)); - }*/ - return ret; } - - private String getNextResult(String xml){ - String res1="<result>"; - String res2="</result>"; - if(xml.indexOf(res1)==-1)return null; + + private String getNextResult(String xml) { + String res1 = "<result>"; + String res2 = "</result>"; + if (xml.indexOf(res1) == -1) + return null; xml = xml.substring(xml.indexOf(res1) + res1.length()); - xml = xml.substring(0,xml.indexOf(res2) ); - //System.out.println(xml); + xml = xml.substring(0, xml.indexOf(res2)); + // System.out.println(xml); return xml; } - private String getinTag(String xml, String starttag, String endtag){ - String res1="<"+starttag+">"; - //System.out.println(res1); - String res2="</"+endtag+">"; - if(xml.indexOf(res1)==-1)return null; + + private String getinTag(String xml, String starttag, String endtag) { + String res1 = "<" + starttag + ">"; + // System.out.println(res1); + String res2 = "</" + endtag + ">"; + if (xml.indexOf(res1) == -1) + return null; xml = xml.substring(xml.indexOf(res1) + res1.length()); - //System.out.println(xml); - xml = xml.substring(0,xml.indexOf(res2) ); - //System.out.println(xml); - + // System.out.println(xml); + xml = xml.substring(0, xml.indexOf(res2)); + // System.out.println(xml); + return xml; } - public String sendAndReceiveSPARQL(String queryString){ - //SparqlQuery sq=new SparqlQuery(configuration.getSparqlEndpoint()); - return sparqlQuery.getAsXMLString(queryString); + public String sendAndReceiveSPARQL(String queryString) { + // SparqlQuery sq=new SparqlQuery(configuration.getSparqlEndpoint()); + return new SparqlQuery(queryString, configuration.getSparqlEndpoint()) + .getAsXMLString(); } - - public void p(String str){ - if(print_flag){ + + public void p(String str) { + if (print_flag) { System.out.println(str); } } - - } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java 2008-01-18 18:49:49 UTC (rev 394) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java 2008-01-18 23:21:56 UTC (rev 395) @@ -19,88 +19,76 @@ */ package org.dllearner.kb.sparql; -import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.net.HttpURLConnection; import java.net.URI; -import java.net.URLEncoder; import java.util.HashSet; -import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.Set; import org.dllearner.kb.sparql.configuration.Configuration; -import org.dllearner.kb.sparql.configuration.SparqlEndpoint; import org.dllearner.kb.sparql.query.Cache; +import org.dllearner.kb.sparql.query.SparqlQuery; import org.dllearner.utilities.StringTuple; /** * Can execute different queries. * * @author Sebastian Hellmann - * + * */ -public class TypedSparqlQueryClasses implements TypedSparqlQueryInterface{ - boolean print_flag=false; - boolean debug_no_cache=false; +public class TypedSparqlQueryClasses implements TypedSparqlQueryInterface { + boolean print_flag = false; + boolean debug_no_cache = false; private Configuration configuration; // private SparqlHTTPRequest SparqlHTTPRequest; - //private SparqlQueryMaker sparqlQueryMaker; + // private SparqlQueryMaker sparqlQueryMaker; Cache cache; - public TypedSparqlQueryClasses(Configuration configuration) { this.configuration = configuration; this.cache = new Cache("cache"); } - + // standard query get a tupels (p,o) for subject s public Set<StringTuple> query(URI u) { // getQuery - String sparql = "SELECT ?predicate ?object " + - "WHERE {" + - "<"+u.toString()+"> ?predicate ?object;" + - "a ?object . " + - " FILTER (!regex(str(?object),'http://xmlns.com/foaf/0.1/'))"+ - "}"; - + String sparql = "SELECT ?predicate ?object " + "WHERE {" + "<" + + u.toString() + "> ?predicate ?object;" + "a ?object . " + + " FILTER (!regex(str(?object),'http://xmlns.com/foaf/0.1/'))" + + "}"; + return cachedSparql(u, sparql, "predicate", "object"); } - - - // uses a cache - private Set<StringTuple> cachedSparql(URI u, String sparql, String a, String b) { + // uses a cache + private Set<StringTuple> cachedSparql(URI u, String sparql, String a, + String b) { // check cache String FromCache = cache.get(u.toString(), sparql); - if(debug_no_cache) { - FromCache=null; - } + if (debug_no_cache) { + FromCache = null; + } String xml = null; // if not in cache get it from EndPoint if (FromCache == null) { configuration.increaseNumberOfuncachedSparqlQueries(); - try { - xml = sendAndReceiveSPARQL(sparql); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + // try { + xml = sendAndReceiveSPARQL(sparql); + /* + * } catch (IOException e) {e.printStackTrace();} + */ p(sparql); // System.out.println(xml); - if(!debug_no_cache) { + if (!debug_no_cache) { cache.put(u.toString(), sparql, xml); } - //System.out.print("\n"); + // System.out.print("\n"); } else { configuration.increaseNumberOfCachedSparqlQueries(); xml = FromCache; - //System.out.println("FROM CACHE"); + // System.out.println("FROM CACHE"); } // System.out.println(sparql); @@ -108,7 +96,7 @@ // process XML Set<StringTuple> s = processResult(xml, a, b); try { - //System.out.println("retrieved " + s.size() + " tupels\n"); + // System.out.println("retrieved " + s.size() + " tupels\n"); } catch (Exception e) { } return s; @@ -118,136 +106,89 @@ Set<StringTuple> ret = new HashSet<StringTuple>(); // TODO if result is empty, catch exceptions - String resEnd="</result>"; + String resEnd = "</result>"; String one = "binding name=\"" + a + "\""; String two = "binding name=\"" + b + "\""; - String endbinding= "binding"; - String uri="uri"; - //String uridel = "<uri>"; + String endbinding = "binding"; + String uri = "uri"; + // String uridel = "<uri>"; String bnode = "<bnode>"; - //String uriend = "</uri>"; + // String uriend = "</uri>"; String predtmp = ""; String objtmp = ""; - //System.out.println(getNextResult(xml)); - String nextResult=""; - while ((nextResult=getNextResult( xml))!=null){ - //System.out.println(xml.indexOf(resEnd)); - //System.out.println(xml); - if(nextResult.indexOf(bnode)!=-1) - {xml=xml.substring(xml.indexOf(resEnd)+resEnd.length());continue;} + // System.out.println(getNextResult(xml)); + String nextResult = ""; + while ((nextResult = getNextResult(xml)) != null) { + // System.out.println(xml.indexOf(resEnd)); + // System.out.println(xml); + if (nextResult.indexOf(bnode) != -1) { + xml = xml.substring(xml.indexOf(resEnd) + resEnd.length()); + continue; + } // get pred - //predtmp = nextResult.substring(nextResult.indexOf(one) + one.length()); - predtmp=getinTag(nextResult, one,endbinding); - predtmp=getinTag(predtmp, uri,uri); - //System.out.println(predtmp); - + // predtmp = nextResult.substring(nextResult.indexOf(one) + + // one.length()); + predtmp = getinTag(nextResult, one, endbinding); + predtmp = getinTag(predtmp, uri, uri); + // System.out.println(predtmp); + // getobj - objtmp=getinTag(nextResult, two,endbinding); - objtmp=getinTag(objtmp, uri,uri); - //System.out.println(objtmp); - - StringTuple st=new StringTuple(predtmp, objtmp); - //System.out.println(st); + objtmp = getinTag(nextResult, two, endbinding); + objtmp = getinTag(objtmp, uri, uri); + // System.out.println(objtmp); + + StringTuple st = new StringTuple(predtmp, objtmp); + // System.out.println(st); ret.add(st); - xml=xml.substring(xml.indexOf(resEnd)+resEnd.length()); - + xml = xml.substring(xml.indexOf(resEnd) + resEnd.length()); + } - /*while (xml.indexOf(one) != -1) { - - + /* + * while (xml.indexOf(one) != -1) { + * + * + * + * // System.out.println(new Tupel(predtmp,objtmp)); } + */ - - // System.out.println(new Tupel(predtmp,objtmp)); - }*/ - return ret; } - - private String getNextResult(String xml){ - String res1="<result>"; - String res2="</result>"; - if(xml.indexOf(res1)==-1)return null; + + private String getNextResult(String xml) { + String res1 = "<result>"; + String res2 = "</result>"; + if (xml.indexOf(res1) == -1) + return null; xml = xml.substring(xml.indexOf(res1) + res1.length()); - xml = xml.substring(0,xml.indexOf(res2) ); - //System.out.println(xml); + xml = xml.substring(0, xml.indexOf(res2)); + // System.out.println(xml); return xml; } - private String getinTag(String xml, String starttag, String endtag){ - String res1="<"+starttag+">"; - //System.out.println(res1); - String res2="</"+endtag+">"; - if(xml.indexOf(res1)==-1)return null; + + private String getinTag(String xml, String starttag, String endtag) { + String res1 = "<" + starttag + ">"; + // System.out.println(res1); + String res2 = "</" + endtag + ">"; + if (xml.indexOf(res1) == -1) + return null; xml = xml.substring(xml.indexOf(res1) + res1.length()); - //System.out.println(xml); - xml = xml.substring(0,xml.indexOf(res2) ); - //System.out.println(xml); - + // System.out.println(xml); + xml = xml.substring(0, xml.indexOf(res2)); + // System.out.println(xml); + return xml; } - private String sendAndReceiveSPARQL(String sparql) throws IOException { - p("sendAndReceiveSPARQL"); - StringBuilder answer = new StringBuilder(); - //sparql="SELECT * WHERE {?a ?b ?c}LIMIT 10"; + private String sendAndReceiveSPARQL(String sparql) { + LinkedHashSet l = new LinkedHashSet<String>(); - // String an Sparql-Endpoint schicken - HttpURLConnection connection; - SparqlEndpoint se = configuration.getSparqlEndpoint(); - p("URL: "+se.getURL()); - p("Host: "+se.getHost()); - - connection = (HttpURLConnection) se.getURL().openConnection(); - connection.setDoOutput(true); - - //connection.addRequestProperty("Host", se.getHost()); - connection.addRequestProperty("Connection", "close"); - connection - .addRequestProperty( - "Accept", - "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"); - connection.addRequestProperty("Accept-Language", "de-de,de;q=0.8,en-us;q=0.5,en;q=0.3"); - connection.addRequestProperty("Accept-Charset", "utf-8;q=1.0"); - connection - .addRequestProperty( - "User-Agent", - "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4 Web-Sniffer/1.0.24"); - - OutputStream os = connection.getOutputStream(); - OutputStreamWriter osw = new OutputStreamWriter(os); - - Set<String> s = se.getParameters().keySet(); - Iterator<String> it = s.iterator(); - String FullURI = ""; - while (it.hasNext()) { - String element = it.next(); - FullURI += "" + URLEncoder.encode(element, "UTF-8") + "=" - + URLEncoder.encode(se.getParameters().get(element), "UTF-8") + "&"; - } - - FullURI += "" + se.getHasQueryParameter() + "=" + URLEncoder.encode(sparql, "UTF-8"); - p(FullURI); - osw.write(FullURI); - osw.close(); - - // receive answer - InputStream is = connection.getInputStream(); - InputStreamReader isr = new InputStreamReader(is, "UTF-8"); - BufferedReader br = new BufferedReader(isr); - - String line; - do { - line = br.readLine(); - if (line != null) - answer.append(line); - } while (line != null); - - br.close(); - p(answer.toString()); - return answer.toString(); + return new SparqlQuery(sparql, configuration.getSparqlEndpoint()) + .getAsXMLString(); } - public void p(String str){ - if(print_flag){ + + public void p(String str) { + if (print_flag) { System.out.println(str); } } Deleted: trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/PredefinedEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/PredefinedEndpoint.java 2008-01-18 18:49:49 UTC (rev 394) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/PredefinedEndpoint.java 2008-01-18 23:21:56 UTC (rev 395) @@ -1,168 +0,0 @@ -/** - * Copyright (C) 2007, Sebastian Hellmann - * - * This file is part of DL-Learner. - * - * DL-Learner is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * DL-Learner is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package org.dllearner.kb.sparql.configuration; - -import java.net.URL; -import java.util.HashMap; - - -/** - * Holds some predefined endpoints. - * - * @author Sebastian Hellmann - * - */ -public class PredefinedEndpoint { - public static SparqlEndpoint getEndpoint(int i) { - - switch (i) { - case 1: - return dbpediaEndpoint(); - case 2: - return localJoseki(); - case 3: - return govTrack(); - case 4: - return revyu(); - case 5: - return myopenlink(); - case 6: - return worldFactBook(); - } - return null; - } - - public static SparqlEndpoint dbpediaEndpoint() { - 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 { - u = new URL("http://dbpedia.openlinksw.com:8890/sparql"); - } catch (Exception e) { - e.printStackTrace(); - } - return new SparqlEndpoint(u, "dbpedia.openlinksw.com", m); - } - - public static SparqlEndpoint localJoseki() { - 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 { - u = new URL("http://localhost:2020/books"); - } catch (Exception e) { - e.printStackTrace(); - } - return new SparqlEndpoint(u, "localhost", m); - } - public static SparqlEndpoint worldFactBook() { - 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 { - u = new URL("http://www4.wiwiss.fu-berlin.de/factbook/sparql"); - } catch (Exception e) { - e.printStackTrace(); - } - return new SparqlEndpoint(u, "www4.wiwiss.fu-berlin.de", m); - } - - /* - * it only has 4 classes - public static SpecificSparqlEndpoint dblp() { - 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 { - 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); - } - */ - public static SparqlEndpoint govTrack() { - 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 { - u = new URL("http://www.rdfabout.com/sparql"); - } catch (Exception e) { - e.printStackTrace(); - } - return new SparqlEndpoint(u, "www.rdfabout.com", m); - } - public static SparqlEndpoint revyu() { - 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"); - //http://revyu.com/sparql?query=SELECT DISTINCT * WHERE {[] a ?c} - try { - u = new URL("http://revyu.com/sparql"); - } catch (Exception e) { - e.printStackTrace(); - } - return new SparqlEndpoint(u, "revyu.com", m); - } - - // returns strange xml - /*public static SpecificSparqlEndpoint dbtune() { - 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"); - //http://dbtune.org:2020/sparql/?query=SELECT DISTINCT * WHERE {[] a ?c}Limit 10 - http://dbtune.org:2020/evaluateQuery?repository=default&serialization=rdfxml&queryLanguage=SPARQL&query=SELECT+DISTINCT+*+WHERE+%7B%5B%5D+a+%3Fc%7D - &resultFormat=xml - &resourceFormat=ns&entailment=none - http://dbtune.org:2020/evaluateQuery - ?repository=default&serialization=rdfxml&queryLanguage=SPARQL - &query=SELECT+DISTINCT+*+WHERE+%7B%5B%5D+a+%3Fc%7D - &resultFormat=xml - &resourceFormat=ns&entailment=none - try { - u = new URL("http://dbtune.org:2020/sparql/"); - } catch (Exception e) { - e.printStackTrace(); - } - return new SpecificSparqlEndpoint(u, "dbtune.org", m); - }*/ - - public static SparqlEndpoint myopenlink() { - URL u = null; - HashMap<String, String> m = new HashMap<String, String>(); - m.put("default-graph-uri", "http://myopenlink.net/dataspace"); - m.put("format", "application/sparql-results.xml"); - //http://myopenlink.net:8890/sparql/?query=select+distinct+%3FConcept+where+%7B%5B%5D+a+%3FConcept%7D - try { - u = new URL("http://myopenlink.net:8890/sparql/"); - } catch (Exception e) { - e.printStackTrace(); - } - return new SparqlEndpoint(u, "myopenlink.net", m); - } - -} Deleted: trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/PredefinedFilter.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/PredefinedFilter.java 2008-01-18 18:49:49 UTC (rev 394) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/PredefinedFilter.java 2008-01-18 23:21:56 UTC (rev 395) @@ -1,171 +0,0 @@ -/** - * Copyright (C) 2007, Sebastian Hellmann - * - * This file is part of DL-Learner. - * - * DL-Learner is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * DL-Learner is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package org.dllearner.kb.sparql.configuration; - -import java.util.HashSet; -import java.util.Set; - - -/** - * Predefined filters. - * - * @author Sebastian Hellmann - * - */ -public class PredefinedFilter { - - - public static SparqlQueryType getFilter(int i) { - - switch (i) { - case 1: - return YagoFilter(); - case 2: - return SKOS(); - case 3: - return YAGOSKOS(); - case 4: - return YagoSpecialHierarchy(); - } - return null; - } - - - public static SparqlQueryType YagoFilter(){ - Set<String> pred = new HashSet<String>(); - pred.add("http://www.w3.org/2004/02/skos/core"); - pred.add("http://www.w3.org/2002/07/owl#sameAs"); - pred.add("http://xmlns.com/foaf/0.1/"); - - pred.add("http://dbpedia.org/property/reference"); - pred.add("http://dbpedia.org/property/website"); - pred.add("http://dbpedia.org/property/wikipage"); - pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); - pred.add("http://dbpedia.org/property/relatedInstance"); - - Set<String> obj = new HashSet<String>(); - //obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); - //obj.add("http://dbpedia.org/resource/Category:Articles_"); - obj.add("http://dbpedia.org/resource/Category:"); - obj.add("http://dbpedia.org/resource/Template"); - obj.add("http://xmlns.com/foaf/0.1/"); - obj.add("http://upload.wikimedia.org/wikipedia/commons"); - obj.add("http://upload.wikimedia.org/wikipedia"); - obj.add("http://www.geonames.org"); - obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); - obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); - obj.add("http://www.w3.org/2004/02/skos/core"); - - return new SparqlQueryType("forbid", obj, pred, "false"); - } - public static SparqlQueryType YagoSpecialHierarchy(){ - Set<String> pred = new HashSet<String>(); - pred.add("http://www.w3.org/2004/02/skos/core"); - pred.add("http://www.w3.org/2002/07/owl#sameAs"); - pred.add("http://xmlns.com/foaf/0.1/"); - - pred.add("http://dbpedia.org/property/reference"); - pred.add("http://dbpedia.org/property/website"); - pred.add("http://dbpedia.org/property/wikipage"); - pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); - pred.add("http://dbpedia.org/property/relatedInstance"); - pred.add("http://dbpedia.org/property/monarch"); - - - Set<String> obj = new HashSet<String>(); - obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); - obj.add("http://dbpedia.org/resource/Category:Articles_"); - obj.add("http://dbpedia.org/resource/Template"); - obj.add("http://xmlns.com/foaf/0.1/"); - obj.add("http://upload.wikimedia.org/wikipedia/commons"); - obj.add("http://upload.wikimedia.org/wikipedia"); - obj.add("http://www.geonames.org"); - obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); - obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); - obj.add("http://www.w3.org/2004/02/skos/core"); - - return new SparqlQueryType("forbid", obj, pred, "false"); - } - - - public static SparqlQueryType SKOS(){ - Set<String> pred = new HashSet<String>(); - //pred.add("http://www.w3.org/2004/02/skos/core"); - pred.add("http://www.w3.org/2002/07/owl#sameAs"); - pred.add("http://xmlns.com/foaf/0.1/"); - - pred.add("http://dbpedia.org/property/reference"); - pred.add("http://dbpedia.org/property/website"); - pred.add("http://dbpedia.org/property/wikipage"); - pred.add("http://www.w3.org/2004/02/skos/core#narrower"); - pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); - - Set<String> obj = new HashSet<String>(); - //obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); - //obj.add("http://dbpedia.org/resource/Category:Articles_"); - obj.add("http://xmlns.com/foaf/0.1/"); - obj.add("http://upload.wikimedia.org/wikipedia/commons"); - obj.add("http://upload.wikimedia.org/wikipedia"); - - obj.add("http://www.geonames.org"); - obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); - obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); - - - obj.add("http://dbpedia.org/class/yago"); - obj.add("http://dbpedia.org/resource/Template"); - - - return new SparqlQueryType("forbid", obj, pred, "false"); - } - public static SparqlQueryType YAGOSKOS(){ - Set<String> pred = new HashSet<String>(); - //pred.add("http://www.w3.org/2004/02/skos/core"); - pred.add("http://www.w3.org/2002/07/owl#sameAs"); - pred.add("http://xmlns.com/foaf/0.1/"); - - pred.add("http://dbpedia.org/property/reference"); - pred.add("http://dbpedia.org/property/website"); - pred.add("http://dbpedia.org/property/wikipage"); - //pred.add("http://www.w3.org/2004/02/skos/core#narrower"); - pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); - - Set<String> obj = new HashSet<String>(); - //obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); - //obj.add("http://dbpedia.org/resource/Category:Articles_"); - obj.add("http://xmlns.com/foaf/0.1/"); - obj.add("http://upload.wikimedia.org/wikipedia/commons"); - obj.add("http://upload.wikimedia.org/wikipedia"); - - obj.add("http://www.geonames.org"); - obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); - obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); - - - //obj.add("http://dbpedia.org/class/yago"); - obj.add("http://dbpedia.org/resource/Template"); - - - return new SparqlQueryType("forbid", obj, pred, "false"); - } - - - -} Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-01-18 18:49:49 UTC (rev 394) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlEndpoint.java 2008-01-18 23:21:56 UTC (rev 395) @@ -20,55 +20,175 @@ package org.dllearner.kb.sparql.configuration; import java.net.URL; -import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; /** - * One sparql endpoint configuration. + * One sparql endpoint configuration, + * made to comply with Jena * * @author Sebastian Hellmann * */ public class SparqlEndpoint { - - String host; - String hasQueryParameter; URL url; - public HashMap<String, String> parameters = new HashMap<String, String>(); + LinkedList<String> defaultGraphURIs; + LinkedList<String> namedGraphURIs; + //public HashMap<String, String> parameters = new HashMap<String, String>(); - public SparqlEndpoint(URL url, String host, HashMap<String, String> parameters) { - super(); - this.host = host; - this.url = url; - this.hasQueryParameter = "query"; - this.parameters = parameters; + public SparqlEndpoint(URL u) { + this.url = u; + this.defaultGraphURIs=new LinkedList<String>(); + this.namedGraphURIs=new LinkedList<String>(); } + + public SparqlEndpoint(URL u,List<String> defaultGraphURIs,List<String> namedGraphURIs) { + this.url = u; + this.defaultGraphURIs=new LinkedList<String>(); + this.namedGraphURIs=new LinkedList<String>(); + } + - public String getHasQueryParameter() { - return hasQueryParameter; + public URL getURL() { + return this.url; } - public void setHasQueryParameter(String hasQueryParameter) { - this.hasQueryParameter = hasQueryParameter; + public LinkedList<String> getDefaultGraphURIs() { + return defaultGraphURIs; } - public String getHost() { - return host; + public LinkedList<String> getNamedGraphURIs() { + return namedGraphURIs; } + + public static SparqlEndpoint getEndpointByNumber(int i) { - public void setHost(String host) { - this.host = host; + switch (i) { + case 0: + return dbpediaEndpoint(); + case 1: + return localJoseki(); + case 2: + return govTrack(); + case 3: + return revyu(); + case 4: + return myopenlink(); + case 5: + return worldFactBook(); + } + return null; } + + public static SparqlEndpoint dbpediaEndpoint() { + URL u = null; + try { + u = new URL("http://dbpedia.openlinksw.com: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 HashMap<String, String> getParameters() { - return parameters; + public static SparqlEndpoint localJoseki() { + URL u = null; + try { + u = new URL("http://localhost:2020/books"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SparqlEndpoint(u, new LinkedList<String>(), new LinkedList<String>()); } + + public static SparqlEndpoint worldFactBook() { + URL u = null; + try { + u = new URL("http://www4.wiwiss.fu-berlin.de/factbook/sparql"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SparqlEndpoint(u, new LinkedList<String>(), new LinkedList<String>()); + } + - public void setParameters(HashMap<String, String> parameters) { - this.parameters = parameters; + public static SparqlEndpoint govTrack() { + URL u = null; + try { + u = new URL("http://www.rdfabout.com/sparql"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SparqlEndpoint(u, new LinkedList<String>(), new LinkedList<String>()); } + + public static SparqlEndpoint revyu() { + URL u = null; + try { + u = new URL("http://revyu.com/sparql"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SparqlEndpoint(u, new LinkedList<String>(), new LinkedList<String>()); + } + + public static SparqlEndpoint myopenlink() { + URL u = null; + try { + u = new URL("http://myopenlink.net:8890/sparql/"); + } catch (Exception e) { + e.printStackTrace(); + } + LinkedList<String> defaultGraphURIs=new LinkedList<String>(); + defaultGraphURIs.add("http://myopenlink.net/dataspace"); + return new SparqlEndpoint(u, defaultGraphURIs, new LinkedList<String>()); - public URL getURL() { - return this.url; + } + + + // returns strange xml + /*public static SpecificSparqlEndpoint dbtune() { + 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"); + //http://dbtune.org:2020/sparql/?query=SELECT DISTINCT * WHERE {[] a ?c}Limit 10 + http://dbtune.org:2020/evaluateQuery?repository=default&serialization=rdfxml&queryLanguage=SPARQL&query=SELECT+DISTINCT+*+WHERE+%7B%5B%5D+a+%3Fc%7D + &resultFormat=xml + &resourceFormat=ns&entailment=none + http://dbtune.org:2020/evaluateQuery + ?repository=default&serialization=rdfxml&queryLanguage=SPARQL + &query=SELECT+DISTINCT+*+WHERE+%7B%5B%5D+a+%3Fc%7D + &resultFormat=xml + &resourceFormat=ns&entailment=none + try { + u = new URL("http://dbtune.org:2020/sparql/"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SpecificSparqlEndpoint(u, "dbtune.org", m); + }*/ + + + + + /* + * it only has 4 classes + public static SpecificSparqlEndpoint dblp() { + 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 { + 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); } + */ + + } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlQueryType.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlQueryType.java 2008-01-18 18:49:49 UTC (rev 394) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/configuration/SparqlQueryType.java 2008-01-18 23:21:56 UTC (rev 395) @@ -19,6 +19,7 @@ */ package org.dllearner.kb.sparql.configuration; +import java.util.HashSet; import java.util.Set; /** @@ -97,5 +98,142 @@ //System.out.println("added filter: "+filter); } + + public static SparqlQueryType getFilter(int i) { + switch (i) { + case 1: + return YagoFilter(); + case 2: + return SKOS(); + case 3: + return YAGOSKOS(); + case 4: + return YagoSpecialHierarchy(); + } + return null; + } + + + public static SparqlQueryType YagoFilter(){ + Set<String> pred = new HashSet<String>(); + pred.add("http://www.w3.org/2004/02/skos/core"); + pred.add("http://www.w3.org/2002/07/owl#sameAs"); + pred.add("http://xmlns.com/foaf/0.1/"); + + pred.add("http://dbpedia.org/property/reference"); + pred.add("http://dbpedia.org/property/website"); + pred.add("http://dbpedia.org/property/wikipage"); + pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); + pred.add("http://dbpedia.org/property/relatedInstance"); + + Set<String> obj = new HashSet<String>(); + //obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); + //obj.add("http://dbpedia.org/resource/Category:Articles_"); + obj.add("http://dbpedia.org/resource/Category:"); + obj.add("http://dbpedia.org/resource/Template"); + obj.add("http://xmlns.com/foaf/0.1/"); + obj.add("http://upload.wikimedia.org/wikipedia/commons"); + obj.add("http://upload.wikimedia.org/wikipedia"); + obj.add("http://www.geonames.org"); + obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); + obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); + obj.add("http://www.w3.org/2004/02/skos/core"); + + return new SparqlQueryType("forbid", obj, pred, "false"); + } + public static SparqlQueryType YagoSpecialHierarchy(){ + Set<String> pred = new HashSet<String>(); + pred.add("http://www.w3.org/2004/02/skos/core"); + pred.add("http://www.w3.org/2002/07/owl#sameAs"); + pred.add("http://xmlns.com/foaf/0.1/"); + + pred.add("http://dbpedia.org/property/reference"); + pred.add("http://dbpedia.org/property/website"); + pred.add("http://dbpedia.org/property/wikipage"); + pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); + pred.add("http://dbpedia.org/property/relatedInstance"); + pred.add("http://dbpedia.org/property/monarch"); + + + Set<String> obj = new HashSet<String>(); + obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); + obj.add("http://dbpedia.org/resource/Category:Articles_"); + obj.add("http://dbpedia.org/resource/Template"); + obj.add("http://xmlns.com/foaf/0.1/"); + obj.add("http://up... [truncated message content] |