From: <lor...@us...> - 2013-06-13 13:34:03
|
Revision: 3995 http://sourceforge.net/p/dl-learner/code/3995 Author: lorenz_b Date: 2013-06-13 13:34:00 +0000 (Thu, 13 Jun 2013) Log Message: ----------- Cleaned up pom. Optimzed cache usage. Modified Paths: -------------- trunk/components-core/pom.xml trunk/components-core/src/main/java/org/dllearner/kb/OWLAPIOntology.java trunk/components-core/src/main/java/org/dllearner/kb/sparql/ConciseBoundedDescriptionGeneratorImpl.java trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java trunk/components-core/src/main/java/org/dllearner/utilities/owl/SimpleOntologyToByteConverter.java Modified: trunk/components-core/pom.xml =================================================================== --- trunk/components-core/pom.xml 2013-06-13 10:28:10 UTC (rev 3994) +++ trunk/components-core/pom.xml 2013-06-13 13:34:00 UTC (rev 3995) @@ -102,37 +102,8 @@ <dependency> <groupId>net.sourceforge.owlapi</groupId> <artifactId>owlapi-distribution</artifactId> - <type>pom</type> + <version>3.4.4</version> </dependency> - <dependency> - <groupId>net.sourceforge.owlapi</groupId> - <artifactId>owlapi-dlsyntax</artifactId> - <version>3.3</version> - </dependency> - <dependency> - <groupId>net.sourceforge.owlapi</groupId> - <artifactId>owlapi-functional</artifactId> - <version>3.3</version> - </dependency> - - <dependency> - <groupId>net.sourceforge.owlapi</groupId> - <artifactId>owlapi-reasoner</artifactId> -</dependency> -<dependency> - <groupId>net.sourceforge.owlapi</groupId> - <artifactId>owlapi-debugging</artifactId> - <version>3.3</version> -</dependency> -<dependency> - <groupId>net.sourceforge.owlapi</groupId> - <artifactId>owlapi-modularity</artifactId> - <version>3.3</version> -</dependency> -<dependency> - <groupId>net.sourceforge.owlapi</groupId> - <artifactId>owlapi-util</artifactId> - </dependency> <!-- THIS IS FROM THE UNIBAS REPO --> <dependency> Modified: trunk/components-core/src/main/java/org/dllearner/kb/OWLAPIOntology.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/OWLAPIOntology.java 2013-06-13 10:28:10 UTC (rev 3994) +++ trunk/components-core/src/main/java/org/dllearner/kb/OWLAPIOntology.java 2013-06-13 13:34:00 UTC (rev 3995) @@ -21,6 +21,7 @@ import java.io.File; import java.net.URI; +import java.util.Collections; import org.dllearner.core.AbstractKnowledgeSource; import org.dllearner.core.OntologyFormat; @@ -39,10 +40,12 @@ private byte[] ontologyBytes; private OntologyToByteConverter converter = new SimpleOntologyToByteConverter(); + private OWLOntology ontology; - public OWLAPIOntology(OWLOntology onto) { - ontologyBytes = converter.convert(onto); + public OWLAPIOntology(OWLOntology ontology) { + this.ontology = ontology; +// ontologyBytes = converter.convert(ontology); } public static String getName() { @@ -51,7 +54,20 @@ @Override public OWLOntology createOWLOntology(OWLOntologyManager manager) { - return converter.convert(ontologyBytes, manager); + OWLOntology copy = null; + try { + IRI iri; + if(ontology.getOntologyID().isAnonymous()){ + iri = IRI.generateDocumentIRI(); + } else { + iri = ontology.getOntologyID().getOntologyIRI(); + } + copy = manager.createOntology(iri, Collections.singleton(ontology)); + } catch (OWLOntologyCreationException e) { + e.printStackTrace(); + } +// return converter.convert(ontologyBytes, manager); + return copy; } @Override Modified: trunk/components-core/src/main/java/org/dllearner/kb/sparql/ConciseBoundedDescriptionGeneratorImpl.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/sparql/ConciseBoundedDescriptionGeneratorImpl.java 2013-06-13 10:28:10 UTC (rev 3994) +++ trunk/components-core/src/main/java/org/dllearner/kb/sparql/ConciseBoundedDescriptionGeneratorImpl.java 2013-06-13 13:34:00 UTC (rev 3995) @@ -11,7 +11,6 @@ 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.aksw.jena_sparql_api.pagination.core.QueryExecutionFactoryPaginated; import org.apache.log4j.Level; @@ -19,6 +18,7 @@ import com.hp.hpl.jena.query.QueryExecution; import com.hp.hpl.jena.rdf.model.Model; +//import org.aksw.jena_sparql_api.http.QueryExecutionFactoryHttp; //import com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP; public class ConciseBoundedDescriptionGeneratorImpl implements ConciseBoundedDescriptionGenerator{ @@ -27,34 +27,42 @@ private int chunkSize = 0; - private ExtractionDBCache cache; - private SparqlEndpoint endpoint; private Model baseModel; private List<String> namespaces; + private static final int MAX_RECURSION_DEPTH_DEFAULT = 1; private int maxRecursionDepth = 1; - private String cacheDir; + private QueryExecutionFactory qef; public ConciseBoundedDescriptionGeneratorImpl(SparqlEndpoint endpoint, ExtractionDBCache cache) { - this.endpoint = endpoint; - this.cache = cache; + this(endpoint, cache, MAX_RECURSION_DEPTH_DEFAULT); } public ConciseBoundedDescriptionGeneratorImpl(SparqlEndpoint endpoint, ExtractionDBCache cache, int maxRecursionDepth) { - this.endpoint = endpoint; - this.cache = cache; - this.maxRecursionDepth = maxRecursionDepth; + this(endpoint, cache.getCacheDirectory(), maxRecursionDepth); } public ConciseBoundedDescriptionGeneratorImpl(SparqlEndpoint endpoint, String cacheDir, int maxRecursionDepth) { - this.endpoint = endpoint; - this.cacheDir = cacheDir; this.maxRecursionDepth = maxRecursionDepth; + + qef = new QueryExecutionFactoryHttp(endpoint.getURL().toString(), endpoint.getDefaultGraphURIs()); + if(cacheDir != null){ + try { + long timeToLive = TimeUnit.DAYS.toMillis(30); + CacheCoreEx cacheBackend = CacheCoreH2.create(cacheDir, timeToLive, true); + CacheEx cacheFrontend = new CacheExImpl(cacheBackend); + qef = new QueryExecutionFactoryCacheEx(qef, cacheFrontend); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + qef = new QueryExecutionFactoryPaginated(qef, 10000); } public ConciseBoundedDescriptionGeneratorImpl(SparqlEndpoint endpoint, String cacheDir) { - this.endpoint = endpoint; - this.cacheDir = cacheDir; + this(endpoint, cacheDir, MAX_RECURSION_DEPTH_DEFAULT); } public ConciseBoundedDescriptionGeneratorImpl(SparqlEndpoint endpoint) { @@ -63,6 +71,8 @@ public ConciseBoundedDescriptionGeneratorImpl(Model model) { this.baseModel = model; + + qef = new QueryExecutionFactoryModel(baseModel); } public Model getConciseBoundedDescription(String resourceURI){ @@ -79,25 +89,6 @@ private Model getModelChunked(String resource, int depth){ String query = makeConstructQueryOptional(resource, chunkSize, 0, depth); - QueryExecutionFactory qef; - if(endpoint != null){ - qef = new QueryExecutionFactoryHttp(endpoint.getURL().toString(), endpoint.getDefaultGraphURIs()); - if(cacheDir != null){ - try { - long timeToLive = TimeUnit.DAYS.toMillis(30); - CacheCoreEx cacheBackend = CacheCoreH2.create(cacheDir, timeToLive, true); - CacheEx cacheFrontend = new CacheExImpl(cacheBackend); - qef = new QueryExecutionFactoryCacheEx(qef, cacheFrontend); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } catch (SQLException e) { - e.printStackTrace(); - } - } - qef = new QueryExecutionFactoryPaginated(qef, 10000); - } else { - qef = new QueryExecutionFactoryModel(baseModel); - } QueryExecution qe = qef.createQueryExecution(query); Model model = qe.execConstruct(); return model; Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java 2013-06-13 10:28:10 UTC (rev 3994) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java 2013-06-13 13:34:00 UTC (rev 3995) @@ -19,7 +19,6 @@ package org.dllearner.reasoning; -import java.net.SocketTimeoutException; import java.net.URL; import java.sql.SQLException; import java.util.ArrayList; @@ -41,6 +40,7 @@ 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.aksw.jena_sparql_api.pagination.core.QueryExecutionFactoryPaginated; import org.dllearner.core.ComponentAnn; import org.dllearner.core.IndividualReasoner; @@ -81,9 +81,6 @@ import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.ModelFactory; import com.hp.hpl.jena.rdf.model.Resource; -import com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP; -import com.hp.hpl.jena.sparql.engine.http.QueryExceptionHTTP; -import com.hp.hpl.jena.sparql.resultset.ResultSetMem; import com.hp.hpl.jena.vocabulary.OWL; import com.hp.hpl.jena.vocabulary.OWL2; import com.hp.hpl.jena.vocabulary.RDF; @@ -98,6 +95,7 @@ private boolean useCache = true; private ExtractionDBCache cache; + private QueryExecutionFactory qef; private SparqlEndpointKS ks; private ClassHierarchy hierarchy; @@ -128,6 +126,27 @@ classPopularityMap = new HashMap<NamedClass, Integer>(); objectPropertyPopularityMap = new HashMap<ObjectProperty, Integer>(); + + if(ks.isRemote()){ + SparqlEndpoint endpoint = ks.getEndpoint(); + qef = new QueryExecutionFactoryHttp(endpoint.getURL().toString(), endpoint.getDefaultGraphURIs()); + if(cache != null){ + try { + long timeToLive = TimeUnit.DAYS.toMillis(30); + CacheCoreEx cacheBackend = CacheCoreH2.create(cache.getCacheDirectory(), timeToLive, true); + CacheEx cacheFrontend = new CacheExImpl(cacheBackend); + qef = new QueryExecutionFactoryCacheEx(qef, cacheFrontend); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + qef = new QueryExecutionFactoryPaginated(qef, 10000); + + } else { + qef = new QueryExecutionFactoryModel(((LocalModelBasedSparqlEndpointKS)ks).getModel()); + } } public SPARQLReasoner(OntModel model) { @@ -1362,58 +1381,25 @@ private ResultSet executeSelectQuery(String query){ logger.debug("Sending query \n {}", query); - ResultSet rs = null; - if(ks.isRemote()){ - SparqlEndpoint endpoint = ks.getEndpoint(); - QueryExecutionFactory qef = new QueryExecutionFactoryHttp(endpoint.getURL().toString(), endpoint.getDefaultGraphURIs()); - if(cache != null){ - try { - long timeToLive = TimeUnit.DAYS.toMillis(30); - CacheCoreEx cacheBackend = CacheCoreH2.create(cache.getCacheDirectory(), timeToLive, true); - CacheEx cacheFrontend = new CacheExImpl(cacheBackend); - qef = new QueryExecutionFactoryCacheEx(qef, cacheFrontend); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } catch (SQLException e) { - e.printStackTrace(); - } - } - qef = new QueryExecutionFactoryPaginated(qef, 10000); - QueryExecution qe = qef.createQueryExecution(query); - rs = qe.execSelect(); - } else { - QueryExecution qExec = com.hp.hpl.jena.query.QueryExecutionFactory.create(query, ((LocalModelBasedSparqlEndpointKS)ks).getModel()); - rs = qExec.execSelect(); - } + QueryExecution qe = qef.createQueryExecution(query); + ResultSet rs = qe.execSelect(); return rs; } private ResultSet executeSelectQuery(String query, long timeout){ logger.debug("Sending query \n {}", query); - ResultSet rs = null; - if(ks.isRemote()){ - SparqlEndpoint endpoint = ((SparqlEndpointKS) ks).getEndpoint(); - QueryEngineHTTP queryExecution = new QueryEngineHTTP(endpoint.getURL().toString(), - query); - queryExecution.setTimeout(timeout); - queryExecution.setDefaultGraphURIs(endpoint.getDefaultGraphURIs()); - queryExecution.setNamedGraphURIs(endpoint.getNamedGraphURIs()); - try { - rs = queryExecution.execSelect(); - } catch (QueryExceptionHTTP e) { - if(e.getCause() instanceof SocketTimeoutException){ - logger.warn("Got timeout"); - } else { - logger.error("Exception executing query", e); - } - rs = new ResultSetMem(); - } - } else { - QueryExecution qExec = com.hp.hpl.jena.query.QueryExecutionFactory.create(query, ((LocalModelBasedSparqlEndpointKS)ks).getModel()); - rs = qExec.execSelect(); - } + QueryExecution qe = qef.createQueryExecution(query); + qe.setTimeout(timeout); + ResultSet rs = qe.execSelect(); return rs; } + + private boolean executeAskQuery(String query){ + logger.debug("Sending query \n {}", query); + QueryExecution qe = qef.createQueryExecution(query); + boolean ret = qe.execAsk(); + return ret; + } /** * Returns TRUE if the class hierarchy was computed before. @@ -1431,27 +1417,6 @@ this.useCache = useCache; } - private boolean executeAskQuery(String query){ - boolean ret; - if(ks.isRemote()){ - QueryEngineHTTP queryExecution = new QueryEngineHTTP(ks.getEndpoint().getURL().toString(), query); - for (String dgu : ks.getEndpoint().getDefaultGraphURIs()) { - queryExecution.addDefaultGraph(dgu); - } - for (String ngu : ks.getEndpoint().getNamedGraphURIs()) { - queryExecution.addNamedGraph(ngu); - } - ret = queryExecution.execAsk(); - - } else { - QueryExecution qExec = com.hp.hpl.jena.query.QueryExecutionFactory.create(query, ((LocalModelBasedSparqlEndpointKS)ks).getModel()); - ret = qExec.execAsk(); - } - - return ret; - } - - public static void main(String[] args) throws Exception{ // QueryEngineHTTP e = new QueryEngineHTTP("http://bibleontology.com/sparql/index.jsp", // "SELECT DISTINCT ?type WHERE {?s a ?type) LIMIT 10"); Modified: trunk/components-core/src/main/java/org/dllearner/utilities/owl/SimpleOntologyToByteConverter.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/utilities/owl/SimpleOntologyToByteConverter.java 2013-06-13 10:28:10 UTC (rev 3994) +++ trunk/components-core/src/main/java/org/dllearner/utilities/owl/SimpleOntologyToByteConverter.java 2013-06-13 13:34:00 UTC (rev 3995) @@ -1,5 +1,8 @@ package org.dllearner.utilities.owl; +import org.coode.owlapi.turtle.TurtleOntologyFormat; +import org.semanticweb.owlapi.io.RDFXMLOntologyFormat; +import org.semanticweb.owlapi.model.OWLNamedIndividual; import org.semanticweb.owlapi.model.OWLOntology; import org.semanticweb.owlapi.model.OWLOntologyCreationException; import org.semanticweb.owlapi.model.OWLOntologyManager; @@ -7,7 +10,9 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.io.FileOutputStream; import java.io.IOException; +import java.util.Set; /** * Created by IntelliJ IDEA. @@ -26,7 +31,7 @@ OWLOntologyManager manager = ontology.getOWLOntologyManager(); try { - manager.saveOntology(ontology,baos); + manager.saveOntology(ontology, baos); baos.close(); } catch (OWLOntologyStorageException e) { throw new RuntimeException(e); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |