From: <lor...@us...> - 2013-10-07 07:38:22
|
Revision: 4119 http://sourceforge.net/p/dl-learner/code/4119 Author: lorenz_b Date: 2013-10-07 07:38:17 +0000 (Mon, 07 Oct 2013) Log Message: ----------- Added methods to SPARQL reasoner for testing if a property has some defined characterstics, e.g. functionality. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java trunk/components-core/src/main/java/org/dllearner/kb/SparqlEndpointKS.java trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternUsageEvaluation.java Modified: trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java 2013-10-05 09:10:00 UTC (rev 4118) +++ trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java 2013-10-07 07:38:17 UTC (rev 4119) @@ -32,6 +32,10 @@ import java.util.SortedSet; import java.util.TreeSet; +import org.aksw.jena_sparql_api.cache.core.QueryExecutionFactoryCacheEx; +import org.aksw.jena_sparql_api.core.QueryExecutionFactory; +import org.aksw.jena_sparql_api.http.QueryExecutionFactoryHttp; +import org.aksw.jena_sparql_api.model.QueryExecutionFactoryModel; import org.dllearner.core.config.BooleanEditor; import org.dllearner.core.config.ConfigOption; import org.dllearner.core.config.IntegerEditor; @@ -60,14 +64,10 @@ import com.hp.hpl.jena.query.ParameterizedSparqlString; import com.hp.hpl.jena.query.Query; import com.hp.hpl.jena.query.QueryExecution; -import com.hp.hpl.jena.query.QueryExecutionFactory; -import com.hp.hpl.jena.query.QueryFactory; import com.hp.hpl.jena.query.ResultSet; -import com.hp.hpl.jena.query.Syntax; import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.ModelFactory; import com.hp.hpl.jena.rdf.model.RDFNode; -import com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP; import com.hp.hpl.jena.sparql.engine.http.QueryExceptionHTTP; import com.hp.hpl.jena.sparql.expr.E_Regex; import com.hp.hpl.jena.sparql.expr.E_Str; @@ -98,6 +98,7 @@ protected SparqlEndpointKS ks; protected SPARQLReasoner reasoner; + private QueryExecutionFactory qef; protected List<EvaluatedAxiom> currentlyBestAxioms; protected SortedSet<Axiom> existingAxioms; @@ -191,6 +192,17 @@ @Override public void init() throws ComponentInitException { + if(ks.isRemote()){ + SparqlEndpoint endpoint = ks.getEndpoint(); + qef = new QueryExecutionFactoryHttp(endpoint.getURL().toString(), endpoint.getDefaultGraphURIs()); + if(ks.getCache() != null){ + qef = new QueryExecutionFactoryCacheEx(qef, ks.getCache()); + } +// qef = new QueryExecutionFactoryPaginated(qef, 10000); + + } else { + qef = new QueryExecutionFactoryModel(((LocalModelBasedSparqlEndpointKS)ks).getModel()); + } ks.init(); if(reasoner == null){ reasoner = new SPARQLReasoner((SparqlEndpointKS) ks); @@ -279,93 +291,61 @@ protected Model executeConstructQuery(String query) { logger.trace("Sending query\n{} ...", query); - if(ks.isRemote()){ - SparqlEndpoint endpoint = ((SparqlEndpointKS) ks).getEndpoint(); - QueryEngineHTTP queryExecution = new QueryEngineHTTP(endpoint.getURL().toString(), - query); - queryExecution.setTimeout(getRemainingRuntimeInMilliSeconds()); - queryExecution.setDefaultGraphURIs(endpoint.getDefaultGraphURIs()); - queryExecution.setNamedGraphURIs(endpoint.getNamedGraphURIs()); - try { - Model model = queryExecution.execConstruct(); - fetchedRows += model.size(); - timeout = false; - if(model.size() == 0){ - fullDataLoaded = true; - } - logger.debug("Got " + model.size() + " triples."); - return model; - } catch (QueryExceptionHTTP e) { - if(e.getCause() instanceof SocketTimeoutException){ - logger.warn("Got timeout"); - } else { - logger.error("Exception executing query", e); - } - return ModelFactory.createDefaultModel(); - } - } else { - QueryExecution queryExecution = QueryExecutionFactory.create(query, ((LocalModelBasedSparqlEndpointKS)ks).getModel()); - Model model = queryExecution.execConstruct(); + QueryExecution qe = qef.createQueryExecution(query); + try { + Model model = qe.execConstruct(); fetchedRows += model.size(); + timeout = false; if(model.size() == 0){ fullDataLoaded = true; } + logger.debug("Got " + model.size() + " triples."); return model; + } catch (QueryExceptionHTTP e) { + if(e.getCause() instanceof SocketTimeoutException){ + logger.warn("Got timeout"); + } else { + logger.error("Exception executing query", e); + } + return ModelFactory.createDefaultModel(); } } protected ResultSet executeSelectQuery(String query) { logger.trace("Sending query\n{} ...", query); - if(ks.isRemote()){ - SparqlEndpoint endpoint = ((SparqlEndpointKS) ks).getEndpoint(); - QueryEngineHTTP queryExecution = new QueryEngineHTTP(endpoint.getURL().toString(), - query); - queryExecution.setTimeout(getRemainingRuntimeInMilliSeconds()); - queryExecution.setDefaultGraphURIs(endpoint.getDefaultGraphURIs()); - queryExecution.setNamedGraphURIs(endpoint.getNamedGraphURIs()); - try { - ResultSet rs = queryExecution.execSelect(); - timeout = false; - return rs; - } catch (QueryExceptionHTTP e) { - if(e.getCause() instanceof SocketTimeoutException){ - if(timeout){ - logger.warn("Got timeout"); - throw e; - } else { - logger.trace("Got local timeout"); - } - + + QueryExecution qe = qef.createQueryExecution(query); + try { + ResultSet rs = qe.execSelect(); + timeout = false; + return rs; + } catch (QueryExceptionHTTP e) { + if(e.getCause() instanceof SocketTimeoutException){ + if(timeout){ + logger.warn("Got timeout"); + throw e; } else { - logger.error("Exception executing query", e); + logger.trace("Got local timeout"); } - return new ResultSetMem(); + + } else { + logger.error("Exception executing query", e); } - } else { - return executeSelectQuery(query, ((LocalModelBasedSparqlEndpointKS)ks).getModel()); + return new ResultSetMem(); } } protected ResultSet executeSelectQuery(String query, Model model) { logger.trace("Sending query on local model\n{} ...", query); - QueryExecution qexec = QueryExecutionFactory.create(QueryFactory.create(query, Syntax.syntaxARQ), model); - ResultSet rs = qexec.execSelect();; - + QueryExecutionFactory qef = new QueryExecutionFactoryModel(model); + QueryExecution qexec = qef.createQueryExecution(query); + ResultSet rs = qexec.execSelect(); return rs; } protected boolean executeAskQuery(String query){ logger.trace("Sending query\n{} ...", query); - if(ks.isRemote()){ - SparqlEndpoint endpoint = ((SparqlEndpointKS) ks).getEndpoint(); - QueryEngineHTTP queryExecution = new QueryEngineHTTP(endpoint.getURL().toString(), query); - queryExecution.setDefaultGraphURIs(endpoint.getDefaultGraphURIs()); - queryExecution.setNamedGraphURIs(endpoint.getNamedGraphURIs()); - return queryExecution.execAsk(); - } else { - QueryExecution queryExecution = QueryExecutionFactory.create(query, ((LocalModelBasedSparqlEndpointKS)ks).getModel()); - return queryExecution.execAsk(); - } + return qef.createQueryExecution(query).execAsk(); } protected <K, V extends Comparable<V>> List<Entry<K, V>> sortByValues(Map<K, V> map){ Modified: trunk/components-core/src/main/java/org/dllearner/kb/SparqlEndpointKS.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/SparqlEndpointKS.java 2013-10-05 09:10:00 UTC (rev 4118) +++ trunk/components-core/src/main/java/org/dllearner/kb/SparqlEndpointKS.java 2013-10-07 07:38:17 UTC (rev 4119) @@ -23,12 +23,12 @@ import java.util.LinkedList; import java.util.List; +import org.aksw.jena_sparql_api.cache.extra.CacheEx; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentInitException; import org.dllearner.core.KnowledgeSource; import org.dllearner.core.config.ConfigOption; import org.dllearner.core.config.ListStringEditor; -import org.dllearner.kb.sparql.ExtractionDBCache; import org.dllearner.kb.sparql.SPARQLTasks; import org.dllearner.kb.sparql.SparqlEndpoint; import org.springframework.beans.propertyeditors.URLEditor; @@ -45,7 +45,7 @@ public class SparqlEndpointKS implements KnowledgeSource { private SparqlEndpoint endpoint; - private ExtractionDBCache cache; + private CacheEx cache; private boolean supportsSPARQL_1_1 = false; private boolean isRemote = true; private boolean initialized = false; @@ -69,15 +69,22 @@ this(endpoint, null); } - public SparqlEndpointKS(SparqlEndpoint endpoint, ExtractionDBCache cache) { + public SparqlEndpointKS(SparqlEndpoint endpoint, CacheEx cache) { this.endpoint = endpoint; this.cache = cache; } - public ExtractionDBCache getCache() { + public CacheEx getCache() { return cache; } + /** + * @param cache the cache to set + */ + public void setCache(CacheEx cache) { + this.cache = cache; + } + @Override public void init() throws ComponentInitException { if(!initialized){ Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java 2013-10-05 09:10:00 UTC (rev 4118) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java 2013-10-07 07:38:17 UTC (rev 4119) @@ -387,6 +387,26 @@ } return hierarchy; } + + public boolean isFunctional(ObjectProperty property){ + String query = "ASK {<" + property + "> a " + OWL.FunctionalProperty.getURI() + "}"; + return qef.createQueryExecution(query).execAsk(); + } + + public boolean isInverseFunctional(ObjectProperty property){ + String query = "ASK {<" + property + "> a " + OWL.InverseFunctionalProperty.getURI() + "}"; + return qef.createQueryExecution(query).execAsk(); + } + + public boolean isAsymmetric(ObjectProperty property){ + String query = "ASK {<" + property + "> a " + OWL2.AsymmetricProperty.getURI() + "}"; + return qef.createQueryExecution(query).execAsk(); + } + + public boolean isIrreflexive(ObjectProperty property){ + String query = "ASK {<" + property + "> a " + OWL2.IrreflexiveProperty.getURI() + "}"; + return qef.createQueryExecution(query).execAsk(); + } public final ClassHierarchy prepareSubsumptionHierarchyFast() { logger.info("Preparing subsumption hierarchy ..."); Modified: trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternUsageEvaluation.java =================================================================== --- trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternUsageEvaluation.java 2013-10-05 09:10:00 UTC (rev 4118) +++ trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternUsageEvaluation.java 2013-10-07 07:38:17 UTC (rev 4119) @@ -9,7 +9,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; -import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.SocketTimeoutException; import java.net.URI; @@ -41,6 +40,14 @@ import joptsimple.OptionParser; import joptsimple.OptionSet; +import org.aksw.jena_sparql_api.cache.core.QueryExecutionFactoryCacheEx; +import org.aksw.jena_sparql_api.cache.extra.CacheCoreEx; +import org.aksw.jena_sparql_api.cache.extra.CacheCoreH2; +import org.aksw.jena_sparql_api.cache.extra.CacheEx; +import org.aksw.jena_sparql_api.cache.extra.CacheExImpl; +import org.aksw.jena_sparql_api.core.QueryExecutionFactory; +import org.aksw.jena_sparql_api.http.QueryExecutionFactoryHttp; +import org.aksw.jena_sparql_api.model.QueryExecutionFactoryModel; import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream; import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics; import org.apache.log4j.Logger; @@ -51,10 +58,7 @@ import org.dllearner.core.owl.NamedClass; import org.dllearner.kb.LocalModelBasedSparqlEndpointKS; import org.dllearner.kb.SparqlEndpointKS; -import org.dllearner.kb.sparql.ExtractionDBCache; -import org.dllearner.kb.sparql.QueryEngineHTTP; import org.dllearner.kb.sparql.SparqlEndpoint; -import org.dllearner.kb.sparql.SparqlQuery; import org.dllearner.learningproblems.AxiomScore; import org.dllearner.learningproblems.Heuristics; import org.dllearner.reasoning.SPARQLReasoner; @@ -109,7 +113,6 @@ import com.hp.hpl.jena.query.ParameterizedSparqlString; import com.hp.hpl.jena.query.Query; import com.hp.hpl.jena.query.QueryExecution; -import com.hp.hpl.jena.query.QueryExecutionFactory; import com.hp.hpl.jena.query.QueryFactory; import com.hp.hpl.jena.query.QuerySolution; import com.hp.hpl.jena.query.ResultSet; @@ -132,10 +135,12 @@ private OWLObjectRenderer axiomRenderer = new ManchesterOWLSyntaxOWLObjectRendererImpl(); private OWLDataFactory df = new OWLDataFactoryImpl(); - private ExtractionDBCache cache = new ExtractionDBCache("pattern-cache/db"); + private String cacheDirectory = "pattern-cache/db"; + private CacheEx cache; private SparqlEndpoint endpoint = SparqlEndpoint.getEndpointDBpedia(); + private QueryExecutionFactory qef; - private SparqlEndpointKS ks = new SparqlEndpointKS(endpoint, cache);//new LocalModelBasedSparqlEndpointKS(model); + private SparqlEndpointKS ks = new SparqlEndpointKS(endpoint);//new LocalModelBasedSparqlEndpointKS(model); private String ns = "http://dbpedia.org/ontology/"; private DecimalFormat format = new DecimalFormat("00.0%"); @@ -185,6 +190,25 @@ e.printStackTrace(); } + if(ks.isRemote()){ + qef = new QueryExecutionFactoryHttp(endpoint.getURL().toString(), endpoint.getDefaultGraphURIs()); + if(cacheDirectory != null){ + try { + long timeToLive = TimeUnit.DAYS.toMillis(30); + CacheCoreEx cacheBackend = CacheCoreH2.create(cacheDirectory, timeToLive, true); + cache = new CacheExImpl(cacheBackend); + qef = new QueryExecutionFactoryCacheEx(qef, cache); + ks.setCache(cache); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } else { + qef = new QueryExecutionFactoryModel(((LocalModelBasedSparqlEndpointKS)ks).getModel()); + } + initDBConnection(); samplesDir = new File("pattern-instantiations-samples"); @@ -730,7 +754,8 @@ } filterModel(fragment); logger.info("...got " + fragment.size() + " triples "); - ResultSet rs = QueryExecutionFactory.create("SELECT (COUNT(DISTINCT ?s) AS ?cnt) WHERE {?s a <" + cls.getName() + ">. }", fragment).execSelect(); + QueryExecutionFactory qef = new QueryExecutionFactoryModel(fragment); + ResultSet rs = qef.createQueryExecution("SELECT (COUNT(DISTINCT ?s) AS ?cnt) WHERE {?s a <" + cls.getName() + ">. }").execSelect(); int nrOfInstances = rs.next().getLiteral("cnt").getInt(); logger.info("with " + nrOfInstances + " instances of class " + cls.getName()); fragmentStatistics.addValue(nrOfInstances); @@ -928,14 +953,15 @@ //2. execute SPARQL query on local model query = QueryFactory.create("SELECT (COUNT(DISTINCT ?x) AS ?cnt) WHERE {" + converter.convert("?x", patternSubClass) + "}",Syntax.syntaxARQ); - int subClassCnt = QueryExecutionFactory.create(query, fragment).execSelect().next().getLiteral("cnt").getInt(); + QueryExecutionFactory qef = new QueryExecutionFactoryModel(fragment); + int subClassCnt = qef.createQueryExecution(query).execSelect().next().getLiteral("cnt").getInt(); System.out.println(subClassCnt); Set<OWLEntity> signature = patternSuperClass.getSignature(); signature.remove(patternSubClass); query = converter.asQuery("?x", df.getOWLObjectIntersectionOf(patternSubClass, patternSuperClass), signature, true); Map<OWLEntity, String> variablesMapping = converter.getVariablesMapping(); - com.hp.hpl.jena.query.ResultSet rs = QueryExecutionFactory.create(query, fragment).execSelect(); + com.hp.hpl.jena.query.ResultSet rs = qef.createQueryExecution(query).execSelect(); QuerySolution qs; while(rs.hasNext()){ qs = rs.next(); @@ -1032,7 +1058,8 @@ Query query = converter.asQuery("?x", df.getOWLObjectIntersectionOf(cls, patternSuperClass), signature); logger.info("Running query\n" + query); Map<OWLEntity, String> variablesMapping = converter.getVariablesMapping(); - com.hp.hpl.jena.query.ResultSet rs = QueryExecutionFactory.create(query, fragment).execSelect(); + QueryExecutionFactory qef = new QueryExecutionFactoryModel(fragment); + com.hp.hpl.jena.query.ResultSet rs = qef.createQueryExecution(query).execSelect(); QuerySolution qs; Set<String> resources = new HashSet<String>(); Multiset<OWLAxiom> instantiations = HashMultiset.create(); @@ -1106,14 +1133,15 @@ Query query = QueryFactory.create( "SELECT (COUNT(DISTINCT ?x) AS ?cnt) WHERE {" + converter.convert("?x", patternSubClass) + "}", Syntax.syntaxARQ); - int subClassCnt = QueryExecutionFactory.create(query, fragment).execSelect().next().getLiteral("cnt").getInt(); + QueryExecutionFactory qef = new QueryExecutionFactoryModel(fragment); + int subClassCnt = qef.createQueryExecution(query).execSelect().next().getLiteral("cnt").getInt(); Set<OWLEntity> signature = patternSuperClass.getSignature(); signature.remove(patternSubClass); query = converter.asQuery("?x", df.getOWLObjectIntersectionOf(patternSubClass, patternSuperClass), signature, true); logger.info("Running query\n" + query); Map<OWLEntity, String> variablesMapping = converter.getVariablesMapping(); - com.hp.hpl.jena.query.ResultSet rs = QueryExecutionFactory.create(query, fragment).execSelect(); + com.hp.hpl.jena.query.ResultSet rs = qef.createQueryExecution(query).execSelect(); QuerySolution qs; while (rs.hasNext()) { qs = rs.next(); @@ -1233,146 +1261,41 @@ } protected com.hp.hpl.jena.query.ResultSet executeSelectQuery(Query query) { - com.hp.hpl.jena.query.ResultSet rs = null; - if(ks.isRemote()){ - SparqlEndpoint endpoint = ((SparqlEndpointKS) ks).getEndpoint(); - ExtractionDBCache cache = ks.getCache(); - if(cache != null){ - rs = SparqlQuery.convertJSONtoResultSet(cache.executeSelectQuery(endpoint, query.toString())); - } else { - QueryEngineHTTP queryExecution = new QueryEngineHTTP(endpoint.getURL().toString(), - query); - queryExecution.setDefaultGraphURIs(endpoint.getDefaultGraphURIs()); - queryExecution.setNamedGraphURIs(endpoint.getNamedGraphURIs()); - try { - rs = queryExecution.execSelect(); - return rs; - } catch (QueryExceptionHTTP e) { - if(e.getCause() instanceof SocketTimeoutException){ - logger.warn("Got timeout"); - } else { - logger.error("Exception executing query", e); - } - } - } - try { - Thread.sleep(100); - } catch (InterruptedException e) { - e.printStackTrace(); - } - - } else { - QueryExecution queryExecution = QueryExecutionFactory.create(query, ((LocalModelBasedSparqlEndpointKS)ks).getModel()); - rs = queryExecution.execSelect(); - } + com.hp.hpl.jena.query.ResultSet rs = qef.createQueryExecution(query).execSelect(); return rs; } protected com.hp.hpl.jena.query.ResultSet executeSelectQuery(Query query, boolean cached) { - com.hp.hpl.jena.query.ResultSet rs = null; - if(ks.isRemote()){ - SparqlEndpoint endpoint = ((SparqlEndpointKS) ks).getEndpoint(); - ExtractionDBCache cache = ks.getCache(); - if(cache != null && cached){ - rs = SparqlQuery.convertJSONtoResultSet(cache.executeSelectQuery(endpoint, query.toString())); - } else { - QueryEngineHTTP queryExecution = new QueryEngineHTTP(endpoint.getURL().toString(), - query); - queryExecution.setDefaultGraphURIs(endpoint.getDefaultGraphURIs()); - queryExecution.setNamedGraphURIs(endpoint.getNamedGraphURIs()); - try { - rs = queryExecution.execSelect(); - return rs; - } catch (QueryExceptionHTTP e) { - if(e.getCause() instanceof SocketTimeoutException){ - logger.warn("Got timeout"); - } else { - logger.error("Exception executing query", e); - } - } - } - - } else { - QueryExecution queryExecution = QueryExecutionFactory.create(query, ((LocalModelBasedSparqlEndpointKS)ks).getModel()); - rs = queryExecution.execSelect(); - } + com.hp.hpl.jena.query.ResultSet rs = qef.createQueryExecution(query).execSelect(); return rs; } protected Model executeConstructQuery(Query query, long timeout) { - if(ks.isRemote()){ - SparqlEndpoint endpoint = ((SparqlEndpointKS) ks).getEndpoint(); - ExtractionDBCache cache = ks.getCache(); - Model model = null; - try { -// if(cache != null){ -// try { -// model = cache.executeConstructQuery(endpoint, query.toString()); -// } catch (UnsupportedEncodingException e) { -// e.printStackTrace(); -// } catch (SQLException e) { -// e.printStackTrace(); -// } -// } else { - QueryEngineHTTP queryExecution = new QueryEngineHTTP(endpoint.getURL().toString(), - query); - queryExecution.setDefaultGraphURIs(endpoint.getDefaultGraphURIs()); - queryExecution.setNamedGraphURIs(endpoint.getNamedGraphURIs()); - queryExecution.setTimeout(timeout, timeout); - model = queryExecution.execConstruct(); -// } - logger.debug("Got " + model.size() + " triples."); - return model; - } catch (QueryExceptionHTTP e) { - if(e.getCause() instanceof SocketTimeoutException){ - logger.warn("Got timeout"); - } else { - logger.error("Exception executing query", e); - } - return ModelFactory.createDefaultModel(); + QueryExecution qe = qef.createQueryExecution(query); + qe.setTimeout(timeout); + try { + return qe.execConstruct(); + } catch (QueryExceptionHTTP e) { + if(e.getCause() instanceof SocketTimeoutException){ + logger.warn("Got timeout"); + } else { + logger.error("Exception executing query", e); } - } else { - QueryExecution queryExecution = QueryExecutionFactory.create(query, ((LocalModelBasedSparqlEndpointKS)ks).getModel()); - Model model = queryExecution.execConstruct(); - return model; + return ModelFactory.createDefaultModel(); } } protected Model executeConstructQuery(Query query) { - if(ks.isRemote()){ - SparqlEndpoint endpoint = ((SparqlEndpointKS) ks).getEndpoint(); - ExtractionDBCache cache = ks.getCache(); - Model model = null; - try { - if(cache != null){ - try { - model = cache.executeConstructQuery(endpoint, query.toString()); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } catch (SQLException e) { - e.printStackTrace(); - } - } else { - QueryEngineHTTP queryExecution = new QueryEngineHTTP(endpoint.getURL().toString(), - query); - queryExecution.setDefaultGraphURIs(endpoint.getDefaultGraphURIs()); - queryExecution.setNamedGraphURIs(endpoint.getNamedGraphURIs()); - model = queryExecution.execConstruct(); - } - logger.debug("Got " + model.size() + " triples."); - return model; - } catch (QueryExceptionHTTP e) { - if(e.getCause() instanceof SocketTimeoutException){ - logger.warn("Got timeout"); - } else { - logger.error("Exception executing query", e); - } - return ModelFactory.createDefaultModel(); + QueryExecution qe = qef.createQueryExecution(query); + try { + return qe.execConstruct(); + } catch (QueryExceptionHTTP e) { + if(e.getCause() instanceof SocketTimeoutException){ + logger.warn("Got timeout"); + } else { + logger.error("Exception executing query", e); } - } else { - QueryExecution queryExecution = QueryExecutionFactory.create(query, ((LocalModelBasedSparqlEndpointKS)ks).getModel()); - Model model = queryExecution.execConstruct(); - return model; + return ModelFactory.createDefaultModel(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |