From: <sk...@us...> - 2008-01-29 13:39:06
|
Revision: 453 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=453&view=rev Author: sknappe Date: 2008-01-29 05:38:57 -0800 (Tue, 29 Jan 2008) Log Message: ----------- test for the http and the jena version of getting knowledge from endpoint Added Paths: ----------- trunk/src/dl-learner/org/dllearner/kb/sparql/test/TestHTTP.java Added: trunk/src/dl-learner/org/dllearner/kb/sparql/test/TestHTTP.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/test/TestHTTP.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/test/TestHTTP.java 2008-01-29 13:38:57 UTC (rev 453) @@ -0,0 +1,102 @@ +package org.dllearner.kb.sparql.test; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.InetAddress; +import java.net.Socket; +import java.net.URLEncoder; + +import com.hp.hpl.jena.query.ResultSet; +import com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP; + +public class TestHTTP { + public static void main(String[] args) throws Exception{ + + String query="SELECT DISTINCT ?object\n"+ + "FROM <http://dbpedia.org>\n"+ + "WHERE { <http://dbpedia.org/resource/Leipzig> <http://www.w3.org/2000/01/rdf-schema#label> ?object}\n"; + + double time=0; + for (int i=0; i<101; i++) + { + if (i!=0) time+=TestHTTP.httpQuery(query); + } + time=time/100; + System.out.println("Durchschnittliche Zeit f\xFCr eine Anfrage per Http-Methode: "+time); + + time=0; + for (int i=0; i<101; i++) + { + if (i!=0) time+=TestHTTP.jenaQuery(query); + } + time=time/100; + System.out.println("Durchschnittliche Zeit f\xFCr eine Anfrage per Jena-Methode: "+time); + } + + private static double jenaQuery(String query) + { + double start=System.currentTimeMillis(); + QueryEngineHTTP queryExecution=new QueryEngineHTTP("http://localhost:8890/sparql",query); + queryExecution.addDefaultGraph("http://dbpedia.org"); + // Jena access to DBpedia SPARQL endpoint + ResultSet rs = queryExecution.execSelect(); + double end=System.currentTimeMillis(); + return ((end-start)/1000); + } + + private static double httpQuery(String query) throws Exception + { + char value[]={13,10}; + String cut=new String(value); + String test="GET /sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=" + + URLEncoder.encode(query, "UTF-8")+ + "&format=application%2Fsparql-results%2Bxml HTTP/1.1"+cut+ + "Host: localhost"+cut+ + "Connection: close"+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; + String retval=""; + // + double start=System.currentTimeMillis(); + byte resp[]=null; + + try{ + Socket SparqlServer=new Socket(InetAddress.getByName("localhost"),8890); + String request=test; + // send request + (SparqlServer.getOutputStream()).write(request.getBytes()); + + //get Response + resp=readBuffer(new BufferedInputStream(SparqlServer.getInputStream())); + retval=new String(resp); + retval=retval.substring(retval.indexOf(cut+""+cut)+4); + + SparqlServer.close(); + } catch (Exception e){} + double end=System.currentTimeMillis(); + return (end-start)/1000; + } + + private 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; + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |