Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Categories:

Опять об универсальный моделер

Какие у нас есть соображения по заходу на универсальный моделер?

1. Опять повторю тестовый пример: иметь редактор+генератор отчетов для описания деятельности (ISO 24744), которое закодировано в каком-то (см. пункт 2) соответствии с ISO 15926. Затем начинаем расширять метамодель для этого описания,
-- в части собственно моделирования (понятия мегамодели, модельных трансформаций и т.д.), workflow типа BPMN 2 и т.д.
-- придумывается расширение предложенного графического синтаксиса (например, правильными аннотациями) ISO 24744, в том числе текстовыми вариантами
-- добавляются модель продукта, модель проекта-project вместе со своими редакторами
-- добавляются средства моделирования (верифицируемая логическая модель типа SysML-модели, динамическое моделирование поведения системы типа Modelica)

2. Понятно, что для наших целей иметь полное (фасады, язык 2й части в полном объеме с 4D, жесткая привязка всего и вся к RDS/WIP с угрозой вкачать в себя всю неминуемо образующуюся там онтологическую помойку) соответствие ISO 15926 было бы в пору активного экспериментирования необязательно. Это понимают многие разные люди:
-- iRING подразумевает полный compliance фасадам и RDS/WIP, но там нет редактора
-- фирма Noumenon делает набор инструментов для XMLpLANT, но это закрытые коды. Соответствие на уровне "словаря" (а не онтологии: например, вычеркнуто 4D-время)
-- simantics представляет как раз то, что нам нужно -- но там нет никакого compliance, хотя и подразумевается на уровне словаря
-- Bentley имеет полностью закрытую архитектуру, но и там "особенный ISO 15926"
. На этом месте нужно поставить точку, ибо другие проекты ISO15926-совместимых моделеров пока неизвестны. По идее, дальше нужно перечислять разные CAD/PLM наборы, но они все с закрытыми кодами.

3. Наиболее близко к тому, что хотелось бы сделать -- это Simantics (https://www.simantics.org). Про него известно следующее:
-- нет compliance с ISO15926, но архитектура основана как раз на онтологическом подходе (там своя онтология, много проще, чем в ISO 15926), а не AST и прочих "синтаксисах"
-- кушать придется ту онтологию (схему данных), что дадут: причем не факт, что это блюдо понравится для наших целей.
-- это как раз language workbench, у которой вместо AST для представления редактируемого текста/диаграмм используется онтологическое представление. То, что нужно. С другой стороны, можно обсуждать, насколько хорош используемый там "редактор-любых-языков".
-- писать тогда придется на Eclipse, что вызывает очень смешанные ощущения.
-- в текущей версии 1.0 нет хорошего инструментария для создания онтологий (метамоделирования) и написания редакторов. Версия 1.1 существует в сыром виде и пока никому не дается, версия 1.2 с более-менее развитыми инструментами будет готова только к осени.
-- тамошние люди затачивают все под динамическое моделирование, так что может оказаться что-нибудь странное при попытках более универсального использования (например, логического/онтологического моделирования, или использования не-UML-подобных языков, для которых все равно придется писать редактор с нуля).
-- зато уже есть весьма впечатляющие работающие примеры.

4. Всегда есть вариант сделать что-то с нуля. Simantix доводили до версии 1.0 восемь неглупых человек четыре года. Скорее всего, при делании с нуля придется повторить их подвиг (хотя там особый случай: они, например, делали свою собственную графовую базу данных. Но не делали Eclipse). Тем не менее, если пойти по этому варианту, можно подумать над интереснейшими идеями типа:
-- реализовать вариант ISO 15926 в качестве системы типов какого-то языка ISO 15926L
-- подумать о реализации ISO 15926 на языке теории категорий, от логических языков перейти к функциональным (реализации в FOL, OWL и EXPRESS уже есть)
-- придумать ISO 15926L как динамический язык программирования, с каким-нибудь приличным синтаксисом, подразумевающим фонтанирование разными DSL (например, как систему типов к чему-то типа Factor+OMeta, эта связка активно обсуждается сегодня в списке FONC/STEPS -- почему бы не пойти по функциональному пути в части concatenative языков -- http://concatenative.org/wiki/view/Concatenative%20language? Я, кстати, очень уважаю такие языки и считаю их весьма перспективными. Если уж кому-то ломать мозги, то именно таким образом. Языки, поорщяющие рефакторинг -- это круто).
-- использовать идеи современных IDE для динамических языков с DSL, не привязываться к тяжелому интерфейсу Eclipse.

Теперь нужно понять, чего мы хотим от жизни, и каковы наши возможные ресурсы на эти хотелки.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 16 comments