Skip to content

Разбиения, иерархии и другие деревья

Не всякое дерево, которое вы можете встретить в какой-то предметной области, является классификатором (таксономией). На похожей внешне картинке, где какие-то объекты организованы «сверху вниз» (или даже «снизу вверх») между уровнями могут подразумеваться другие отношения, не специализация и не классификация. Рассмотрим некоторые часто встречающиеся виды деревьев

1. Разбиения

Важнейшим инструментом для организации инженерных знаний являются «разбиения».

В деревьях разбиений отношение между уровнями – это отношение «часть — целое». Это простое и очень важное отношение в строгом смысле существует только между физическими объектами, индивидами. Его еще называют отношением «истинная часть», чтобы не путать с частями описаний, классами частей для классов целого и другими использованиями слова «часть» для обозначения чего попало.

Ножка стола в моей комнате является частью целого стола.

Моя рука является частью меня.

Именно по такому принципу из систем выделяют подсистемы, подробнее об этом тоже рассказывается в других руководствах МИМ.

На картинке выше конкретный жёлудь состоит из истинных частей – плода и шляпки.

Чтобы определить части для какого-то целого, нужно мысленно буквально разделить его на части. Мыслительный прием для проверки правильности определения этого отношения: все атомы объекта «часть X» входят в число атомов объекта «целое Y». Если да, то все верно, X — часть Y.

Отношение «часть — целое» может ещё называться «композиция», или «входить в состав», или «вложенность». Иерархия, построенная по этому отношению, в языке выражается «Х состоит из...».

Не надо думать, что по отношению часть-целое создаются простые двухуровневое разбиение.

Именно композиция определяет деревья задач в проектах (Project Breakdown Structure) в софте проектного управления, или структуры сложных изделий в софте автоматизации проектирования. Это легко может быть 10-20 уровней, а в некоторых случаях – и больше.

Иногда мы знаем что-то общее про композицию всех индивидов класса и хотим описать это общее правило композиции как отношение между классами, типовой шаблон описания индивида.

Например, мы знаем, что все самолёты состоят из фюзеляжа и крыльев. Для каждого конкретного самолёта мы можем записать это как утверждение о частях и целых (например, используя серийные номера соответствующих сборок, используемые авиастроительным заводом как уникальные идентификаторы. Но как выразить это в виде отношения классов «Самолёт», «Фюзеляж». «Крыло»? Как указать, что у самолёта обычно один фюзеляж (но бывает и два), и два крыла (но бывает и до 6)?

Простого ответа на этот вопрос нет. Разные онтологии по-разному решают вопрос выражения и записи таких соотношений, и эти способы остаются за пределами нашего вводного руководства. Вы должны научиться отличать такие модели «разбиений в классах» от моделей «разбиений индивидов», и не забывать, у чего бывает истинная композиция, а у чего - нет.

Записывать деревья разбиений можно в специальном инженерном софте, или в таблицах, как и деревья классов. Картинки можно потом строить как иллюстрации, но обязательно нужно фиксировать результаты работы в формате, допускающем обработку на компьютере.

Формировать деревья разбиений в виде таблицы можно тоже разными способами. Мы предлагаем вам указывать индивидуальные объекты в отдельных строках, при этом объекты каждого уровня - в отдельной колонке, группируя части под их целым.

Уровень 1Уровень 2Уровень 3Уровень 4Уровень 5
Стол инв. N 123
Ножки стола
Ножка N1
Ножка N2
Ножка N3
Ножка N4
Столешница
Панели
Панель N1
Панель N2
Механизм раскладывания
Рама
Пружины

Другим способом является прямое указание в отдельной колонке для каждой части её целого, но это менее наглядно. Посмотрите:

ЧастьЦелое
Стол N 123нет
Ножки столаСтол N 123
Ножка N1Ножки стола
Ножка N2Ножки стола
Ножка N3Ножки стола
Ножка N4Ножки стола
СтолешницаСтол N 123
ПанелиСтолешница
Панель N1Панели
Панель N2Панели
Механизм раскладыванияСтолешница
РамаМеханизм раскладывания
ПружиныМеханизм раскладывания

Обратите внимание – мы всегда хотя бы на верхнем уровне должны выбрать такое имя, чтобы было понятно: имеем ли мы в виду индивидуальный объект, либо типовой, стандартный объект, то есть класс индивидуальных объектов. Помним при этом, что истинное отношение композиции бывает только для индивидуальных объектов, а смысл композиции для классов – всегда нуждается в дальнейшем пояснении: обязательно ли у целого есть такие части, сколько есть таких частей, и т.п.

Замечание для системных аналитиков и программистов

Если вы заняты проектированием баз данных, разработкой моделей данных (а это то, для чего в первую очередь используется совсем формальный онтологический подход), то вы понимаете, что по дереву специализации наследуются свойства, по дереву композиции (разбиению) — свойства в основном делятся, а дерево по отношению классификации говорит «вот структура шаблонов для заполнения».

2. Иерархии

Вы можете встретить термин «иерархия» в применении к классификаторам – про них часто говорят «иерархия классов». По происхождению этот древнегреческий термин означает «управление верховного священнослужителя», и его самое общее значение – это «организация от высшего к низшему».

Иерархия классов – это действительно организация от общего к частному, от абстрактного – к более конкретному, а абстрактное считается более высокой категорией. Поэтому использования термина иерархия в этих случаях вполне корректно.

Тем не менее очень важно различать, когда увиденная вами картинка дерева подразумевает какое-то иное отношение между уровнями, не композиции, не классификации, не специализации.

Например, как на следующих картинках – деревья по отношению «подчинения-командования», классическая иерархия, вовсе не в переносном смысле.

3. Иерархии классов классов

На следующей картинке вы видите ещё один сложный пример иерархии – это организованные «от простого к сложному» классы классов. Идею этой картинки вам теперь понять легко. А вот формально описать онтологические отношения, положенные в её основу – далеко не просто. Мы лишь скажем, что эта проблема в чём-то похожа на проблему описания отношения «часть целое» для классов, проиллюстрированную выше.

Экземпляры класса «Род» являются надклассами экземпляров класса «Вид», и т.д.

Понятно ли это?

Подумайте (посмотрите в википедии): что мы считаем экземплярами класса «Род», что мы считаем экземплярами класса «Вид». Входят ли сами экземпляры класса «Род» в класс «Вид»?

Подробнее мы это обсуждать не будем.

4. Стеки

И последний тип иерархической структуры, который вы должны научиться отличать – это стек (stack, стопка). Тут диаграммы похожи на стопку подносов в столовой или стопку листов бумаги в пачке, это редко деревья, хотя на некоторых уровнях могут присутствовать несколько разных объектов (концептов).

Термин «стек» сперва появился в программировании, как название конкретной структуры данных, на чём мы останавливаться не будем.

А далее этот термин стал использоваться для обозначения иерархий по отношению «опираться», «основано на», «использует».

В основном это «технологические стеки», иерархии поддерживающих друг друга технологий. Можно говорить что это основания (фундаменты) и надстройки над ними.

Мы в МИМ описали свой подход к образованию по фундаментальным дисциплинам с помощью интеллект-стека - набора методов мышления, которые есть у сильного интеллекта, умеющего решать новые проблемы.

Сегодня мы включаем в интеллект-стек следующие опирающиеся друг на друга дисциплины (перечисление «сверху вниз»: системная инженерия, методология, риторика, этика, эстетика, познание/исследования, рациональность, логика, алгоритмика**, онтология, теория понятий, физика, математика, семантика, собранность,** понятизация**.**

Эти дисциплины составляют основу стажировок и руководств МИМ. Как вы видели (или ещё увидите), в нашем руководстве мы уже затрагиваем многое из этого набора:методологию, риторику, познание/исследования, онтологию, теорию понятий, семантику, собранность, понятизацию**.**

Вообще путать разные виды «древовидных» структур (особенно разбиения с классификациями) – одна из самых распространённых ошибок при обучении системному мышлению. Поэтому мы рекомендуем вам потренироваться сейчас, подумать над приведёнными примерами, поискать упоминаемые вокруг вас «деревья» и подумать – а по какому отношению они построены?

Запомните на будущее – есть два очень похожих слова: «систематичное» и «системное». Но означают они разное.

В самом широком смысле «систематичное мышление» - это умение видеть в мире деревья классификаторов, обобщать или специализировать, определять тип объекта. Этим мы ещё будем заниматься во время стажировки.

Умение увидеть и применять «систему типов», «систему Станиславского» или «систему законов» – это примеры использования систематического мышления.

«Системное мышление» - это умение видеть разбиения объектов на взаимодействующие части, умение видеть целое, видеть, частью какого целого на следующем уровне оно является. Как именно это делать – предмет одноименного руководства МИМ «Системное мышление».

Способность разработать «компьютерную систему» или способность спроектировать и ввести в эксплуатацию «систему космического запуска» - это примеры использования системного мышления.