From: <lor...@us...> - 2011-11-28 10:43:16
|
Revision: 3442 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3442&view=rev Author: lorenz_b Date: 2011-11-28 10:43:10 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Changed database writing because OWLAxioms are not serializable. Modified Paths: -------------- trunk/scripts/src/main/java/org/dllearner/scripts/SPARQLSampleDebugging.java Modified: trunk/scripts/src/main/java/org/dllearner/scripts/SPARQLSampleDebugging.java =================================================================== --- trunk/scripts/src/main/java/org/dllearner/scripts/SPARQLSampleDebugging.java 2011-11-28 10:01:07 UTC (rev 3441) +++ trunk/scripts/src/main/java/org/dllearner/scripts/SPARQLSampleDebugging.java 2011-11-28 10:43:10 UTC (rev 3442) @@ -7,6 +7,8 @@ import java.io.IOException; import java.io.InputStream; import java.io.ObjectOutputStream; +import java.io.StringReader; +import java.io.UnsupportedEncodingException; import java.net.URL; import java.sql.Connection; import java.sql.DriverManager; @@ -47,6 +49,7 @@ import org.semanticweb.owlapi.model.OWLOntology; import org.semanticweb.owlapi.model.OWLOntologyCreationException; import org.semanticweb.owlapi.model.OWLOntologyManager; +import org.semanticweb.owlapi.model.OWLOntologyStorageException; import org.semanticweb.owlapi.reasoner.InferenceType; import org.semanticweb.owlapi.reasoner.OWLReasoner; @@ -127,7 +130,22 @@ } else { ps.setInt(4, explanations.size()); ps.setString(5, explanations.toString()); - ps.setObject(6, explanations); + try { + OWLOntologyManager man = OWLManager.createOWLOntologyManager(); + OWLOntology ont = OWLManager.createOWLOntologyManager().createOntology(); + for(Set<OWLAxiom> axioms : explanations){ + man.addAxioms(ont, axioms); + } + Model model = convert(ont); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + model.write(baos, "N-TRIPLE"); + String modelStr = baos.toString("UTF-8"); + ps.setClob(6, new StringReader(modelStr)); + } catch (UnsupportedEncodingException e) { + logger.error("ERROR", e); + } catch (OWLOntologyCreationException e) { + logger.error("ERROR", e); + } } @@ -241,6 +259,29 @@ return retOnt; } + private Model convert(OWLOntology ontology) { + Model model = ModelFactory.createDefaultModel(); + ByteArrayInputStream bais = null; + try { + OWLOntologyManager man = OWLManager.createOWLOntologyManager(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + man.saveOntology(ontology, baos); + bais = new ByteArrayInputStream(baos.toByteArray()); + model.read(bais, null); + } catch (OWLOntologyStorageException e) { + e.printStackTrace(); + } finally { + try { + if(bais != null){ + bais.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return model; + } + public void run() throws OWLOntologyCreationException{ OWLOntology reference = loadReferenceOntology(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |