ГОСТ Р ИСО 13606-2—2012
Утверждения моделируются в форме дерева обобщенных выражений, состоящих из унарных пре
фиксных (например
not
р) и бинарных инфиксных (например р
and
q) операторов.
Атрибут nodo_idи пути
Атрибут
node_id
в классе
C_OBJECT
и всех его подтипах выполняет две функции:
- позволяет индивидуально идентифицироватьузлы ограничений объектов архетипа и. вчастности,
гарантирует уникальную идентификацию сестринского узла;
- является основной связью между определением архетипа (т. е. ограничениями) и онтологией архе
типа. поскольку каждый атрибут
rtode_id
является «кодом термина» вонтологии.
Наличие вархетипе атрибутов
nodejd
позволяет создавать в нем пути, указывающие каждый узел.
Расширения, специфичныедляпредметнойобласти
Главная часть модели ограничений архетипа позволяет всоответствии со стандартом архетипировать
(т. е. ограничивать) любой тип данных базовой модели с помощью регулярной последовательности объек
тов:
C_COMPLEX_OBJECT! C_ATTRIBUTE/C_PRIMITIVE_OBJECT.
Однако для описания типов данных,
соответствующихлогическим «листьям» более низких уровней, может потребоваться специальная семан
тика ограничений, которая обычно не используется при стандартном подходе. Чтобы обеспечить интегра
цию таких классов в общую модель ограничений, вводится класс
C_DOMAIN_ TYPE.
Этодает возможность
создавать особые классы «С_». унаследованные от
C_DOMAIN_ TYPE,
которые описывают пользователь
скую семантику специфических типов данных базовой модели. Например, может быть создан класс
с именем
C_QUANTITY,
имеющий семантику ограничений, отличную от используемой по умолчанию
семан тики последовательности
C_COMPLEX_OBJECT! C_ATTRIBUTE.
представляющей эти ограничения
обыч ным образом (т. е. на основе базовой модели).
Подразумеваемые
значения
Если в определения архетипов входят необязательные части, то полезно иметь возможность описы
вать «подразумеваемые» значения. Например, архетип понятия «измерение кровяногодавления» может
содержать необязательный фрагмент, описывающий положение пациента, который может принимать зна
чение «лежа», «сидя» и «стоя». Поскольку эта часть класса ENTRY является необязательной, то данные
могут быть созданы всоответствии с архетипом, не содержащим эту информацию. Однако при измерении
кровяного давления пациент не может не находиться в определенном положении, поэтому с медицинской
точки зрения разумно определить подразумеваемое или «допустимое» значение. Такое значение может
быть явно описано в определении архетипа, чтобы все пользователи или системы знали, какое значение
подразумевается втом случае, когда необязательные элементы не включены в состав данных. Подразу
меваемые значения могут быть определены только на уровне листьев и могут быть заданы в классах
C_PRIMITIVE.
Понятие подразумеваемых значений отличается от понятия «значений по умолчанию»: значения по
умолчанию присутствуют в данных, а подразумеваемые — нет.
Пакет утверждений
Утверждения представляются в архетипах на языке логики предикатов первого порядка с контролем
типов (FOL — first-order predicate logic). Они используются в двух случаях: 1) для описания ограничений
слотов архетипа: 2) для описания инвариантов в ограничениях сложных объектов. В обоих случаях они
ограничивают что-либо внутри архетипа. Ограничения внешних ресурсов, например терминологий, пред
ставляются в разделе связывания ограничений онтологии архетипа.
Конкретный синтаксисформулировокутверждений вархетипах совместим сязыком ограничений объек
тов OCL организации OMG. Утверждения в архетипе представляют собой формулировки, содержащие сле
дующие элементы.
- переменные, являющиеся именами атрибутов или путями ADL. заканчивающимися именами атри
бутов (то есть они эквивалентны свойству класса ссылок в языке программирования);
- именованные константы любого примитивного типаданных плюс типыданныхдаты и времени;
- арифметические операторы:А(показатель степени):
- операторы отношения: >, <, >=, <=. =, !=. совпадения;
- булевские операторы: not. and, or. xor:
- кванторы, применяемые к переменным контейнера: for_all (для всех), exists (существует).
Пакет примитивов
В конечном счете любое определение архетипа развертывается до конечных узлов ограничений
экземпляров примитивных типов данных. Пакет примитивов определяет семантику ограничений таких ти-
X