R3.2:13 - Разбиения, иерархии и другие деревья. полуконспект

Итак

поехали

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

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

1. отношение разбиения

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

между элементами дерева разбиения существует отношение “часть - целое”.
это важное отношение которое может существовать между физическими объектами, индивидами в мире. второе название у этого отношения “истинная часть”. сделано это для того чтобы не путать части объектов с частями описаний, классами частей для классов целого и другими использованиями слова “часть” для обозначения чего попало.
(видимо, тут речь идет за использование самого слова “часть” как знака, которым может обозначать много чего в мире, помимо настоящих частей физических объектов и индивидом. таким образом слово “часть” дополнительно дополняется/усиливается/маркируется словом “истинная”, чтобы явно подчеркнуть именно то самое отношение которое обозначает разбиение “часть-целое”). это от того что в жизни и в разных контекстах словом/знаком “часть” можно обозначить все что попало.

примеры:
хвост кота является частью кота
крыша дома является частью дома
грифель карандаша является частью карандаша.

таким способом - явным наведением внимания на часть чего-то целого, выделяют подсистемы из систем.

шариковая ручка с колпачком состоит из истинных частей: самой ручки и колпачка.
автомобиль состоит из истинных частей: самого автомобиля и колес.

и тут я оказался не прав.

дается объяснение в чем собственно не прав и как это починить

но, с примером с желудем из руководства тоже не все так однозначно:

А что не так с желудем? нормально же общались ...

для того чтобы найти и определить часть какого-то целого, надо мысленно его это самое целое разделить.
Формула разделения такая: все атомы объекта “часть Б” входят в число объекта "целое А".
если формула выдает положительный ответ, то все сходится и Б является частью А.

Альтернативные названия отношения “часть-целое”:

  • композиция,
  • входит в состав
  • вложенность

дерево разбиения построенное на базе таких отношений в обиходе выражается как "А состоит из … ".

Глубина таких разбиений больше чем 2 уровня.
такое разбиение используется в деревьях задач в проектном управлении - дерево декомпозиции задач проекта - project breakdown structure.
так же оно явно используется в конструкторской документации на изделие - дерево вложенности, дерево разбиения продукта - product breakdown structure. глубина разбиений может достигать 20+ уровней вложенности.

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

upd: это было добавлено ретроспективно, уже после того как были вставлены примеры с автомобилем

Объяснения про типовой шаблон описания

например,
снова вернемся к примеру с автомобилем где ИИ надавал мне по рукам.
нам заранее известно в части автомобиля, что каждый индивид автомобиля вот такой:

Автомобиль состоит из истинных частей:
├─ Кузова
├─ Двигателя
├─ Колесо₁, Колесо₂, Колесо₃, Колесо₄
├─ Трансмиссии
├─ Салона
└─ ... (прочие агрегаты)

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

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

Парочка объясняющих примеров таких разбиений

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

полученные описания можно далее визуализировать для наглядного представления или для презентации или для объяснения другим агентам.

даже описание в табличном формате можно выполнять несколькими вариантами.

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

2. иерархии

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

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

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

существуют деревья построенные на отношениях “подчиненный - командир”. такие иерархии могут называть “пирамида”.

иерархия феодалов:
0 король,
-1 герцог, граф,
-2 барон,
-3 рыцарь

иерархия классов классов

как дерево могут выглядеть иерархии классов классов. в таком дереве классы классов организованы в порядке “от простого к сложному”.

такое дерево можно изобразить, но описать онтологически сложно.

пример (из биологии):
экземпляры класса “род” являются надклассами экземпляров класса “вид”.

такое надо осмыслить.

Собственно, в чем тут сложность и что не так с иерархией классов классов

стеки

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

стеки строятся на отношениях “опирается на”, “основан на”, “использует”.
в технологиях стеки (стеки технологий, технологические стеки) - это иерархии (стопки) поддерживающих друг друга технологий. в стеке одна технология является фундаментом для другой технологии (поддерживает ее), а верхняя (по иерархии) технология работает с опорой на нижнюю технологию (использует, опирается). верхняя технология является надстройкой над нижней технологией.

распространенная ошибка не различать (путать) разные виды “древовидных” структур. сложно бывает с разбиениями и классификациями.
навык надежного различения вида разбиения требует тренировки и наработки. можно находить вокруг себя “деревья” которые упоминались в статье и разобраться для себя о том на каких отношениях построены окружающие вас деревья.

“систематическое” и “системное” мышления

“систематическое” (догадка: от “систематика”) мышление работает в направлении деревьев классификаторов, обобщения, определения типов объектов. мышление с использованием онтологий.

противоположное мышление “систематическому” - “хаотическое” мышление

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

противоположные варианты “системному” мышлению:

  1. “холистическое” мышление - желание видеть во всем целое, отказ от разбиения на части целого. целостное восприятие.
  2. “редукционистское” мышление - считает что у системы новых свойств не возникает. редуцирует систему к ее частям.

системное мышление способно разработать и собрать “компьютерную систему”,
способно спроектировать, создать и ввести в эксплуатацию “систему космического запуска”

такие дела.

спасибо за внимание.

время мышления письмом: ( 10 + 60 + 30 + 20 ) минут.