Как запутать аналитика. Часть третья. Глаголы и числителные

в 16:03, , рубрики: IT-стандарты, Анализ и проектирование систем, аналитика, моделирование предметной области, Проектирование и рефакторинг, Семантика

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

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

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

Мы разобрались с существительными и прилагательными. Хотелось бы так же легко разобраться с глаголами. Однако, с глаголами так просто не получается.

Сначала уточним наши представления. До сего момента мы считали наш мир статичным. Если это автомобиль, то навсегда, если он желтый, то навсегда. В реальности, конечно, все не так. Один и тот же объект учета в разное время одним и тем же субъектом может быть классифицирован по-разному. В этом заключается учет жизненного цикла объекта. Поэтому, объектами учета, которые мы моделируем в ИС, являются не объекты в целом, а их темпоральные части. Например, мы моделируем не весь автомобиль, который существовал с 1990-го по 2010-й год, а только его темпоральную часть — состояние автомобиля, когда он был желтым: с 1995-го по 1999-ый. Темпоральные части объекта учета – тоже объекты учета, Это значит, что любой объект учета может быть разделен на части, которые также являются объектами учета.

Что стоит за глаголами?

Высказывание: «Мартынов продал станок» кажется очевидным и естественным. Кто? Мартынов. Что сделал? Продал. Что продал Мартынов? Станок. Прямо, как в 6-ом классе школы. И всем кажется, что тут ничего странного в этом нет. Кажется, что субъект выполнил действие, и это нормально. Но вот вопрос: может ли субъект совершать действия? И это вопрос не философский, на который ответил Декарт. Это вопрос из области моделирования. Могу ли я строить модели, исходя из гипотезы о том, что объекты и субъекты совершают действия, например, могу ли я предполагать, что машина едет?

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

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

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

Продолжим мысленный эксперимент.

Пусть есть два хранилища моделей, в одном из которых записано: Мартынов продал станок. Во втором хранилище сказано: Гаврилов купил станок. Как объединить хранилища, чтобы было ясно, что это была одна операция?

В ООП действия моделируются методами. Создается класс, объекты которого способны что-то делать. Например, класс людей. Объекты этого класса способны продавать и покупать. И есть две записи о том, что Мартынов выполнил метод по продаже, а Гаврилов выполнил метод по покупке. Чтобы объединить эти две записи в одну, должна быть одна запись, которая выглядит с точки зрения Мартынова как исполнение метода продать, а с точки зрения Гаврилова как исполнение метода купить. Чтобы это сделать, мы можем создать метод, участниками которого сделаем Мартынова, Гаврилова и станок, классифицируем этот метод для Мартынова как продажу, а для Гаврилова – как покупку. Таким образом, мы уравняем степень участия участников операции, отказав участникам в праве что-то выполнять, заодно изобрели функциональное программирование.

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

Однажды лектор опоздал на лекцию. Было это в Японии, где опоздание – серьезное нарушение этикета. Мне было интересно, как он выкрутится, но он лишь сказал: «Я сделал все, что мог. Обстоятельства были выше меня». Так и в любой операции — мы можем мыслить кого угодно исполнителем, но на деле оказывается, что природа сильнее.

Чуть более внимательно исследуем понятие операции. Операция – это объект учета. Только в отличие от «статичных» объектов учета таких как станок, операция динамична и быстротечна. С другой стороны, в операции могут участвовать «статичные» объекты, например, Мартынов и станок. Иначе говоря, есть объект учета, частями которого являются Мартынов и станок, который трактуется автором модели как операция по продаже. Но частями операции Мартынов и станок были не полностью, а лишь частично. Операция длилась всего один час, а все участники живут гораздо дольше, поэтому в операции участвуют не Мартынов и станок, а их темпоральные части. Поэтому модель операции выглядит так: есть объект учета, трактуемый автором как операция по продаже. Этот объект учета включает в себя темпоральные части объектов учета, которые трактуются как Мартынов и станок. Темпоральная часть Мартынова, являющаяся частью объекта учета, трактуемого как операция, трактуется как исполнитель операции. Все трактовки субъективны. Такая модель операции расширяема. Если появятся ее новые трактовки, например, как покупка, или новые участники, например, Гаврилов, не составит никакого труда добавить их в модель.

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

Числовые атрибуты

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

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

  • Длины (длин волн, если вы занимаетесь волновой оптикой)
  • Частоты (частот волн, если вы радиофизик)
  • Энергии (энергий квантов, если вы занимаетесь квантовой оптикой)

Если мы говорим о шкалах и числах, то помимо эталона надо выбрать метод сравнения с этим эталоном. Например, вы можете задать вопрос: во сколько раз вон то дерево выше эталонного метра? Кажется, что в десять раз. Но это кажущаяся очевидность. На самом деле вы могли бы воспользоваться другим методом для сравнения. Например, воспользоваться логарифмической шкалой. Тогда дерево было бы выше метра в два раза.

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

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

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

Автор: Марк Мельник

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js