Еще один важный момент связан с глубиной детализации классификаций. Например, мы можем классифицировать собаку как животное, а можем построить «матрешку» с участием всех элементов биологической классификации: Животные – Хордовые – Млекопитающие – Хищные – Псовые – Волки (род) – Волк (вид) – Собака (подвид). Но будет ли такая классификация иметь практический смысл? В подавляющем большинстве случаев – нет, хотя может и иметь, например, если мы строим модель для генетических или медицинских исследований. Таким образом, при построении классификаций важно придерживаться принципа экономности, иначе говоря – отсекать при помощи «бритвы Оккама» все сущности и смыслы, наличие которых не оправдано прагматикой.
В следующих разделах мы расскажем о том, какие виды отношений можно задавать между классами, каким образом формулировать правила отнесения объектов к тем или иным классам. Такие правила выражаются при помощи логических утверждений («ни одна собака не является кошкой»), и используются в процессе получения логических выводов («Дружок – собака; значит, он не кошка»).
2.6. Описание свойств
2.6. Описание свойств
Модель, состоящая только из классов и индивидуальных объектов, имеет мало практического смысла. Мысленно оперируя объектами, мы приписываем им те или иные свойства, причем правила взаимодействия объектов почти всегда зависят от значений этих свойств. Таким образом, четвертым шагом в построении модели будет выделение свойств объектов.
В структуре наших представлений о свойстве легко выделить его основные характеристики:
- название (например, «температура по Цельсию»);
- ограничения на тип и диапазон значений (возможные значения температуры по Цельсию – вещественные числа от -273,15 до +∞);
- набор объектов, которые могут и/или должны являться носителем этого свойства (все физические тела обязательно имеют температуру, а период времени не может иметь температуры).
Связи объектов между собой тоже можно рассматривать как свойства – например, «владеет автомобилем». Эта идея достаточно естественна для нашего сознания. Ее следствием является разделение свойств на два типа. Одни служат для описания характеристик объектов, принимающих некие конкретные значения: числовые (температура, размер, длительность), строковые (название), логические (включен). Другие служат для отражения связей объектов между собой, выражая, например, информацию о том, что объект А является частью объекта Б, или что эти объекты взаимодействуют каким-то иным образом. Свойства первого вида мы назовем свойствами-литералами, второго типа – свойствами-связями.
В терминах логики свойства называются предикатами, и такое обозначение часто встречается в литературе о семантических технологиях. Для предикатов существует специальный формат записи. Так, запись ЯвляетсяДочерью (А, Б) говорит о том, что объект А связан с объектом Б отношением «является дочерью».
Принимая решение о представлении какой-либо характеристики объекта в виде свойства-литерала, следует проявлять большую осторожность. Например, в большинстве случаев будет неправильно создавать свойство «температура» для какого-либо материального объекта: значение температуры может быть зафиксировано в акте измерения, и, следовательно, может быть свойством именно объекта класса «Измерение». Исключения возможны, но должны быть обоснованы.