From: <ku...@us...> - 2008-01-23 11:07:23
|
Revision: 416 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=416&view=rev Author: kurzum Date: 2008-01-23 03:07:20 -0800 (Wed, 23 Jan 2008) Log Message: ----------- Finished JSON, added SpeedTest Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/query/SparqlQuery.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/kb/sparql/test/JenaQueryToResultSpeedTest.java Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/kb/sparql/test/TestSparqlQuery.java Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/query/SparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/query/SparqlQuery.java 2008-01-23 09:02:01 UTC (rev 415) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/query/SparqlQuery.java 2008-01-23 11:07:20 UTC (rev 416) @@ -22,6 +22,7 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.net.URL; +import java.nio.charset.Charset; import java.util.Iterator; import java.util.List; import java.util.Vector; @@ -229,53 +230,35 @@ * public Model asJenaModel(){ ResultSet rs=send(); return * ResultSetFormatter.toModel(rs); } */ + /** + * sends a query and returns JSON + * @return a String representation of the Resultset as JSON + */ public String getAsJSON(){ ResultSet rs=send(); ByteArrayOutputStream baos=new ByteArrayOutputStream(); ResultSetFormatter.outputAsJSON(baos, rs); return baos.toString(); - } + + /** + * @param json a string representation string object + * @return jena ResultSet + */ public static ResultSet JSONtoResultSet(String json){ ResultSet rs=null; try{ - ByteArrayInputStream bais=new ByteArrayInputStream(json.getBytes()); + ByteArrayInputStream bais=new ByteArrayInputStream(json.getBytes(Charset.forName("UTF-8"))); rs=ResultSetFactory.fromJSON(bais); - }catch (Exception e) {e.printStackTrace();} return rs; } - /*public void testJSon(){ - try{ - - try{ - ByteArrayInputStream BAIS=new ByteArrayInputStream(JSON.getBytes()); - ResultSet rs2=ResultSetFactory.fromJSON(BAIS); - System.out.println(ResultSetFormatter.asXMLString(rs2)); - }catch (Exception e) {e.printStackTrace();} - //PipedOutputStream pos=new PipedOutputStream(); - //pos.flush(); - //System.out.println("hh"); - //PipedInputStream pis=new PipedInputStream(pos); - //System.out.println("hh2"); - //pis.flush(); - //PrintStream out=new PrintStream(); - //ResultSetFormatter.outputAsJSON(System.out, rs); - //pos.flush(); - //System.out.println("hh"); - //while (pis.available()>0) - //System.out.println("hh"); - //System.out.println(pis.read());; - - }catch (Exception e) {e.printStackTrace();} - //return - //ResultSetFormatter.toModel(rs); } - } + /** * creates a query for subjects with the specified label * @param label a phrase that is part of the label of a subject Copied: trunk/src/dl-learner/org/dllearner/kb/sparql/test/JenaQueryToResultSpeedTest.java (from rev 411, trunk/src/dl-learner/org/dllearner/kb/sparql/test/TestSparqlQuery.java) =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/test/JenaQueryToResultSpeedTest.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/test/JenaQueryToResultSpeedTest.java 2008-01-23 11:07:20 UTC (rev 416) @@ -0,0 +1,149 @@ +/** + * Copyright (C) 2007-2008, Jens Lehmann + * + * 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.test; + +import org.dllearner.kb.sparql.configuration.SparqlEndpoint; +import org.dllearner.kb.sparql.query.SparqlQuery; + + +public class JenaQueryToResultSpeedTest { + static boolean print_flag=false; + + public static void main(String[] args) { + + String queryString = "PREFIX dbpedia2: <http://dbpedia.org/property/> " + + "PREFIX skos: <http://www.w3.org/2004/02/skos/core#>" + + "SELECT ?episode ?chalkboard_gag WHERE { ?episode skos:subject" + + " <http://dbpedia.org/resource/Category:The_Simpsons_episodes%2C_season_12>." + + " ?episode dbpedia2:blackboard ?chalkboard_gag }"; + + int howOften=20; + testJenaAsXML(howOften, queryString); + testJenaAsList(howOften, queryString); + testJenaAsJSON(howOften, queryString); + testJenaAsJSONandBack(howOften, queryString); + + + + // compareResults( queryString); + + } + + + public static void testJenaAsXML(int howOften, String queryString){ + SparqlEndpoint sse = SparqlEndpoint.dbpediaEndpoint(); + SparqlQuery sqJena = new SparqlQuery(queryString, sse); + // first query is not counted + sqJena.getAsXMLString(); + long now = System.currentTimeMillis(); + long tmp = now; + for (int i = 0; i < howOften; i++) { + + sqJena.getAsXMLString(); + p("Jena as XML needed: " + + (System.currentTimeMillis() - tmp)); + tmp = System.currentTimeMillis(); + } + long total=System.currentTimeMillis() - now; + System.out.println("Jena as XML total: " + total + + " ms , average: "+ (total/howOften) ); + + } + + public static void testJenaAsList(int howOften, String queryString){ + SparqlEndpoint sse = SparqlEndpoint.dbpediaEndpoint(); + SparqlQuery sqJena = new SparqlQuery(queryString, sse); + // first query is not counted + sqJena.getAsList(); + long now = System.currentTimeMillis(); + long tmp = now; + for (int i = 0; i < howOften; i++) { + + sqJena.getAsList(); + p("Jena as List needed: " + + (System.currentTimeMillis() - tmp)); + tmp = System.currentTimeMillis(); + + } + long total=System.currentTimeMillis() - now; + System.out.println("Jena as List total: " + total + + " ms , average: "+ (total/howOften) ); + + } + + public static void testJenaAsJSON(int howOften, String queryString){ + SparqlEndpoint sse = SparqlEndpoint.dbpediaEndpoint(); + SparqlQuery sqJena = new SparqlQuery(queryString, sse); + // first query is not counted + sqJena.getAsJSON(); + long now = System.currentTimeMillis(); + long tmp = now; + for (int i = 0; i < howOften; i++) { + + sqJena.getAsJSON(); + p("Jena as JSON needed: " + + (System.currentTimeMillis() - tmp)); + tmp = System.currentTimeMillis(); + + } + long total=System.currentTimeMillis() - now; + System.out.println("Jena as JSON total: " + total + + " ms , average: "+ (total/howOften) ); + + } + + public static void testJenaAsJSONandBack(int howOften, String queryString){ + SparqlEndpoint sse = SparqlEndpoint.dbpediaEndpoint(); + SparqlQuery sqJena = new SparqlQuery(queryString, sse); + // first query is not counted + sqJena.getAsJSON(); + long now = System.currentTimeMillis(); + long tmp = now; + for (int i = 0; i < howOften; i++) { + + // System.out.println(sqJena.getAsJSON()); + SparqlQuery.JSONtoResultSet(sqJena.getAsJSON()); + p("Jena as JSON and back needed: " + + (System.currentTimeMillis() - tmp)); + tmp = System.currentTimeMillis(); + + } + long total=System.currentTimeMillis() - now; + System.out.println("Jena as JSON and back total: " + total + + " ms , average: "+ (total/howOften) ); + + } + + + public static void compareResults(String queryString) { + SparqlEndpoint sse = SparqlEndpoint.dbpediaEndpoint(); + SparqlQuery sqJena = new SparqlQuery(queryString, sse); + // SparqlQueryConventional sqConv=new SparqlQueryConventional(sse); + + System.out.println(sqJena.getAsXMLString()); + // System.out.println(sqConv.getAsXMLString("")); + + } + + static void p(String s) { + if (print_flag) + System.out.println(s); + } +} Deleted: trunk/src/dl-learner/org/dllearner/kb/sparql/test/TestSparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/test/TestSparqlQuery.java 2008-01-23 09:02:01 UTC (rev 415) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/test/TestSparqlQuery.java 2008-01-23 11:07:20 UTC (rev 416) @@ -1,84 +0,0 @@ -/** - * Copyright (C) 2007-2008, Jens Lehmann - * - * 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.test; - -import org.dllearner.kb.sparql.configuration.SparqlEndpoint; -import org.dllearner.kb.sparql.query.SparqlQuery; - - -public class TestSparqlQuery { - - public static void main(String[] args) { - - String queryString = "PREFIX dbpedia2: <http://dbpedia.org/property/> " - + "PREFIX skos: <http://www.w3.org/2004/02/skos/core#>" - + "SELECT ?episode ?chalkboard_gag WHERE { ?episode skos:subject" - + " <http://dbpedia.org/resource/Category:The_Simpsons_episodes%2C_season_12>." - + " ?episode dbpedia2:blackboard ?chalkboard_gag }"; - - testTime(20, queryString); - - // compareResults( queryString); - - } - - public static void testTime(int howOften, String queryString) { - SparqlEndpoint sse = SparqlEndpoint.dbpediaEndpoint(); - SparqlQuery sqJena = new SparqlQuery(queryString, sse); - //SparqlQueryConventional sqConv = new SparqlQueryConventional(sse); - - // first query is not counted - sqJena.getAsList(); - long now = System.currentTimeMillis(); - long tmp = now; - for (int i = 0; i < howOften; i++) { - // sqConv.getAsXMLString(queryString); - sqJena.getAsList(); - System.out.println("Conv needed: " - + (System.currentTimeMillis() - tmp)); - tmp = System.currentTimeMillis(); - - } - System.out.println("Conv total: " + (System.currentTimeMillis() - now)); - // first query is not counted - sqJena.getAsXMLString(); - now = System.currentTimeMillis(); - tmp = now; - for (int i = 0; i < howOften; i++) { - - sqJena.getAsXMLString(); - System.out.println("Jena needed: " - + (System.currentTimeMillis() - tmp)); - tmp = System.currentTimeMillis(); - - } - System.out.println("Jena total: " + (System.currentTimeMillis() - now)); - } - - public static void compareResults(String queryString) { - SparqlEndpoint sse = SparqlEndpoint.dbpediaEndpoint(); - SparqlQuery sqJena = new SparqlQuery(queryString, sse); - // SparqlQueryConventional sqConv=new SparqlQueryConventional(sse); - - System.out.println(sqJena.getAsXMLString()); - // System.out.println(sqConv.getAsXMLString("")); - - } -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |