From: <jen...@us...> - 2008-06-30 14:38:12
|
Revision: 995 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=995&view=rev Author: jenslehmann Date: 2008-06-30 07:37:58 -0700 (Mon, 30 Jun 2008) Log Message: ----------- descriptions can now be converted to OWL/XML making it easier for clients to use their structure Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java trunk/src/dl-learner/org/dllearner/utilities/owl/OWLAPIRenderers.java Modified: trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java 2008-06-30 14:12:50 UTC (rev 994) +++ trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java 2008-06-30 14:37:58 UTC (rev 995) @@ -25,9 +25,12 @@ import org.dllearner.core.owl.Individual; import org.dllearner.kb.sparql.SparqlQueryDescriptionConvertVisitor; import org.dllearner.learningproblems.ScoreTwoValued; +import org.dllearner.reasoning.OWLAPIDescriptionConvertVisitor; +import org.dllearner.utilities.owl.OWLAPIRenderers; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; +import org.semanticweb.owl.model.OWLDescription; /** * This represents a class description, which has been @@ -151,6 +154,8 @@ JSONObject object = new JSONObject(); try { object.put("descriptionManchesterSyntax", description.toManchesterSyntaxString(null, null)); + OWLDescription d = OWLAPIDescriptionConvertVisitor.getOWLDescription(description); + object.put("descriptionOWLXML", OWLAPIRenderers.toOWLXMLSyntax(d)); object.put("accuracy", score.getAccuracy()); object.put("coveredPositives", getJSONArray(score.getCoveredPositives())); object.put("coveredNegatives", getJSONArray(score.getCoveredNegatives())); Modified: trunk/src/dl-learner/org/dllearner/utilities/owl/OWLAPIRenderers.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/owl/OWLAPIRenderers.java 2008-06-30 14:12:50 UTC (rev 994) +++ trunk/src/dl-learner/org/dllearner/utilities/owl/OWLAPIRenderers.java 2008-06-30 14:37:58 UTC (rev 995) @@ -22,9 +22,13 @@ import java.io.StringWriter; import java.net.URI; +import org.coode.owlapi.owlxml.renderer.OWLXMLObjectRenderer; +import org.coode.owlapi.owlxml.renderer.OWLXMLWriter; +import org.coode.xml.XMLWriterNamespaceManager; import org.semanticweb.owl.apibinding.OWLManager; import org.semanticweb.owl.model.OWLDataFactory; import org.semanticweb.owl.model.OWLDescription; +import org.semanticweb.owl.model.OWLObjectProperty; import org.semanticweb.owl.model.OWLOntologyManager; import uk.ac.manchester.cs.owl.mansyntaxrenderer.ManchesterOWLSyntaxObjectRenderer; @@ -51,11 +55,32 @@ return sw.toString(); } + /** + * Converts an OWL API description to an OWL/XML syntax string. + * + * @param description Input OWLDescription. + * @return OWL/XML syntax string. + */ + public static String toOWLXMLSyntax(OWLDescription description) { + StringWriter sw = new StringWriter(); + // set up default namespace and prefixes + XMLWriterNamespaceManager ns = new XMLWriterNamespaceManager("http://example.com"); + ns.setPrefix("owl2", "http://www.w3.org/2006/12/owl2-xml#"); + OWLXMLWriter oxw = new OWLXMLWriter(sw, ns); + OWLXMLObjectRenderer renderer = new OWLXMLObjectRenderer(oxw); + description.accept(renderer); + return sw.toString(); + } + public static void main(String args[]) { OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); OWLDataFactory factory = manager.getOWLDataFactory(); - OWLDescription d = factory.getOWLClass(URI.create("http://example.com/test")); - String s = toManchesterOWLSyntax(d); + OWLDescription a1 = factory.getOWLClass(URI.create("http://example.com/test#a1")); + OWLDescription a2 = factory.getOWLClass(URI.create("http://example.com/test#a2")); + OWLObjectProperty r = factory.getOWLObjectProperty(URI.create("http://example.com/test#r")); + OWLDescription d3 = factory.getOWLObjectSomeRestriction(r, a2); + OWLDescription d = factory.getOWLObjectIntersectionOf(a1,d3); + String s = toOWLXMLSyntax(d); System.out.println(s); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |