public static List<OWLCLassToRender> getSuperClassesToRender(String expression, boolean onlyDirect) throws ParserException {

	OWLClassExpression classExpression = parseClassExpression(expression);
	Set<OWLClass> superClasses = null;

	if(!knowsNamedClass(expression)){
	    OWLClass anonymousClass = getTemporaryAnonymousClass(classExpression);
	    superClasses = reasoner.getSuperClasses(anonymousClass, onlyDirect).getFlattened();
	    removeTemporaryAnonymousClass(anonymousClass);
	}else{
	    superClasses = reasoner.getSuperClasses(classExpression, onlyDirect).getFlattened();
	}

	List<OWLCLassToRender> superClassesToRender = new ArrayList<OWLCLassToRender>();
	for (OWLEntity superclass : superClasses) {
	    OWLCLassToRender classToRender = new OWLCLassToRender();
	    if(!isTopEntity(superclass)){
		classToRender.logo = getLogo(shortFormProvider.getShortForm(superclass));
		classToRender.name = shortFormProvider.getShortForm(superclass);
		classToRender.label = getLabel(classToRender.name);
		superClassesToRender.add(classToRender);
	    }
	}
	return sort(superClassesToRender);
    }