From: <sha...@us...> - 2012-03-15 03:17:19
|
Revision: 3612 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3612&view=rev Author: shadowtm Date: 2012-03-15 03:17:12 +0000 (Thu, 15 Mar 2012) Log Message: ----------- Updated SparqlKnowledgeSource and SparqlSimpleExtractor to implement the OWLOntologyKnowledgeSource interface in clean up the code within the reasoners. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/kb/sparql/SparqlKnowledgeSource.java trunk/components-core/src/main/java/org/dllearner/kb/sparql/SparqlSimpleExtractor.java trunk/components-core/src/main/java/org/dllearner/reasoning/OWLAPIReasoner.java trunk/components-core/src/main/java/org/dllearner/reasoning/PelletReasoner.java trunk/components-core/src/main/java/org/dllearner/reasoning/ProtegeReasoner.java trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/FuzzyOWLAPIReasoner.java Added Paths: ----------- trunk/components-core/src/test/java/org/dllearner/kb/sparql/ trunk/components-core/src/test/java/org/dllearner/kb/sparql/SparqlKnowledgeSourceTest.java Modified: trunk/components-core/src/main/java/org/dllearner/kb/sparql/SparqlKnowledgeSource.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2012-03-15 02:34:07 UTC (rev 3611) +++ trunk/components-core/src/main/java/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2012-03-15 03:17:12 UTC (rev 3612) @@ -47,6 +47,7 @@ import org.dllearner.core.options.StringTupleListConfigOption; import org.dllearner.core.options.URLConfigOption; import org.dllearner.core.owl.KB; +import org.dllearner.kb.OWLOntologyKnowledgeSource; import org.dllearner.kb.aquisitors.SparqlTupleAquisitor; import org.dllearner.kb.aquisitors.SparqlTupleAquisitorImproved; import org.dllearner.kb.aquisitors.TupleAquisitor; @@ -60,11 +61,14 @@ import org.dllearner.utilities.Files; import org.dllearner.utilities.JamonMonitorLogger; import org.dllearner.utilities.datastructures.StringTuple; +import org.dllearner.utilities.owl.OntologyToByteConverter; +import org.dllearner.utilities.owl.SimpleOntologyToByteConverter; import org.dllearner.utilities.statistics.SimpleClock; import org.semanticweb.owlapi.model.OWLOntology; import com.jamonapi.Monitor; import com.jamonapi.MonitorFactory; +import org.semanticweb.owlapi.model.OWLOntologyManager; /** * Represents the SPARQL Endpoint Component. @@ -74,12 +78,14 @@ * @author Sebastian Hellmann */ @ComponentAnn(name = "SPARQL endpoint fragment", shortName = "sparqlfrag", version = 0.5) -public class SparqlKnowledgeSource extends AbstractKnowledgeSource { +public class SparqlKnowledgeSource extends AbstractKnowledgeSource implements OWLOntologyKnowledgeSource{ private ProgressMonitor mon; private static final boolean debugExitAfterExtraction = false; // switches + private byte[] ontologyBytes; + private OntologyToByteConverter converter = new SimpleOntologyToByteConverter(); // private SparqlKnowledgeSourceConfigurator configurator; @@ -107,7 +113,6 @@ private URL ontologyFragmentURL; - private OWLOntology fragment; private Manipulator manipulator = null; @@ -337,9 +342,10 @@ }*/ extractionTime.stop(); - - fragment = m.getOWLAPIOntologyForNodes(seedNodes, saveExtractedFragment); - + // Do this so that we can support the OWLOntologyKnowledgeSource + // and can be thread safe. + OWLOntology fragment = m.getOWLAPIOntologyForNodes(seedNodes, saveExtractedFragment); + ontologyBytes = getConverter().convert(fragment); logger.info("Finished collecting fragment. needed "+extractionTime.getLastValue()+" ms"); @@ -362,8 +368,13 @@ System.exit(0); } } - - public List<Node> extractParallel(){ + + @Override + public OWLOntology createOWLOntology(OWLOntologyManager manager) { + return getConverter().convert(ontologyBytes, manager); + } + + public List<Node> extractParallel(){ return null; } @@ -537,10 +548,6 @@ return ontologyFragmentURL; } - public OWLOntology getOWLAPIOntology() { - return fragment; - } - public boolean isUseCache() { return useCache; } @@ -733,6 +740,39 @@ this.cacheDir = cacheDir; } - + /** + * Get the OntologyToByteConverter associated with this object. + * + * @return The OntologyToByteConverter associated with this object. + */ + public OntologyToByteConverter getConverter() { + return converter; + } + /** + * Set the OntologyToByteConverter associated with this object. + * + * @param converter the OntologyToByteConverter to associate with this object. + */ + public void setConverter(OntologyToByteConverter converter) { + this.converter = converter; + } + + /** + * Accessor for getting the Ontology Bytes + * + * @return Get the underlying ontology bytes. + */ + byte[] getOntologyBytes() { + return ontologyBytes; + } + + /** + * Set the ontology bytes. + * + * @param ontologyBytes The byte array representation of the fragment. + */ + void setOntologyBytes(byte[] ontologyBytes) { + this.ontologyBytes = ontologyBytes; + } } Modified: trunk/components-core/src/main/java/org/dllearner/kb/sparql/SparqlSimpleExtractor.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/sparql/SparqlSimpleExtractor.java 2012-03-15 02:34:07 UTC (rev 3611) +++ trunk/components-core/src/main/java/org/dllearner/kb/sparql/SparqlSimpleExtractor.java 2012-03-15 03:17:12 UTC (rev 3612) @@ -6,9 +6,12 @@ import org.dllearner.core.ComponentInitException; import org.dllearner.core.KnowledgeSource; import org.dllearner.core.config.ConfigOption; +import org.dllearner.kb.OWLOntologyKnowledgeSource; +import org.semanticweb.owlapi.model.OWLOntology; +import org.semanticweb.owlapi.model.OWLOntologyManager; @ComponentAnn(name="efficient SPARQL fragment extractor", shortName="sparqls", version=0.1) -public class SparqlSimpleExtractor implements KnowledgeSource { +public class SparqlSimpleExtractor implements KnowledgeSource, OWLOntologyKnowledgeSource { @ConfigOption(name="endpointURL", description="URL of the SPARQL endpoint", required=true) private URL endpointURL = null; @@ -38,5 +41,10 @@ public void setEndpointURL(URL endpointURL) { this.endpointURL = endpointURL; } - + + @Override + public OWLOntology createOWLOntology(OWLOntologyManager manager) { + //TODO Update this to return an ontology representation of what the reasoners should work with. Build with the passed in manager instance. + return null; + } } Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/OWLAPIReasoner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/OWLAPIReasoner.java 2012-03-15 02:34:07 UTC (rev 3611) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/OWLAPIReasoner.java 2012-03-15 03:17:12 UTC (rev 3612) @@ -161,14 +161,6 @@ if (source instanceof OWLFile || source instanceof SparqlKnowledgeSource || source instanceof SparqlSimpleExtractor || source instanceof OWLAPIOntology) { - if (source instanceof SparqlKnowledgeSource) { - ontology = ((SparqlKnowledgeSource) source).getOWLAPIOntology(); - manager = ontology.getOWLOntologyManager(); - owlAPIOntologies.add(ontology); - } else if(source instanceof SparqlSimpleExtractor) { - // TODO - } - directImports.addAll(ontology.getImportsDeclarations()); try { // imports includes the ontology itself Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/PelletReasoner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/PelletReasoner.java 2012-03-15 02:34:07 UTC (rev 3611) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/PelletReasoner.java 2012-03-15 03:17:12 UTC (rev 3612) @@ -209,13 +209,6 @@ || source instanceof SparqlKnowledgeSource || source instanceof OWLAPIOntology) { - if (source instanceof SparqlKnowledgeSource) { - ontology = ((SparqlKnowledgeSource) source) - .getOWLAPIOntology(); - manager = ontology.getOWLOntologyManager(); - owlAPIOntologies.add(ontology); - } - // imports includes the ontology itself Set<OWLOntology> imports = manager .getImportsClosure(ontology); @@ -477,12 +470,6 @@ || source instanceof SparqlKnowledgeSource || source instanceof OWLAPIOntology) { - if (source instanceof SparqlKnowledgeSource) { - ontology = ((SparqlKnowledgeSource) source).getOWLAPIOntology(); - manager = ontology.getOWLOntologyManager(); - owlAPIOntologies.add(ontology); - } - // imports includes the ontology itself Set<OWLOntology> imports = manager .getImportsClosure(ontology); Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/ProtegeReasoner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/ProtegeReasoner.java 2012-03-15 02:34:07 UTC (rev 3611) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/ProtegeReasoner.java 2012-03-15 03:17:12 UTC (rev 3612) @@ -258,12 +258,6 @@ || source instanceof SparqlKnowledgeSource || source instanceof OWLAPIOntology) { - if (source instanceof SparqlKnowledgeSource) { - ontology = ((SparqlKnowledgeSource) source).getOWLAPIOntology(); - manager = ontology.getOWLOntologyManager(); - owlAPIOntologies.add(ontology); - } - classes.addAll(ontology.getClassesInSignature(true)); owlObjectProperties.addAll(ontology.getObjectPropertiesInSignature(true)); owlDatatypeProperties.addAll(ontology.getDataPropertiesInSignature(true)); Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/FuzzyOWLAPIReasoner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/FuzzyOWLAPIReasoner.java 2012-03-15 02:34:07 UTC (rev 3611) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/FuzzyOWLAPIReasoner.java 2012-03-15 03:17:12 UTC (rev 3612) @@ -253,12 +253,6 @@ if(source instanceof OWLFile || source instanceof SparqlKnowledgeSource || source instanceof OWLAPIOntology) { - if (source instanceof SparqlKnowledgeSource) { - ontology = ((SparqlKnowledgeSource) source).getOWLAPIOntology(); - manager = ontology.getOWLOntologyManager(); - owlAPIOntologies.add(ontology); - } - // imports includes the ontology itself Set<OWLOntology> imports = manager.getImportsClosure(ontology); allImports.addAll(imports); Added: trunk/components-core/src/test/java/org/dllearner/kb/sparql/SparqlKnowledgeSourceTest.java =================================================================== --- trunk/components-core/src/test/java/org/dllearner/kb/sparql/SparqlKnowledgeSourceTest.java (rev 0) +++ trunk/components-core/src/test/java/org/dllearner/kb/sparql/SparqlKnowledgeSourceTest.java 2012-03-15 03:17:12 UTC (rev 3612) @@ -0,0 +1,53 @@ +package org.dllearner.kb.sparql; + +import org.dllearner.utilities.owl.SimpleOntologyToByteConverter; +import org.junit.Test; +import org.semanticweb.owlapi.apibinding.OWLManager; +import org.semanticweb.owlapi.model.OWLOntology; +import org.semanticweb.owlapi.model.OWLOntologyCreationException; +import org.semanticweb.owlapi.model.OWLOntologyManager; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import uk.ac.manchester.cs.owl.owlapi.OWLDataFactoryImpl; + +import java.io.IOException; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNotSame; + +/** + * Created by IntelliJ IDEA. + * User: Chris Shellenbarger + * Date: 3/14/12 + * Time: 9:02 PM + * + * Basic test to test some components of the SparqlKnowledgeSource + */ +public class SparqlKnowledgeSourceTest { + + private OWLOntology createOntology() throws OWLOntologyCreationException, IOException { + // Set up the ontology here and hide its manager - the test needs to use a different ontology manager on reconstitution + OWLOntologyManager manager = OWLManager.createOWLOntologyManager(new OWLDataFactoryImpl()); + Resource owlFile = new ClassPathResource("/org/dllearner/kb/owl-api-ontology-data.owl"); + return manager.loadOntologyFromOntologyDocument(owlFile.getInputStream()); + } + + + @Test + public void testMethods() throws Exception { + OWLOntology ontology = createOntology(); + assertNotNull(ontology); + + SparqlKnowledgeSource testSubject = new SparqlKnowledgeSource(); + testSubject.setOntologyBytes(new SimpleOntologyToByteConverter().convert(ontology)); + + OWLOntology result = testSubject.createOWLOntology(OWLManager.createOWLOntologyManager(new OWLDataFactoryImpl())); + + assertNotNull(result); + assertNotSame(ontology,result); + + // Basic Equality Check - for some reason axiom count is different - the result looks more complete than the original. + assertEquals(ontology.getIndividualsInSignature().size(), result.getIndividualsInSignature().size()); + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |