in core/src/main/java/org/apache/sdap/mudrod/ontology/process/LocalOntology.java [187:222]
public Iterator<String> subclasses(String entitySearchTerm) {
Map<OntResource, String> classMap = retrieve(entitySearchTerm);
Map<String, String> subclasses = new HashMap<>();
for (OntResource resource : classMap.keySet()) {
if (resource instanceof OntClass) {
//get subclasses N.B. we only get direct sub-classes e.g. direct children
//it is possible for us to navigate the entire class tree if we wish, we simply
//need to pass the .listSubClasses(true) boolean parameter.
for (Iterator<?> i = ((OntClass) resource).listSubClasses(); i.hasNext();) {
OntResource subclass = (OntResource) i.next();
for (Iterator<?> j = subclass.listLabels(null); j.hasNext();) {
Literal l = (Literal) j.next();
subclasses.put(l.toString(), "1");
}
}
//get individuals
for (Iterator<?> i = ((OntClass) resource).listInstances(); i.hasNext(); ) {
OntResource subclass = (OntResource) i.next();
for (Iterator<?> j = subclass.listLabels(null); j.hasNext();) {
Literal l = (Literal) j.next();
subclasses.put(l.toString(), "1");
}
}
} else if (resource instanceof Individual) {
for (Iterator<?> i = resource.listSameAs(); i.hasNext();) {
OntResource subclass = (OntResource) i.next();
for (Iterator<?> j = subclass.listLabels(null); j.hasNext();) {
Literal l = (Literal) j.next();
subclasses.put(l.toString(), "1");
}
}
}
}
return subclasses.keySet().iterator();
}