From: <sk...@us...> - 2008-01-28 17:10:14
|
Revision: 441 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=441&view=rev Author: sknappe Date: 2008-01-28 09:10:02 -0800 (Mon, 28 Jan 2008) Log Message: ----------- changed the SparqlQuery mechanism Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java trunk/src/dl-learner/org/dllearner/kb/sparql/query/CachedSparqlQuery.java trunk/src/dl-learner/org/dllearner/kb/sparql/query/SparqlQuery.java trunk/src/dl-learner/org/dllearner/server/ClientState.java trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-01-28 16:05:10 UTC (rev 440) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-01-28 17:10:02 UTC (rev 441) @@ -64,7 +64,6 @@ */ public class SparqlKnowledgeSource extends KnowledgeSource { - private Map<Integer, SparqlQuery> queryIDs = new HashMap<Integer, SparqlQuery>(); private Map<Integer, String[][]> queryResult = new HashMap<Integer, String[][]>(); // ConfigOptions public URL url; @@ -392,34 +391,12 @@ return ontArray; } - public int sparqlQuery(String query) { + public SparqlQuery sparqlQuery(String query) { this.endpoint = new SparqlEndpoint(url, defaultGraphURIs, namedGraphURIs); - return this.generateQueryID(new SparqlQuery(query, endpoint)); + return new SparqlQuery(query, endpoint); } - public void startSparqlQuery(int queryID) { - queryResult.put(queryID, queryIDs.get(queryID).getAsStringArray()); - } - - public SparqlQuery getSparqlQuery(int queryID) { - return queryIDs.get(queryID); - } - - public String[][] getSparqlResult(int queryID) { - return queryResult.get(queryID); - } - - private int generateQueryID(SparqlQuery query) { - int id; - Random rand = new Random(); - do { - id = rand.nextInt(); - } while (queryIDs.keySet().contains(id)); - queryIDs.put(id, query); - return id; - } - public static void main(String[] args) throws MalformedURLException { String query = "SELECT ?pred ?obj\n" + "WHERE {<http://dbpedia.org/resource/Leipzig> ?pred ?obj}"; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/query/CachedSparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/query/CachedSparqlQuery.java 2008-01-28 16:05:10 UTC (rev 440) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/query/CachedSparqlQuery.java 2008-01-28 17:10:02 UTC (rev 441) @@ -77,10 +77,6 @@ return SparqlQuery.JSONtoResultSet(getAsJSON()); } - public ResultSet getAsResultSet2(){ - return this.sparqlQuery.send(); - } - /** * sends a query and returns JSON using cache * 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-28 16:05:10 UTC (rev 440) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/query/SparqlQuery.java 2008-01-28 17:10:02 UTC (rev 441) @@ -51,11 +51,8 @@ private String queryString; private QueryExecution queryExecution; SparqlEndpoint endpoint; + private ResultSet rs=null; - public void setQueryExecutionRunning(boolean isRunning){ - this.isRunning=isRunning; - } - /** * simplest contructor, works only with some endpoints, * not with DBpedia @@ -82,7 +79,8 @@ * method used for sending over Jena * @return jena ResultSet */ - protected ResultSet send() { + public void send() { + this.isRunning=true; p(queryString); String service = endpoint.getURL().toString(); @@ -98,10 +96,10 @@ p("query SPARQL server"); - ResultSet rs = queryExecution.execSelect(); + rs = queryExecution.execSelect(); p(rs.getResultVars().toString()); //p(ResultSetFormatter.asXMLString(rs)); - return rs; + this.isRunning=false; } public void stop() { @@ -119,8 +117,8 @@ */ @SuppressWarnings({"unchecked"}) public String[][] getAsStringArray(){ + if (rs==null) this.send(); System.out.println("Starting Query"); - ResultSet rs=send(); List<ResultBinding> l = ResultSetFormatter.toList(rs); List<String> resultVars=rs.getResultVars(); String[][] array=new String[l.size()][resultVars.size()]; @@ -147,7 +145,7 @@ * @return String xml */ public String getAsXMLString() { - ResultSet rs = send(); + if (rs==null) this.send(); return ResultSetFormatter.asXMLString(rs); } @@ -159,7 +157,7 @@ */ @SuppressWarnings({"unchecked"}) public List<ResultBinding> getAsList() { - ResultSet rs = send(); + if (rs==null) this.send(); return ResultSetFormatter.toList(rs); } @@ -174,7 +172,6 @@ @SuppressWarnings({"unchecked"}) @Deprecated public Vector<String> getAsVector(String varName) { - ResultSet rs = send(); Vector<String> vret = new Vector<String>(); List<ResultBinding> l = ResultSetFormatter.toList(rs); for (ResultBinding resultBinding : l) { @@ -196,8 +193,6 @@ @Deprecated public Vector<StringTuple> getAsVectorOfTupels(String varName1, String varName2) { - ResultSet rs = send(); - Vector<StringTuple> vret = new Vector<StringTuple>(); List<ResultBinding> l = ResultSetFormatter.toList(rs); //System.out.println(l); @@ -240,7 +235,7 @@ * @return a String representation of the Resultset as JSON */ public String getAsJSON(){ - ResultSet rs=send(); + if (rs==null) this.send(); ByteArrayOutputStream baos=new ByteArrayOutputStream(); ResultSetFormatter.outputAsJSON(baos, rs); return baos.toString(); Modified: trunk/src/dl-learner/org/dllearner/server/ClientState.java =================================================================== --- trunk/src/dl-learner/org/dllearner/server/ClientState.java 2008-01-28 16:05:10 UTC (rev 440) +++ trunk/src/dl-learner/org/dllearner/server/ClientState.java 2008-01-28 17:10:02 UTC (rev 441) @@ -34,6 +34,7 @@ import org.dllearner.core.ReasoningService; import org.dllearner.kb.OWLFile; import org.dllearner.kb.sparql.SparqlKnowledgeSource; +import org.dllearner.kb.sparql.query.SparqlQuery; /** * Stores the state of a DL-Learner client session. @@ -50,6 +51,8 @@ private Set<KnowledgeSource> knowledgeSources = new HashSet<KnowledgeSource>(); + private Map<Integer, SparqlQuery> queryIDs = new HashMap<Integer, SparqlQuery>(); + private LearningProblem learningProblem; private ReasonerComponent reasonerComponent; @@ -70,6 +73,24 @@ return id; } + private int generateQueryID(SparqlQuery query) { + int id; + Random rand = new Random(); + do { + id = rand.nextInt(); + } while (queryIDs.keySet().contains(id)); + queryIDs.put(id, query); + return id; + } + + public int addQuery(SparqlQuery query){ + return this.generateQueryID(query); + } + + public SparqlQuery getQuery(int id){ + return queryIDs.get(id); + } + /** * @return the isAlgorithmRunning */ Modified: trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java =================================================================== --- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2008-01-28 16:05:10 UTC (rev 440) +++ trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2008-01-28 17:10:02 UTC (rev 441) @@ -488,45 +488,55 @@ //////////////////////////////////////// @WebMethod - public String[][] sparqlQuery(int sessionID, int componentID, int queryID) throws ClientNotKnownException + public String[][] getAsStringArray(int sessionID, int queryID) throws ClientNotKnownException { ClientState state = getState(sessionID); - Component component = state.getComponent(componentID); - return ((SparqlKnowledgeSource)component).getSparqlResult(queryID); + return state.getQuery(queryID).getAsStringArray(); } @WebMethod + public String getAsJSON(int sessionID, int queryID) throws ClientNotKnownException + { + ClientState state = getState(sessionID); + return state.getQuery(queryID).getAsJSON(); + } + + @WebMethod + public String getAsXMLString(int sessionID, int queryID) throws ClientNotKnownException + { + ClientState state = getState(sessionID); + return state.getQuery(queryID).getAsXMLString(); + } + + @WebMethod public int sparqlQueryThreaded(int sessionID, int componentID, final String query) throws ClientNotKnownException { final ClientState state = getState(sessionID); final Component component = state.getComponent(componentID); - final int ID=((SparqlKnowledgeSource)component).sparqlQuery(query); + final int id=state.addQuery(((SparqlKnowledgeSource)component).sparqlQuery(query)); Thread sparqlThread = new Thread() { @Override public void run() { - ((SparqlKnowledgeSource)component).getSparqlQuery(ID).setQueryExecutionRunning(true); - ((SparqlKnowledgeSource)component).startSparqlQuery(ID); - ((SparqlKnowledgeSource)component).getSparqlQuery(ID).setQueryExecutionRunning(false); + state.getQuery(id).send(); } }; sparqlThread.start(); - return ID; + return id; } @WebMethod - public boolean isSparqlQueryRunning(int sessionID, int componentID, int queryID) throws ClientNotKnownException + public boolean isSparqlQueryRunning(int sessionID, int queryID) throws ClientNotKnownException { ClientState state = getState(sessionID); - Component component = state.getComponent(componentID); - return ((SparqlKnowledgeSource)component).getSparqlQuery(queryID).isRunning(); + return state.getQuery(queryID).isRunning(); } @WebMethod - public void stopSparqlThread(int sessionID, int componentID, int queryID) throws ClientNotKnownException + public void stopSparqlThread(int sessionID, int queryID) throws ClientNotKnownException { ClientState state = getState(sessionID); - Component component = state.getComponent(componentID); - ((SparqlKnowledgeSource)component).getSparqlQuery(queryID).stop(); + + state.getQuery(queryID).stop(); } @WebMethod This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |