private void buildClasses() {
   List<Frame> list = new ArrayList<Frame>(typeManager.listFrames());
   for (Frame frame : list) {
     buildClass(frame);
   }
   for (Frame frame : list) {
     buildPropertyClasses(frame);
   }
   for (Frame frame : typeManager.listListTypes()) {
     buildClass(frame);
   }
 }
  private UmlClass addPropertyClass(OntResource type, boolean addSuperProperties) {
    String uri = type.getURI();
    UmlClass umlClass = uri2Class.get(uri);
    if (umlClass == null) {
      Frame propertyFrame = typeManager.getFrameByUri(uri);
      if (propertyFrame == null) {

        if (!type.canAs(OntClass.class)) {
          type.addProperty(RDF.type, OWL.Class);
        }

        propertyFrame = new Frame(typeManager, type.asClass());
        typeManager.add(propertyFrame);
      }
      umlClass = new UmlClass(propertyFrame, this);
      uri2Class.put(uri, umlClass);
      addSubProperties(umlClass, type.asProperty());
    }
    if (addSuperProperties) {
      addSuperProperties(umlClass, type.asProperty());
    }
    return umlClass;
  }
  private void buildAssociations() {

    for (Frame frame : typeManager.listFrames()) {
      buildAssociations(frame);
    }
  }