Третьим шагом формального описания модели обычно является классификация – включение каждого объекта в один или несколько классов. Разумеется, чтобы приступить к классификации, необходимо сначала определить сам набор доступных нам классов.
Термин «класс» в применении к рассматриваемым в нашей книге информационным моделям означает некий символ (информационный сигнал), который используется для общего обозначения какой-либо совокупности объектов:
Рис. 4. Класс как совокупность индивидуальных объектов
Один и тот же знак может иметь разные интенсионалы – по-разному интерпретироваться в зависимости от субъекта и контекста. Например, знак «победитель при Бородино» для русского будет соответствовать Кутузову, а для француза – Наполеону. На самом деле, у знака просто нет «объективного», самостоятельного смысла или значения – им его наделяет только субъект.
Сам класс соответствует интенсионалу (идее), а его идентификатор или название – символу. При помощи этого символа мы обозначаем группу неких индивидуальных объектов, отвечающих идее, или совокупность других понятий (абстрактная идея). В простейшее определение класса не входят ни признаки, по которым мы относим к нему объекты, ни его отношения с другими классами, ни общие характеристики, которыми обладают все члены класса. Хотя вся эта информация может быть отражена в модели, например – в виде правил отнесения объектов к классам.
Сам класс соответствует интенсионалу (идее), а его идентификатор или название – символу. При помощи этого символа мы обозначаем группу неких индивидуальных объектов, отвечающих идее, или совокупность других понятий (абстрактная идея). В простейшее определение класса не входят ни признаки, по которым мы относим к нему объекты, ни его отношения с другими классами, ни общие характеристики, которыми обладают все члены класса. Хотя вся эта информация может быть отражена в модели, например – в виде правил отнесения объектов к классам.
Важно понять, что за определением класса не таится никакой «объективной», «всеобщей» идеи. Аналитик может использовать в качестве названия класса термин из обычного языка предметной области, наделив его такой прагматикой, которая оправдана в данной конкретной модели.
В самом деле, будет ли относиться к классу «собаки» фарфоровая собачка? Это целиком и полностью зависит от субъективной точки зрения, от прагматики, то есть от того, как именно мы будем использовать нашу модель. В модели, предназначенной для отработки действий при задержании подозреваемых – не будет. В модели, которую мы строим для выбора подарка на день рождения ребенку – собака может быть как живой, так и фарфоровой, и плюшевой. Таким образом, экстенсионал (именуемое, объем понятия, набор соответствующих ему объектов) одного и того же интенсионала (самого знака, понятия, принципа выделения группы объектов) варьируется в зависимости от контекста и субъекта, который его использует.
Концептуализация в мысленных моделях, и классификация – в информационных нужны для того, чтобы получить возможность формулировать знания и строить логические выводы. Для этого нужно включить в модель утверждения о классах, соответствующие арсеналу логики первого порядка. Одним из видов таких утверждений являются выражения формата «Все члены класса X являются членами класса Y» (например, «все собаки – животные»). С правилами такого рода мы познакомимся далее.
При помощи таких утверждений можно построить иерархию классов, от общих к более специфичным. Таким образом, классы образуют иерархию, или таксономию. Человек склонен максимально упрощать решение своих мыслительных задач. Поэтому естественной для нас организацией классов является простая иерархия – «дерево», в котором у каждого элемента есть только один родитель. Это ограничение естественно для людей (в особенности – для программистов), однако нужно понимать, что оно искусственно, и не имеет прагматических оснований. Практически полезной может оказаться не нормализованная иерархия, где любой класс может имеет два и более не пересекающихся надкласса.