Уровни мета-моделирования/онтологические уровни
Для того, чтобы управлять коллективным вниманием на предприятии, надо сделать его описание в виде какой-то компьютерной модели. Подобное описание разных важных принятых при организации предприятия решений (например, какие оргзвенья выполняют какие практики) называют концепцией предприятия. Покажем на этом примере описания предприятия, как работает многоуровневое моделирование.
Для каждого онтологического уровня/уровня моделирования в соседние уровни ведут две операции —моделирования/абстрагирования от модели в её метамодель и демоделирования/конкретизации/рендеринга от модели в моделируемую сущность. Мышление (а моделирование/демоделирование это познание/мышление) тут идёт всегда в двух направлениях, а не в одном: моделирования в одну сторону и демоделирования в другую. Важно не только уметь абстрагировать, не менее важно уметь конкретизировать (говорить «например», и далее приводить пример конкретизации!).
Иногда о метамоделях по отношению к моделям говорят как о языке, на котором ведётся моделирование. Если ваши объекты моделирования — это слоны, носороги, мыши и бобры, то вы делаете это в языке зверей (у вас мета-модель зверей, онтология зверей), если ваши объекты — насосы, задвижки, манометры, то вы моделируете их в языке промышленного оборудования (мета-модели промышленного оборудования, онтологии промышленного оборудования). Обратите внимание на тонкость сленга: когда говорят об использовании мета-модели, то вы моделируете «в языке», а не «на языке». «Язык» в смысле понятийная область для какой-то предметной области/domain тут — это буквально область пространства смыслов, и дальше вы «в языке» и далее «в предмете» после заземления понятий на те объекты, которым соответствуют эти понятия. А собственно «язык» как набор знаков для понятий, и поэтому выражение «на языке», тут не так важны. Так что иногда об онтологии говорят и «язык», «расскажи мне всё то же самое в языке теории категорий», то есть «в понятиях, которые присутствуют в онтологии теории категорий как предметной области». Конечно, в бытовой речи будут путаться «на языке» и «в языке», но очень часто это указание не на язык в смысле «английский или Python», а язык в смысле онтологии, набора предметов и отношений, из которых состоит мир какой-то предметной области.
Вот эти уровни мета-модели/абстракции/онтологии/типизации (и помним, что в жизни легко можно встретить и расщепление одного уровня на несколько, и объединение уровней — все границы тут условны):
- Разговор об объектах, отношениях, атрибутах, типах — это foundational ontology/теоретическая теория понятий/мета-мета-мета-модель/M4. Этот уровень редко обсуждается, это «холст, на котором рисуются онтологии», язык, в котором онтологии выражаются. M4 — это тоже более-менее традиционное обозначение для уровней мета-модели. Скажем, в стандарте MOF (meta object facility[1]) определяется возможность до десятка уровней мета-моделирования (M0-M9), хотя говорится, что на практике хватает трёх-четырёх. Об этом уровне абстракции мало кто говорит, он кажется «самим собой разумеющимся», но это совсем не так. Теорий понятий множество, их представлений в математике тоже множество, уровней формальности тут так же хватает, и в их выборе для последующего онтологического моделирования нужно как-то определиться.
- разговор о системах, практиках, агентах, представлениях пространства и времени, формах и ролях — это upper ontology/мета-мета-модель или M3. Это основной уровень, на котором формулируется знание интеллект-стека, он внепредметен/трансдисциплинарен (относится ко всем предметам/дисциплинам сразу). Системно-мыследеятельностные методологи называют upper ontology «предельной онтологией», ибо на этом языке обсуждается отношение понятий и физического мира, тут же «космология», онтология человеческого существования и человеческой деятельности, научного и системного мышления (хотя СМД-методологи отдельно не обсуждают, в каком языке мы говорим о предельной онтологии, а мы явно выделяем ещё foundational ontology). Эта онтология позволяет нам как-то по-максимуму единообразно мыслить о выраженных в языке теоретической теории понятий/foundation ontology/M4 предметных дисциплинах, чтобы собрать в мышлении результаты рассуждений по отдельным дисциплинам. Upper ontology обычно тщательно продумывается, ибо связный и непротиворечивый при рассуждениях для нескольких дисциплин набор связанных понятий даёт восхитительную скорость, мощность и безошибочность рассуждений в рамках этих дисциплин. И хотя не все дисциплины участвуют в этих рассуждениях, ибо не все дисциплины пользуются абстракциями upper ontology, в рамках дисциплин, пользующихся для своего выражения абстракциями upper ontology, мышление становится весьма и весьма мощным и реже приводит к каким-то коллизиям. Обычно курсы по трансдисциплинам для объектов upper ontology называют «фундаментальными». По большому счёту, содержание нашего курса «Интеллект-стек», который вы сейчас изучаете, тоже можно назвать «фундаментальным», поскольку тут даётся характеристика трансдисциплин, занимающихся объектами upper ontology. На этом уровне ставится множество вопросов о том, одна или несколько upper ontology достаточны, нужно ли вообще заботиться об upper ontology, а также какие там принципы моделирования мира (например, 4D экстенсионализм, или нет, могут ли быть отношения часть-целое между ментальными объектами и конструктивизм в их представлении, и т.д. — иногда это сдвигают на уровень foundational ontology, но чаще всё именно на уровне upper ontology). Когда пишем об онтологии системного подхода, она вся определяется практически на этом уровне (этой онтологии посвящен отдельный раздел курса «Практическое системное мышление»).
- разговор об объектах труда**/деятельности/практик/методов работы****— middle ontology/метаУ-модель/M2.** Это подуровень мета-модели: метаУ-модель (как задано в учебниках практик каких-то предметных областей, намеренно обобщённо). Вот эта middle ontology «из учебника», или метаУ-модель — набор типов::понятия, которые уже не касаются общей картины мира без разделения на трудовые дисциплины/практики/методы работы, но ещё и не глубоко индивидуальны для каждой конкретной практики, учитывающей её особенности. В СМД-методологии этот «уровень абстракции»/«онтологический уровень»/«уровень метаУ-модели» называют «объемлющей онтологией» (обратите внимание, что «онтологией» тут называют один из уровней «общей онтологии всего»! Каждый уровень абстракции сам по себе вполне себе «онтология», то есть формальная спецификация концептуализации) — именно он используется для того, чтобы как-то объединять рассуждения самых разных дисциплин друг с другом. Понятия операционного менеджмента тут будут представлены (работы, длительность работ) в метаУ-модели, но вот понятия конкретной школы операционного менеджмента (теория ограничений Голдратта с методами типа «барабан-буфер-верёвка» или «канбан для разработки») там вполне могут отсутствовать, это будет уже следующий онтологический уровень, менее абстрактный. Если вы встречаете какой-то учебник дисциплины/практики (например, курс «Менеджмент»), то там вам дадут именно метаУ-модель предметной области, middle ontology. Если понятия менеджмента (middleontology**) даются в языке системного мышления (upperontology****), то есть классифицируются типами** upperontology, включающей и системное мышление, то мы говорим о такой «хорошо типизированной понятиями системной онтологии дисциплине» как о «системном менеджменте» (так же можно определить системную инженерию, системный фитнес и т.д.****). Ничего из M4, M3, M2 сотрудникам предприятия, для которых вы готовите концепцию предприятия, знать не нужно, на этом «птичьем языке» им не нужно разговаривать, и это «недопущение употребления в речи слишком абстрактных понятий» — предмет отдельной заботы менеджмента. От топ-менеджмента и топ-инженеров ожидается, что они как-то владеют метаУ-моделями/M2/middle ontology. Они же обязаны как-то организовать труд людей на предприятии, поэтому должны знать примерное устройство труда в целом, должны иметь кругозор. Если вы хотите удержать в голове «труд людей» как нечто связное, вам как раз нужна middle ontology: чем больше вы знаете из неё понятий и связей из разных предметных областей, тем больше ваш кругозор. Получить его можно медленно через «насмотренность/наработанность» (неявное обучение, нейросеть как-то запоминает и применяет паттерны в жизненных ситуациях), или прохождением курсов, быстро. Наш подход: учить middle ontology явно, а не ждать много лет «естественного опыта жизни/насмотренности»!
- набор типов объектов отдельных прикладных дисциплин (domain/предметная область — это область объектов одного предмета/дисциплины) — это domain ontology/метаС-модель/M1**/модель данных в базе данных.** В СМД-методологии это «рабочая онтология». Моделирование онтики этого уровня может выполняться и сотрудниками предприятия, интеллект которых весьма ограничен — которые не могут определять эти понятия с типизацией в языке middle ontology, у которых недостаточное фундаментальное образование и не хватает кругозора. Онтика**—** это онтологическое описание предметной области, когда вы задаёте понятие для domain ontology, не присваивая тип более абстрактного уровня. Плохая практика DDD как раз работает на этом уровне мета-моделирования, не обращаясь к предыдущему: выявляет объекты предметной области, но не типизирует их типами из middle ontology. Но если вы прошли курсы по дисциплинам интеллект-стека («познали/выучили мета-мета-модель»)****, то вы сможете резко улучшить качество метаС-моделирования, задействуя не только метаУ-модели (то есть обращаясь к специальной литературе по предметной области), но и мета-мета-модель, то есть находя пропущенные объекты на стыках предметных областей, а то и просто пропущенные предметные области. Ключевой момент тут в том, что предполагается табличное, текстовое, графовое (аутлайны) моделирование, где типы объектов предприятия (метаС-модель) — это заголовки табличек, упоминания объектов в тексте (например, заголовки), какие-то наименования нелистовых узлов аутлайна. Это абсолютно понятно работникам. МетаУ-модель/middle ontology/M2, а то и непосредственно мета-мета-модель/upper ontology/M3 будут типами для этих заголовков, гарантирующими связность и полноту моделирования в масштабе всех табличек/текстов/аутлайнов (включая то, какие таблички/тексты/аутлайны необходимы: это подробно рассказывается в курсе «Методология» и дополняется в курсе «Системный менеджмент»). Для программистов метаС-модель — модель данных для базы данных (а сами данные — это просто «модель» объекта моделирования, без мета).
- Модель экземпляров объектов предприятия — операционная модель/модель/онтология экземпляров/M0/данные в **баз**е данных. Выполняется обычно рядовыми сотрудниками предприятия путём заполнения придуманных в ходе мета-моделирования табличек данными, заполнения пропущенных мест в абзацах текста, указанием листовых объектов в аутлайнах. Если вы моделируете зоопарк, то в этой модели в колонке «тигры» (в языке рабочей онтологии «звери») будет стоять «Амур» — имеется в виду конкретный тигр, который вы учитываете в зоопарке. А вот «тигр» будет отмоделирован как «зверь» из кругозорной/middle онтологии биологии, а в upper ontology, вы вряд ли найдёте подробности больше, чем «живой объект/сущность», а в foundational ontology будет «объект/сущность» (сущность/entity — «то, что существует»). Так что полная цепочка будет «сущность — живое существо — зверь — тигр — Амур» и не забываем, что в физическом мире ещё для референса/ссылки «Амур» из таблички тигров будет референт: некий протяжённый в пространстве-времени объект Амур в реальном мире.
Тем самым определение объектов в мире многоуровнево, разделено по разным командам и растянуто по времени (в случае всех уровней вместе — это могут быть десятки и сотни лет), а не проходит в один приём: «не знаю ничего про то, какие бывают объекты — о, всё уже отмоделировал, вот описание ваших объектов и отношений между ними». Нет, моделирование идёт и абстрагированием снизу вверх (присвоение типа более верхнего уровня абстракции найденному объекту более низкого уровня) и конкретизацией сверху вниз (для известного типа более высокого уровня абстракции находят объект более низкого уровня).
Если вы пришли на незнакомое вам предприятие, и знакомы с мета-мета-моделью, то вы уже многое знаете про это предприятие! Вы уже знаете, что там есть агенты, которые играют некоторые роли, выполняя работы по каким-то методам/практикам! А если знакомы с каким-то кругозором метаУ-модели (например, какие роли бывают в инженерии и менеджменте), то и вообще ваших знания о незнакомом вам предприятии могут оказаться больше, чем знания давно работающих на нём людей! Разбираться с ситуациями, в которые попадаете впервые, становится проще.