public void visit(OWLClass owlClass) { try { lastClassPointer = owlClass2ClassPointerMap.get(owlClass); // Cache if not in map if (lastClassPointer == null) { if (owlClass.getURI().equals(OWLRDFVocabulary.OWL_THING.getURI())) { lastClassPointer = faCTPlusPlus.getThing(); } else if (owlClass.getURI().equals(OWLRDFVocabulary.OWL_NOTHING.getURI())) { lastClassPointer = faCTPlusPlus.getNothing(); } else { lastClassPointer = faCTPlusPlus.getNamedClass(owlClass.getURI().toString()); } classPointerMap.put(lastClassPointer, owlClass); owlClass2ClassPointerMap.put(owlClass, lastClassPointer); } } catch (Exception e) { throw new FaCTPlusPlusRuntimeException(e); } }
/** * filters the result of e.g. getSubclasses which is Set<Set<OWLClass>> To Set<OWLClass> * * @param original * @return * @throws OWLReasonerException */ protected Set<OWLClass> filterClasses(Set<Set<OWLClass>> original) throws OWLReasonerException { Set<OWLClass> result = new HashSet<OWLClass>(); for (Set<OWLClass> set : original) { for (Iterator<OWLClass> it = set.iterator(); it.hasNext(); ) { OWLClass cls = it.next(); if (cls.getURI().equals(OWLRDFVocabulary.OWL_NOTHING)) { it.remove(); } else { result.add(cls); } } } return result; }
/** * Gets OWL class by given name * * @param className * @return * @throws OWLReasonerException */ public OWLClass getNamedClass(String className) { if (classnameCache == null) { classnameCache = new HashMap<String, URI>(); for (OWLOntology ont : reasoner.getLoadedOntologies()) { for (OWLClass cls : ont.getReferencedClasses()) { classnameCache.put(cls.toString(), cls.getURI()); } } } OWLClass namedCls = null; URI uri = classnameCache.get(className); if (uri != null) { namedCls = manager.getOWLDataFactory().getOWLClass(uri); } else { System.err.println("Cannot find class: " + className + " in loaded ontologies"); } return namedCls; }