Архитектура

Сначала просто мысли по декомпозиции задачи.
В системе должны быть:

Модуль графического интерфейса

Принимает объекты ЯП и ресурсы (типа картинок)

Строит граф

Модуль представления онтологий

понимающий язык представления онтологий

на выходе дающий объекты языка программирования

Возможно, разбит на два модуля - манипуляций с онтологией в файле (сохранить, загрузить, изменить) и объектного представления данных (распознанная и преобразованная в классы ЯП онтология)

Средство вывода по созданной онтологии

Получает на вход либо объекты ЯП, либо что-нибудь ещё ( - как производится вывод по онтологиям? Большой пробел имеем)

Выдаёт в виде объектов ЯП (или чего-либо ещё) те понятия, которые он смог вывести ( - в каком виде? И что за “Понятия”? Хотелось бы и вывода новых свойств, и новых ограничений на классы)

В соответствии с этим нужно подобрать:

ОО язык программирования, в котором представляются объекты

язык представления онтологии (чуть знаком с XML-based - RDF, OWL)

фреймворк для работы с ним, позволяющий преобразовывать элементы онто в объекты ЯП, производить сохраннение и загрузку в/из онто-файлика

нечто (пока не уверен - движок логического вывода), умеющее

по онтологии в виде объектов ЯП или в виде файла

и запросу (подобному вопросу в прологе)

Выдавать ответ - результат логического вывода.

библиотека GUI, совместимая с выбранным ЯП