Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Цепочка "SysMoLan"

SysMoLan (system modeling language): зачем мы это делаем и почему у нас это получится -- https://ailev.livejournal.com/1127145.html. Там идея "прожекторного языка" типа Архимейта, но который поддерживает ISO 42010 без онтологической кривости Архимейта. Замысел бы в том, чтобы компактифицировать сегодняшнее знание о системноинженерном мышлении (отсылка к пункту 6 текста "Компактификация методического знания и сопутствующие гносеологические проблемы", 2010 -- http://ailev.livejournal.com/872954.html). И сделать это в факт-ориентированной (не ООП) модели theory theory, но в паттернах языка не иметь столько слоёв, сколько получается в языковом стеке ISO 15926. Ну, и ряд других свойств -- включая интеграцию логического вывода, численных вычислений, интеграции машинного обучения и даже геометрической информации для солверов. Язык и для требований, и для архитектуры. Использование и в инженерии, и в образовании. А в комментах там ещё и требование про представление сторонних схем данных, чтобы иметь возможность использовать язык для мэппинга. Это июль 2014, четыре года назад.

В "lytdybr" https://ailev.livejournal.com/1145024.html табличка сравнения SysMoLan, SysML и Modelica. А в "SysMoLan: что происходит" https://ailev.livejournal.com/1149937.html обсуждается использование теории категорий, чтобы трассировать view/aspects weaving (запоминать информацию, откуда что пришло -- для отладки моделей/программ), даются ссылки. И даётся ссылка на работы по диаграммам как средствам выражения топологии предметной области (вокруг обзора Wyane H. Osborn): https://ailev.livejournal.com/1069810.html. Я как-то забыл об этом своём тексте, а надо бы про него было вспомнить, когда писал "Визуальное мышление" (https://www.litres.ru/anatoliy-levenchuk/vizualnoe-myshlenie-doklad-o-tom-pochemu-im-nelzya-obol/), где есть главка про невозможность использования диаграммных языков для больших проектов. В частности, там говорится: "Обзор очень точно указывает на то, что в презентационном подходе отличается от сегодняшнего "визуального мышления" с его "ребусностью" и eye candy (http://ailev.livejournal.com/1069397.html): диаграммы/схемы в отличие от "ребусных" иллюстраций обеспечивают демонстрацию топологии описываемого фрагмента действительности лучше, чем это делают тексты. Из текстов сложную топологию восстановить могут только компьютеры и компьютероподобные интеллектуалы (которые не столько читают, сколько "компилируют текст в ментальную модель"). Диаграммы наглядно предъявляют топологию, существенно сокращая требования к навыку "компилирования" -- то, что было бы доступным в тексте только профи, становится доступным студентам, а что доступно студентам -- можно пробовать объяснять школьникам". Но жизнь свидетельствует другое: программистов на текстовых языках миллионы, а диаграммных модельеров в разы меньше, они все очень нишевы -- в книжке об этом у меня написано и дан диагноз: утопия. Вечно притягательная утопия, что школьники смогут моделировать, если дать им графический/диаграммный язык. Смогут моделировать, но игрушечные модели.

Идея полиполиглотности, экономии времени изучения языков с поминанием SysMoLan как добавка к обоснованию: https://ailev.livejournal.com/1128482.html (полиглотность -- это знание языков одного класса, полиполиглотность -- знание языков разных классов. SysMoLan позволяет с этим как-то управляться, уменьшая сложность полиполиглотности. А жизнь ценит полиполиглотов).
SysMoLan: альтернативы -- https://ailev.livejournal.com/1168256.html (сравниваются подходы ArchiEssence, теории категорий, Modelischa как распухшая Modelica, Mojulica нынче Modia, функциональные онтологические паттерны на базе повторения .15926 editor). Февраль 2015.

Об моделирование -- https://ailev.livejournal.com/1167761.html (учёт perceived когнитивной нагрузки, а не реальной нагрузки при изучении языков моделирования). Кстати, проект EVE так и закончился ничем https://groups.google.com/forum/#!topic/eve-talk/1Yn6270TB0w (но Chris Granger продолжает работать над идеей "кодирование это не новая грамотность, а вот моделирование -- это оно" http://www.chris-granger.com/2015/01/26/coding-is-not-the-new-literacy/ в проекте табличного моделирования Looker -- https://docs.looker.com/data-modeling/learning-lookml/what-is-lookml. Интересно бы проверить гипотезу про то, что у графических языков perceived learning curve выглядит лучше, чем у текстовых. И в этом ряду из текстовых Python лучший по пиару в плане "лёгкости освоения".

Формализм для SysMoLan: что он должен поддерживать -- https://ailev.livejournal.com/1169972.html, это март 2015. SysMoLan должен помогать expression problem (поддерживать exploratory modeling, дизайн-цель "постоянные изменения модели"), должен помогать конфигурационному менеджменту в части модульности (поддерживать modeling in the large "из коробки", by design), должен помогать множественности обработок для модели (формальная прагматика, наличие не только данных, но и процедур/вычислений). Это, кстати, очень хитрый момент. Языки моделирования в этом плане не сахар, они не "исполняются" в обычном смысле -- не всё моделирование сводится к simulation. Попытки что-то такое сделать для ISO 15926 привели к встроенным в Python "языкам билдера и сёрча" в .15926 (https://github.com/TechInvestLab/dot15926), но что может быть из этой серии для SysMoLan -- неведомо. По идее, он сам себе должен быть "билдером и сёрчем". Это отсылка к заходу на создание платформы языкоориентированного онтологического программирования .15926 как stand alone DSL (а получилось всё-таки Python embedded DSL): текст 2010 года с какими-то довольно наивными, но не потерявшими актуальность за восемь лет соображениями, в языкостроении всё медленно -- https://dot15926.livejournal.com/2570.html (обсуждения шли в dot15926).

Критерии оценки софта моделирования были сформулированы ещё в 2012 году (сейчас бы нужно их обновить): https://ailev.livejournal.com/1041274.html. Как бенчмарк выполнения этих критериев -- "универсальный моделер" от Visual Paradigm, http://visual-paradigm.com/ (и тем самым добавляется ещё один способ сделать SysMoLan: как stand alone диаграммный язык на базе такого универсального коммерческого диаграммного моделера).

Проект SysMoLan был по факту приторможен в конце 2015 после неудачной попытки разобраться с теорией категорий как формального основания для языка (не удалось показать, что именно может дать теория категорий для языка, и как именно её там задействовать -- хотя в Бекасово в 2015 году такой попытке в апреле был посвящён целый день разбирательств. Но увы, не разобрались).

С тех пор много чего интересного произошло:

В 2016 вышел ArchiMate 3.0, на котором можно было моделировать физику -- https://ailev.livejournal.com/1270101.html. Появилось впечатление, что можно использовать Архимейт как заменитель SysMoLan. Эксперименты вёл Вячеслав Мизгулин в курсе моделирования концепции продукта -- http://system-school.ru/engineering и в рамках курса системной инженерии в УрФУ. Но попытка выпустить более-менее разумное соглашение о системном моделировании летом 2018 показала, что ничего не получится в силу совокупности причин. Ну, и в больших проектах сразу всё становится дико запутанно, разреженные матрицы в диаграммах не слишком хорошо выглядят -- диаграммность ArchiMate становится недостатком, а не достоинством.

В 2017 Julia и Modelica таки слились в Modia -- "инженерное моделирование в Julia", https://ailev.livejournal.com/1366789.html, август 2017. И в этом тексте было высказано предложение делать SysMoLan как встроенный в Julia DSL. И пару недель назад вышла Julia 1.0.0 -- https://ailev.livejournal.com/1440499.html

Из сегодняшних трендов для архитектурных языков нужно указать прежде всего поиск-ориентированность (https://ailev.livejournal.com/1122876.html -- там обзорчик 2014 года) и генерацию архитектур по линии дифференцируемых архитектур и нейроэволюции. И дальше думать о SysMoLan как о средстве "компьютерной поддержки полного спектра формальности мышления" https://ailev.livejournal.com/1438749.html -- но это уж совсем запредельная задача, хотя и абсолютный фронтир.


SysMoLan Studio -- https://ailev.livejournal.com/1446524.html
Онтологии и SysMoLan -- https://ailev.livejournal.com/1449992.html
Системная мереология -- https://ailev.livejournal.com/1451832.html
Методсовет по SysMoLan -- https://ailev.livejournal.com/1452502.html (2 ноября 2018)

UPDATE: обсуждение в фейсбуке -- https://www.facebook.com/ailevenchuk/posts/10213679127666523
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 25 comments