From: <ku...@us...> - 2007-12-02 13:30:02
|
Revision: 298 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=298&view=rev Author: kurzum Date: 2007-12-02 05:29:58 -0800 (Sun, 02 Dec 2007) Log Message: ----------- working, filtermode gives a predefined set wchich is stored in kb.sparql.Predefined. Manual configuration might not work yet. Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java trunk/src/dl-learner/org/dllearner/kb/sparql/Configuration.java trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlHTTPRequest.java trunk/src/dl-learner/org/dllearner/kb/sparql/Test.java trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedConfigurations.java trunk/src/dl-learner/org/dllearner/kb/sparql/SpecificSparqlEndpoint.java Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/kb/sparql/SimpleHTTPRequest.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlEndpoint.java Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java 2007-12-02 12:03:41 UTC (rev 297) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java 2007-12-02 13:29:58 UTC (rev 298) @@ -27,6 +27,7 @@ import java.net.URI; import java.net.URL; import java.util.Collection; +import java.util.HashMap; import java.util.LinkedList; import java.util.Set; @@ -42,12 +43,11 @@ import org.dllearner.core.config.StringSetConfigOption; import org.dllearner.core.dl.KB; import org.dllearner.kb.sparql.Manager; -import org.dllearner.kb.sparql.SparqlEndpoint; import org.dllearner.kb.sparql.SparqlQueryType; +import org.dllearner.kb.sparql.SpecificSparqlEndpoint; import org.dllearner.parser.KBParser; import org.dllearner.reasoning.DIGConverter; import org.dllearner.reasoning.JenaOWLDIGConverter; -import org.dllearner.utilities.Datastructures; /** * Represents a SPARQL Endpoint. @@ -59,7 +59,8 @@ public class SparqlEndpointRestructured extends KnowledgeSource { //ConfigOptions - private URL url; + private URL url; + String host; private Set<String> instances; private URL dumpFile; private int numberOfRecursions; @@ -70,6 +71,7 @@ private String format; private boolean dumpToFile; private boolean useLits=false; + private boolean getAllBackground=false; /** * Holds the results of the calculateSubjects method @@ -120,8 +122,9 @@ * @return */ public static Collection<ConfigOption<?>> createConfigOptions() { - Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); + 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 IntegerConfigOption("numberOfRecursions","number of Recursions, the Sparql-Endpoint is asked")); options.add(new IntegerConfigOption("filterMode","the mode of the SPARQL Filter")); @@ -131,6 +134,7 @@ options.add(new StringConfigOption("format", "N-TRIPLES or KB format")); options.add(new BooleanConfigOption("dumpToFile", "wether Ontology from DBPedia is written to a file or not")); options.add(new BooleanConfigOption("useLits","use Literals in SPARQL query")); + options.add(new BooleanConfigOption("getAllBackground","get")); return options; } @@ -148,6 +152,8 @@ } catch (MalformedURLException e) { throw new InvalidConfigOptionValueException(entry.getOption(), entry.getValue(),"malformed URL " + s); } + } else if(option.equals("host")) { + host = (String) entry.getValue(); } else if(option.equals("instances")) { instances = (Set<String>) entry.getValue(); } else if(option.equals("numberOfRecursions")){ @@ -166,6 +172,8 @@ dumpToFile=(Boolean)entry.getValue(); } else if(option.equals("useLits")){ useLits=(Boolean)entry.getValue(); + } else if(option.equals("getAllBackground")){ + getAllBackground=(Boolean)entry.getValue(); } } @@ -182,15 +190,16 @@ //Datastructures.setToArray(predList),Datastructures.setToArray( objList),Datastructures.setToArray(classList),format,url,useLits); Manager m=new Manager(); if(filterMode==0){ - try{ - m.usePredefinedConfiguration(new URI("http://www.extraction.org/config#dbpediatest")); - }catch (Exception e) {e.printStackTrace();} + + m.usePredefinedConfiguration(filterMode); + } else{ - //SparqlQueryType sqt=new SparqlQueryType("forbid", objList,predList,useLits+""); - //SparqlEndpoint se=new SparqlEndpoint(); - //m.useConfiguration(SparqlQueryType, SparqlEndpoint) + SparqlQueryType sqt=new SparqlQueryType("forbid", objList,predList,useLits+""); + SpecificSparqlEndpoint se=new SpecificSparqlEndpoint(url, host, new HashMap<String, String>()); + m.useConfiguration(sqt, se,numberOfRecursions,getAllBackground); } + try { String ont=m.extract(instances); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Configuration.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Configuration.java 2007-12-02 12:03:41 UTC (rev 297) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Configuration.java 2007-12-02 13:29:58 UTC (rev 298) @@ -18,16 +18,26 @@ import org.semanticweb.owl.model.OWLOntologyManager; public class Configuration { - private SparqlEndpoint SparqlEndpoint; + private SpecificSparqlEndpoint SparqlEndpoint; private SparqlQueryType SparqlQueryType; private Manipulator Manipulator; - + private int recursiondepth = 2; + private boolean getAllBackground = true; + private Configuration() { } - public Configuration(SparqlEndpoint SparqlEndpoint, SparqlQueryType SparqlQueryType) { + + public Configuration(SpecificSparqlEndpoint SparqlEndpoint, + SparqlQueryType SparqlQueryType, int recursiondepth, + boolean getAllBackground) { this.SparqlEndpoint = SparqlEndpoint; this.SparqlQueryType = SparqlQueryType; + this.Manipulator=new Manipulator(); + this.recursiondepth = recursiondepth; + this.getAllBackground = getAllBackground; + + } public static Configuration getConfiguration(URI uri) { @@ -123,7 +133,7 @@ } - public static SparqlEndpoint makeEndpoint(OWLIndividual sEndpoint, OWLOntology o) { + public static SpecificSparqlEndpoint makeEndpoint(OWLIndividual sEndpoint, OWLOntology o) { String host = getFirstValueForDataProperty("hasHost", sEndpoint.getDataPropertyValues(o)); String port = getFirstValueForDataProperty("hasPort", sEndpoint.getDataPropertyValues(o)); String hasAfterGET = getFirstValueForDataProperty("hasAfterGET", sEndpoint @@ -135,7 +145,7 @@ // System.out.println("test"); HashMap<String, String> parameters = new HashMap<String, String>(); if (para == null) - return new SparqlEndpoint(host, port, hasAfterGET, hasQueryParameter, parameters); + return null;//new SpecificSparqlEndpoint(host, port, hasAfterGET, hasQueryParameter, parameters); for (OWLIndividual p : para) { // System.out.println("test2"); String a1 = getFirstValueForDataProperty("hasParameterName", p.getDataPropertyValues(o)); @@ -146,7 +156,7 @@ // System.out.println("test2"); // System.out.println(host+port+ hasAfterGET+ hasQueryParameter+ // parameters); - return new SparqlEndpoint(host, port, hasAfterGET, hasQueryParameter, parameters); + return null;//new SpecificSparqlEndpoint(host, port, hasAfterGET, hasQueryParameter, parameters); } @@ -196,7 +206,7 @@ return this.Manipulator; } - public SparqlEndpoint getSparqlEndpoint() { + public SpecificSparqlEndpoint getSparqlEndpoint() { return SparqlEndpoint; } @@ -204,4 +214,14 @@ return SparqlQueryType; } + + public boolean isGetAllBackground() { + return getAllBackground; + } + + + public int getRecursiondepth() { + return recursiondepth; + } + } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java 2007-12-02 12:03:41 UTC (rev 297) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java 2007-12-02 13:29:58 UTC (rev 298) @@ -13,6 +13,8 @@ public ExtractionAlgorithm(Configuration Configuration) { this.Configuration = Configuration; this.Manipulator = Configuration.getManipulator(); + this.recursiondepth=Configuration.getRecursiondepth(); + this.getAllBackground=Configuration.isGetAllBackground(); } @@ -41,6 +43,7 @@ while (v.size() > 0) { Node tmpNode = v.remove(0); System.out.println("Expanding " + tmpNode); + //System.out.println(this.Manipulator); Vector<Node> tmpVec = tmpNode.expand(tsp, this.Manipulator); tmp.addAll(tmpVec); @@ -57,7 +60,9 @@ } while (classes.size() > 0) { System.out.println(classes.size()); - classes.addAll(classes.remove(0).expand(tsp, this.Manipulator)); + Node next=classes.remove(0); + System.out.println(next); + classes.addAll(next.expand(tsp, this.Manipulator)); } } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java 2007-12-02 12:03:41 UTC (rev 297) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java 2007-12-02 13:29:58 UTC (rev 298) @@ -24,6 +24,7 @@ Set<Tupel> s = tsq.query(this.URI); // Manipulation m.check(s, this); + //System.out.println("fffffff"+m); Vector<Node> Nodes = new Vector<Node>(); Iterator<Tupel> it = s.iterator(); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java 2007-12-02 12:03:41 UTC (rev 297) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java 2007-12-02 13:29:58 UTC (rev 298) @@ -10,16 +10,23 @@ private TypedSparqlQuery TypedSparqlQuery; private ExtractionAlgorithm ExtractionAlgorithm; - public void usePredefinedConfiguration(URI uri) { + /*public void usePredefinedConfiguration(URI uri) { this.Configuration = org.dllearner.kb.sparql.Configuration.getConfiguration(uri); this.TypedSparqlQuery = new TypedSparqlQuery(Configuration); this.ExtractionAlgorithm = new ExtractionAlgorithm(Configuration); + }*/ + + public void usePredefinedConfiguration(int i) { + + this.Configuration = PredefinedConfigurations.get(i); + this.TypedSparqlQuery = new TypedSparqlQuery(Configuration); + this.ExtractionAlgorithm = new ExtractionAlgorithm(Configuration); } - public void useConfiguration(SparqlQueryType SparqlQueryType, SparqlEndpoint SparqlEndpoint) { + public void useConfiguration(SparqlQueryType SparqlQueryType, SpecificSparqlEndpoint SparqlEndpoint, int recursiondepth,boolean getAllBackground) { - this.Configuration = new Configuration(SparqlEndpoint, SparqlQueryType); + this.Configuration = new Configuration(SparqlEndpoint, SparqlQueryType,recursiondepth,getAllBackground); this.TypedSparqlQuery = new TypedSparqlQuery(Configuration); this.ExtractionAlgorithm = new ExtractionAlgorithm(Configuration); } Added: trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedConfigurations.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedConfigurations.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedConfigurations.java 2007-12-02 13:29:58 UTC (rev 298) @@ -0,0 +1,59 @@ +package org.dllearner.kb.sparql; + +import java.net.URL; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; + +public class PredefinedConfigurations { + + public static Configuration get(int i){ + + switch (i){ + case 0: return dbpediaYago(); + + } + return null; + } + + public static Configuration dbpediaYago(){ + 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();} + SpecificSparqlEndpoint sse=new SpecificSparqlEndpoint( + u,"dbpedia.openlinksw.com",m); + //System.out.println(u); + 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"); + + + 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://www.w3.org/2004/02/skos/core"); + + SparqlQueryType sqt=new SparqlQueryType("forbid",obj,pred,"false"); + + + + return new Configuration(sse,sqt,2,true); + + } + + +} Deleted: trunk/src/dl-learner/org/dllearner/kb/sparql/SimpleHTTPRequest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SimpleHTTPRequest.java 2007-12-02 12:03:41 UTC (rev 297) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SimpleHTTPRequest.java 2007-12-02 13:29:58 UTC (rev 298) @@ -1,128 +0,0 @@ -package org.dllearner.kb.sparql; - -import java.io.BufferedInputStream; -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.InetAddress; -import java.net.Socket; -import java.net.URL; -import java.net.URLEncoder; - -public class SimpleHTTPRequest { - static final char value[] = { 13, 10 }; - static final String cut = new String(value); - private InetAddress ia; - private int port; - - public SimpleHTTPRequest(InetAddress ia, int port) { - super(); - this.ia = ia; - this.port = port; - - } - - public String sendAndReceive(String content) { - String retval = ""; - // - - byte resp[] = null; - - try { - Socket SparqlServer = new Socket(this.ia, this.port); - // String request=makeHeader(content); - // send request - (SparqlServer.getOutputStream()).write(content.getBytes()); - - // get Response - resp = readBuffer(new BufferedInputStream(SparqlServer.getInputStream())); - retval = new String(resp); - retval = subtractResponseHeader(retval); - // retval="||"+retval; - - SparqlServer.close(); - - } catch (Exception e) { - e.printStackTrace(); - } - // System.out.println("got it"); - return retval; - - }// down - - public static byte[] readBuffer(InputStream IS) throws IOException { - byte buffer[] = new byte[0xffff]; - int nbytes = 0; - byte resp[] = new byte[0]; - while ((nbytes = IS.read(buffer)) != -1) { - byte tmp[] = new byte[resp.length + nbytes]; - int i = 0; - for (; i < resp.length; i++) { - tmp[i] = resp[i]; - } - for (int a = 0; a < nbytes; a++, i++) { - tmp[i] = buffer[a]; - } - resp = tmp; - } - return resp; - } - - public String subtractResponseHeader(String in) { - // System.out.println(in.indexOf(cut+""+cut)); - return in.substring(in.indexOf(cut + "" + cut) + 4); - - } - - private String sendAndReceive2(String sparql, URL url) throws IOException { - StringBuilder answer = new StringBuilder(); - - // String an Sparql-Endpoint schicken - HttpURLConnection connection; - - connection = (HttpURLConnection) url.openConnection(); - connection.setDoOutput(true); - - connection.addRequestProperty("Host", "dbpedia.openlinksw.com"); - 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); - osw - .write("default-graph-uri=http%3A%2F%2Fdbpedia.org&query=" - + URLEncoder.encode(sparql, "UTF-8") - + "&format=application%2Fsparql-results%2Bxml"); - 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(); - - return answer.toString(); - } - -} Deleted: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlEndpoint.java 2007-12-02 12:03:41 UTC (rev 297) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlEndpoint.java 2007-12-02 13:29:58 UTC (rev 298) @@ -1,79 +0,0 @@ -package org.dllearner.kb.sparql; - -import java.util.HashMap; - -public class SparqlEndpoint { - - String host; - int port; - String hasAfterGET; - String hasQueryParameter; - String hasURL; - public HashMap<String, String> parameters = new HashMap<String, String>(); - - public SparqlEndpoint(String host, String port, String hasAfterGET, String hasQueryParameter, - HashMap<String, String> parameters) { - super(); - this.host = host; - this.port = Integer.parseInt(port); - this.hasAfterGET = hasAfterGET; - this.hasQueryParameter = hasQueryParameter; - this.parameters = parameters; - } - - public SparqlEndpoint(String host, int port, String hasURL, HashMap<String, String> parameters) { - super(); - this.port = port; - this.host = host; - this.hasURL = hasURL; - this.hasQueryParameter = "query"; - this.parameters = parameters; - } - - public String getHasAfterGET() { - return hasAfterGET; - } - - public void setHasAfterGET(String hasAfterGET) { - this.hasAfterGET = hasAfterGET; - } - - public String getHasQueryParameter() { - return hasQueryParameter; - } - - public void setHasQueryParameter(String hasQueryParameter) { - this.hasQueryParameter = hasQueryParameter; - } - - public String getHost() { - return host; - } - - public void setHost(String host) { - this.host = host; - } - - public HashMap<String, String> getParameters() { - return parameters; - } - - public void setParameters(HashMap<String, String> parameters) { - this.parameters = parameters; - } - - public int getPort() { - return port; - } - - public void setPort(int port) { - this.port = port; - } - - /* - * sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=" + - * //"SELECT%20%2A%20WHERE%20%7B%20%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FAristotle%3E%20%3Fa%20%3Fb%20%7D%20" + - * URLEncoder.encode(query, "UTF-8")+ //query+// URLencode - * "&format=application%2Fsparql-results%2Bxml - */ -} Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlHTTPRequest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlHTTPRequest.java 2007-12-02 12:03:41 UTC (rev 297) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlHTTPRequest.java 2007-12-02 13:29:58 UTC (rev 298) @@ -1,81 +1,105 @@ 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.InetAddress; import java.net.URLEncoder; import java.util.Iterator; import java.util.Set; -public class SparqlHTTPRequest { - static final char value[] = { 13, 10 }; - static final String cut = new String(value); - private SparqlEndpoint SparqlEndpoint; - private SimpleHTTPRequest SimpleHTTPRequest; - public SparqlHTTPRequest(SparqlEndpoint SparqlEndpoint) { - this.SparqlEndpoint = SparqlEndpoint; - InetAddress ia = null; - try { - ia = InetAddress.getByName(SparqlEndpoint.getHost()); - } catch (Exception e) { - e.printStackTrace(); - } - this.SimpleHTTPRequest = new SimpleHTTPRequest(ia, SparqlEndpoint.getPort()); - +public class SparqlHTTPRequest { + + + private SpecificSparqlEndpoint SparqlEndpoint; + + + + public SparqlHTTPRequest(SpecificSparqlEndpoint SparqlEndpoint){ + this.SparqlEndpoint=SparqlEndpoint; + + } - - public String sendAndReceiveSPARQL(String sparql) { - - // System.out.println(sparql); - String content = makeContent(sparql); - // System.out.println(content); - String ret = this.SimpleHTTPRequest.sendAndReceive(content); - // System.out.println(ret); - - // this.sendAndReceiveSPARQL("SELECT * WHERE {?a ?b ?c} LIMIT 10"); - + + + public String sendAndReceiveSPARQL( String sparql){ + String ret= ""; + try{ + //System.out.println(sparql); + + //System.out.println(content); + + ret=this.sendAndReceive(sparql); + //System.out.println(ret); + + //this.sendAndReceiveSPARQL("SELECT * WHERE {?a ?b ?c} LIMIT 10"); + }catch (Exception e) {e.printStackTrace();} return ret; - - }// down - - public String makeContent(String query) { - - String RequestHeader = ""; - try { - - RequestHeader = "GET "; - RequestHeader += SparqlEndpoint.getHasAfterGET() + "?"; - // parameters - Set<String> s = SparqlEndpoint.getParameters().keySet(); - Iterator<String> it = s.iterator(); - while (it.hasNext()) { - String element = (String) it.next(); - RequestHeader += "" + URLEncoder.encode(element, "UTF-8") + "=" - + URLEncoder.encode(SparqlEndpoint.getParameters().get(element), "UTF-8") - + "&"; - } - RequestHeader += "" + SparqlEndpoint.getHasQueryParameter() + "=" - + URLEncoder.encode(query, "UTF-8"); - RequestHeader += " HTTP/1.1" + cut; - RequestHeader += "Host: " + SparqlEndpoint.getHost() + cut; - - RequestHeader += "Connection: close" - + cut - + - // "Accept-Encoding: gzip"+cut+ - "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" - + cut - + "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3" - + cut - + "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7" - + cut - + "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" - + cut + cut; - } catch (Exception e) { - e.printStackTrace(); + + + }//down + + + + + + + private String sendAndReceive(String sparql) throws IOException{ + StringBuilder answer = new StringBuilder(); + + // String an Sparql-Endpoint schicken + HttpURLConnection connection; + + connection = (HttpURLConnection) this.SparqlEndpoint.getURL().openConnection(); + connection.setDoOutput(true); + + connection.addRequestProperty("Host", this.SparqlEndpoint.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 =SparqlEndpoint.getParameters().keySet(); + Iterator<String> it=s.iterator(); + String FullURI=""; + while (it.hasNext()) { + String element = (String) it.next(); + FullURI+=""+URLEncoder.encode(element, "UTF-8")+"="+ + URLEncoder.encode(SparqlEndpoint.getParameters().get(element), "UTF-8")+"&"; } - return RequestHeader; - + //System.out.println(FullURI); + FullURI+=""+SparqlEndpoint.getHasQueryParameter()+"="+URLEncoder.encode(sparql, "UTF-8"); + + + 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(); + + return answer.toString(); } + +} -} Copied: trunk/src/dl-learner/org/dllearner/kb/sparql/SpecificSparqlEndpoint.java (from rev 296, trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlEndpoint.java) =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SpecificSparqlEndpoint.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SpecificSparqlEndpoint.java 2007-12-02 13:29:58 UTC (rev 298) @@ -0,0 +1,53 @@ +package org.dllearner.kb.sparql; + +import java.net.URL; +import java.util.HashMap; + +public class SpecificSparqlEndpoint { + + + + String host; + String hasQueryParameter; + URL URL; + public HashMap<String, String> parameters = new HashMap<String, String>(); + + + public SpecificSparqlEndpoint(URL url,String host, HashMap<String, String> parameters) { + super(); + this.host=host; + this.URL = url; + this.hasQueryParameter = "query"; + this.parameters = parameters; + } + + + public String getHasQueryParameter() { + return hasQueryParameter; + } + + public void setHasQueryParameter(String hasQueryParameter) { + this.hasQueryParameter = hasQueryParameter; + } + + public String getHost() { + return host; + } + + public void setHost(String host) { + this.host = host; + } + + public HashMap<String, String> getParameters() { + return parameters; + } + + public void setParameters(HashMap<String, String> parameters) { + this.parameters = parameters; + } + + public URL getURL() { + return this.URL; + } + +} Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Test.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Test.java 2007-12-02 12:03:41 UTC (rev 297) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Test.java 2007-12-02 13:29:58 UTC (rev 298) @@ -13,7 +13,7 @@ try { URI u = new URI(test); Manager m = new Manager(); - m.usePredefinedConfiguration(u); + //m.usePredefinedConfiguration(u); URI u2 = new URI("http://dbpedia.org/resource/Angela_Merkel"); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java 2007-12-02 12:03:41 UTC (rev 297) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java 2007-12-02 13:29:58 UTC (rev 298) @@ -24,12 +24,14 @@ // check cache String FromCache = this.Cache.get(u.toString(), sparql); - FromCache = null; + String xml; // if not in cache get it from EndPoint if (FromCache == null) { xml = this.SparqlHTTPRequest.sendAndReceiveSPARQL(sparql); - // this.Cache.put(u.toString(), xml, sparql); + //System.out.println(sparql); + //System.out.println(xml); + this.Cache.put(u.toString(), xml, sparql); System.out.print("\n"); } else { xml = FromCache; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |