From: <jen...@us...> - 2007-10-19 11:48:44
|
Revision: 251 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=251&view=rev Author: jenslehmann Date: 2007-10-19 04:48:42 -0700 (Fri, 19 Oct 2007) Log Message: ----------- implemented export function for internal KB format Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/cli/Start.java trunk/src/dl-learner/org/dllearner/kb/KBFile.java trunk/src/dl-learner/org/dllearner/reasoning/KAON2Reasoner.java Modified: trunk/src/dl-learner/org/dllearner/cli/Start.java =================================================================== --- trunk/src/dl-learner/org/dllearner/cli/Start.java 2007-10-19 09:53:14 UTC (rev 250) +++ trunk/src/dl-learner/org/dllearner/cli/Start.java 2007-10-19 11:48:42 UTC (rev 251) @@ -174,7 +174,7 @@ initComponent(cm, la); // perform file exports - performExports(parser, baseDir, rs); + performExports(parser, baseDir, sources, rs); // show examples (display each one if they do not take up much space, // otherwise just show the number of examples) @@ -375,25 +375,40 @@ return importedFiles; } - private static void performExports(ConfParser parser, String baseDir, ReasoningService rs) { + private static void performExports(ConfParser parser, String baseDir, Set<KnowledgeSource> sources, ReasoningService rs) { List<List<String>> exports = parser.getFunctionCalls().get("export"); + if (exports == null) return; + + File file = null; + OntologyFileFormat format = null; for (List<String> export : exports) { - File file = new File(baseDir, export.get(0)); + file = new File(baseDir, export.get(0)); if (export.size() == 1) // use RDF/XML by default - rs.saveOntology(file, OntologyFileFormat.RDF_XML); + format = OntologyFileFormat.RDF_XML; + // rs.saveOntology(file, OntologyFileFormat.RDF_XML); else { String formatString = export.get(1); - OntologyFileFormat format; + // OntologyFileFormat format; if (formatString.equals("RDF/XML")) format = OntologyFileFormat.RDF_XML; else format = OntologyFileFormat.N_TRIPLES; - rs.saveOntology(file, format); + // rs.saveOntology(file, format); } } + // hack: ideally we would have the possibility to export each knowledge + // source to specified files with specified formats (and maybe including + // the option to merge them all in one file) + // however implementing this requires quite some effort so for the + // moment we just stick to exporting KB files (moreover all but the last + // export statement are ignored) + for(KnowledgeSource source : sources) { + if(source instanceof KBFile) + ((KBFile)source).export(file, format); + } } private static void processCLIOptions(ComponentManager cm, ConfParser parser, Modified: trunk/src/dl-learner/org/dllearner/kb/KBFile.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/KBFile.java 2007-10-19 09:53:14 UTC (rev 250) +++ trunk/src/dl-learner/org/dllearner/kb/KBFile.java 2007-10-19 11:48:42 UTC (rev 251) @@ -36,6 +36,10 @@ import org.dllearner.parser.KBParser; import org.dllearner.parser.ParseException; import org.dllearner.reasoning.DIGConverter; +import org.dllearner.reasoning.KAON2Reasoner; +import org.semanticweb.kaon2.api.KAON2Exception; +import org.semanticweb.kaon2.api.formatting.OntologyFileFormat; +import org.semanticweb.kaon2.api.reasoner.Reasoner; /** * @author Jens Lehmann @@ -112,6 +116,28 @@ return kb.toString(); } + public void export(File file, org.dllearner.kb.OntologyFileFormat format) { + Reasoner kaon2Reasoner = KAON2Reasoner.getKAON2Reasoner(kb); + + String kaon2Format = ""; + if(format.equals(org.dllearner.kb.OntologyFileFormat.RDF_XML)) + kaon2Format = OntologyFileFormat.OWL_RDF; + else { + System.err.println("Warning: Cannot export format " + format + ". Exiting."); + System.exit(0); + } + + try { + kaon2Reasoner.getOntology().saveOntology(kaon2Format,file,"ISO-8859-1"); + } catch (KAON2Exception e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + public URL getURL() { return url; } Modified: trunk/src/dl-learner/org/dllearner/reasoning/KAON2Reasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/KAON2Reasoner.java 2007-10-19 09:53:14 UTC (rev 250) +++ trunk/src/dl-learner/org/dllearner/reasoning/KAON2Reasoner.java 2007-10-19 11:48:42 UTC (rev 251) @@ -586,7 +586,24 @@ throw new IllegalArgumentException("Unsupported concept type."); } - private org.semanticweb.kaon2.api.reasoner.Reasoner getKAON2Reasoner(KB kb, + public static org.semanticweb.kaon2.api.reasoner.Reasoner getKAON2Reasoner(KB kb) { + try { + KAON2Connection connection = KAON2Manager.newConnection(); + + DefaultOntologyResolver resolver = new DefaultOntologyResolver(); + resolver.registerReplacement("http://localhost/foo", "file:nothing.xml"); + connection.setOntologyResolver(resolver); + Ontology ontology = connection.createOntology("http://localhost/foo", + new HashMap<String, Object>()); + return getKAON2Reasoner(kb, ontology); + + } catch (KAON2Exception e) { + e.printStackTrace(); + return null; + } + } + + private static org.semanticweb.kaon2.api.reasoner.Reasoner getKAON2Reasoner(KB kb, Ontology ontology) { org.semanticweb.kaon2.api.reasoner.Reasoner reasoner = null; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |