if(e.getLabels().length > 0)
buffer.append("<tr valign=top><td><b>Labels:</b></td><td>"+toHTML(e.getLabels())+"</td></tr>");
if(e.getComments().length > 0)
buffer.append("<tr valign=top><td><b>Comments: </b></td><td> "+toHTML(e.getComments())+"</td></tr>");
if(e instanceof IClass){
IClass cls = (IClass) e;
if(cls.getDirectSuperClasses().length > 0)
buffer.append("<tr valign=top><td><b>Super Classes: </b></td><td>"+
toHTML(cls.getDirectSuperClasses())+"</td></tr>");
if(cls.getEquivalentClasses() != null && cls.getEquivalentClasses().length > 0)
buffer.append("<tr valign=top><td><b>Equivalent Classes: </b></td><td>"+
toHTML(cls.getEquivalentClasses())+"</td></tr>");
if(cls.getDisjointClasses() != null && cls.getDisjointClasses().length > 0)
buffer.append("<tr valign=top><td><b>Disjoint Classes: </b></td><td>"+
toHTML(cls.getDisjointClasses())+"</td></tr>");
ILogicExpression exp = cls.getEquivalentRestrictions();
if(exp != null && !exp.isEmpty() )
buffer.append("<tr valign=top><td><b>Equivalent Restrictions: </b></td><td>"+
toHTML(exp)+"</td></tr>");
exp = cls.getDirectNecessaryRestrictions();
if(exp != null && !exp.isEmpty() )
buffer.append("<tr valign=top><td><b>Necessary Restrictions: </b></td><td>"+
toHTML(exp)+"</td></tr>");
// do paths to root
List<ClassPath> paths = getRootPaths(cls);
if(!paths.isEmpty() ){
buffer.append("<tr valign=top><td><b>Path(s) to Root: </b></td><td>");
for(List<IClass> p: paths){
buffer.append(toHTML(p)+"<br>");
}
buffer.append("</td></tr>");
}
}else if(e instanceof IProperty){
IProperty cls = (IProperty) e;
buffer.append("<tr valign=top><td><b>Domain: </b></td><td>"+
toHTML(cls.getDomain())+"</td></tr>");
buffer.append("<tr valign=top><td><b>Range: </b></td><td>"+
toHTML(cls.getRange())+"</td></tr>");
}else if(e instanceof IInstance){
IInstance cls = (IInstance) e;
buffer.append("<tr valign=top><td><b>Types: </b></td><td>"+
toHTML(cls.getDirectTypes())+"</td></tr>");
}
IProperty[] p = e.getProperties();
if(p.length > 0){
buffer.append("<tr valign=top><td><b>Properties:</b>");