Основные понятия модели
1. Проект. Предполагается, что существует какой-то комплекс взаимосвязанных задач или исследований, которые характеризуются достаточно стабильным набором объектов исследования или мониторинга и их свойств, и что с проектом связан достаточно стабильный круг людей (пользователей), которые могут выработать соглашения о предметной области. Проект - это совокупность всех объектов, наблюдений над ними, пользователей и их прав, объявленных типов и т.д. Проект отражает представления группы людей (пользователей) о какой-либо части реального мира (предметной области). Предполагается, что все события в рамках одного проекта происходят по единому времени и для любых двух событий можно определить, какое из них произошло раньше, какое позже.
2. Пользователь. Права доступа к ресурсам системы определяются для каждого пользователя. Для каждого проекта по умолчанию создается один пользователь с ролью "Администратор", который обладает всеми правами и один с ролью "Пользователь", которому запрещено выполнять операции, связанные с администрированием.
3. Сеанс. Сеанс - это последовательность всех действий пользователя, начиная с открытия какого-либо проекта до его закрытия. В рамках одного сеанса пользователь может работать только с одним проектом. В каждый момент времени пользователь может работать только в одном сеансе.
4. Объект. Единственным свойством объектов является их различимость. Для каждого существующего в проекте объекта имеется его уникальная идентификация: каждому объекту всегда поставлено в соответствие некоторое обозначение - идентификатор, который назначается объекту при его создании. Если объект однажды создан в проекте, он не может быть удален.
5. Предопределенные объекты. Будем предполагать, что в любом проекте заранее определено некоторое множество объектов, которые соответствуют числам, строкам и другим распространенным типам данных. В то время как вновь создаваемые объекты обязательно стандартным (независимым от пользователя) образом получают уникальную идентификацию, для предопределенных объектов в качестве их идентификатора используется соответствующая последовательность символов.
6. Параметр (Атрибут). Каждому объекту может быть приписан произвольный набор параметров, описывающий представления пользователей о состоянии и поведении некоторого объекта реального мира. Параметры это то, что можно измерять, наблюдать и изменять в процессе исследований Набор параметров определяется теми задачами, для которых создается проект. Все параметры, использующиеся в проекте, должны быть предварительно объявлены. Каждый объект может иметь, вообще говоря, любой определенный в проекте параметр. В модели предусмотрено некоторое количество предопределенных параметров, которые определены для всех объектов. В качестве примера можно привести параметр "Время Создания", который автоматически фиксируется при проведении любого наблюдения (см. ниже раздел "Операции").
7. Значение. При проведении наблюдения, с рядом параметров объекта, над которым производится наблюдение, связываются значения. Значение является либо идентификатором объекта, либо значением некоторого типа (идентификатором предопределенного объекта). В любой момент времени значением параметра объекта считаются последнее значение либо запрос, присвоенные параметру ранее этого момента. Совокупность значений параметра для данного объекта может представлять собой довольно сложную структуру. Значение параметра может быть неопределенным - все параметры, не определенные для данного объекта имеют зарезервированное значение ^ (или null). Введем еще одно выделенное значение - Т. Если параметр объекта имеет такое значение, то также считается, что значение параметра не определено и, кроме того, значение параметра больше нельзя изменять. Параметр, имеющий значение Т становится "запрещенным" для данного объекта во всех последующих состояниях.
8. Изображения. Каждое значение может быть представлено для пользователя (визуализировано). Это может быть сделано многими способами, - например с помощью форматных преобразований. Рост в метрах может быть записан как 1.5 м, как +1.50 м, как 0.15е+1 м и т.д.
9. Наблюдение (Измерение). В реальном мире мы можем измерять или наблюдать какие-либо характеристики объектов. Для каждого наблюдения определено множество объектов, над которыми оно производится. В качестве значений параметров в контексте какого-либо наблюдения выступают идентификаторы объектов. В этом смысле наблюдение - это просто отношение между объектами, При этом любая связь "Параметр - Объект - Значение" имеет смысл только в контексте какого-либо наблюдения над объектом. Для того чтобы можно было обращаться к результатам наблюдения, это отношение также получает при создании идентификатор, как и любой другой объект. (В некотором смысле понятие объекта - это вырожденное наблюдение, т.е. мы наблюдаем различимость объектов. С другой стороны, наблюдение само может выступать в качестве объекта. Например, мы можем оценивать корректность того или иного наблюдения, делать выводы из значений параметров и т.п., т.е. приписывать наблюдениям какие-либо свойства.) Таким образом, наблюдение позволяет присвоить одному или нескольким параметрам некоторого объекта какие-либо значения (рис.1). Осмысленность параметров и значений для данного объекта остается целиком на совести наблюдателя.
На рисунке наблюдение представлено прямоугольником, объекты - черными кружками, связь между наблюдением и объектом, над которым оно производится - жирной стрелкой, связь между параметрами и их значениями - пунктиром.
Рис. 1.
10. Состояние. Объект в каждый момент времени характеризуется своим состоянием, которое представляет собой совокупность значений всех его параметров, зафиксированных при последних наблюдениях этого объекта, предшествующих данному моменту. Будем называть такое состояние актуальным на этот момент, или просто актуальным, если из контекста ясно о каком моменте времени идет речь. Актуальное состояние в текущий момент времени будем называть текущим состоянием. Будем считать, что пока объект не создан (пока над ним не проведено никаких наблюдений), он находится в неопределенном состоянии ^, в котором все его параметры имеют неопределенные значения ^.Для любых двух состояний объекта можно всегда определить такое, что оно предшествует обоим этим состояниям (или совпадает с одним из них). Еще одно выделенное - терминальное - состояние Т - это состояние, в котором все параметры объекта имеют значение Т. Если все параметры объекта имеют значение Т, то это эквивалентно его уничтожению. Это не означает, что с таким объектом больше ничего нельзя сделать. Объект может быть идентифицирован по какому-либо предшествующему состоянию и параметры объекта могут быть изменены. (См. рис. 2. На рисунке кружки обозначают состояния, стрелка - переход из одного состояния в другое).
Рис.2.
Рассмотрим теперь перечисленные понятия более подробно.