int maxDepth,
double initialScore,
double degradingCoefficient,
String keyword,
List<RelatedKeyword> relatedKeywords) {
OntClass ontClass = model.getOntClass(classURI);
if (ontClass == null || ontClass.isAnon() || isClassNotValid(ontClass)) {
log.warn("Can not find class with uri {}, skipping ...", classURI);
} else if (maxDepth == 0) {
log.debug("Max depth reached not examining the resource {}", classURI);
return;
} else {
String rkw = ontClass.getLocalName();
relatedKeywords.add(new RelatedKeywordImpl(rkw, initialScore, "Ontology"));
log.debug("Added {} as a related keyword to {} by super class relation", rkw, keyword);
log.debug("Computing super class closure of {} ", classURI);
List<OntClass> superClasses = ontClass.listSuperClasses(true).toList();
for (OntClass superClass : superClasses) {
computeSuperClassClosure(superClass.getURI(), maxDepth - 1, initialScore
/ degradingCoefficient,
degradingCoefficient, keyword, relatedKeywords);
}