From: <lor...@us...> - 2012-08-08 12:31:45
|
Revision: 3817 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3817&view=rev Author: lorenz_b Date: 2012-08-08 12:31:39 +0000 (Wed, 08 Aug 2012) Log Message: ----------- Added more information to return JSON. Modified Paths: -------------- trunk/interfaces/src/main/java/org/dllearner/server/EnrichmentServlet.java Modified: trunk/interfaces/src/main/java/org/dllearner/server/EnrichmentServlet.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/server/EnrichmentServlet.java 2012-08-08 10:29:35 UTC (rev 3816) +++ trunk/interfaces/src/main/java/org/dllearner/server/EnrichmentServlet.java 2012-08-08 12:31:39 UTC (rev 3817) @@ -75,6 +75,7 @@ import org.dllearner.reasoning.FastInstanceChecker; import org.dllearner.reasoning.SPARQLReasoner; import org.dllearner.utilities.Helper; +import org.dllearner.utilities.SPARULTranslator; import org.dllearner.utilities.datastructures.Datastructures; import org.dllearner.utilities.datastructures.SetManipulation; import org.dllearner.utilities.datastructures.SortedSetTuple; @@ -82,12 +83,16 @@ import org.dllearner.utilities.owl.OWLAPIConverter; import org.json.JSONArray; import org.json.simple.JSONObject; +import org.semanticweb.owlapi.apibinding.OWLManager; import org.semanticweb.owlapi.io.OWLObjectRenderer; +import org.semanticweb.owlapi.model.AddAxiom; import org.semanticweb.owlapi.model.AxiomType; -import org.semanticweb.owlapi.util.DefaultPrefixManager; +import org.semanticweb.owlapi.model.OWLAxiom; +import org.semanticweb.owlapi.model.OWLOntology; +import org.semanticweb.owlapi.model.OWLOntologyCreationException; +import org.semanticweb.owlapi.model.OWLOntologyManager; import uk.ac.manchester.cs.owl.owlapi.mansyntaxrenderer.ManchesterOWLSyntaxOWLObjectRendererImpl; -import uk.ac.manchester.cs.owl.owlapi.mansyntaxrenderer.ManchesterOWLSyntaxPrefixNameShortFormProvider; public class EnrichmentServlet extends HttpServlet { @@ -99,6 +104,9 @@ private static final List<String> entityTypes = Arrays.asList(new String[]{"class", "objectproperty", "dataproperty"}); private static String validAxiomTypes = ""; + + private SPARULTranslator sparul; + private OWLOntology ont; static { axiomType2Class = new DualHashBidiMap<AxiomType, Class<? extends LearningAlgorithm>>(); @@ -128,13 +136,16 @@ objectPropertyAlgorithms = new LinkedList<Class<? extends LearningAlgorithm>>(); objectPropertyAlgorithms.add(DisjointObjectPropertyAxiomLearner.class); objectPropertyAlgorithms.add(EquivalentObjectPropertyAxiomLearner.class); + objectPropertyAlgorithms.add(SubObjectPropertyOfAxiomLearner.class); + objectPropertyAlgorithms.add(ObjectPropertyDomainAxiomLearner.class); + objectPropertyAlgorithms.add(ObjectPropertyRangeAxiomLearner.class); objectPropertyAlgorithms.add(FunctionalObjectPropertyAxiomLearner.class); objectPropertyAlgorithms.add(InverseFunctionalObjectPropertyAxiomLearner.class); - objectPropertyAlgorithms.add(ObjectPropertyDomainAxiomLearner.class); - objectPropertyAlgorithms.add(ObjectPropertyRangeAxiomLearner.class); - objectPropertyAlgorithms.add(SubObjectPropertyOfAxiomLearner.class); objectPropertyAlgorithms.add(SymmetricObjectPropertyAxiomLearner.class); + objectPropertyAlgorithms.add(AsymmetricObjectPropertyAxiomLearner.class); objectPropertyAlgorithms.add(TransitiveObjectPropertyAxiomLearner.class); + objectPropertyAlgorithms.add(ReflexiveObjectPropertyAxiomLearner.class); + objectPropertyAlgorithms.add(IrreflexiveObjectPropertyAxiomLearner.class); dataPropertyAlgorithms = new LinkedList<Class<? extends LearningAlgorithm>>(); dataPropertyAlgorithms.add(DisjointDataPropertyAxiomLearner.class); @@ -160,6 +171,17 @@ private String cacheDir; + public EnrichmentServlet() { + OWLOntologyManager man = OWLManager.createOWLOntologyManager(); + OWLOntology ont = null; + try { + ont = man.createOntology(); + } catch (OWLOntologyCreationException e1) { + e1.printStackTrace(); + } + sparul = new SPARULTranslator(man, ont, false); + } + @Override public void init() throws ServletException { super.init(); @@ -257,7 +279,8 @@ List<Future<JSONObject>> list = new ArrayList<Future<JSONObject>>(); final OWLObjectRenderer renderer = new ManchesterOWLSyntaxOWLObjectRendererImpl(); - renderer.setShortFormProvider(new ManchesterOWLSyntaxPrefixNameShortFormProvider(new DefaultPrefixManager())); +// renderer.setShortFormProvider(new ManchesterOWLSyntaxPrefixNameShortFormProvider(new DefaultPrefixManager())); + for (final AxiomType axiomType : executableAxiomTypes) { @@ -270,7 +293,10 @@ List<EvaluatedAxiom> axioms = getEvaluatedAxioms(ks, reasoner, entity, axiomType, maxExecutionTimeInSeconds, threshold, maxNrOfReturnedAxioms, useInference); for(EvaluatedAxiom ax : axioms){ JSONObject axiomObject = new JSONObject(); - axiomObject.put("axiom", renderer.render(OWLAPIConverter.getOWLAPIAxiom(ax.getAxiom()))); + OWLAxiom axiom = OWLAPIConverter.getOWLAPIAxiom(ax.getAxiom()); + axiomObject.put("axiom", axiom); + axiomObject.put("axiom_rendered", renderer.render(axiom)); + axiomObject.put("axiom_sparul", getSPARUL(axiom)); axiomObject.put("confidence", ax.getScore().getAccuracy()); axiomArray.put(axiomObject); } @@ -317,6 +343,10 @@ pw.close(); } + private String getSPARUL(OWLAxiom axiom){ + return sparul.translate(new AddAxiom(ont, axiom)); + } + private boolean oneOf(String value, String... possibleValues){ for(String v : possibleValues){ if(v.equals(value)){ @@ -519,7 +549,7 @@ public static void main(String[] args) { String s = ""; SortedSet<String> types = new TreeSet<String>(); - for(AxiomType t : getAxiomTypes("dataproperty")){ + for(AxiomType t : getAxiomTypes("objectproperty")){ s += "\"" + t.getName() + "\""; s+= ", "; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |