/** * Returns true if the description is consistent (i.e. if it is * possible for there to exist * models in which the extension of the class is non-empty. */ public boolean isConsistent(OWLDescription d1) throws OWLException { checkStatus(); StringWriter sw = new StringWriter(); sw.write( "<asks xmlns=\"http://dl.kr.org/dig/lang\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://dl.kr.org/dig/lang dig.xsd\">"); sw.write("<satisfiable id=\"q\">"); /* Add the rendered description here */ renderer.reset(); d1.accept(renderer); sw.write(renderer.result()); sw.write("</satisfiable>"); sw.write("</asks>"); StringWriter response = new StringWriter(); try { digReasoner.request(new StringReader(sw.toString()), response); } catch (Exception e) { throw new OWLException(e.getMessage()); } uk.ac.man.cs.img.dig.helper.Response serverResponse = new uk.ac.man.cs.img.dig.helper.Response(response.toString()); org.w3c.dom.Element r = serverResponse.extractResponse("q"); return (r.getTagName().equals("true")); }
/** Returns all the instances of the given class. */ public Set instancesOf(OWLDescription d1) throws OWLException { Set result = new HashSet(); try { checkStatus(); StringWriter sw = new StringWriter(); sw.write( "<asks xmlns=\"http://dl.kr.org/dig/lang\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://dl.kr.org/dig/lang dig.xsd\">"); sw.write("<instances id=\"q\">"); /* Add the rendered description here */ renderer.reset(); d1.accept(renderer); sw.write(renderer.result()); sw.write("</instances>"); sw.write("</asks>"); StringWriter response = new StringWriter(); try { digReasoner.request(new StringReader(sw.toString()), response); } catch (Exception e) { throw new OWLException(e.getMessage()); } uk.ac.man.cs.img.dig.helper.Response serverResponse = new uk.ac.man.cs.img.dig.helper.Response(response.toString()); org.w3c.dom.Element r = serverResponse.extractResponse("q"); List l = serverResponse.extractIndividuals(r); /* For some reason, RACER is returning duplicates */ java.util.Set seen = new java.util.HashSet(); for (int j = 0; j < l.size(); j++) { String name = (String) l.get(j); if (!seen.contains(name)) { /* As with the class, this is a little tricky. The * reasoner may return individuals that aren't * *in* the ontology it's working with, but are * defined elsewhere.*/ OWLIndividual i = ontology.getOWLDataFactory().getOWLIndividual(new URI(name)); // OWLIndividual i = ontology.getIndividual( new URI( name ) ); result.add(i); seen.add(name); } } } catch (ExpressivenessOutOfScopeException ex) { throw new OWLException(ex.getMessage()); } catch (Exception ex) { // System.out.println( ex.getMessage() ); throw new OWLException(ex.getMessage()); } return result; }
/* Send the ontology off to the DIG reasoner */ private void transmitOntology() throws OWLException { initialiseReasoner(); try { /* Now tell the ontology to the reasoner. */ Renderer renderer = new uk.ac.man.cs.img.owl.io.dig1_0.Renderer(); StringWriter sw = new StringWriter(); renderer.renderOntology(ontology, sw); StringWriter response = new StringWriter(); digReasoner.request(new StringReader(sw.toString()), response); } catch (Exception e) { throw new OWLException(e.getMessage()); } }
public void tell(String str) throws OWLException { StringWriter sw = new StringWriter(); sw.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); sw.write( "<tells xmlns=\"http://dl.kr.org/dig/lang\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://dl.kr.org/dig/lang dig.xsd\">"); sw.write(str); sw.write("</tells>"); StringWriter response = new StringWriter(); try { digReasoner.request(new StringReader(sw.toString()), response); } catch (Exception e) { throw new OWLException(e.getMessage()); } }
private Set getHierarchy(String queryTag, OWLDescription d) throws OWLException { StringWriter sw = new StringWriter(); Set result = new HashSet(); sw.write( "<asks xmlns=\"http://dl.kr.org/dig/lang\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://dl.kr.org/dig/lang dig.xsd\">"); sw.write("<" + queryTag + " id=\"q\">"); /* Add the rendered description here */ renderer.reset(); d.accept(renderer); sw.write(renderer.result()); sw.write("</" + queryTag + ">"); sw.write("</asks>"); StringWriter response = new StringWriter(); try { digReasoner.request(new StringReader(sw.toString()), response); } catch (Exception e) { throw new OWLException(e.getMessage()); } uk.ac.man.cs.img.dig.helper.Response serverResponse = new uk.ac.man.cs.img.dig.helper.Response(response.toString()); org.w3c.dom.Element r = serverResponse.extractResponse("q"); List syns = serverResponse.extractSynonymSets(r); for (Iterator it = syns.iterator(); it.hasNext(); ) { Set innerSet = new HashSet(); List names = (List) it.next(); for (Iterator nameIt = names.iterator(); nameIt.hasNext(); ) { uk.ac.man.cs.img.dig.helper.Response.Concept c = ((uk.ac.man.cs.img.dig.helper.Response.Concept) nameIt.next()); OWLClass clazz = conceptToClass(c); if (clazz != null) { innerSet.add(clazz); } } result.add(innerSet); } return result; }