From: <jen...@us...> - 2008-02-19 12:06:28
|
Revision: 609 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=609&view=rev Author: jenslehmann Date: 2008-02-19 04:05:53 -0800 (Tue, 19 Feb 2008) Log Message: ----------- OWL API reasoner now supports KB files Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/core/KnowledgeSource.java trunk/src/dl-learner/org/dllearner/kb/KBFile.java trunk/src/dl-learner/org/dllearner/kb/OWLFile.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIAxiomConvertVisitor.java trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java trunk/src/dl-learner/org/dllearner/utilities/OntologyClassRewriter.java Modified: trunk/src/dl-learner/org/dllearner/core/KnowledgeSource.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/KnowledgeSource.java 2008-02-18 19:20:47 UTC (rev 608) +++ trunk/src/dl-learner/org/dllearner/core/KnowledgeSource.java 2008-02-19 12:05:53 UTC (rev 609) @@ -22,6 +22,8 @@ import java.io.File; import java.net.URI; +import org.dllearner.core.owl.KB; + /** * Represents a knowledge source component. * @@ -30,6 +32,8 @@ */ public abstract class KnowledgeSource extends Component { + public abstract KB toKB(); + public abstract String toDIG(URI kbURI); public abstract void export(File file, OntologyFormat format) throws OntologyFormatUnsupportedException; Modified: trunk/src/dl-learner/org/dllearner/kb/KBFile.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/KBFile.java 2008-02-18 19:20:47 UTC (rev 608) +++ trunk/src/dl-learner/org/dllearner/kb/KBFile.java 2008-02-19 12:05:53 UTC (rev 609) @@ -37,7 +37,7 @@ import org.dllearner.parser.KBParser; import org.dllearner.parser.ParseException; import org.dllearner.reasoning.DIGConverter; -import org.dllearner.reasoning.OWLAPIReasoner; +import org.dllearner.reasoning.OWLAPIAxiomConvertVisitor; import org.semanticweb.owl.apibinding.OWLManager; import org.semanticweb.owl.model.OWLOntology; import org.semanticweb.owl.model.OWLOntologyCreationException; @@ -148,7 +148,8 @@ OWLOntology ontology; try { ontology = manager.createOntology(ontologyURI); - OWLAPIReasoner.fillOWLAPIOntology(manager,ontology,kb); + // OWLAPIReasoner.fillOWLAPIOntology(manager,ontology,kb); + OWLAPIAxiomConvertVisitor.fillOWLOntology(manager, ontology, kb); manager.saveOntology(ontology); } catch (OWLOntologyCreationException e) { // TODO Auto-generated catch block @@ -186,5 +187,10 @@ public URL getURL() { return url; } + + @Override + public KB toKB() { + return kb; + } } Modified: trunk/src/dl-learner/org/dllearner/kb/OWLFile.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/OWLFile.java 2008-02-18 19:20:47 UTC (rev 608) +++ trunk/src/dl-learner/org/dllearner/kb/OWLFile.java 2008-02-19 12:05:53 UTC (rev 609) @@ -33,6 +33,7 @@ import org.dllearner.core.config.ConfigOption; import org.dllearner.core.config.InvalidConfigOptionValueException; import org.dllearner.core.config.StringConfigOption; +import org.dllearner.core.owl.KB; import org.dllearner.reasoning.OWLAPIDIGConverter; /** @@ -107,4 +108,12 @@ throw new OntologyFormatUnsupportedException("export", format); } + /* (non-Javadoc) + * @see org.dllearner.core.KnowledgeSource#toKB() + */ + @Override + public KB toKB() { + throw new Error("OWL -> KB conversion not implemented yet."); + } + } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-02-18 19:20:47 UTC (rev 608) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-02-19 12:05:53 UTC (rev 609) @@ -396,6 +396,15 @@ return new SparqlQueryThreaded(new Cache("cache"),this.sparqlQuery(query)); } + /* (non-Javadoc) + * @see org.dllearner.core.KnowledgeSource#toKB() + */ + @Override + public KB toKB() { + // TODO Does this work? + return kb; + } + /*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/reasoning/OWLAPIAxiomConvertVisitor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIAxiomConvertVisitor.java 2008-02-18 19:20:47 UTC (rev 608) +++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIAxiomConvertVisitor.java 2008-02-19 12:05:53 UTC (rev 609) @@ -79,7 +79,7 @@ this.ontology = ontology; factory = manager.getOWLDataFactory(); } - + public static void fillOWLOntology(OWLOntologyManager manager, OWLOntology ontology, KB kb) { OWLAPIAxiomConvertVisitor converter = new OWLAPIAxiomConvertVisitor(manager, ontology, kb); for(Axiom axiom : kb.getTbox()) Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-02-18 19:20:47 UTC (rev 608) +++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-02-19 12:05:53 UTC (rev 609) @@ -99,6 +99,9 @@ */ public class OWLAPIReasoner extends ReasonerComponent { +// private static Logger logger = Logger +// .getLogger(OWLAPIReasoner.class); + private String reasonerType = "pellet"; private Set<KnowledgeSource> sources; @@ -167,19 +170,11 @@ Set<OWLOntology> allImports = new HashSet<OWLOntology>(); for(KnowledgeSource source : sources) { - if(!(source instanceof OWLFile)) { - System.out.println("Currently, only OWL files are supported. Ignoring knowledge source " + source + "."); - } else { + // OWL files are read directly + if(source instanceof OWLFile) { URL url = ((OWLFile)source).getURL(); - /* + try { - url = new URL("http://www.co-ode.org/ontologies/pizza/2007/02/12/pizza.owl"); - } catch (MalformedURLException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - */ - try { OWLOntology ontology = manager.loadOntologyFromPhysicalURI(url.toURI()); allImports.addAll(manager.getImportsClosure(ontology)); classes.addAll(ontology.getReferencedClasses()); @@ -193,6 +188,18 @@ } catch (URISyntaxException e) { e.printStackTrace(); } + // all other sources are converted to KB and then to an + // OWL API ontology + } else { + KB kb = source.toKB(); + URI ontologyURI = URI.create("http://example.com"); + OWLOntology ontology = null; + try { + ontology = manager.createOntology(ontologyURI); + } catch (OWLOntologyCreationException e) { + e.printStackTrace(); + } + OWLAPIAxiomConvertVisitor.fillOWLOntology(manager, ontology, kb); } } @@ -221,9 +228,9 @@ e1.printStackTrace(); }*/ - System.out.println(classes); - System.out.println(properties); - System.out.println(individuals); +// System.out.println(classes); +// System.out.println(properties); +// System.out.println(individuals); // compute class hierarchy and types of individuals // (done here to speed up later reasoner calls) @@ -239,15 +246,15 @@ - try { - if(reasoner.isDefined(factory.getOWLIndividual(URI.create("http://example.com/father#female")))) - System.out.println("DEFINED."); - else - System.out.println("NOT DEFINED."); - } catch (OWLReasonerException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } +// try { +// if(reasoner.isDefined(factory.getOWLIndividual(URI.create("http://example.com/father#female")))) +// System.out.println("DEFINED."); +// else +// System.out.println("NOT DEFINED."); +// } catch (OWLReasonerException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } // read in primitives atomicConcepts = new TreeSet<NamedClass>(conceptComparator); Modified: trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java 2008-02-18 19:20:47 UTC (rev 608) +++ trunk/src/dl-learner/org/dllearner/test/junit/ReasonerTests.java 2008-02-19 12:05:53 UTC (rev 609) @@ -32,7 +32,6 @@ import org.dllearner.kb.KBFile; import org.dllearner.parser.KBParser; import org.dllearner.parser.ParseException; -import org.dllearner.reasoning.FastInstanceChecker; import org.dllearner.reasoning.OWLAPIReasoner; import org.junit.Test; Modified: trunk/src/dl-learner/org/dllearner/utilities/OntologyClassRewriter.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/OntologyClassRewriter.java 2008-02-18 19:20:47 UTC (rev 608) +++ trunk/src/dl-learner/org/dllearner/utilities/OntologyClassRewriter.java 2008-02-19 12:05:53 UTC (rev 609) @@ -27,7 +27,7 @@ import org.dllearner.core.owl.Description; import org.dllearner.parser.KBParser; import org.dllearner.parser.ParseException; -import org.dllearner.reasoning.OWLAPIReasoner; +import org.dllearner.reasoning.OWLAPIDescriptionConvertVisitor; import org.semanticweb.owl.apibinding.OWLManager; import org.semanticweb.owl.model.OWLClass; import org.semanticweb.owl.model.OWLDataFactory; @@ -71,7 +71,8 @@ // umwandeln in interne KAON2-Darstellung (bereits im DL-Learner implementiert) // Description newConceptKAON2 = KAON2Reasoner.getKAON2Description(newConceptInternal); - OWLDescription newConceptOWLAPI = OWLAPIReasoner.getOWLAPIDescription(newConceptInternal); + // OWLDescription newConceptOWLAPI = OWLAPIReasoner.getOWLAPIDescription(newConceptInternal); + OWLDescription newConceptOWLAPI = OWLAPIDescriptionConvertVisitor.getOWLDescription(newConceptInternal); // Umwandlung Klassenname in atomate KAON2-Klasse // OWLClass classKAON2 = KAON2Manager.factory().owlClass(className); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |