О ментальных моделях и структурах
sergey shishkinЭто "вторая косточка" в цикле комментариев к статье В. Сиротина "Программирование - это материализация идей". И она посвящена моделям и структурам.
Когда говорят о моделях, вынуждены уточнять контекст. Существуют несколько определений модели, которые можно разделить на две категории. Первая, когда под моделью понимают объект, замещающий оригинал. Вместо объекта употребляю разные термины, например, процесс или система. Вторая, когда под моделью понимают отношение между замещающим объектом и оригиналом. Различие принципиальное. Более того, даже в случае отношения, определения модели логиком, специалистом в вычислительной математике или программистом, интерпретируются с разными нюансами. А ведь ещё существуют десятки спецификаций, в зависимости от применяемых методов или предмета моделирования. Именно, поэтому, сам термин модель имеет универсальный характер и может обозначать целую парадигму и, естественно, активно концептуализируется.
Чтобы перейти к ментальным моделям, предлагаю рассмотреть "схему моделирования", предложенную автором РЕФАЛА Валентином Турчиным в его "Кибернетической онтологии действия".
![](/file/07629b0f29829e6ae4278.gif)
Там же он формулирует одно из определений модели как "семейство гомоморфизмов". А как проитерпретировать определение "ментальной модели" с позиции этой схемы? Результатом какого процесса они являются? Или "ментальные модели" для нас "черный ящик", или мы вынуждены рассмотреть их в рамках данной схемы. Более того, как признает сам автор "материализации идей", в реальном процессе, в коллективах разработчиков ПО, таких S, естественно не одно, а накладываться "отражения" могут даже у одного S. Предложенная Турчиным, схема моделирования, продуктивная для интерпретаций и на ней, например, явно можно указать, что "левые гомоморфизмы" у нас отражают онтологические аспекты, а "правые" - эпистемологию. Кстати, В. Турчин рассмотрел и последний аспект с кибернетической точки зрения, а по сути с модельно-ориентируемой позиции. С этих же позиций им написан текст "Феномен науки. Кибернетический подход к эволюции" и даже продекларирован "Кибернетический манифест". От всего этого наследия можно отказаться, но учитывать общую семантику текстов "программиста" (!) Турчина необходимо.
Теперь о классификации моделей. Тема актуальная и даже уже перезревает. Что может скрываться под понятием "структурные модели"? Разве модели не являюся, прежде всего, структурами? Даже когда "праотцы программирования" начали обобщать свою практику и выделили алгоритмы из структур данных, подчеркивали, что выделенные сущности особая категория структур. А у тех же математиков, структура - предельная категория (см. Бурбаки). А что скрывается, например, под терминологией функционального программирования? Вспомним, что даже Колмогоров сравнивал функцию с таблицей. То же с лямбдами, комбинаторами, процессами, потоками, событиям, объектами, сообщениями и выражениями. Все это, прежде всего, структуры - записи, файлы и блоки. А тогда и "структурные модели" - это как "структурные структуры". Метаструктуры?
С. А. Шишкин