From: <sk...@us...> - 2008-01-29 12:03:29
|
Revision: 451 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=451&view=rev Author: sknappe Date: 2008-01-29 04:03:11 -0800 (Tue, 29 Jan 2008) Log Message: ----------- Caching of Sparql-Queries is now working Modified Paths: -------------- trunk/src/dbpedia-navigator/DLLearnerConnection.php trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java trunk/src/dl-learner/org/dllearner/kb/sparql/query/SparqlQuery.java trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/kb/sparql/query/CachedSparqlQueryTest.java Modified: trunk/src/dbpedia-navigator/DLLearnerConnection.php =================================================================== --- trunk/src/dbpedia-navigator/DLLearnerConnection.php 2008-01-29 10:11:45 UTC (rev 450) +++ trunk/src/dbpedia-navigator/DLLearnerConnection.php 2008-01-29 12:03:11 UTC (rev 451) @@ -112,6 +112,7 @@ function getSparqlResult($query) { $this->client->applyConfigEntryStringArray($this->id, $this->ksID, "defaultGraphURIs", array("http://dbpedia.org")); + $this->client->applyConfigEntryBoolean($this->id, $this->ksID, "cached", true); $queryID=$this->client->sparqlQueryThreaded($this->id,$this->ksID,$query); $running=true; $i = 1; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-01-29 10:11:45 UTC (rev 450) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-01-29 12:03:11 UTC (rev 451) @@ -46,6 +46,8 @@ import org.dllearner.core.dl.KB; import org.dllearner.kb.sparql.configuration.SparqlEndpoint; import org.dllearner.kb.sparql.configuration.SparqlQueryType; +import org.dllearner.kb.sparql.query.Cache; +import org.dllearner.kb.sparql.query.CachedSparqlQueryTest; import org.dllearner.kb.sparql.query.SparqlQuery; import org.dllearner.parser.KBParser; import org.dllearner.reasoning.DIGConverter; @@ -101,6 +103,8 @@ // received ontology as KB, the internal format private KB kb; + + private boolean cached=true; public static String getName() { return "SPARQL Endpoint"; @@ -158,7 +162,8 @@ "role to learn Domain/Range from")); options.add(new StringConfigOption("blankNodeIdentifier", "used to identify blanknodes in Tripels")); - + options.add(new BooleanConfigOption("cached", + "use Cache")); options.add(new StringTupleListConfigOption("example", "example")); options.add(new StringTupleListConfigOption("replacePredicate", "rule for replacing predicates")); @@ -217,6 +222,8 @@ dumpToFile = (Boolean) entry.getValue(); } else if (option.equals("useLits")) { useLits = (Boolean) entry.getValue(); + } else if (option.equals("cached")) { + cached = (Boolean) entry.getValue(); } else if (option.equals("getAllSuperClasses")) { getAllSuperClasses = (Boolean) entry.getValue(); /* @@ -391,7 +398,8 @@ public SparqlQuery sparqlQuery(String query) { this.endpoint = new SparqlEndpoint(url, defaultGraphURIs, namedGraphURIs); - return new SparqlQuery(query, endpoint); + if (cached) return new CachedSparqlQueryTest(endpoint, new Cache("cache"),""+query.hashCode(),query); + else return new SparqlQuery(query, endpoint); } /*public static void main(String[] args) throws MalformedURLException { Added: trunk/src/dl-learner/org/dllearner/kb/sparql/query/CachedSparqlQueryTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/query/CachedSparqlQueryTest.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/query/CachedSparqlQueryTest.java 2008-01-29 12:03:11 UTC (rev 451) @@ -0,0 +1,30 @@ +package org.dllearner.kb.sparql.query; + +import org.dllearner.kb.sparql.configuration.SparqlEndpoint; + +public class CachedSparqlQueryTest extends SparqlQuery { + + private Cache cache; + private String key; + + public CachedSparqlQueryTest(SparqlEndpoint endpoint, Cache cache, String key, + String queryString) { + super(queryString,endpoint); + this.cache = cache; + this.key = key; + } + + public void send() + { + String FromCache = cache.get(key, queryString); + + // if not in cache get it from EndPoint + if (FromCache == null) { + super.send(); + this.cache.put(key, queryString, getAsJSON()); + } else { + this.rs=SparqlQuery.JSONtoResultSet(FromCache); + System.out.println("FROM 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-29 10:11:45 UTC (rev 450) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/query/SparqlQuery.java 2008-01-29 12:03:11 UTC (rev 451) @@ -30,7 +30,6 @@ import org.dllearner.kb.sparql.configuration.SparqlEndpoint; import org.dllearner.utilities.StringTuple; -import com.hp.hpl.jena.query.QueryExecution; import com.hp.hpl.jena.query.ResultSet; import com.hp.hpl.jena.query.ResultSetFactory; import com.hp.hpl.jena.query.ResultSetFormatter; @@ -47,11 +46,11 @@ public class SparqlQuery { private boolean print_flag = false; - private boolean isRunning = false; - private String queryString; - private QueryExecution queryExecution; - SparqlEndpoint endpoint; - private ResultSet rs=null; + protected boolean isRunning = false; + protected String queryString; + protected QueryEngineHTTP queryExecution; + protected SparqlEndpoint endpoint; + protected ResultSet rs=null; /** * simplest contructor, works only with some endpoints, @@ -74,19 +73,21 @@ this.endpoint = endpoint; } + public void setIsRunning(boolean running){ + this.isRunning=running; + } /** * method used for sending over Jena * @return jena ResultSet */ public void send() { - this.isRunning=true; p(queryString); String service = endpoint.getURL().toString(); p(endpoint.getURL().toString()); // Jena access to SPARQL endpoint - QueryEngineHTTP queryExecution=new QueryEngineHTTP(service,queryString); + queryExecution=new QueryEngineHTTP(service,queryString); for (String dgu : endpoint.getDefaultGraphURIs()){ queryExecution.addDefaultGraph(dgu); } @@ -99,7 +100,6 @@ rs = queryExecution.execSelect(); p(rs.getResultVars().toString()); //p(ResultSetFormatter.asXMLString(rs)); - this.isRunning=false; } public void stop() { Modified: trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java =================================================================== --- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2008-01-29 10:11:45 UTC (rev 450) +++ trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2008-01-29 12:03:11 UTC (rev 451) @@ -47,6 +47,7 @@ import org.dllearner.core.dl.Individual; import org.dllearner.kb.OWLFile; import org.dllearner.kb.sparql.SparqlKnowledgeSource; +import org.dllearner.kb.sparql.query.SparqlQuery; import org.dllearner.learningproblems.PosNegDefinitionLP; import org.dllearner.learningproblems.PosNegInclusionLP; import org.dllearner.learningproblems.PosOnlyDefinitionLP; @@ -517,7 +518,10 @@ Thread sparqlThread = new Thread() { @Override public void run() { - state.getQuery(id).send(); + SparqlQuery query=state.getQuery(id); + query.setIsRunning(true); + query.send(); + query.setIsRunning(false); } }; sparqlThread.start(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |