From: <ku...@us...> - 2008-06-26 15:22:06
|
Revision: 984 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=984&view=rev Author: kurzum Date: 2008-06-26 08:21:53 -0700 (Thu, 26 Jun 2008) Log Message: ----------- main format for sparqlquery is json now hope it doesn't produce so much errors now anymore Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java trunk/src/dl-learner/org/dllearner/kb/sparql/SPARQLTasks.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java trunk/src/dl-learner/org/dllearner/test/JenaQueryToResultSpeedTest.java Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java 2008-06-26 10:44:36 UTC (rev 983) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java 2008-06-26 15:21:53 UTC (rev 984) @@ -246,12 +246,13 @@ JamonMonitorLogger.getTimeMonitor(Cache.class, "ReadTime").stop(); if (result != null) { - //query.setJson(result); + query.setJson(result); query.setRunning(false); - SparqlQuery.writeToSpecialLog("***********\nJSON retrieved from cache"); - SparqlQuery.writeToSpecialLog(query.getQueryString()); - SparqlQuery.writeToSpecialLog(query.getEndpoint().getURL().toString()); + SparqlQuery.writeToSparqlLog("***********\nJSON retrieved from cache"); + SparqlQuery.writeToSparqlLog(query.getQueryString()); + SparqlQuery.writeToSparqlLog(query.getEndpoint().getURL().toString()); + SparqlQuery.writeToSparqlLog("JSON: "+result); JamonMonitorLogger.increaseCount(Cache.class, "SuccessfulHits"); } else { @@ -261,7 +262,7 @@ String json = query.getJson(); if (json!=null){ addToCache(query.getQueryString(), json); - SparqlQuery.writeToSpecialLog("result added to cache: "+json); + SparqlQuery.writeToSparqlLog("result added to cache: "+json); result=json; query.setJson(result); } @@ -269,7 +270,7 @@ json=""; result=""; logger.warn(Cache.class.getSimpleName()+"empty result: "+query.getQueryString()); - SparqlQuery.writeToSpecialLog("empty result for : "+query.getQueryString()); + SparqlQuery.writeToSparqlLog("empty result for : "+query.getQueryString()); } //return json; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SPARQLTasks.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SPARQLTasks.java 2008-06-26 10:44:36 UTC (rev 983) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SPARQLTasks.java 2008-06-26 15:21:53 UTC (rev 984) @@ -354,8 +354,8 @@ if(c==null){ SparqlQuery sq = new SparqlQuery(SPARQLquery,se); // sq.extraDebugInfo+=se.getURL(); - ResultSet rs=sq.send(); - String JSON = SparqlQuery.getAsJSON(rs); + sq.send(); + String JSON = sq.getJson(); return JSON; }else{ return c.executeSparqlQuery(new SparqlQuery(SPARQLquery,se)); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-06-26 10:44:36 UTC (rev 983) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-06-26 15:21:53 UTC (rev 984) @@ -45,7 +45,6 @@ import org.dllearner.core.config.StringTupleListConfigOption; import org.dllearner.core.owl.KB; import org.dllearner.kb.extraction.Manager; -import org.dllearner.kb.extraction.Manipulator; import org.dllearner.kb.extraction.ManipulatorType; import org.dllearner.kb.extraction.Manipulators; import org.dllearner.parser.KBParser; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java 2008-06-26 10:44:36 UTC (rev 983) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java 2008-06-26 15:21:53 UTC (rev 984) @@ -47,11 +47,12 @@ private boolean isRunning = false; + private boolean wasExecuted = false; private String queryString; private QueryEngineHTTP queryExecution; private SparqlEndpoint endpoint; //private ResultSet rs; - private String json; + private String json = null; // private SparqlQueryException sendException=null; /** @@ -61,7 +62,8 @@ * @param endpoint */ public SparqlQuery(String queryString, SparqlEndpoint endpoint) { - this.queryString = queryString; + // QUALITY there seems to be a bug in ontowiki + this.queryString = queryString.replaceAll("\n", " "); this.endpoint = endpoint; } @@ -71,17 +73,18 @@ /** * Sends a SPARQL query using the Jena library. - * should return JSON String - * needs refactoring - * @return ResultSet + * main format is JSON use method getasjson + * + * @return nothing */ - @Deprecated - public ResultSet send() { + + public void send() { + wasExecuted = true; ResultSet rs; //isRunning = true; - writeToSpecialLog("***********\nNew Query:"); - writeToSpecialLog(queryString); - writeToSpecialLog(endpoint.getURL().toString()); + writeToSparqlLog("***********\nNew Query:"); + writeToSparqlLog(queryString); + writeToSparqlLog(endpoint.getURL().toString()); String service = endpoint.getURL().toString(); @@ -94,6 +97,7 @@ queryExecution.addNamedGraph(ngu); } + //TODO remove after overnext Jena release HttpQuery.urlLimit = 3*1024 ; JamonMonitorLogger.getTimeMonitor(SparqlQuery.class, "httpTime").start(); @@ -101,20 +105,17 @@ JamonMonitorLogger.getTimeMonitor(SparqlQuery.class, "httpTime").stop(); - logger.debug("query SPARQL server, retrieved: "+rs.getResultVars()); - writeToSpecialLog("query SPARQL server, retrieved: "+rs.getResultVars()); - writeToSpecialLog("Results from ResultSet"); + logger.debug("query length: "+queryString.length()+" | ENDPOINT: "+endpoint.getURL().toString()); + //writeToSparqlLog("query: "+queryString+ " | ENDPOINT: "+endpoint.getURL().toString()); + + json = SparqlQuery.getAsJSON(rs); - writeToSpecialLog(json); - rs = SparqlQuery.JSONtoResultSet(json); - while (rs.hasNext()){ - writeToSpecialLog("Result: "+rs.nextBinding()); - } + writeToSparqlLog("JSON: "+json); + isRunning = false; - rs = SparqlQuery.JSONtoResultSet(json); - return rs; + } public void stop() { @@ -143,7 +144,7 @@ // } /** - * sends a query and returns XML + * Converts Jena result set to XML. * * @return String xml */ @@ -188,12 +189,25 @@ //System.out.println("JSON " + json); return ResultSetFactory.fromJSON(bais); } + + /** + * Converts from JSON to xml format. + * + * @param json + * A JSON representation if a SPARQL query result. + * @return A Jena ResultSet. + */ + public static String JSONtoXML(String json) { + return getAsXMLString(JSONtoResultSet(json)); + } public String getJson() { + if(wasExecuted == false){this.send();} return json; } public void setJson(String json) { + this.wasExecuted=true; this.json = json; } @@ -201,7 +215,7 @@ this.isRunning=running; } - public static void writeToSpecialLog(String s){ + public static void writeToSparqlLog(String s){ try{ FileWriter fw = new FileWriter("log/sparql.txt",true); fw.write(s+"\n"); @@ -212,7 +226,13 @@ } } - /*public ResultSet getResultSet(){ - return rs; - }*/ + public ResultSet getResultSet(){ + if(getJson() == null) {return null;} + else return JSONtoResultSet(json) ; + } + + public String getXMLString(){ + if(getJson() == null) {return null;} + else return JSONtoXML(json) ; + } } Modified: trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java =================================================================== --- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2008-06-26 10:44:36 UTC (rev 983) +++ trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2008-06-26 15:21:53 UTC (rev 984) @@ -519,21 +519,39 @@ { ClientState state = getState(sessionID); //ResultSet resultSet=null; - String json=null; - if ((json=state.getQuery(queryID).getJson())!=null) return json; + String json = null; + try { + json = state.getQuery(queryID).getJson(); + }catch (Exception e) { + e.printStackTrace(); + throw new SparqlQueryException("SparqlQuery failed"+e.toString()); + } + + if(json == null) { throw new SparqlQueryException("SparqlQuery failed JSON was null");} + return json; + //if ((json=state.getQuery(queryID).getJson())!=null) return json; //else if ((resultSet=state.getQuery(queryID).getResultSet())!=null) return SparqlQuery.getAsJSON(resultSet); - else return SparqlQuery.getAsJSON(state.getQuery(queryID).send()); + //else return SparqlQuery.getAsJSON(state.getQuery(queryID).send()); } @WebMethod - public String getAsXMLString(int sessionID, int queryID) throws ClientNotKnownException + public String getAsXMLString(int sessionID, int queryID) throws ClientNotKnownException, SparqlQueryException { ClientState state = getState(sessionID); - //ResultSet resultSet=null; - String json=null; + + String xml = null; + try{ + xml = state.getQuery(queryID).getXMLString(); + }catch (Exception e) { + e.printStackTrace(); + throw new SparqlQueryException("SparqlQuery failed"+e.toString()); + } + + if(xml == null) throw new SparqlQueryException("SparqlQuery failed xml was null"); + return xml; //if ((resultSet=state.getQuery(queryID).getResultSet())!=null) return SparqlQuery.getAsXMLString(resultSet); - if ((json=state.getQuery(queryID).getJson())!=null) return SparqlQuery.getAsXMLString(SparqlQuery.JSONtoResultSet(json)); - else return SparqlQuery.getAsXMLString(state.getQuery(queryID).send()); + //if ((json=state.getQuery(queryID).getJson())!=null) return SparqlQuery.getAsXMLString(SparqlQuery.JSONtoResultSet(json)); + //else return SparqlQuery.getAsXMLString(state.getQuery(queryID).send()); } @WebMethod @@ -574,7 +592,7 @@ Cache cache=new Cache(ks.getCacheDir()); return cache.executeSparqlQuery(sparql); } - else return SparqlQuery.getAsJSON(sparql.send()); + else return sparql.getJson(); } @WebMethod Modified: trunk/src/dl-learner/org/dllearner/test/JenaQueryToResultSpeedTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/JenaQueryToResultSpeedTest.java 2008-06-26 10:44:36 UTC (rev 983) +++ trunk/src/dl-learner/org/dllearner/test/JenaQueryToResultSpeedTest.java 2008-06-26 15:21:53 UTC (rev 984) @@ -22,7 +22,6 @@ import org.dllearner.kb.sparql.SparqlEndpoint; import org.dllearner.kb.sparql.SparqlQuery; -import com.hp.hpl.jena.query.ResultSet; import com.hp.hpl.jena.query.ResultSetFormatter; @@ -54,14 +53,14 @@ SparqlEndpoint sse = SparqlEndpoint.EndpointDBpedia(); SparqlQuery sqJena = new SparqlQuery(queryString, sse); // first query is not counted - ResultSet rs = sqJena.send(); - SparqlQuery.getAsXMLString(rs); + sqJena.send(); + sqJena.getXMLString(); long now = System.currentTimeMillis(); long tmp = now; for (int i = 0; i < howOften; i++) { - rs = sqJena.send(); - SparqlQuery.getAsXMLString(rs); + sqJena.send(); + sqJena.getXMLString(); p("Jena as XML needed: " + (System.currentTimeMillis() - tmp)); tmp = System.currentTimeMillis(); @@ -83,8 +82,8 @@ for (int i = 0; i < howOften; i++) { // sqJena.getAsList(); - ResultSet rs = sqJena.send(); - ResultSetFormatter.toList(rs); + sqJena.send(); + ResultSetFormatter.toList(sqJena.getResultSet()); p("Jena as List needed: " + (System.currentTimeMillis() - tmp)); tmp = System.currentTimeMillis(); @@ -100,14 +99,14 @@ SparqlEndpoint sse = SparqlEndpoint.EndpointDBpedia(); SparqlQuery sqJena = new SparqlQuery(queryString, sse); // first query is not counted - ResultSet rs = sqJena.send(); - SparqlQuery.getAsJSON(rs); + sqJena.send(); + sqJena.getJson(); long now = System.currentTimeMillis(); long tmp = now; for (int i = 0; i < howOften; i++) { - rs = sqJena.send(); - SparqlQuery.getAsJSON(rs); + sqJena.send(); + sqJena.getJson(); p("Jena as JSON needed: " + (System.currentTimeMillis() - tmp)); tmp = System.currentTimeMillis(); @@ -123,15 +122,15 @@ SparqlEndpoint sse = SparqlEndpoint.EndpointDBpedia(); SparqlQuery sqJena = new SparqlQuery(queryString, sse); // first query is not counted - ResultSet rs = sqJena.send(); - SparqlQuery.getAsJSON(rs); + sqJena.send(); + sqJena.getJson(); long now = System.currentTimeMillis(); long tmp = now; for (int i = 0; i < howOften; i++) { // System.out.println(sqJena.getAsJSON()); - rs = sqJena.send(); - String json = SparqlQuery.getAsJSON(rs); + sqJena.send(); + String json = sqJena.getJson(); SparqlQuery.JSONtoResultSet(json); p("Jena as JSON and back needed: " + (System.currentTimeMillis() - tmp)); @@ -150,8 +149,8 @@ SparqlQuery sqJena = new SparqlQuery(queryString, sse); // SparqlQueryConventional sqConv=new SparqlQueryConventional(sse); - ResultSet rs = sqJena.send(); - System.out.println(SparqlQuery.getAsXMLString(rs)); + sqJena.send(); + System.out.println(sqJena.getJson()); // System.out.println(sqConv.getAsXMLString("")); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |