3.2.1 Модель данных ИСО 15926-2
Фундаментальные понятия представлены в ИСО 15926-2 с помощью базовой концептуальной модели данных, являющейся основой для практической реализации в базе данных (с совместным доступом) или в хранилище данных. Модель данных используется вместе со справочными данными. Поддержка конкретного жизненного цикла операции зависит от использования соответствующих справочных данных вместе с рассматриваемой моделью данных (см. 4.1).
В настоящем стандарте модель языка EXPRESS ИСО 15926-2 транслируется в логику первого порядка (FOL). Каждый тип сущности транслируется в унарный предикат, каждый атрибут транслируется в бинарный предикат (см. 4.1).
3.2.2 Справочные данные ИСО/ТС 15926-4
ИСО/ТС 15926-4 содержит справочные данные, определяющие таксономию основных классов, представляющих типы данных сущностей, определенные в ИСО 15926-2.
В настоящем стандарте справочные данные рассматриваются как постоянные термины логики первого порядка. Понятие справочных данных, задающих значения типов сущности модели данных, таким образом, сводятся к понятиям достоверности представлений (первого порядка) типов сущностей ИСО 15926-2 для постоянных справочных терминов или для атрибутов ИСО 15926-2 (упорядоченных пар терминов).
Пример - Шаблон устанавливает зависимость между экземпляром насоса PUMP, идентифицирующей строкой "PU101" и типом идентификации (номер бирки) TAG NUMBER.
ClassifiedIdentification(myPump; "PU10100; TagNumber)
Указанные три термина - это справочные данные, шаблон определен в логике первого порядка.
Если практическая реализация верифицирует шаблон, то типы сущностей справочных данных проверяются путем лифтинга шаблона. Указанные справочные данные рассматриваются как постоянные. При этом результатом проверки может быть значение true или false.
3.2.3 Таксономия пользователя
Там, где таксономия ИСО/ТС 15926-4 определяет общие понятия на рисунке 1, организации (пользователю) часто бывает необходимым определить конкретные прикладные понятия. Указанные понятия определяются в форме специализаций общих понятий в таксономии ИСО/ТС 15926-4.
Пример - CP-834833 ('Модель насоса AK/150') - это специализированный класс в каталоге поставщика корпорации XYZ. Этот класс поставщика размещается в библиотеке RDL поставщика. При этом данный класс должен быть специализацией другого класса, размещенного в рассматриваемой таксономии вверх по дереву до попадания внутрь таксономии ИСО/ТС 15926-4.
3.2.4 Шаблоны
Шаблоны (см. разделы 4 и 5), определенные в настоящем стандарте и в специализациях пользователя, формируют "производные понятия" на рисунке 1.
Настоящий раздел определяет язык ИСО 15926-2 (формулировку ИСО 15926-2, стандартизованную в соответствии с форматом языка EXPRESS) в логике первого порядка. В настоящем стандарте этот язык служит для представления модели данных ИСО 15926.
В языке EXPRESS ИСО 15926-2 названия типов сущностей и атрибутов пишутся в нижнем регистре вместе с символом нижнего подчеркивания "_", разделяющем слова в названии. В языке ИСО 15926-2, типы сущностей и названия атрибутов пишутся в верхнем регистре в "горбатом" стиле. Атрибуты имеют дополнительную приставку "has". Например, тип сущности class_of_class_of_relationship поименован как ClassOfClassOfRelationship. Атрибут shape_dimension в настоящем стандарте поименован как hasShapeDimension.
В языке ИСО 15926-2 типы сущностей представляются как унарные предикаты первого порядка. Пусть a - тип сущности EXPRESS. На языке ИСО 15926-2 он представляется как
A(x)
где A(c) истинно только в том случае, если c является экземпляром a.
Атрибуты представляются на языке ИСО 15926-2 как бинарные предикаты: если r - атрибут EXPRESS, то получим:
hasR(x; y)
Интерпретация hasR(c, d) истинна только в том случае, если значением атрибута r экземпляра сущности c является величина d.
Примечание 1 - Причина добавления приставки has к атрибутам в том, что некоторые названия практической реализации EXPRESS ИСО 15926-2 используются и для типа сущности, и для атрибута. Данная приставка необходима, так как сущности и атрибуты занимают различные области имен в языке EXPRESS, но одни и те же области имен в языке ИСО 15926-2. Использование данного соглашения допускает использование непротиворечивых отображений.
В моделях языка EXPRESS "родные" типы данных обычно пишутся большими буквами, например, INTEGER. На языке ИСО 15926-2 указанные типы данных также пишутся большими буквами, например, INTEGER. Все "родные" тип данных EXPRESS, кроме LIST, должны представляться унарными предикатами. Если A - это тип данных EXPRESS, то следует писать:
A(x)
Здесь интерпретация A(c) истинна только в том случае, если c является типом данных A.
Использование атрибута LIST в ИСО 15926-2 ограничено определением типов сущностей многомерного объекта multidimensional_object и класса многомерных объектов class_of_multidimensional_object. В настоящем стандарте указанные типы рассматриваются как части определения языка шаблона. Таким образом, атрибут LIST не является предикатом языка ИСО 15926-2.
Создание подтипов среди типов сущностей языка EXPRESS представляется на языке ИСО 15926-2 с помощью условных выражений. Если a - это подтип b, то язык ИСО 15926-2 утверждает, что все a - это b:
![]() Типы сущностей ABSTRACT ИСО 15926-2 представляются на языке ИСО 15926-2 утверждением, что каждый экземпляр абстрактного типа сущности также задает значение, по крайней мере, одному ближайшему подтипу абстрактного типа сущности. Если тип сущности a - это тип ABSTRACT, а b, c и d - ближайшие подтипы a, то a - это абстрактный объект. Он представляется в логике первого порядка (FOL) следующим образом:
![]() ![]() ![]() ![]() Стандарт ИСО 10303-11 описывает утверждения типа ONEOF следующим образом.
Ограничение ONEOF утверждает, что совокупности операндов в списке ONEOF взаимно исключают друг друга; экземпляры совокупности одних операндов в списке ONEOF не могут появиться в совокупности других операндов списка ONEOF. Ограничение ONEOF может быть объединено с другими ограничениями супертипов для записи сложных ограничений. Если ограничение ONEOF является операндом в другом ограничении, то оно представляет множество экземпляров сущности - объединение совокупностей операндов списка ONEOF.
[ИСО 10303-11:2004, 9.2.5.2]
Утверждения ONEOF представляются как аксиомы непересекаемости на языке ИСО 15926-2.
Утверждения EXPRESS типа ONEOF(a, b, c) представляются следующей формулой:
![]() ![]() ![]() Атрибут EXPRESS представляется бинарным предикатом в логике первого порядка FOL. Множество допустимых значений, стоящих в первой позиции бинарного предиката, называются областью, а множество допустимых значений во второй позиции - диапазоном.
Примечание 2 - Указанные атрибуты EXPRESS часто называют ролями.
Множество типов сущности ИСО 15926-2, к которым относится атрибут, представляется на языке ИСО 15926-2 ограничением, наложенным на область бинарного предиката, представляющего рассматриваемый атрибут. Если атрибут r определен для типов сущностей a и b, то:
.Множество допустимых значений атрибута представляется на языке ИСО 15926-2 путем задания ограничения на диапазон бинарного предиката, представляющего рассматриваемый атрибут. В языке EXPRESS значения атрибутов всегда ограничиваются по отношению к данному типу сущности. Указанные ограничения представляются локальными ограничениями диапазонов на языке ИСО 15926-2. Это означает, что ограничение диапазона всегда включает ограничение области бинарного предиката.
Предположим, что r - это атрибут, значения которого ограничены типом сущности f для типа сущности a и типом сущности g для типа сущности b. Тогда на языке ИСО 15926-2 это записывается следующим образом:
![]() ![]() Каждый атрибут практической реализации EXPRESS ИСО 15926-2 имеет ограничение кардинального числа: [0,1] или [1,1]. Ограничения кардинального числа для атрибутов задаются на каждый тип сущности как для ограничений диапазона. Ограничения кардинального числа на бинарные предикаты представляются с помощью двух аксиом. Предположим, что атрибут r имеет ограничение кардинального числа [1,1] для типа сущности a. На языке ИСО 15926-2 это записывается как пара аксиом:
Формула (1) представляет собой ограничение кардинального числа [1,*). Вторая аксиома представляет собой ограничение кардинального числа [0,1]. Вместе они выражают ограничение кардинального числа [1,1]. Ограничение кардинального числа [0,1] представляется только формулой (2).
Если атрибут ограничен правилом UNIQUE языка EXPRESS, то на языке ИСО 15926-2 это представляется путем задания требования, что предикат - это обратный функционал. Если атрибут r удовлетворяет требованию UNIQUE для типа сущности A, то:
.Множество аксиом языка ИСО 15926-2 перечислено в приложении B.
Примечание 3 - С помощью блока проверки логики первого порядка FOL доказано, что рассматриваемое множество аксиом логически непротиворечиво.
Настоящий раздел определяет логические шаблоны. Данные шаблоны, в соответствии с разделом 5, дополнительно имеют подписи. В настоящем стандарте этот вопрос не рассматривается.
Для формулы
![]() где
над символами в Множество
, состоящее из множеств логических шаблонов над -
- множество логических шаблонов над - если
- множество логических шаблонов над , то - также множество логических шаблонов над - это множество названий шаблонов, определенных в S.Примечание - Интуитивное представление о рассматриваемом множестве шаблонов: чтобы гарантировать, что расширение шаблона заканчивается, нужно запретить множества циклических определений шаблонов (например, если шаблон расширяется до формулы, содержащей шаблон B, который, в свою очередь, расширяется до формулы, содержащей шаблон A). Наше определение гарантирует, что определение шаблона
может только быть добавлено к множеству шаблонов, если все шаблоны, поименованные в Пример - Множество определений
![]() это действительное множество шаблонов, а множество определений
![]() Протошаблоны являются базовой формой шаблонов. Они реализуют слой абстракции сразу над реляционными типами сущностей ИСО 15926-2 путем сокрытия конкретизированных (см. 2.1.21) отношений ИСО 15926-2.
Каждый протошаблон основывается на двух аксиомах в логике первого порядка FOL. Первая аксиома дает краткую форму реляционного типа сущности. Предикат протошаблона называется прото-тройкой (прото-триплетом).
Предположим, что R - это реляционный тип сущности в ИСО 15926-2, и что R имеет две роли: r1 и r2. Прото-тройка для R, Rtriple, определяется как:
![]() Если реляционная сущность T наследует свою роль из супертипа R, то прото-тройка TTriple определяется как:
.Предложение (бинарное) протошаблона выражает отношение между двумя заполнителями роли соответствующего реляционного типа сущности. Протошаблон для R, RTemplate, определяется как
.Аксиомы, определяющие протошаблоны для реляционных типов сущностей ИСО 15926-2, представлены в приложении C. Краткий листинг всех протошаблонов дан в приложении D.
4.3.1 entityTriple
Сказуемое entityTriple определено в разделе C.3, как дизъюнкция всех протошаблонов, данных в разделах C.1 и C.2. Данная тройка позволяет получить краткие выражения утверждений, применимых ко всем реляционным типам сущностей.
Настоящий раздел определяет порядок интерпретации диаграмм.
Класс представляется прямоугольником, разделенным пополам. Верхняя часть содержит обозначение, нижняя определяет тип сущности ИСО 15926-2 класса. Класс с обозначением A и типом сущности Class показан на рисунке 2.
![]() Рисунок 2 - Диаграмма класса
Зависимость показана двойным ромбом и соединительной линией, идущей к прямоугольнику, показывающему тип сущности и (по выбору) обозначение зависимости. Зависимость с обозначением R и тип сущности ClassOfConnectionOfIndividual показаны на рисунке 3 (справа с обозначением, слева без обозначения).
![]() Рисунок 3 - Диаграмма зависимости
Отношение (экземпляр зависимости) показывается аналогично зависимости, но с одинарным ромбом. Отношениям в общем случае не дают обозначений. На рисунке 4 показано отношение с типом сущности ConnectionOfIndividual.
![]() Рисунок 4 - Диаграмма отношения
Роли зависимостей и отношений указываются соединительными линиями с расшифровкой названия роли по ИСО 15926-2. Зависимость R типа ClassOfConnectionOfIndividual между классами A и B (класс A - в роли hasClassOfSide1, класс B - в роли hasClassOfSide2) показана на рисунке 5.
![]() Рисунок 5 - Диаграмма ролей зависимости
Кардинальное число зависимости ставится в соответствие роли с помощью соединительной линии, указывающей, какая роль соответствует end_I_cardinality, а какая - end_2_cardinality. См. рисунок 6.
![]() Рисунок 6 - Диаграмма кардинальных чисел
Для часто используемых зависимостей типа "Классификация (членство)" и "Специализация (разбиение на подклассы)" символы отношений и индикаторы ролей могут отсутствовать. Вместо них рисуют стрелки. Зависимости представляются "точечными" и "пулевидными" стрелками соответственно. На рисунке 7 представлено отношение специализации между классами A и B.
![]() Рисунок 7 - Диаграмма отношения Специализация
На рисунке 8 представлено отношение классификации индивидуального объекта a как члена класса A.
![]() Рисунок 8 - Диаграмма отношения Классификация
Шаблон должен иметь:
- название;
- неформальное текстовое объяснение надлежащего использования шаблона и его смысл;
- роли листинга подписей и типы каждого аргумента (см. 5.2);
- формальное определение в форме двухусловного выражения (двухсторонней условной зависимости) на языке шаблона.
Формальное определение шаблона должно расширяться для иллюстративных целей до паттернов (образцов) языка ИСО 15926-2 (см. 4.1). Данное определение должно быть проверено на соответствие модели данных (см. 5.4).
Шаблонные подписи должны указывать ограничение для каждой роли шаблона, для допустимого типа индивидуального объекта, заполняющего роль. Каждое ограничение роли должно задаваться унарным предикатом.
Примечание 1 - Подпись можно рассматривать как представление полного определения шаблона, в который не включены зависимости между заполнителями ролей (указателями ролей).
Шаблонные подписи важны для представления и хранения данных. Выбор ограничений (из определения шаблона) для включения в подпись определяется только соображениями практической пользы.
Примечание 2 - Дальнейшая информация о представлении шаблона в виде справочных данных приведена в разделе 8.
Шаблонная подпись описывается как упорядоченный список ролей шаблона. Каждая роль должна иметь:
a) название. Названия ролей должны быть уникальными внутри подписи;
b) допустимый тип ограничения для индивидуальных объектов, заполняющих данную роль:
1) тип сущности,
2) класс библиотеки справочных данных RDL;
3) тип данных, означающий, соответственно, что любой индивидуальный объект, заполняющий роль, 1) должен иметь заданный тип сущности, 2) классифицирован в указанном классе библиотеки RDL, 3) является экземпляром указанного типа данных.
Примечание - Каждая роль подписи задает ограничение на тип индивидуального объекта, реализующего рассматриваемую роль. Если унарные шаблоны используются в практических реализациях справочных данных, то в общем случае они не подходят для определения типов роли, даже если хранятся в библиотеке RDL в качестве классов. Именно шаблоны "пробегают" упорядоченный список индивидуальных объектов, а не индивидуальные объекты. Роль, тип которой задается унарным шаблоном, может, таким образом, быть реализована только списками, содержащими один элемент.
Специальным случаем определения шаблона является введение одного шаблона как специализированной версии другого шаблона. Пусть T обозначает трехкомпонентный шаблон с ролями, ограниченными выражениями R1, R2 и R3 и условиями "моделирования", наложенными на аргументы выражения
.Предположим, что T' - специализация T. Она содержит роль R4, ограничивающую первую роль вместо R1. Ниже приведено формальное определение T':
, , .Отсюда следует, что T' - специализированный шаблон T: каждый экземпляр T' является экземпляром T, и зависимости между индивидуальными объектами (задействованными в экземпляре) - те же, что и для T.
Примечание - Это относится только к логическому определению специализированного шаблона. Если шаблон соответствует настоящему стандарту, то требования давать пояснения и иметь подписи (см. 5.1) сохраняются.
Каждое определение шаблона должно быть проверено на выполнение ограничений, наложенных моделью данных ИСО 15926-2. Нужно удостовериться, что каждый шаблон может быть реализован способом, соответствующим требованиям языка ИСО 15926-2.
Примечание 1 - Нижеследующая процедура может быть использована для проверки того, что шаблон T удовлетворяет требованиям ИСО 15926-2.
Реализуем T с парой четко выраженных произвольных индивидуальных объектов, а затем расширим данное утверждение в соответствии с аксиомой шаблона. Расширение данного шаблона обычно требует расширения других шаблонов (любых шаблонов, появляющихся в определении T и в определениях последующих шаблонов, являющихся результатом расширения предшествующих). Выполним расширение рассматриваемого экземпляра шаблона и посмотрим, содержит ли данное расширение предикаты языка, которые не являются частью ИСО 15926-2 (то есть, посмотрим, содержатся ли в нем языковые предикаты шаблона):
- если "да", то определение шаблона обращается к предикатам, для которых формальное определение ИСО 15926-2 отсутствует и определение T является неполным;
- если "нет", то расширение экземпляра шаблона является выражением языка ИСО 15926-2. Данное выражение должно быть проверено на соответствие модели ИСО 15926-2 с помощью обобщенных методов логики первого порядка.
Успешные испытания соответствия доказывают, что рассматриваемый шаблон имеет интерпретацию в терминах модели данных ИСО 15926 и, таким образом, удовлетворяет требованиям формального критерия соответствия.
Примечание 2 - Процедура проверки соответствия поставленной цели в настоящем стандарте не рассматривается.
В данном разделе рассматриваются шаблоны, характеризующие индивидуальные объекты, в отличие от классов. Обычно данные шаблоны регистрируют информацию об одном физическом объекте.
Примечание 1 - ИСО 15926 не требует четкого разделения всей (совокупной) предметной области на индивидуальные объекты, классы, метаклассы и т.д. Соответственно, вопрос "Что такое индивидуальный объект?" не имеет четкого ответа.
В настоящем разделе рассмотрены следующие элементы справочных данных, используемые в аксиомах шаблона. Расширение языка ИСО 15926-2 происходит за счет термина индивидуального объекта. Для практических приложений шаблонов, определения которых относятся к рассматриваемому элементу, указанный элемент должен быть внесен в библиотеку справочных данных.
Таблица 1
Справочные элементы: шаблоны
индивидуальных объектов (индивид).
ActivityLocation и InvolvementSuccession - это зависимости. Соответствующие записи библиотеки RDL должны определять классы для ролей в соответствии с типом сущности hasClassOfEnd1 или hasClassOfEnd2, представляющие, соответственно, области и диапазоны указанных зависимостей.
Для ActivityLocation область и диапазон задаются справочными элементами, представляющими типы сущностей Activity и SpatialLocation, в соответствии с предназначением в части размещения операции.
Для InvolvementSuccession область и диапазон задаются справочными элементами, представляющими тип сущности InvolvementByReference.
Рассматривается шаблон классификации индивидуальных объектов (в отличие от пар индивидуальных объектов, классов или зависимостей).
ClassificationOfIndividual(a, b) означает, что a - это индивидуальный объект, b - это класс индивидуальных объектов, и a - член класса b.
В соответствии с ИСО 15926-2:
Классификация - это тип отношения, указывающего, что классифицируемый элемент является членом некоторого класса.
ClassificationOfIndividual(x1, x2)
PossibleIndividual(x1)
ClassOfIndividual(x2)
ClassificationTemplate(x1, x2)
Пример - Классификация Alfred (Альфреда) как Engineer (инженера) может быть выражена с помощью настоящего шаблона. Расширение утверждения ClassificationOfIndividual(Alfred, Person) соответствует утверждению на языке ИСО 15926-2, показанному на нижеследующей диаграмме.
Отметим, что справочные индивидуальные объекты Alfred и Engineer не определяются утверждениями шаблона. Каждый элемент может иметь более специализированный тип сущности в отличие от показанного на диаграмме.
Настоящий шаблон задает тип отношения. Это шаблон классификации. Он только классифицирует пары элементов как члены зависимостей.
ClassificationOfRelationship(a, b) означает, что a - это упорядоченная пара, b - это зависимость, и a - член b.
![]()
ClassificationOfRelationship(x1, x2)
Relationship(x1)
ClassOfRelationshipfe(x2)
ClassificationTemplate(x1, x2)
Примечание - См. также InstanceOfRelationship.
Пример - Утверждение ClassificationOfRelationship(<Alfred, ACME Co.>, Employment) расширяется на представление, структурированное в следующей диаграмме. Отметим, что:
- определение первого аргумента (спецификация типа сущности и членов упорядоченной пары) не представлено как часть утверждения шаблона;
- тип сущности Relationship является абстрактным. В надлежащей реализации настоящего шаблона упорядоченная пара имеет тип сущности, являющийся подтипом Relationship;
- использование угловых скобок, '<...,...>', для поименования упорядоченных пар, не является нормативным в настоящем стандарте.
![]() Рисунок 10 - Пример шаблона ClassificationOfRelationship
Настоящий шаблон выражает отношения, не имеющие предварительно определенного типа ИСО 15926-2. Утверждение InstanceOfRelationship(a, b, c) означает, что a - обычная зависимость, в которой аргумент b поставлен в соответствие аргументу c.
InstanceOfRelation(x1, x2, x3)
ClassOfRelationshipWithSignature(x1)
Thing(x2)
Thing(x3)
ClassificationOfRelationship(u, x1))
Примечание - Настоящий шаблон использует шаблон ClassificationOfRelationship. Если этот шаблон использует некоторую упорядоченную пару (отношение) как аргумент, классифицируемый некоторой зависимостью, то данный шаблон использует указанные элементы упорядоченной пары как аргументы. Представление указанных элементов в виде упорядоченной пары определяется аксиомой шаблона.
Пример - Пусть Alfred и ACME Co. - это экземпляры сущности Person, а Employment - заданная зависимость (то есть ClassesOfRelationshipWithSignature). Тогда экземпляр зависимости InstanceOfRelationship(Employment, Alfred, ACME Co.) расширяется на нижеследующее представление, сравнимое с тем, что показано в примере для зависимости ClassificationOfRelationship. Отметим, что:
- никакие обозначения классифицированных упорядоченных пар не определены;
- определение зависимости ClassOfRelationshipWithSignature, включающей спецификации ролей для границ зависимости, в утверждении шаблона не дается.
![]() Рисунок 11 - Пример шаблона InstanceOfRelationship
Данный шаблон обеспечивает именование элементов (things) действительными числами.
IdentificationByNumber(a, b) означает, что a - действительное число, и что a ставится в соответствие b.
IdentificationByNumber(x1, x2)
ExpressReal(x1)
Thing(x2)
ClassOfIdentificationTemplate(x1, x2)
Примечание - Настоящий шаблон - это специализированная версия ClassOfIdentificationTemplate, накладывающая ограничение на тип первого аргумента от ClassOfinformationRepresentation до его подтипа ExpressReal.
Пример - Утверждение, что число
![]() Рисунок 12 - Пример шаблона IdentificationByNumber
Настоящий шаблон задает типизированное название элемента.
ClassifiedIdentification(a, b, c) означает, что b - это строка, c - тип назначения имени, а b - имя c-типа для a.
ClassifiedIdentification(x1, x2, x3)
Thing(x1)
ExpressString(x2)
ClassOfClassOfIdentification(x3)
ClassificationTemplate(u, x3))
Пример - Утверждение ClassifiedIdentification(Alfred, PN4723, Employee No. ACME Co.) (например, присвоение номера сотруднику) расширяется следующим образом.
![]() Рисунок 13 - Пример шаблона ClassifiedIdentification
Примечание - Настоящий шаблон определяет названия элементов, а также тип (классификатор) для самих назначений. Надлежащее использование данного классификатора - представление контекста, в котором назначение имени является действительным.
Настоящий шаблон определяет место проведения операции.
LocationOfActivity(a, b) означает, что a - это операция, b - размещение, и a происходит в b.
LocationOfActivity(x1, x2)
Activity(x1)
SpatialLocation(x2)
InstanceOfRelationship(ActivityLocation, x1, x2)
Пример - Утверждение LocationOfActivity(Site Survey #23, Site No. 11) расширяется до нижеследующего представления.
![]() Рисунок 14 - Пример шаблона LocationOfActivity
Примечание - LocationOfActivity - это шаблон библиотеки RDL, так как справочный индивидуальный объект ActivityLocation (ClassOfRelationshipWithSignature) имеется в соответствующей аксиоме шаблона.
Настоящий шаблон устанавливает время начала существования индивидуального объекта (индивидуума).
BeginningOfIndividual(a, b) означает, что a - это индивидуальный объект, b - момент времени, и a начинает существовать в момент b.
BeginningOfIndividual(x1, x2)
PossibleIndividual(x1)
RepresentationOfGregorianDateAndUtcTime(x2)
ClassOfRepresentationOfThingTemplate(x2, u)
)
Настоящий шаблон задает время начала и время окончания существования индивидуального объекта.
BeginningEndOfIndividual(a, b, c) означает, что a - это индивидуальный объект, b и c - моменты времени. При этом a начинает существование в момент b и прекращает существование в момент c.
BeginningEndOfIndividual(x1, x2, x3)
PossibleIndividual(x1)
RepresentationOfGregorianDateAndUtcTime(x2)
RepresentationOfGregorianDateAndUtcTime(x3)
ClassOfRepresentationOfThingTemplate(x2, u))
ClassOfRepresentationOfThingTemplate(x3, u))
Пример - Утверждение BeginningEndOfIndividual(Survey # 23,2009-10-19,2009-10-21) расширяется до нижеследующего представления. Отметим, что обозначение экземпляра PointInTime не определено.
![]() Рисунок 15 - Пример шаблона BeginningEndOfIndividual
Настоящий шаблон служит для утверждения того, что некоторый индивидуальный объект является временной частью другого индивидуального объекта и что он инициирован в момент времени, определенный значением временной отметки.
BeginningOfTemporalPart(a, b, c) означает, что a - индивидуальный объект, b - индивидуальный объект, c - это момент времени, а также что a - это временная часть b, и a начинает существовать в момент времени c.
BeginningOfTemporalPart(x1, x2, x3)
PossibleIndividual(x1)
PossibleIndividual(x2)
RepresentationOfGregorianDateAndUtcTime(x3)
TemporalWholePartTemplate(x1, x2)
BeginningOfIndividual(x1, x3)
Настоящий шаблон указывает, где и когда выполняется операция.
BeginningEndLocationOfActivity(a, b, c, d) означает, что a - это операция, b и c - моменты времени, d - это размещение, а также что a происходит в расположении d, начинается в момент b и заканчивается в момент времени c.
BeginningEndLocationOfActivity(x1, x2, x3)
Activity(x1)
RepresentationOfGregorianDateAndUtcTime(x2)
RepresentationOfGregorianDateAndUtcTime(x3)
SpatialLocation(x4)
BeginningEndOfIndividual(x1, x2, x3)
LocationOfActivity(x1, x4)
Настоящий шаблон выражает классифицированное обладание индивидуального объекта косвенным свойством.
InstanceOfIndirectProperty(a, b, c) означает, что a - это класс ClassOfIndirectProperty, b (временная часть) - это возможный индивидуальный объект PossibleIndividual, к которому относится рассматриваемая зависимость, c - это экземпляр свойства Property. При этом b имеет тип a для класса ClassOfIndirectProperty, в котором c - это экземпляр свойства Property.
InstanceOfIndirectProperty(x1, x2, x3)
ClassOfIndirectProperty(x1)
PossibleIndividual(x2)
Property(x3)
IndirectPropertyTriple(u, x2, x3)
)
Настоящий шаблон определяет версию MagnitudeOfProperty, для которой величина представляется типом данных, а не нумерованным объектом.
RealMagnitudeOfProperty(a, b, c) означает, что a - это экземпляр Property, b - число с плавающей точкой, задающее значение свойства, а d - шкала (единица измерения).
Шаблон RealMagnitudeOfProperty(x1, x2, x3)
Property(x1)
ExpressReal(x2)
Scale(x3)
IdentificationByNumber(x2, u)
)
Настоящий шаблон назначает типизированное косвенное свойство индивидуальному объекту. Величина свойства задается действительным числом и шкалой.
IndirectPropertyScaleReal(a, b, c, d) означает, что a - это класс ClassOfIndirectProperty, b (временная часть) возможного индивидуального объекта PossibleIndividual, к которому относится данная зависимость, c - это число с плавающей точкой, задающее значение свойства, d - это шкала (единица измерения). При этом b имеет тип a для класса ClassOfIndirectProperty, имеет значение c, и d - единица измерения.
IndirectPropertyScaleReal(x1, x2, x3, x4)
ClassOfIndirectProperty(x1)
PossibleIndividual(x2)
ExpressReal(x3)
Scale(x4)
RealMagnitudeOfProperty(u, x3, x4)
)
Настоящий шаблон указывает, что утверждающее лицо назначает статус отношения.
StatusApproval(a, b, c) означает, что a - это отношение, b - это класс утверждения по статусу, c - это утверждающее лицо, назначающее величине a статус b.
StatusApproval(x1, x2, x3)
Relationship(x1)
ClassOfApprovalByStatus(x2)
PossibleIndividual(x3)
ClassificationTemplate(u, x2))
Настоящий шаблон задает следующее условие: некоторый элемент вовлечен в операцию, и тип вовлечения - классифицирован.
Примечание 1 - Настоящий шаблон также годится для слабых типов вовлечения, например, "по ссылке".
ClassifiedInvolvement(a, b, c) означает, что a - это элемент, b - это операция и c - это тип вовлечения. При этом аргумент a вовлечен в операцию b, c - это тип вовлечения.
ClassifiedInvolvement(x1, x2, x3)
Thing(x1)
Activity(x2)
ClassOfInvolvementByReference(x3)
ClassificationTemplate(u, x3))
Настоящий шаблон нужен для утверждения, что элемент вовлечен в операцию, что данное вовлечение классифицировано и имеет определенный тип и что данное вовлечение утверждено утверждающим лицом и имеет определенный статус.
InvolvementStatus(a, b, c, d, e) означает, что a - это элемент, b - операция, c - тип вовлечения, d - статус утверждения, e - утверждающее лицо. Аргумент a вовлечен в операцию b, c - тип вовлечения; операция утверждена, d - тип статуса утверждения, e - утверждающее лицо.
InvolvementStatus(x1, x2, x3, x4, x5)
Thing(x1)
Activity(x2)
ClassOfInvolvementByReference(x3)
ClassOfApprovalByStatus(x4)
PossibleIndividual(x5)
ClassificationTemplate(u, x3)
StatusApproval(u, x4, x5))
Настоящий шаблон служит для утверждения, что начало происходит в определенное время, что элемент вовлечен в операцию, вовлечение классифицировано и имеет определенный тип, вовлечение утверждено утверждающим лицом и имеет определенный статус.
InvolvementStatusBeginning(a, b, c, d, e, f) означает, что a - это элемент, b - операция, c - тип вовлечения, d - статус утверждения, e - утверждающее лицо, f - момент времени. Аргумент a вовлечен в операцию b, c - тип вовлечения, операция утверждена, d - тип статуса утверждения, e - утверждающее лицо, f - время начала операции.
InvolvementStatusBeginning(x1, x2, x3, x4, x5)
Thing(x1)
Activity(x2)
ClassOfInvolvementByReference(x3)
ClassOfApprovalByStatus(x4)
PossibleIndividual(x5)
RepresentationOfGregorianDateAndUtcTime(x6)
InvolvementStatus(x1, u, x3, x4, x5))
Настоящий шаблон указывает, что за одним вовлечением следует другое.
SuccessionOfInvolvementByReference(a, b) означает, что a - это вовлечение, b - вовлечение, и b следует за a.
Примечание - Утверждение SuccessionOfInvolvementByReference - это шаблон RDL, так как справочный индивидуальный объект InvolvementSuccession имеется в аксиоме шаблона.
SuccessionOfInvolvementByReference(x1, x2)
InvolvementByReference(x1)
InvolvementByReference(x2)
InstanceOfRelationship(InvolvementSuccession, x1, x2)
Настоящий шаблон указывает, что в некоторой операции за одним элементом, вовлеченным в данную операцию, следует другой элемент.
Примечание 1 - Здесь именно вовлеченные элементы являются аргументами шаблона, а не отношения вовлечения.
SuccessionOfInvolvementInActivity(a, b, c) означает, что a - это вовлечение, b - вовлечение, c - операция. Аргумент b следует за a, и оба они вовлечены в операцию c.
SuccessionOfInvolvementInActivity(x1, x2, x3)
Thing(x1)
Thing(x2)
Activity(x3)
InvolvementByReferenceTriple(u1, x1, x3)
InvolvementByReferenceTriple(u2, x2, x3)
SuccessionOfInvolvementByReference(u1, u2))
В данном разделе рассмотрены шаблоны, характеризующие типы сущностей. В характеристическом случае члены класса (индивидуальные объекты) или члены зависимостей (упорядоченные пары) удовлетворяют общим ограничениям.
Примечание - ИСО 15926 не требует строгого разделения на индивидуальные объекты, классы, метаклассы и т.д.
В настоящем разделе следующие элементы справочных данных используются в аксиомах шаблона. Они представляют собой расширение языка ИСО 15926-2 за счет членов индивидуальных объектов. Для практических приложений шаблонов, чьи определения относятся к указанным элементам, данные элементы должны быть занесены в библиотеку справочных данных.
Таблица 2
Справочные элементы: шаблоны классов
Справочные элементы SetOf1Class, SetOf2Classes и SetOf3Classes являются классами. Их следует использовать в качестве классификаторов, например, EnumeratedSetOfClass, классифицирующих один, два или три класса соответственно. Классы с большим кардинальным числом могут быть добавлены к справочным данным.
Примечание - Справочные элементы SetOf1Class и т.д. используются в настоящем стандарте для представления того, что все члены экземпляров типа сущности EnumeratedSetOfClass заданы явно. Для класса A EnumeratedSetOfClass, членство в этом классе A выражается отношениями классификации. Классификация A, например, SetOf3Classes, указывает, что там есть три таких члена.
Справочный индивидуальный объект EmptyClass - это класс, в котором нет членов. Семантически данный класс может быть определен как результат применения класса DifferenceOfSetOfClass к классу EnumeratedSetOfClass, содержащему только один класс (какой класс выбрать - это несущественно). См. диаграмму ниже.
![]() Рисунок 16 - Использование пустого класса EmptyClass
Примечание - На рисунке 16 экземпляр класса EnumeratedSetOfClass{a} обозначен фигурными скобками. Это означает, что его естественная интерпретация - это множество, содержащее элемент a. Данный паттерн (образец) представления названия не является обязательным.
Справочный элемент * Cardinality в настоящем стандарте представляет собой неограниченное максимальное кардинальное число.
Справочные элементы Infinity (бесконечность) и -Infinity в настоящем стандарте представляют собой положительную и отрицательную бесконечность в соответствии с требованиями определения числовых диапазонов.
Элементы End1UniversalRestriction, End2UniversalRestriction и UomSymbolAssignment - это зависимости (relations), их типы сущностей являются подтипами ClassOfRelationship. Это означает, что запись в библиотеке RDL должна назначать классы для ролей указанных элементов в соответствии с требованиями соответствующих типов сущностей. Для рассматриваемых целей достаточно указания общих требований к таким назначениям в библиотеке справочных данных RDL.
Ограничения End1UniversalRestriction и End2UniversalRestriction характеризуют отношения подзависимостей. Для каждого элемента требуются роли hasClassOfSubclass и hasClassOfSuperclass. Этим ролям назначаются справочные элементы, представляющие тип сущности ClassOfRelationship.
Сущность UomSymbolAssignment назначает символы для шкал. Требуемые роли - это hasClassOfRepresented и hasClassOfPattern. Им назначают справочные элементы, представляющие типы сущностей Scale и ExpressString, соответственно.
В соответствии с ИСО 15926 операции классов объединение, пересечение и дополнение выражаются с помощью функциональных зависимостей UnionOfSetOfClass, IntersectionOfSetOfClass и DifferenceOfSetOfClass, соответственно. Каждый экземпляр указанных типов сущностей относится к множеству классов (элемент типа EnumeratedSetOfClass) в роли hasInput и к одному классу в роли hasResult.
Пусть A - это множество классов a1, a2, ..., an. С этим классом A в роли hasInput для экземпляров UnionOfSetOfClass, IntersectionOfSetOfClass или DifferenceOfSetOfClass, роль hasResult является классом с нижеследующим определением:
- для UnionOfSetOfClass: объединение множеств в A, то есть множество элементов, принадлежащих либо a1, либо a2 и т.д.;
- для IntersectionOfSetOfClass: пересечение множеств в A, то есть множество элементов, принадлежащих одновременно и a1, и a2 и т.д.;
- для DifferenceOfSetOfClass: члены объединения множеств в A, не принадлежащих пересечению множеств в A.
Шаблоны, выражающие определения комплексных классов, включают сущности UnionOf2Classes, IntersectionOf2Classes и RelativeComplementOf2Classes.
Пример - Пусть A, B и C - это сущности типа EnumeratedSetOfClass. A - это класс, содержащий только класс MOTOR. B - это класс, содержащий классы ELECTRIC MOTOR и HYDRAULIC MOTOR. C - класс, содержащий классы PUMP и PIPE (Используя фигурные скобки, можно записать, что A - это {MOTOR}, B - это {ELECTRIC MOTOR, HYDRAULIC MOTOR}, и C - это {PUMP, PIPE}.)
Протошаблоны, поддерживающие операции с множествами, - это UnionOfSetOfClassTemplate, IntersectionOfSetOfClassTemplate и DifferenceOfSetOfClassTemplate. Ниже используются сокращенные обозначения множеств (например,
). Они дают значения второго аргумента соответствующего шаблона при условии, что X - это первый аргумент. Предполагая по умолчанию, что MOTOR - это класс моторов, получим: - класс неэлектрических моторов; - класс моторов, не являющихся электрическими или гидравлическими.Примечание - Вместе с пересечением IntersectionOfSetOfClass, тип сущности DifferenceOfSetOfClass необходим для представления общего понятия дополнения множества. (Относительное) дополнение двух множеств a и b определяется как
. Разность DifferenceOfSetOfClass множеств {a, b} - это . Пусть c обозначает данное множество. Тогда относительным дополнением множеств a и b является пересечение IntersectionOfSetOfClass {a, c}. Данное указание содержится в шаблоне RelativeComplementOf2Classes.В данном разделе показано, как сложные ограничения на классы и зависимости могут быть представлены в соответствии с настоящим стандартом.
Представление зависимости между классами C и D не означает наложения ограничений на C или на D. Покажем, как можно использовать настоящий стандарт для наложения ограничений на классы в соответствии с зависимостями, в которые могут входить члены этих классов.
Пример - Типовое множество справочных данных механического оборудования включает данные рисунка 17 (параметр "Допустимая наружная температура") и число 18 (температура по Цельсию). В соответствии с иллюстрацией, Permitted Ambient Temperature - это зависимость, включающая Equipment в его роли hasClassOfPossessor, Temperature в роли hasPropertySpace и Celsius, как шкалу, соотносящую свойство Temperature с его числовым значением.
![]() ![]() Рисунок 18 - Зависимость: температура по Цельсию
Рисунок 17 соответствует нижеследующему множеству утверждений на языке ИСО 15926-2.
ClassOfInanimatePhysicalObject(Equipment)
SinglePropertyDimension(Temperature)
ClassOfIndirectProperty(Perimitted Ambient Temperature)
hasClassOfPossessor(Permitted Ambient Temperature, Equipment)
hasPropertySpace(Permitted Ambient Temperature, Temperature)
Естественно рассматривать два направления (слева-направо и справа-налево) для такой зависимости, как Permitted Ambient Temperature, как четко выраженные направленные зависимости:
a) зависимость с областью Equipment (оборудование) и сообластью <1> Temperature (температура);
--------------------------------
<1> Термин "сообласть" - синоним термина "диапазон". Используется для ссылок на множество вторых элементов бинарной зависимости.
b) зависимость с областью Temperature и сообластью Equipment.
На каждое направление могут быть наложены различные ограничения.
Экзистенциальные ("некоторые") и универсальные ("все") ограничения представляют особый интерес для справочных данных. В обозначениях логики первого порядка FOL характеристические случаи соответствуют выражениям, представленным в нижеследующей форме, где C и D обозначают классы, а R - некоторую зависимость.
По формуле (1) каждому C поставлен в соответствие с помощью R, по крайней мере, один класс D; (2) если C ставится в соответствие с помощью R, то оно ставится в соответствие D.
Экзистенциальные ограничения указывают, что экземпляры данного класса необходимы для формирования некоторого минимального числа отношений. В соответствии с ИСО 15926 они выражаются как ограничения кардинального числа для зависимостей. В приложении к примеру на рисунке 17 паттерн (pattern) представления ограничения (1) "один ко многим" (для направления зависимости слева-направо) может иметь вид как показано на рисунке 19. Ограничение на максимальное количество поставленных в соответствие экземпляров может также быть выполнено с помощью кардинальных чисел, как показано на рисунке 20, где ограничение кардинального числа составляет 1 : 1 ("ровно 1"). Универсальные ограничения не могут быть выражены с помощью ограничений кардинального числа. ИСО 15926-2 не предоставляет для указанных ограничений необходимых примитивов. В настоящем стандарте используется общепринятое соглашение о дополнительных выразительных средствах для элементов справочных данных End1UniversalRestriction и End2UniversalRestriction. Они нужны для классификации специализаций зависимостей, при этом один элемент нужен для каждого направления отношения ClassOfRelationship (см. рисунок 21). Зависимости, к которым применяются универсальные ограничения, обычно являются подзависимостями обобщенных зависимостей. Для представления универсального ограничения специализация Specialization зависимости классифицируется сама как ограничение End2UniversalRestriction. Конструкция интерпретируется в соответствии с нижеследующим соглашением (для End1UniversalRestriction соответственно):
если специализация Specialization S, действующая из R в R', где C' - это область R', классифицирована с помощью ограничения End2UniversalRestriction, то каждая пара величин (x, y) в R, для которой выполняется C'(x), является членом R'. (3)
![]() допустимая наружная температура
![]() допустимая наружная температура
![]() Паттерн (pattern) представления классификации для специализации зависимости с помощью ограничения End2UniversalRestriction представлена на рисунке 22. В соответствии с настоящим стандартом классификация показывает, что ограничение (4) выполняется.
![]() Пример - Пример паттерна (формы представления) приведен на рисунке 23, где подзависимость (без имени) между типом двигателя Туре N Engine и диапазоном Temperature представлена как Specialization для обобщенного отношения Permitted Ambient Temperature <2>. Классифицирование сущности как универсальной означает, что каждое назначение допустимой наружной температуры Permitted Ambient Temperature для Type N Engine ограничивает свойства в диапазоне Temperature от 0 до 70 градусов Цельсия.
--------------------------------
<2> См. ИСО 15926-2, 5.2.27.6, о представлении диапазона свойств как подкласса размерности свойств.
![]() оборудование, температура
Паттерн (форма представления) ограничения лимитирует число отношений данного типа, в которые могут входить элементы данного класса. Для обобщенной зависимости R, действующей из C в D, и подкласса C' из C (см. рисунок 24), ограничения кардинального числа типа "не более, чем n", действующие по отношению к R, могут быть применены к C в соответствии с паттерном (5), который говорит, что C' может быть поставлено в соответствие (с помощью R) не более, чем n элементам.
(5)![]() Что касается универсальных ограничений, то справочные элементы ограничений End1UniversalRestriction и End2UniversalRestriction используются в настоящем стандарте, чтобы выражать ограничения типа "не более, чем n". Чтобы лимитировать число отношений R для класса C', используйте ограничения кардинального числа на подзависимости R', для которой область ограничена сущностью C'. Тогда специализация подзависимости классифицируется как универсальное ограничение паттерна (формы представления), указанного выше.
Пример - Пример паттерна ограничения типа "не более, чем n" приведен на рисунке 25. В соответствии с ним каждый член сущности C' участвует в 1 - 3 отношениях типа R'. Классификация ограничения End2UniversalRestriction гарантирует, что каждое отношение R с сущностью C в левой роли - это отношение R'. Таким образом, C' поставлено в соответствие (с помощью R) не более, чем трем D'.
![]() Рисунок 25 - Комбинирование универсальных
ограничений и кардинальных чисел
Это шаблон для классификации классов.
ClassificationOfClass(a, b) означает, что a - это класс, b - это класс классов и a - это член b.
ClassificationOfClass(x1, x2)
Class(x1)
ClassOfClass(x2)
ClassificationTemplate(x1, x2)
Пример - Типовое применение настоящего шаблона заключается в классификации классов, используемых либо специальными сущностями, либо сущностями, определенными в стандартах областей. На порядок класса ограничения не накладываются. В качестве примера классификации класса второго порядка с помощью класса третьего порядка рассмотрим "типы буровой штанги из области бурения". Можно использовать выражение ClassificationOfClass(Drilling Domain Class, Drill String Type), которое расширяется до утверждения на языке ИСО 15926-2, представленного на нижеследующей диаграмме.
![]() Рисунок 26 - Пример шаблона ClassificationOfClass
Настоящий шаблон классифицирует классы, имеющие своими членами только индивидуальные объекты.
ClassificationOfClassOfIndividual(a, b) означает, что a - это класс первого порядка, b - это класс второго порядка и a - это член b.
ClassificationOfClassOfIndividual(x1, x2)
ClassOfIndividual(x1)
ClassOfClassOfIndividual(x2)
ClassificationOfClass(x1, x2)
Примечание - Настоящий шаблон - это специализированная версия ClassificationOfClass с добавленным ограничением: первый аргумент - это класс первого порядка (ClassOfIndividual), а второй аргумент - это класс второго порядка (ClassOfClassOfIndividual).
Пример - Расширение утверждения ClassificationOfClass(Drilling Class, Drill String) показано на нижеследующей диаграмме.
![]() Рисунок 27 - Пример шаблона
ClassificationOfClassOfIndividual
Настоящий шаблон классифицирует зависимости.
ClassificationOfClassOfRelationship(a, b) означает, что a - это зависимость, b - это класс зависимостей и a - это член b.
ClassificationOfClassOfRelationship(x1, x2)
ClassOfRelationship(x1)
ClassOfClassOfRelationship(x2)
ClassificationOfClass(x1, x2)
Примечание - Настоящий шаблон - это специализированная версия утверждения ClassificationOfClass с добавленным ограничением: первый аргумент является зависимостью (ClassOfRelationship), второй аргумент - это класс зависимостей (ClassOfClassOfRelationship).
Пример - Расширение утверждения ClassificationOfClass(Shaft Seal Connection, Machinery relation) показано на нижеследующей диаграмме.
![]() Рисунок 28 - Пример шаблона
ClassificationOfClassOfRelationship
Настоящий шаблон устанавливает, что зависимость относится только к индивидуальным объектам.
RelationOfIndividualsToIndividuals(a) означает, что a - это зависимость одного из подтипов ClassOfRelationship, и что ее область и диапазон (определенные атрибутами в соответствии с типом сущности) являются классами первого порядка.
RelationOfIndividualsToIndividuals(x1)
ClassOfRelationship(x)
ClassOfIndividual(y1)
Примечание 1 - Цель настоящего унарного шаблона - выразить ограничение на зависимость. Использование дизъюнктивного шаблона entityTriple (см. приложение C.3) при определении аксиомы означает, что настоящий шаблон не подходит для представления зависимостей.
Примечание 2 - Языку шаблона не хватает выразительности для полного представления ограничения для рассматриваемого шаблона. Полное представление требует универсальной квантификации, утверждающей, что для каждого типа сущности, которому принадлежит рассматриваемое отношение субъектов, атрибуты данного отношения являются классами первого порядка. Универсальные утверждения в определениях шаблонов не рассматриваются (см. 4.2, приложение H). Шаблон дает полезную аппроксимацию, так как надлежащее ограничение удовлетворяется при условии, что рассматриваемое отношение субъектов имеет только одну пару атрибутов (то есть, имеет уникальную область и диапазон). Данное требование не содержится в ИСО 15926-2 или языках шаблона.
Пример - Расширением утверждения RelationOfIndividualToIndividuals(Shaft Seal Connection) является дизъюнктивное утверждение, что Shaft Seal Connection (соединение вала через уплотнение) принадлежит одному из подтипов отношения ClassOfRelationship с соответствующими атрибутами, заполненными элементами классов первого порядка. Данное утверждение не вполне подходит для представления одной диаграммой. Ниже приведена неформальная иллюстрация, соединительные линии не аннотированы названиями атрибутов.
![]() Рисунок 29 - Пример шаблона
RelationOfIndividualsToIndividuals
7.5.5 Шаблон SpecializationOfIndividualRelation (специализация зависимости для индивидуального объекта)
Настоящий шаблон показывает, что одна зависимость - это подзависимость другой зависимости. Она ограничена зависимостями между индивидуальными объектами.
SpecializationOfIndividualRelation(a, b) означает, что a и b - это зависимости между индивидуальными объектами и a - это подзависимость b.
SpecializationOfIndividualRelation(x1, x2)
ClassOfRelationship(x1)
ClassOfRelationship(x2)
RelationOfIndividualToIndividuals(x1)
RelationOfIndividualToIndividuals(x2)
SpecializationTemplate(x1, x2)
Пример - Расширение утверждения SpecializationOfIndividualRelation(Shatt Seal Connection, Seal Connection) - это дизъюнктивное утверждение: для сравнения см. пример утверждения RelationOfIndividualsToIndividuals. Неформальная иллюстрация приведена на нижеследующей диаграмме.
![]() Рисунок 30 - Пример шаблона
SpecializationOfIndividualRelation
Шаблон EnumeratedSetOf2Classes собирает два класса в один третий класс.
EnumeratedSetOf2Classes(a, b, c) означает, что a, b и c - это классы и a имеет только b и c своими членами.
EnumeratedSetOf2Classes(x1, x2, x3)
Class(x1)
Class(x2)
EnumeratedSetOfClass(x3)
ClassificationTemplate(x1, x3)
ClassificationTemplate(x2, x3)
ClassificationTemplate(x3, SetOf2Classes)
Примечание 1 - Порядок, в котором даются первые два аргумента является несущественным. Нумерация названий роли ("Классифицирован N 1", "Классифицирован N 2") нужна только для того, чтобы отличить одну роль от другой.
Примечание 2 - См. 7.2.1, указание о представлении, используемом в настоящем шаблоне.
Пример - Утверждение EnumeratedSetOf2Classes(Pump, Pipe, {Pump, Pipe}) расширяется на нижеследующее представление.
![]() Рисунок 31 - Пример шаблона EnumeratedSetOf2Classes
Шаблон EnumeratedSetOf2Classes собирает три класса в один четвертый.
EnumeratedSetOf2Classes(a, b, c, d) означает, что a, b, c и d - классы, и что a имеет только b, c и d своими членами.
EnumeratedSetOf3Classes(x1, x2, x3, x4)
Class(x1)
Class(x2)
Class(x3)
EnumeratedSetOfClass(x4)
ClassificationTemplate(x1, x4)
ClassificationTemplate(x2, x4)
ClassificationTemplate(x3, x4)
ClassificationTemplate(x4, SetOf3Classes)
Примечание - См. 7.2.1, дальнейшую информацию о представлении, используемом в настоящем шаблоне.
Шаблон UnionOf2Classes указывает, что один класс является объединением двух классов.
UnionOf2Classes(a, b, c) означает, что a, b и c - классы, c - это объединение a и b.
UnionOf2Classes(x1, x2, x3)
Class(x1)
Class(x2)
Class(x3)
UnionOfSetOfClassTemplate(y, x3))
Примечание - См. 7.3, дальнейшую информацию о представлении, используемом в настоящем шаблоне.
Пример - Утверждение UnionOf2Classes(Pump, Pipe, Pump
![]() Рисунок 32 - Пример шаблона UnionOf2Classes
Шаблон IntersectionOf2Classes указывает, что класс является пересечением двух классов.
IntersectionOf2Classes(a, b, c) означает, что c - это пересечение a и b.
IntersectionOf2Classes(x1, x2, x3)
Class(x1)
Class(x2)
Class(x3)
IntersectionOfSetOfClassTemplate(y, x3))
Примечание - См. 7.3, дальнейшую информацию о представлении, используемом в настоящем шаблоне.
Шаблон DifferenceOf2Classes указывает, что класс - это Difference (разность) двух классов в соответствии с ИСО 15926-2.
DifferenceOf2Classes(a, b, c) означает, что c - это разность a и b.
DifferenceOf2Classes(x1, x2, x3)
Class(x1)
Class(x2)
Class(x3)
DifferenceOfSetOfClassTemplate(y, x3))
Примечание - ИСО 15926-2 определяет разность двух классов a и b как
. См. 7.3, дальнейшую информацию о представлении, используемом в настоящем шаблоне.Шаблон RelativeComplementOf2Classes указывает, что один класс является относительным дополнением двух других классов.
RelativeComplementOf2Classes(a, b, c) означает, что c - это относительное дополнение a и b.
RelativeComplementOf2Classes(x1, x2, x3)
Class(x1)
Class(x2)
Class(x1)
IntersectionOf2Classes(x1, y, x3))
Примечание - Относительное дополнение двух классов a и b обычно обозначается как anb. См. 7.3, дальнейшую информацию о представлении, используемом в настоящем шаблоне.
Пример - Нижеследующая диаграмма показывает расширение RelativeComplementOf2Classes(a, b, a\b). Примечание: обозначения элементов {a,b},
и {a, } включены, чтобы сделать диаграмму более читабельной. В определение расширения они не включены.![]() Рисунок 33 - Пример шаблона RelativeComplementOf2Classes
Настоящий шаблон указывает, что два класса не имеют общих членов (не пересекаются).
DisjointnessOf2Classes(x,y) означает, что пересечение x и y пусто.
DisjointnessOf2Classes(x1, x2)
Class(x1)
Class(x2)
IntersectionOf2Classes(x1, x2, EmptyClass)
Примечание - См. 7.3, дальнейшую информацию о представлении, используемом в настоящем шаблоне. См. 7.2.1, описание элемента EmptyClass (пустой класс), использованного в настоящем шаблоне.
Пример - Утверждение DisjointnessOf2Classes(Pamp, Pipe, EmptyClass) расширяется до нижеследующего представления. Примечание: обозначения элемента {Pump,Pipe} включено, чтобы сделать диаграмму более читабельной. В определение расширения оно не включено.
![]() Рисунок 34 - Пример шаблона DisjointnessOf2Classes
Шаблоны SpecializationAsEnd1UniversalRestriction и SpecializationAsEnd2UniversalRestriction указывают на специализацию зависимости с силой универсального ограничения.
Указанные шаблоны имеют одинаковые роли и подобные определения, за исключением использования справочных элементов End1UniversalRestriction и End2UniversalRestriction, соответственно.
SpecializationAsEnd1UniversalRestriction означает, что a и b - это зависимости, a - это подзависимость b, зависимость специализации между a и b является членом универсального ограничения End1UniversalRestriction.
SpecializationAsEnd1UniversalRestriction(x1, x2)
ClassOfRelationship(x1)
ClassOfRelationship(x2)
ClassificationTemplate(y, End1UniversalRestriction))
SpecializationAsEnd2UniversalRestriction(x1, x2)
ClassOfRelationship(x1)
ClassOfRelationship(x2)
ClassificationTemplate(y, End2UniversalRestriction))
Примечание - Утверждение SpecializationAsEnd1UniversalRestriction(a, b) означает, что специализация b в a имеет силу универсального ограничения в классе, являющемся областью a: любая пара элементов b, в которой первый элемент является членом области в a - это член a. (соответственно утверждение SpecializationAsEnd2UniversalRestriction(a, b) ограничивает диапазон a).
См. 7.4, дальнейшую информацию о представлении, используемом в настоящем шаблоне.
Пример - Расширение утверждения SpecializationAsEnd2UniversalRestriction (Допустимая наружная температура 330A-3-874, Допустимая наружная температура) показано в нижеследующей диаграмме:
![]() Рисунок 35 - Пример шаблона
SpecializationAsEnd2UniversalRestriction
7.5.14 Шаблоны CardinalityMin, CardinalityMax, CardinalityMinMax (минимум кардинального числа, максимум кардинального числа, минимакс кардинального числа)
Шаблоны CardinalityMin, CardinalityMax и CardinalityMinMax указывают значение кардинального числа.
CardinalityMinMax(a, b, c) означает, что a - кардинальное число, b и c - целые, b - нижняя, а c - верхняя граница значений a. CardinalityMin и CardinalityMax аналогичные утверждения. Они относятся только к минимальному и, соответственно, к максимальному ограничению.
CardinalityMin
CardinalityMax
CardinalityMinMax
CardinalityMin(x1, x2)
Cardinality(x1)
INTEGER(x2)
hasMinimumCardinality(x1, x2)
CardinalityMax(x1, x2)
Cardinality(x1)
INTEGER(x2)
hasMaximumCardinality(x1, x2)
CardinalityMinMax(x1, x3, x2)
Cardinality(x1)
INTEGER(x2)
INTEGER(x3)
CardinalityMin(x1, x2)
CardinalityMax(x1, x3)
Примечание - В соответствии с ИСО 15926 кардинальные числа - это объекты первого класса. В ИСО 15926-2 указано, что отсутствие описанных минимального или максимального значений кардинального числа должно интерпретироваться как отсутствие ограничений (см. 5.2.13.1). В основе представления ИСО 15926-2 лежит логика первого порядка, с общеизвестным допущением, что и нижняя, и верхняя границы задаются явно. Если нижняя граница не задана, то она принимается равной 0. Если верхняя граница не задана, то назначается справочный элемент * Cardinality (кардинальное число) (см. 7.2.1).
Пример - Утверждение CardinalityMin(2:*, 2, * Cardinality), с нижней границей кардинального числа равной 2 и неограниченной верхней границей иллюстрируется нижеследующей диаграммой.
![]() Рисунок 36 - Пример шаблона CardinalityMinMax
Шаблоны CardinalityEnd1Min, CardinalityEnd1Max, CardinalityEnd1MinMax, CardinalityEnd1Min, CardinalityEnd1Max и CardinalityEnd1MinMax указывают ограничения кардинальных чисел для зависимостей.
CardinalityEnd1MinMax(a, b) означает, что a - это зависимость, b и c - целые, первая роль a имеет b как минимальное кардинальное число, c - как максимальное кардинальное число. Другие шаблоны настоящей группы имеют тот же паттерн.
CardinalityEnd1Min
CardinalityEnd1Max
CardinalityEnd1MinMax
CardinalityEnd2Min
CardinalityEnd1Max
CardinalityEnd1MinMax
CardinalityEnd1Min(x1, x2)
ClassOfRelationship(x1)
INTEGER(x2)
CardinalityEnd1Max(x1, x2)
ClassOfRelationship(x1)
INTEGER(x2)
CardinalityEnd1MinMax(x1, x2, x3)
ClassOfRelationship(x1)
INTEGER(x2)
INTEGER(x3)
hasEnd1Cardinality(x1, u))
CardinalityEnd2Min(x1, x2)
ClassOfRelationship(x1)
INTEGER(x2)
hasEnd2Cardinality(x1, u))
CardinalityEnd2Max(x1, x2)
ClassOfRelationship(x1)
INTEGER(x2)
hasEnd2Cardinality(x1, u))
CardinalityEnd2MinMax(x1, x2, x3)
ClassOfRelationship(x1)
INTEGER(x2)
INTEGER(x3)
hasEnd2Cardinality(x1, u))
Примечание 1 - Для неограниченных минимальных и максимальных кардинальных чисел следует назначать значения 0 и * Cardinality соответственно. См. определения шаблонов CardinalityMin и т.д. выше.
Примечание 2 - Первые и вторые роли зависимостей определены в таблице протошаблонов (см. приложение D.1).
Примечание 3 - Пусть R - это зависимость, в которой кардинальное число n1 : m1 назначено для первой роли, и кардинальное число n2 : m2 - для второй роли. Это означает, что: (1) каждому экземпляру первой роли с помощью зависимости R поставлено в соответствие минимум n2 и максимум m2 четко выраженных экземпляров второй роли; (2) каждому экземпляру второй роли поставлено в соответствие минимум n1 и максимум m1 четко выраженных экземпляров первой роли.
Пример - Утверждение CardinalityEnd1MinMax(6 M8 bolt assembly, 6, 6) дает (для болтового соединения) пример задания ограничения в соответствии с ИСО 15926-2, 4.10.3, "болтовое соединение "[t] he class of relationship with signature '6 M8 bolt assembly' имеет такое кардинальное число, что каждые 6 болтов M8 ('6 M8 bolts') в любой момент времени связаны ровно шестью отношениями с различными болтами M8". Расширение данного утверждения иллюстрируется нижеследующей диаграммой.
![]() Рисунок 37 - Пример шаблона CardinalityEnd1MinMax
Настоящий шаблон задает координаты моментов времени.
PointInTime(a, b, c, d, e, f, g) означает, что a - это представление момента времени, b, c, d, e и f - целые числа, g - действительное число. Координаты величины a задаются числом b, представляющим год, c - месяц, d - день, e - часы, f - минуты, g - секунды.
TimeRepresentation(x1, x2, x3, x4, x5, x6, x7)
RepresentationOfGregorianDateAndUtcTime(x1)
INTEGER(x2)
INTEGER(x3)
INTEGER(x4)
INTEGER(x5)
INTEGER(x1)
REAL(x7)
hasYear(x1, x2)
hasMonth(x1, x3)
hasDay(x1, x4)
hasHour(x1, x5)
hasMinute(x1, x6)
hasSecond(x1, x7)
Примечание - Настоящий шаблон задает паттерн для определения моментов времени. В то время, как у типа сущности RepresentationOfGregorian-DateAndUtcTime все атрибуты кроме hasYear (года) задаются по выбору, в данном шаблоне аргументов по выбору нет.
Шаблон MagnitudeOfProperty задает величину свойства.
MagnitudeOfProperty(a, b, c) означает, что a - это свойство, b - число, c - шкала значений, b - значение a, измеренное по шкале c.
MagnitudeOfProperty(x1, x2, x3)
Property(x1)
ArithmeticNumber(x2)
Scale(x3)
ClassificationTemplate(u, x3))
Пример - Расширение утверждения MagnitudeOfProperty(Mass 2 kg, 2, Kilogramme) иллюстрируется нижеследующей диаграммой.
![]() Рисунок 38 - Пример шаблона MagnitudeOfProperty
Шаблон LowerUpperOfNumberRange задает верхнюю и нижнюю границы числового диапазона.
LowerUpperOfNumberRange(a, b, c) означает, что a - это числовой диапазон, b и c - числа. Число b является нижней, а число c - верхней границей a.
LowerUpperOfNumberRange(x1, x2, x3)
NumberRange(x1)
ArithmeticNumber(x2)
ArithmeticNumber(x3)
LowerBoundOfNumberRangeTemplate(x2, x1)
UpperBoundOfNumberRangeTemplate(x3, x1)
Примечание - Если числовой диапазон не ограничен, то используйте справочные элементы Infinity и -Infinity (см. 7.2.1).
Пример - Расширение утверждения LowerUpperOfNumberRange([-213.1 Infinity], 273.1, Infinity) иллюстрируется нижеследующей диаграммой.
![]() Рисунок 39 - Пример шаблона LowerUpperOfNumberRange
Шаблон LowerUpperOfPropertyRange задает верхнюю и нижнюю границы диапазона свойств.
LowerUpperOfPropertyRange(a, b, c) означает, что a - это диапазон свойств, b и c - свойства. Свойство b - нижняя граница, свойство c - верхняя граница a.
LowerUpperOfPropertyRange(x1, x2, x3)
PropertyRange(x1)
Property(x2)
Property(x3)
LowerBoundOfPropertyRangeTemplate(x2, x1)
UpperBoundOfPropertyRangeTemplate(x3, x1)
Пример - Расширение утверждения LowerUpperOfPropertyRange(0 20 Fahrenheit,0 Fahrenheit, 20 Fahrenheit) иллюстрируется нижеследующей диаграммой.
![]() Рисунок 40 - Пример шаблона LowerUpperOfPropertyRange
Шаблон LowerUpperMagnitudeOfPropertyRange задает протяженность диапазона свойств в терминах максимального и минимального значений по шкале.
LowerUpperMagnitudeOfPropertyRange(a, b, c, d) означает, что a - диапазон свойств, b - шкала, c и d - числа. Величина a имеет c и d, соответственно, своими нижней и верхней границами, измеренными по шкале b.
LowerUpperMagnitudeOfPropertyRange(x1, x2, x3, x4)
PropertyRange(x1)
Scale(x2)
ArithmeticNumber(x3)
ArithmeticNumber(x4)
MagnitudeOfProperty(y1, x3, x2)
Magnitude Property(y2, x4, x2))
Пример - Расширение утверждения LowerUpperMagnitudeOfPropertyRange(-40 to 85 Celsius,Celsius,-40,85) иллюстрируется нижеследующей диаграммой. Примечание: обозначения Temperature -40° C и Temperature 85° C включены, чтобы сделать диаграмму более читабельной. В определение расширения они не входят.
![]() Рисунок 41 - Пример шаблона
LowerUpperMagnitudeOfPropertyRange
Шаблон PropertyRangeRestrictionOfClass для класса индивидуальных объектов указывает, что величина свойства ограничена диапазоном значений.
PropertyRangeRestrictionOfClass(a, b, c) означает, что a - это класс, b - зависимость между свойствами, c - диапазон свойств. Каждое назначение свойства b для a принадлежит подзависимости b, диапазон которой ограничен c.
PropertyRangeRestrictionOfClass(x1, x2, x3)
ClassOfIndividual(x1)
ClassOfIndirectProperty(x2)
PropertyRange(x3)
SpecializationAsEnd2UniversalRestriction(u, x2))
Пример - Утверждение PropertyRangeRestrictionOfClass(330A-3-874, Working Pressure, 0-300 psi) (которое может представлять утверждение "допустимое рабочее давление насосов типа 330A-3-874 находится в диапазоне от 0 до 300 фунтов на квадратный дюйм") расширяется до нижеследующего представления.
![]() Рисунок 42 - Пример шаблона PropertyRangeRestrictionOfClass
Шаблон PropertyRangeMagnitudeRestrictionOfClass задает диапазон значений свойств, применимый к классу индивидуальных объектов.
PropertyRangeMagnitudeRestrictionOfClass(a, b, c, d, e) означает, что a - это класс индивидуальных объектов, b - зависимость для свойства, c - шкала, d и e - действительные числа. Каждое свойство b имеет значение в диапазоне от d до e, измеренное по шкале c.
PropertyRangeMagnitudeRestrictionOfClass(x1, x2, x3, x4, x5)
ClassOfIndividual(x1)
ClassOfIndirectProperty(x2)
Scale(x3)
ExpressReal(x4)
ExpressReal(x5)
IdentificationByNumber(x5, y2)
LowerUpperMagnitudeOfPropertyRange(u, x3, y1, y2)))
Пример - Утверждение PropertyRangeMagnitudeRestrictionOfClass(330A-3-874, Working Pressure, pound-force per square inch, 0, 300) имеет нижеследующее расширение.
![]() Рисунок 43 - Пример шаблона
PropertyRangeMagnitudeRestrictionOfClass
Шаблон SymbolOfScale указывает, что символ представляет шкалу.
SymbolOfScale(a, b, c) означает, что a - шкала, b - строка. b - это идентификатор a, обозначенный как единица измерения.
SymbolOfScale(x1, x2)
Scale(x1)
ExpressString(x2)
ClassifiedIdentification(x1, x2, UomSymbolAssignment)
Примечание - Настоящий шаблон использует справочный элемент UomSymbolAssignment. Это зависимость, используемая для выбора символа названия. См. 7.2.2.
Пример - Расширение утверждения SymbolOfScale(Celsius,DegrC) иллюстрируется нижеследующей диаграммой.
![]() Рисунок 44 - Пример шаблона SymbolOfScale
Шаблон DimensionUnitNumberRangeOfScale задает размерность, числовой диапазон и обозначение шкалы.
DimensionUnitNumberRangeOfScale(a, b, c, d) означает, что a - это шкала, b - строка, c - размерность свойства, d - числовой диапазон, b - символ единицы измерения для шкалы, c - размерность, d - числовой диапазон шкалы.
DimensionUnitNumberRangeOfScale(x1, x2, x3, x4)
Scale(x1)
ExpressString(x2)
SinglePropertyDimension(x3)
NumberRange(x4)
SymbolOfScale(x1, x2)
ScaleТройк(x1, x4, x3)
Пример - Расширение утверждения DimensionUnitNumberRangeOfScale(Celsius, DegrC, Temperature, [-273.1 to Infinity]) иллюстрируется нижеследующей диаграммой.
![]() Рисунок 45 - Пример шаблона DimensionUnitNumberRangeOfScale
Настоящий шаблон специализирует шаблон InvolvementStatusBeginning путем наложения ограничения: элемент, вовлеченный в операцию, должен быть классом.
ClassInvolvementStatusBeginning(a, b, c, d, e, f) означает, что a - это класс, b - операция, c - тип вовлечения, d - статус утверждения, e - утверждающее лицо, f - момент времени. Объект a вовлечен в операцию b, c - тип вовлечения. Операция должна быть утверждена. d - тип статуса утверждения, e - утверждающее лицо, f - время начала операции.
ClassInvolvementStatusBeginning(x1, x2, x3, x4, x5)
Class(x1)
Activity(x2)
ClassOfInvolvementByReference(x3)
ClassOfApprovalByStatus(x4)
PossibleIndividual(x5)
RepresentationOfGregorianDateAndUtcTime(x6)
InvolvementStatusBeginning(x1, x2, x3, x4, x5, x6)
ClassInvolvementSuccession(a, b, c, d, e, f, g, h) означает, что два класса a, b вовлечены в одинаковой степени в операцию c. За вовлечением a с момента времени h происходит вовлечение b. Утверждающее лицо g назначает статус e для вовлечения a и статус f для вовлечения b.
Примечание 1 - В соответствии с ИСО 15926 классы являются неизменными (eternal class), то есть не имеющими жизненного цикла. Вместе с тем, некоторые высокоспециализированные классы могут быть пересмотрены (это тоже операция). Настоящий шаблон используется для соединения классов наследников (successor). Шаблон квалифицирует последующее вовлечение путем указания операции, утверждающего лица и отметки времени.
ClassInvolvementSuccession(x1, x2, x3, x4, x5, x6, x7, x8)
Class(x1)
Class(x2)
Activity(x3)
ClassOfInvolvementByReference(x4)
ClassOfApprovalByStatus(x5)
ClassOfApprovalByStatus(x6)
PossibleIndividual(x7)
RepresentationOfGregorianDateAndUtcTime(x8)
BeginningOfTemporalPart(u1, x3, x8)
InvolvementByReferenceTriple(u2, x1, u1)
InvolvementByReferenceTriple(u3, x2, u1)
ClassificationTemplate(u2, x4)
ClassificationTemplate(u3, x4)
StatusApproval(u2, x5, x7)
StatusApproval(u3, x6, x7)
SuccessionOfInvolvementByReference(u2, u3))
Если шаблон заносится в библиотеку справочных данных (RDL) в соответствии с ИСО 15926, то ему назначается идентификатор в соответствии с ИСО 15926. Хранение шаблона в библиотеке RDL обеспечивает эффективное совместное использование паттернов информации ИСО 15926.
В соответствии с ИСО 15926 библиотека RDL хранит справочные данные, представленные на языке ИСО 15926-2. Язык ИСО 15926-2 и языки шаблонов, используемые в настоящем стандарте для выражения аксиом шаблонов, содержат логические операторы и кванторы. Выразительная сила указанных языков не ограничивается возможностями ИСО 15926-2. Формальные требования к представлению шаблонов в библиотеке RDL ограничиваются аспектом шаблонной подписи.
Библиотечное RDL представление шаблона должно включать аксиому шаблона как аннотацию. Жесткие требования на синтаксис аксиом (превышающие стандартные требования к выражениям как формулам первого порядка в соответствии с языком ИСО 15926-2, рассматриваемым в настоящем стандарте в приложении B) не накладываются.
Если шаблон представляется как справочные данные, то он имеет тип сущности ClassOfMultidimensionalObject (по ИСО 15926-2). Экземпляры шаблонов имеют, соответственно, тип сущности MultidimensionalObject.
Шаблонная подпись, в соответствии с настоящим стандартом, является ограниченной формой объекта ClassOfMultidimensionalObject. В соответствии со спецификацией языка EXPRESS, атрибуты данного типа сущности представляют собой следующие списки: кардинальные числа, элементы по выбору, параметры, позиции параметров, роли. Из данного перечня кардинальные числа, параметры и позиции параметров для шаблонных подписей не используются. Библиотечное (RDL) представление данные атрибуты не указывают.
Требования к введению ролей в шаблон приведены в 5.2. В соответствии с требованиями RDL каждая роль представляется справочным элементом типа RoleAndDomain.
Примечание - Тип сущности RoleAndDomain определен ИСО 15926-2 следующим образом: "Сущность role_and_domain - это класс, указывающий область и роль для окончания отношения class_of_relationship или объекта class_of_multidimensional_object".
Для каждой роли ее название является обозначением элемента реквизита библиотеки RDL для типа сущности RoleAndDomain. Тип роли, служащий ограничением диапазона допустимых значений, задается ограничениями, применимыми к указанному элементу библиотеки RDL.
Роли шаблонных подписей указываются атрибутом roles в виде упорядоченного списка справочных элементов типа RoleAndDomain. Шаблон, в соответствии с настоящим стандартом, не имеет ролей по выбору. Поэтому атрибут optional_element для шаблонной подписи должен быть списком. Длина этого списка равна длине списка атрибута roles, каждый элемент которого имеет значение TRUE.
8.2.1 Роли, ограниченные конструктивами библиотеки справочных данных RDL
Каждая роль, на тип которой наложены ограничения конструктивами (конструкциями) библиотеки RDL, представляется справочным элементом с типом сущности RoleAndDomain, на реквизиты которого накладываются ограничения.
8.2.2 Роли, ограниченные только типом сущности
Настоящий стандарт допускает определение ролей шаблона, ограниченных только типом сущности. В подписи базового шаблона, таким образом, ограничивается каждая роль.
В соответствии с ИСО 15926-2 каждая роль объекта ClassOfMultidimensionalObject ограничена классом типа RoleAndDomain. Не существует требований наложения ограничений ролей непосредственно на тип сущности. Таким образом, библиотека RDL, представляющая шаблоны, определенные в соответствии с настоящим стандартом, должна задавать паттерн (форму представления) типов сущностей, таких как справочные классы RoleAndDomain. Для каждой роли, ограниченной только типом сущности, библиотека RDL должна представлять тип сущности как справочный элемент RoleAndDomain. Данное представление применяет метод "трамбования" (punning), используемый также для представления знаний ([9]).
Примечание - Настоящий подход также использован в ИСО/ТС 15926-4. В указанной части ИСО 15926 выбор типа сущности описан как выбор множества классов, используемых в качестве суперклассов для стандартизованных основных справочных классов.
(обязательное)
РЕГИСТРАЦИЯ ИНФОРМАЦИОННОГО ОБЪЕКТА
A.1 Идентификация документа
Для однозначной идентификации информационного объекта в открытой системе настоящему стандарту присвоен следующий идентификатор:
{iso standard 15926 part(7) version(I)}
Смысл идентификатора определен в ИСО/МЭК 8824-1. Описание приведено в ИСО 10303-1.
(обязательное)
Настоящее приложение содержит множество аксиом в логике первого порядка FOL, представляющих практические реализации ИСО 15926-2 на языке EXPRESS, используемые в настоящем стандарте. Результаты трансляции практической реализации ИСО 15926-2 с языка EXPRESS в настоящее представление в логике первого порядка FOL представлены в 4.1.
![]() AbstractObject(x)
Activity(x)
ActualIndividual(x)
Approval(x)
ArithmeticNumber(x)
ArrangedIndividual(x)
ArrangementOfIndividual(x)
AssemblyOfIndividual(x)
Beginning(x)
BoundaryOfNumberSpace(x)
BoundaryOfPropertySpace(x)
Cardinality(x)
CauseOfEvent(x)
Class(x)
ClassOfAbstractObject(x)
ClassOfActivity(x)
ClassOfApproval(x)
ClassOfApprovalByStatus(x)
ClassOfArrangedIndividual(x)
ClassOfArrangementOfIndividual(x)
ClassOfAssemblyOfIndividual(x)
ClassOfAssertion(x)
ClassOfAtom(x)
ClassOfBiologicalMatter(x)
ClassOfCauseOfBeginningOfClassOfIndividual(x)
ClassOfCauseOfEndingOfClassOfIndividual(x)
ClassOfClass(x)
ClassOfClassOfComposition(x)
ClassOfClassOfDefinition(x)
ClassOfClassOfDescription(x)
ClassOfClassOfIdentification(x)
ClassOfClassOfIndividual(x)
ClassOfClassOfInformationRepresentation(x)
ClassOfClassOfRelationship(x)
ClassOfClassOfRelationshipWithSignature(x)
ClassOfClassOfRelationshipWithSignature(x)
ClassOfClassOfRepresentation(x)
ClassOfClassOfRepresentationTranslation(x)
ClassOfClassOfResponsibilityForRepresentation(x)
ClassOfClassOfUsageOfRepresentation(x)
ClassOfClassification(x)
ClassOfCompositeMaterial(x)
ClassOfCompositionOfIndividual(x)
ClassOfCompound(x)
ClassOfConnectionOfIndividual(x)
ClassOfContainmentOfIndividual(x)
ClassOfDefinition(x)
ClassOfDescription(x)
ClassOfDimensionForShape(x)
ClassOfDirectConnection(x)
ClassOfEvent(x)
ClassOfExpressInformationRepresentation(x)
ClassOfFeature(x)
ClassOfFeatureWholePart(x)
ClassOfFunctionalMapping(x)
ClassOfFunctionalObject(x)
ClassOfIdentification(x)
ClassOfInanimatePhysicalObject(x)
ClassOfIndirectConnection(x)
ClassOfIndirectProperty(x)
ClassOfIndividual(x)
ClassOfIndividualUsedInConnection(x)
ClassOfInformationObject(x)
ClassOfInformationPresentation(x)
ClassOfInformationRepresentation(x)
ClassOfIntendedRoleAndDomain(x)
ClassOfInvolvementByReference(x)
ClassOfIsomorphicFunctionalMapping(x)
ClassOfLeftNamespace(x)
ClassOfLifecycleStage(x)
ClassOfMolecule(x)
ClassOfMultidimensionalObject(x)
ClassOfNamespace(x)
ClassOfNumber(x)
ClassOfOrganism(x)
ClassOfOrganization(x)
ClassOfParticipation(x)
ClassOfParticulateMaterial(x)
ClassOfPeriodInTime(x)
ClassOfPerson(x)
ClassOfPointInTime(x)
ClassOfPossibleRoleAndDomain(x)
ClassOfProperty(x)
ClassOfPropertySpace(x)
ClassOfRecognition(x)
ClassOfRelationship(x)
ClassOfRelationshipWithRelatedEnd1(x)
ClassOfRelationshipWithRelatedEnd2(x)
ClassOfRelationshipWithSignature(x)
ClassOfRelationshipWithSignature(x)
ClassOfRelativeLocation(x)
ClassOfRepresentationOfThing(x)
ClassOfRepresentationTranslation(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfRightNamespace(x)
ClassOfScale(x)
ClassOfScaleConversion(x)
ClassOfShape(x)
ClassOfShapeDimension(x)
ClassOfSpecialization(x)
ClassOfStatus(x)
ClassOfSubAtomicParticle(x)
ClassOfTemporalSequence(x)
ClassOfTemporalWholePart(x)
ClassOfUsageOfRepresentation(x)
Classification(x )
ComparisonOfProperty(x)
CompositionOfIndividual(x)
ConnectionOfIndividual(x)
ContainmentOfIndividual(x)
CoordinateSystem(x)
CrystallineStructure(x)
Definition(x)
Description(x)
DiverenceOfSetOfClass(x)
DimensionOfIndividual(x)
DimensionOfShape(x)
DirectConnection(x)
DocumentDefinition(x)
Ending(x)
EnumeratedNumberSet(x)
EnumeratedNumberSet(x)
EnumeratedPropertySet(x)
EnumeratedPropertySet(x)
EnumeratedSetOfClass(x)
Event(x)
ExpressBinary(x)
ExpressBoolean(x)
ExpressInteger(x)
ExpressLogical(x)
ExpressReal(x)
ExpressString(x)
FeatureWholePart(x)
FunctionalMapping(x)
FunctionalPhysicalObject(x)
Identification(x)
IndirectConnection(x)
IndirectProperty(x)
IndividualDimension(x)
IndividualUsedInConnection(x)
IntegerNumber(x)
IntendedRoleAndDomain(x)
IntersectionOfSetOfClass(x)
InvolvementByReference(x)
Language(x)
LeftNamespace(x)
LifecycleStage(x)
LowerBoundOfNumberRange(x)
LowerBoundOfPropertyRange(x)
MaterializedPhysicalObject(x)
MultidimensionalNumber(x)
MultidimensionalNumber(x)
MultidimensionalNumberSpace(x)
MultidimensionalNumberSpace(x)
MultidimensionalObject(x)
MultidimensionalProperty(x)
MultidimensionalProperty(x)
MultidimensionalPropertySpace(x)
MultidimensionalPropertySpace(x)
MultidimensionalScale(x)
MultidimensionalScale(x)
Namespace(x)
NumberRange(x)
NumberSpace(x)
OtherRelationship(x)
ParticipatingRoleAndDomain(x)
ParticipatingRoleAndDomain(x)
Participation(x)
PeriodInTime(x)
Phase(x)
PhysicalObject(x)
PointInTime(x)
PossibleIndividual(x)
PossibleRoleAndDomain(x)
Property(x)
PropertyForShapeDimension(x)
PropertyQuantification(x)
PropertyRange(x)
PropertySpace(x)
PropertySpaceForClassOfShapeDimension(x)
RealNumber(x)
Recognition(x)
Relationship(x)
RelativeLocation(x)
RepresentationForm(x)
RepresentationOfGregorianDateAndUtcTime(x)
RepresentationOfThing(x)
ResponsibilityForRepresentation(x)
RightNamespace(x)
Role(x)
RoleAndDomain(x)
Scale(x)
Shape(x)
ShapeDimension(x)
SinglePropertyDimension(x)
SpatialLocation(x)
Specialization(x)
SpecializationByDomain(x)
SpecializationByRole(x)
SpecializationOfIndividualDimensionFromProperty(x)
Status(x)
Stream(x)
TemporalBounding(x)
TemporalSequence(x)
TemporalWholePart(x)
UnionOfSetOfClass(x)
UpperBoundOfNumberRange(x)
UpperBoundOfPropertyRange(x)
UsageOfRepresentation(x)
WholeLifeIndividual(x)
AbstractObject(x)
ClassOfAbstractObject(x)
(ClassOfClass(x)
ClassOfConnectionOfIndividual(x)
ClassOfExpressInformationRepresentation(x)
ExpressInteger(x)
Namespace(x)
Relationship(x)
Classification(x)
FunctionalMapping(x)
IntendedRoleAndDomain(x)
PossibleRoleAndDomain(x)
ResponsibilityForRepresentation(x)
TemporalBounding(x)
Thing(x)
ClassOfFunctionalObject(x)
ClassOfInformationRepresentation(x)
ClassOfSubAtomicParticle(x)
ClassOfFunctionalObject(x)
ClassOfInformationRepresentation(x)
ClassOfSubAtomicParticle(x)
ClassOfInformationPresentation(x)
ClassOfParticulateMaterial(x)
ClassOfInformationRepresentation(x)
ClassOfSubAtomicParticle(x)
ClassOfInformationRepresentation(x)
ClassOfSubAtomicParticle(x)
ClassOfParticulateMaterial(x)
ClassOfSubAtomicParticle(x)
CrystallineStructure(x)
ClassOfNumber(x)
ClassOfPropertySpace(x)
ClassOfShapeDimension(x)))
ShapeDimension(x)))
ClassOfClassOfRepresentation(x)
ClassOfClassOfResponsibilityForRepresentation(x)
ClassOfDimensionForShape(x)
PropertySpaceForClassOfShapeDimension(x)))
ClassOfClassOfRepresentationTranslation(x)
ClassOfClassOfUsageOfRepresentation(x)
ClassOfScale(x)
ClassOfClassOfResponsibilityForRepresentation(x)
ClassOfDimensionForShape(x)
PropertySpaceForClassOfShapeDimension(x)))
ClassOfClassOfUsageOfRepresentation(x)
ClassOfScale(x)
ClassOfDimensionForShape(x)
PropertySpaceForClassOfShapeDimension(x)))
ClassOfScale(x)
PropertySpaceForClassOfShapeDimension(x)))
PropertySpaceForClassOfShapeDimension(x)))
ExpressReal(x)))
Status(x)))
Property(x)
ClassOfCauseOfBeginningOfClassOfIndividual(x)
ClassOfClassification(x)
ClassOfFunctionalMapping(x)
ClassOfIntendedRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x)
ClassOfRelativeLocation(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfCauseOfBeginningOfClassOfIndividual(x)
ClassOfClassification(x)
ClassOfFunctionalMapping(x)
ClassOfIntendedRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x)
ClassOfRelativeLocation(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfRelationshipWithSignature(x)
ClassOfRepresentationTranslation(x)
ClassOfSpecialization(x)
DimensionOfIndividual(x)
ClassOfCauseOfEndingOfClassOfIndividual(x)
ClassOfCompositionOfIndividual(x)
ClassOfFunctionalMapping(x)
ClassOfIntendedRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x)
ClassOfRelativeLocation(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfCompositionOfIndividual(x)
ClassOfFunctionalMapping(x)
ClassOfIntendedRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x)
ClassOfRelativeLocation(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfConnectionOfIndividual(x)
ClassOfIndividualUsedInConnection(x)
ClassOfInvolvementByReference(x)
ClassOfRecognition(x)
ClassOfRepresentationOfThing(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfFunctionalMapping(x)
ClassOfIntendedRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x)
ClassOfRelativeLocation(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfIndirectProperty(x)
ClassOfIntendedRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x)
ClassOfRelativeLocation(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfIndividualUsedInConnection(x)
ClassOfInvolvementByReference(x)
ClassOfRecognition(x)
ClassOfRepresentationOfThing(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfIntendedRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x)
ClassOfRelativeLocation(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfInvolvementByReference(x)
ClassOfRecognition(x)
ClassOfRepresentationOfThing(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfLifecycleStage(x)
ClassOfRelationshipWithSignature(x)
ClassOfRepresentationTranslation(x)
ClassOfSpecialization(x)
DimensionOfIndividual(x)
ClassOfPossibleRoleAndDomain(x)
ClassOfRelativeLocation(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfRecognition(x)
ClassOfRepresentationOfThing(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfRelativeLocation(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfRepresentationOfThing(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfRepresentationOfThing(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfSpecialization(x)
DimensionOfIndividual(x)
ClassOfUsageOfRepresentation(x)
DimensionOfIndividual(x)
PropertyForShapeDimension(x)))
MultidimensionalScale(x)))
MultidimensionalProperty(x)
ComparisonOfProperty(x)
FunctionalMapping(x)
IntendedRoleAndDomain(x)
PossibleRoleAndDomain(x)
ResponsibilityForRepresentation(x)
ComparisonOfProperty(x)
FunctionalMapping(x)
IntendedRoleAndDomain(x)
PossibleRoleAndDomain(x)
ResponsibilityForRepresentation(x)
CompositionOfIndividual(x)
IndividualUsedInConnection(x)
LifecycleStage(x)
RelativeLocation(x)
TemporalSequence(x)
FunctionalMapping(x)
IntendedRoleAndDomain(x)
PossibleRoleAndDomain(x)
ResponsibilityForRepresentation(x)
FunctionalMapping(x)
IntendedRoleAndDomain(x)
PossibleRoleAndDomain(x)
ResponsibilityForRepresentation(x)
IndirectProperty(x)
InvolvementByReference(x)
Recognition(x)
Specialization(x)
IndividualUsedInConnection(x)
LifecycleStage(x)
RelativeLocation(x)
TemporalSequence(x)
IntendedRoleAndDomain(x)
PossibleRoleAndDomain(x)
ResponsibilityForRepresentation(x)
InvolvementByReference(x)
Recognition(x)
Specialization(x)
LifecycleStage(x)
RelativeLocation(x)
TemporalSequence(x)
PossibleRoleAndDomain(x)
ResponsibilityForRepresentation(x)
Recognition(x)
Specialization(x)
RelativeLocation(x)
TemporalSequence(x)
RepresentationOfThing(x)
TemporalSequence(x)
ResponsibilityForRepresentation(x)
Specialization(x)
Specialization(x)
TemporalSequence(x)
UsageOfRepresentation(x)))
SpecializationByRole(x)
SpecializationOfIndividualDimensionFromProperty(x)))
SpecializationOfIndividualDimensionFromProperty(x)))
hasApproved(x; y)
Approval(x)
Approval(x)
Approval(x)
hasApprover(x; y)
Approval(x)
Approval(x)
Approval(x)
hasCardinalities(x; y)
ClassOfMultidimensionalObject(x)
hasCaused(x; y)
CauseOfEvent(x)
CauseOfEvent(x)
CauseOfEvent(x)
hasCauser(x; y)
CauseOfEvent(x)
CauseOfEvent(x)
CauseOfEvent(x)
hasClassOfApproved(x; y)
ClassOfApproval(x)
ClassOfApproval(x)
ClassOfApproval(x)
hasClassOfApprover(x; y)
ClassOfApproval(x)
ClassOfApproval(x)
ClassOfApproval(x)
hasClassOfBegun(x; y)
ClassOfCauseOfBeginningOfClassOfIndividual(x)
ClassOfCauseOfBeginningOfClassOfIndividual(x)
ClassOfCauseOfBeginningOfClassOfIndividual(x)
hasClassOfCauser(x; y)
(ClassOfCauseOfBeginningOfClassOfIndividual(x)
ClassOfCauseOfBeginningOfClassOfIndividual(x)
ClassOfCauseOfBeginningOfClassOfIndividual(x)
ClassOfCauseOfBeginningOfClassOfIndividual(x)
ClassOfCauseOfEndingOfClassOfIndividual(x)
ClassOfCauseOfEndingOfClassOfIndividual(x)
ClassOfCauseOfEndingOfClassOfIndividual(x)
hasClassOfClassOfControlled(x; y)
ClassOfClassOfResponsibilityForRepresentation(x)
ClassOfClassOfRepresentation(y)
ClassOfClassOfResponsibilityForRepresentation(x)
ClassOfClassOfResponsibilityForRepresentation(x)
hasClassOfClassOfControlled(x; z)
hasClassOfClassOfPart(x; y)
ClassOfClassOfComposition(x)
ClassOfClassOfComposition(x)
ClassOfClassOfComposition(x)
hasClassOfClassOfUsed(x; y)
ClassOfClassOfUsageOfRepresentation(x)
ClassOfClassOfRepresentation(y)
ClassOfClassOfUsageOfRepresentation(x)
ClassOfClassOfUsageOfRepresentation(x)
hasClassOfClassOfWhole(x; y)
ClassOfClassOfComposition(x)
ClassOfClassOfComposition(x)
ClassOfClassOfComposition(x)
ClassOfNamespace(x)
ClassOfNamespace(x)
ClassOfNamespace(x)
hasClassOfClassified(x; y)
ClassOfClassification(x)
ClassOfClassification(x)
ClassOfClassification(x)
hasClassOfClassifier(x; y)
ClassOfClassification(x)
ClassOfClassification(x)
ClassOfClassification(x)
hasClassOfConnection(x; y)
ClassOfIndividualUsedInConnection(x)
ClassOfIndividualUsedInConnection(x)
ClassOfIndividualUsedInConnection(x)
hasClassOfControlled(x; y)
ClassOfResponsibilityForRepresentation(x)
ClassOfRepresentationOfThing(y)
ClassOfResponsibilityForRepresentation(x)
ClassOfResponsibilityForRepresentation(x)
hasClassOfDimension(x; y)
ClassOfDimensionForShape(x)
ClassOfDimensionForShape(x)
ClassOfDimensionForShape(x)
hasClassOfEnd1(x; y)
ClassOfRelationshipWithSignature(x)
ClassOfRelationshipWithSignature(x)
hasClassOfEnd2(x; y)
ClassOfRelationshipWithSignature(x)
ClassOfRelationshipWithSignature(x)
hasClassOfEnded(x; y)
ClassOfCauseOfEndingOfClassOfIndividual(x)
ClassOfCauseOfEndingOfClassOfIndividual(x)
ClassOfCauseOfEndingOfClassOfIndividual(x)
hasClassOfFirst(x; y)
(ClassOfClassOfRepresentationTranslation(x)
ClassOfClassOfRepresentationTranslation(x)
ClassOfClassOfInformationRepresentation(y)
ClassOfClassOfRepresentationTranslation(x)
ClassOfClassOfRepresentationTranslation(x)
ClassOfRepresentationTranslation(x)
ClassOfRepresentationTranslation(x)
ClassOfRepresentationTranslation(x)
hasClassOfInvolved(x; y)
ClassOfInvolvementByReference(x)
ClassOfInvolvementByReference(x)
ClassOfInvolvementByReference(x)
hasClassOfInvolver(x; y)
ClassOfInvolvementByReference(x)
ClassOfInvolvementByReference(x)
ClassOfInvolvementByReference(x)
hasClassOfLocated(x; y)
ClassOfRelativeLocation(x)
ClassOfRelativeLocation(x)
ClassOfRelativeLocation(x)
hasClassOfLocator(x; y)
ClassOfRelativeLocation(x)
ClassOfRelativeLocation(x)
ClassOfRelativeLocation(x)
hasClassOfPart(x; y)
ClassOfCompositionOfIndividual(x)
ClassOfCompositionOfIndividual(x)
ClassOfCompositionOfIndividual(x)
ClassOfNamespace(x)
ClassOfNamespace(x)
ClassOfNamespace(x)
hasClassOfPattern(x; y)
ClassOfClassOfRepresentation(x)
ClassOfClassOfInformationRepresentation(y)
ClassOfClassOfRepresentation(x)
ClassOfClassOfRepresentation(x)
hasClassOfPlayer(x; y)
ClassOfIntendedRoleAndDomain(x)
ClassOfIntendedRoleAndDomain(x)
ClassOfIntendedRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x)
hasClassOfPossessor(x; y)
ClassOfIndirectProperty(x)
ClassOfIndirectProperty(x)
ClassOfIndirectProperty(x)
hasClassOfPredecessor(x; y)
ClassOfTemporalSequence(x)
ClassOfTemporalSequence(x)
ClassOfTemporalSequence(x)
hasClassOfRecognized(x; y)
ClassOfRecognition(x)
ClassOfRecognition(x)
ClassOfRecognition(x)
hasClassOfRecognizing(x; y)
ClassOfRecognition(x)
ClassOfRecognition(x)
ClassOfRecognition(x)
hasClassOfRepresented(x; y)
ClassOfClassOfRepresentation(x)
ClassOfClassOfRepresentation(x)
ClassOfClassOfRepresentation(x)
hasClassOfSecond(x; y)
(ClassOfClassOfRepresentationTranslation(x)
ClassOfClassOfRepresentationTranslation(x)
ClassOfClassOfInformationRepresentation(y)
ClassOfClassOfRepresentationTranslation(x)
ClassOfClassOfRepresentationTranslation(x)
ClassOfRepresentationTranslation(x)
ClassOfRepresentationTranslation(x)
ClassOfRepresentationTranslation(x)
hasClassOfShape(x; y)
ClassOfDimensionForShape(x)
ClassOfDimensionForShape(x)
ClassOfDimensionForShape(x)
hasClassOfShapeDimension(x; y)
PropertySpaceForClassOfShapeDimension(x)
ClassOfShapeDimension(y)
PropertySpaceForClassOfShapeDimension(x)
PropertySpaceForClassOfShapeDimension(x)
hasClassOfShapeDimension(x; z)
hasClassOfSide1(x; y)
ClassOfConnectionOfIndividual(x)
ClassOfConnectionOfIndividual(x)
ClassOfConnectionOfIndividual(x)
hasClassOfSide2(x; y)
ClassOfConnectionOfIndividual(x)
ClassOfConnectionOfIndividual(x)
ClassOfConnectionOfIndividual(x)
hasClassOfSubclass(x; y)
ClassOfSpecialization(x)
ClassOfSpecialization(x)
ClassOfSpecialization(x)
hasClassOfSuccessor(x; y)
ClassOfTemporalSequence(x)
ClassOfTemporalSequence(x)
ClassOfTemporalSequence(x)
hasClassOfSuperclass(x; y)
ClassOfSpecialization(x)
ClassOfSpecialization(x)
ClassOfSpecialization(x)
hasClassOfUsage(x; y)
ClassOfIndividualUsedInConnection(x)
ClassOfIndividualUsedInConnection(x)
ClassOfIndividualUsedInConnection(x)
hasClassOfUsed(x; y)
ClassOfUsageOfRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfUsageOfRepresentation(x)
hasClassOfWhole(x; y)
ClassOfCompositionOfIndividual(x)
ClassOfCompositionOfIndividual(x)
ClassOfCompositionOfIndividual(x)
hasClassified(x; y)
Classification(x)
Classification(x)
Classification(x)
hasClassifier(x; y)
Classification(x)
Classification(x)
Classification(x)
hasCodomain(x; y)
ClassOfFunctionalMapping(x)
ClassOfFunctionalMapping(x)
ClassOfFunctionalMapping(x)
hasConnection(x; y)
IndividualUsedInConnection(x)
IndividualUsedInConnection(x)
IndividualUsedInConnection(x)
hasContent(x; y)
ExpressReal(x)
ExpressBinary(x)
ExpressBinary(x)
ExpressBinary(x)
ExpressBinary(x)
ExpressBoolean(x)
ExpressBoolean(x)
ExpressBoolean(x)
ExpressBoolean(x)
ExpressInteger(x)
ExpressInteger(x)
ExpressInteger(x)
ExpressInteger(x)
ExpressLogical(x)
ExpressLogical(x)
ExpressLogical(x)
ExpressLogical(x)
ExpressReal(x)
ExpressReal(x)
ExpressReal(x)
ExpressReal(x)
ExpressString(x)
ExpressString(x)
ExpressString(x)
ExpressString(x)
hasControlled(x; y)
ResponsibilityForRepresentation(x)
ResponsibilityForRepresentation(x)
ResponsibilityForRepresentation(x)
hasController(x; y)
ClassOfResponsibilityForRepresentation(x)
ClassOfClassOfResponsibilityForRepresentation(x)
ClassOfClassOfResponsibilityForRepresentation(x)
ClassOfClassOfResponsibilityForRepresentation(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfResponsibilityForRepresentation(x)
ClassOfResponsibilityForRepresentation(x)
ResponsibilityForRepresentation(x)
ResponsibilityForRepresentation(x)
ResponsibilityForRepresentation(x)
hasDay(x; y)
RepresentationOfGregorianDateAndUtcTime(x)
RepresentationOfGregorianDateAndUtcTime(x)
hasDimension(x; y)
DimensionOfShape(x)
DimensionOfShape(x)
DimensionOfShape(x)
hasDomain(x; y)
ClassOfFunctionalMapping(x)
ClassOfFunctionalMapping(x)
ClassOfFunctionalMapping(x)
hasElements(x; y)
MultidimensionalObject(x)
MultidimensionalObject(x)
hasEnd1(x; y)
OtherRelationship(x)
OtherRelationship(x)
OtherRelationship(x)
hasEnd1Cardinality(x; y)
ClassOfRelationship(x)
ClassOfRelationship(x)
hasEnd2(x; y)
OtherRelationship(x)
OtherRelationship(x)
OtherRelationship(x)
hasEnd2Cardinality(x; y)
ClassOfRelationship(x)
ClassOfRelationship(x)
hasGreaterElement(x; y)
ComparisonOfProperty(x)
ComparisonOfProperty(x)
ComparisonOfProperty(x)
hasHour(x; y)
RepresentationOfGregorianDateAndUtcTime(x)
RepresentationOfGregorianDateAndUtcTime(x)
hasId(x; y)
Thing(x)
Thing(x)
Thing(x)
Thing(x)
hasIndividual(x; y)
DimensionOfIndividual(x)
DimensionOfIndividual(x)
DimensionOfIndividual(x)
hasIndividualDimension(x; y)
DimensionOfIndividual(x)
DimensionOfIndividual(x)
DimensionOfIndividual(x)
hasInput(x; y)
FunctionalMapping(x)
FunctionalMapping(x)
FunctionalMapping(x)
hasInterest(x; y)
LifecycleStage(x)
LifecycleStage(x)
LifecycleStage(x)
hasInterested(x; y)
LifecycleStage(x)
LifecycleStage(x)
LifecycleStage(x)
hasInvolved(x; y)
InvolvementByReference(x)
InvolvementByReference(x)
InvolvementByReference(x)
hasInvolver(x; y)
InvolvementByReference(x)
InvolvementByReference(x)
InvolvementByReference(x)
hasLesserElement(x; y)
ComparisonOfProperty(x)
ComparisonOfProperty(x)
ComparisonOfProperty(x)
hasLocated(x; y)
RelativeLocation(x)
RelativeLocation(x)
RelativeLocation(x)
hasLocator(x; y)
RelativeLocation(x)
RelativeLocation(x)
RelativeLocation(x)
hasMaximumCardinality(x; y)
Cardinality(x)
Cardinality(x)
hasMinimumCardinality(x; y)
Cardinality(x)
Cardinality(x)
hasMinute(x; y)
RepresentationOfGregorianDateAndUtcTime(x)
RepresentationOfGregorianDateAndUtcTime(x)
hasMonth(x; y)
RepresentationOfGregorianDateAndUtcTime(x)
RepresentationOfGregorianDateAndUtcTime(x)
hasOptionalElement(x; y)
ClassOfMultidimensionalObject(x)
ClassOfMultidimensionalObject(x)
hasParameterPosition(x; y)
ClassOfMultidimensionalObject(x)
hasParameters(x; y)
ClassOfMultidimensionalObject(x)
hasPart(x; y)
CompositionOfIndividual(x)
CompositionOfIndividual(x)
CompositionOfIndividual(x)
hasPattern(x; y)
ClassOfRepresentationOfThing(x)
ClassOfRepresentationOfThing(x)
ClassOfRepresentationOfThing(x)
hasPlayed(x; y)
IntendedRoleAndDomain(x)
ClassOfIntendedRoleAndDomain(x)
ClassOfIntendedRoleAndDomain(x)
ClassOfIntendedRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x)
IntendedRoleAndDomain(x)
IntendedRoleAndDomain(x)
IntendedRoleAndDomain(x)
PossibleRoleAndDomain(x)
PossibleRoleAndDomain(x)
PossibleRoleAndDomain(x)
hasPlayer(x; y)
IntendedRoleAndDomain(x)
IntendedRoleAndDomain(x)
IntendedRoleAndDomain(x)
PossibleRoleAndDomain(x)
PossibleRoleAndDomain(x)
PossibleRoleAndDomain(x)
hasPosition(x; y)
MultidimensionalObject(x)
hasPossessor(x; y)
IndirectProperty(x)
IndirectProperty(x)
IndirectProperty(x)
hasPredecessor(x; y)
TemporalSequence(x)
TemporalSequence(x)
TemporalSequence(x)
hasProperty(x; y)
IndirectProperty(x)
IndirectProperty(x)
IndirectProperty(x)
PropertyForShapeDimension(x)
PropertyForShapeDimension(x)
PropertyForShapeDimension(x)
hasPropertySpace(x; y)
ClassOfIndirectProperty(x)
ClassOfIndirectProperty(x)
ClassOfIndirectProperty(x)
PropertySpaceForClassOfShapeDimension(x)
PropertySpaceForClassOfShapeDimension(x)
PropertySpaceForClassOfShapeDimension(x)
hasRecognized(x; y)
Recognition(x)
Recognition(x)
Recognition(x)
hasRecognizing(x; y)
Recognition(x)
Recognition(x)
Recognition(x)
hasRecordCopyCreated(x; y)
Thing(x)
Thing(x)
hasRecordCreated(x; y)
Thing(x)
Thing(x)
hasRecordCreator(x; y)
Thing(x)
Thing(x)
hasRecordLogicallyDeleted(x; y)
Thing(x)
Thing(x)
hasRelated(x; y)
ClassOfRelationshipWithRelatedEnd1(x)
ClassOfRelationshipWithRelatedEnd1(x)
ClassOfRelationshipWithRelatedEnd1(x)
ClassOfRelationshipWithRelatedEnd2(x)
ClassOfRelationshipWithRelatedEnd2(x)
ClassOfRelationshipWithRelatedEnd2(x)
hasRepresented(x; y)
ClassOfRepresentationOfThing(x)
ClassOfRepresentationOfThing(x)
ClassOfRepresentationOfThing(x)
RepresentationOfThing(x)
RepresentationOfThing(x)
RepresentationOfThing(x)
hasResult(x; y)
FunctionalMapping(x)
FunctionalMapping(x)
FunctionalMapping(x)
hasRoles(x; y)
ClassOfMultidimensionalObject(x)
ClassOfMultidimensionalObject(x)
hasSecond(x; y)
RepresentationOfGregorianDateAndUtcTime(x)
RepresentationOfGregorianDateAndUtcTime(x)
hasShape(x; y)
DimensionOfShape(x)
DimensionOfShape(x)
DimensionOfShape(x)
hasShapeDimension(x; y)
PropertyForShapeDimension(x)
PropertyForShapeDimension(x)
PropertyForShapeDimension(x)
hasShapeDimension(x; z)
hasSide1(x; y)
ConnectionOfIndividual(x)
ConnectionOfIndividual(x)
ConnectionOfIndividual(x)
hasSide2(x; y)
ConnectionOfIndividual(x)
ConnectionOfIndividual(x)
ConnectionOfIndividual(x)
hasSign(x; y)
RepresentationOfThing(x)
RepresentationOfThing(x)
RepresentationOfThing(x)
hasSubclass(x; y)
Specialization(x)
Specialization(x)
Specialization(x)
hasSuccessor(x; y)
TemporalSequence(x)
TemporalSequence(x)
TemporalSequence(x)
hasSuperclass(x; y)
Specialization(x)
Specialization(x)
Specialization(x)
hasUsage(x; y)
IndividualUsedInConnection(x)
IndividualUsedInConnection(x)
IndividualUsedInConnection(x)
hasUsed(x; y)
UsageOfRepresentation(x)
UsageOfRepresentation(x)
UsageOfRepresentation(x)
hasUser(x; y)
UsageOfRepresentation(x))
ClassOfClassOfUsageOfRepresentation(x)
ClassOfClassOfUsageOfRepresentation(x)
ClassOfClassOfUsageOfRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfUsageOfRepresentation(x)
ClassOfUsageOfRepresentation(x)
UsageOfRepresentation(x)
UsageOfRepresentation(x)
UsageOfRepresentation(x)
hasWhole(x; y)
CompositionOfIndividual(x)
CompositionOfIndividual(x)
CompositionOfIndividual(x)
hasWhyDeleted(x; y)
Thing(x)
Thing(x)
hasYear(x; y)
RepresentationOfGregorianDateAndUtcTime(x)
RepresentationOfGregorianDateAndUtcTime(x)
RepresentationOfGregorianDateAndUtcTime(x)
ClassOfParticipation(x)
Namespace(x)
ClassOfArrangementOfIndividual(x)
ClassOfParticipation(x)
Namespace(x)
LowerBoundOfNumberRange(x)
LowerBoundOfPropertyRange(x)
UpperBoundOfNumberRange(x)
UpperBoundOfPropertyRange(x)
LowerBoundOfNumberRange(x)
LowerBoundOfPropertyRange(x)
UpperBoundOfNumberRange(x)
UpperBoundOfPropertyRange(x)
ClassOfScaleConversion(x)
Scale(x)
ClassOfScaleConversion(x)
Scale(x)
DiverenceOfSetOfClass(x)
IntersectionOfSetOfClass(x)
PropertyQuantification(x)
UnionOfSetOfClass(x)
TemporalBounding(x)
ClassOfDefinition(x)
Definition(x)
DiverenceOfSetOfClass(x)
IntersectionOfSetOfClass(x)
PropertyQuantification(x)
UnionOfSetOfClass(x)
BoundaryOfNumberSpace(x)
BoundaryOfPropertySpace(x)
SpecializationByDomain(x)
SpecializationByRole(x)
SpecializationOfIndividualDimensionFromProperty(x)
BoundaryOfNumberSpace(x)
BoundaryOfPropertySpace(x)
SpecializationByRole(x)
SpecializationOfIndividualDimensionFromProperty(x)
ArrangementOfIndividual(x)
Participation(x)
(обязательное)
В настоящем приложении рассмотрено полное множество протошаблонов, определенных в настоящем стандарте. См. также 4.3.
ApprovalTriple(x; y; z)
ApprovalTemplate(y; z)
BoundaryOfNumberSpaceTriple(x; y; z)
BoundaryOfNumberSpaceTemplate(y; z)
BoundaryOfPropertySpaceTriple(x; y; z)
BoundaryOfPropertySpaceTemplate(y; z)
CauseOfEventTriple(x; y; z)
CauseOfEventTemplate(y; z)
ClassOfApprovalTriple(x; y; z)
ClassOfApprovalTemplate(y; z)
ClassOfCauseOfBeginningOfClassOfIndividualTriple(x; y; z)
ClassOfCauseOfBeginningOfClassOfIndividual(x)
ClassOfCauseOfBeginningOfClassOfIndividualTemplate(y; z)
9u(ClassOfCauseOfBeginningOfClassOfIndividualTriple(u; y; z))
ClassOfCauseOfEndingOfClassOfIndividualTriple(x; y; z)
ClassOfCauseOfEndingOfClassOfIndividual(x)
ClassOfCauseOfEndingOfClassOfIndividualTemplate(y; z)
ClassOfClassOfCompositionTriple(x; y; z)
ClassOfClassOfComposition(x)
ClassOfClassOfCompositionTemplate(y; z)
ClassOfClassOfRepresentationTriple(x; y; z)
ClassOfClassOfRepresentation(x)
ClassOfClassOfRepresentationTemplate(y; z)
ClassOfClassOfRepresentationTranslationTriple(x; y; z)
ClassOfClassOfRepresentationTranslation(x)
ClassOfClassOfRepresentationTranslationTemplate(y; z)
ClassOfClassOfResponsibilityForRepresentationTriple(x; y; z)
ClassOfClassOfResponsibilityForRepresentation(x)
ClassOfClassOfResponsibilityForRepresentationTemplate(y; z)
9u(ClassOfClassOfResponsibilityForRepresentationTriple(u; y; z))
ClassOfClassOfUsageOfRepresentationTriple(x; y; z)
ClassOfClassOfUsageOfRepresentation(x)
ClassOfClassOfUsageOfRepresentationTemplate(y; z)
ClassOfClassificationTriple(x; y; z)
ClassOfClassification(x)
ClassOfClassificationTemplate(y; z)
ClassOfCompositionOfIndividualTriple(x; y; z)
ClassOfCompositionOfIndividual(x)
ClassOfCompositionOfIndividualTemplate(y; z)
ClassOfConnectionOfIndividualTriple(x; y; z)
ClassOfConnectionOfIndividual(x)
ClassOfConnectionOfIndividualTemplate(y; z)
ClassOfDimensionForShapeTriple(x; y; z)
ClassOfDimensionForShape(x)
ClassOfDimensionForShapeTemplate(y; z)
ClassOfFunctionalMappingTriple(x; y; z)
ClassOfFunctionalMappingTemplate(y; z)
ClassOfIndirectPropertyTriple(x; y; z)
ClassOfIndirectProperty(x)
ClassOfIndirectPropertyTemplate(y; z)
ClassOfIndividualUsedInConnectionTriple(x; y; z)
ClassOfIndividualUsedInConnection(x)
ClassOfIndividualUsedInConnectionTemplate(y; z)
ClassOfIntendedRoleAndDomainTriple(x; y; z)
ClassOfIntendedRoleAndDomain(x)
ClassOfIntendedRoleAndDomainTemplate(y; z)
ClassOfInvolvementByReferenceTriple(x; y; z)
ClassOfInvolvementByReference(x)
ClassOfInvolvementByReferenceTemplate(y; z)
ClassOfNamespaceTriple(x; y; z)
ClassOfNamespaceTemplate(y; z)
ClassOfParticipationTriple(x; y; z)
ClassOfParticipationTemplate(y; z)
ClassOfPossibleRoleAndDomainTriple(x; y; z)
ClassOfPossibleRoleAndDomain(x)
ClassOfPossibleRoleAndDomainTemplate(y; z)
ClassOfRecognitionTriple(x; y; z)
ClassOfRecognition(x)
ClassOfRecognitionTemplate(y; z)
ClassOfRelationshipWithSignatureTriple(x; y; z)
ClassOfRelationshipWithSignature(x)
ClassOfRelationshipWithSignatureTemplate(y; z)
ClassOfRelativeLocationTriple(x; y; z)
ClassOfRelativeLocation(x)
ClassOfRelativeLocationTemplate(y; z)
ClassOfRepresentationOfThingTriple(x; y; z)
ClassOfRepresentationOfThing(x)
ClassOfRepresentationOfThingTemplate(y; z)
ClassOfRepresentationTranslationTriple(x; y; z)
ClassOfRepresentationTranslation(x)
ClassOfRepresentationTranslationTemplate(y; z)
ClassOfResponsibilityForRepresentationTriple(x; y; z)
ClassOfResponsibilityForRepresentation(x)
ClassOfResponsibilityForRepresentationTemplate(y; z)
ClassOfScaleConversionTriple(x; y; z)
ClassOfScaleConversionTemplate(y; z)
ClassOfSpecializationTriple(x; y; z)
ClassOfSpecialization(x)
ClassOfSpecializationTemplate(y; z)
ClassOfTemporalSequenceTriple(x; y; z)
ClassOfTemporalSequence(x)
ClassOfTemporalSequenceTemplate(y; z)
ClassOfUsageOfRepresentationTriple(x; y; z)
ClassOfUsageOfRepresentation(x)
ClassOfUsageOfRepresentationTemplate(y; z)
ClassificationTriple(x; y; z)
ClassificationTemplate(y; z)
ComparisonOfPropertyTriple(x; y; z)
ComparisonOfProperty(x)
ComparisonOfPropertyTemplate(y; z)
CompositionOfIndividualTriple(x; y; z)
CompositionOfIndividualTemplate(y; z)
ConnectionOfIndividualTriple(x; y; z)
ConnectionOfIndividualTemplate(y; z)
Di_erenceOfSetOfClassTriple(x; y; z)
Di_erenceOfSetOfClassTemplate(y; z)
DimensionOfIndividualTriple(x; y; z)
DimensionOfIndividual(x)
DimensionOfIndividualTemplate(y; z)
DimensionOfShapeTriple(x; y; z)
DimensionOfShapeTemplate(y; z)
FunctionalMappingTriple(x; y; z)
FunctionalMappingTemplate(y; z)
IndirectPropertyTriple(x; y; z)
IndirectPropertyTemplate(y; z)
IndividualUsedInConnectionTriple(x; y; z)
IndividualUsedInConnectionTemplate(y; z)
IntendedRoleAndDomainTriple(x; y; z)
IntendedRoleAndDomainTemplate(y; z)
IntersectionOfSetOfClassTriple(x; y; z)
IntersectionOfSetOfClassTemplate(y; z)
InvolvementByReferenceTriple(x; y; z)
InvolvementByReferenceTemplate(y; z)
LifecycleStageTriple(x; y; z)
LifecycleStageTemplate(y; z)
LowerBoundOfNumberRangeTriple(x; y; z)
LowerBoundOfNumberRange(x)
LowerBoundOfNumberRangeTemplate(y; z)
LowerBoundOfPropertyRangeTriple(x; y; z)
LowerBoundOfPropertyRange(x)
LowerBoundOfPropertyRangeTemplate(y; z)
OtherRelationshipTriple(x; y; z)
OtherRelationshipTemplate(y; z)
PossibleRoleAndDomainTriple(x; y; z)
PossibleRoleAndDomainTemplate(y; z)
PropertyForShapeDimensionTriple(x; y; z)
PropertyForShapeDimension(x)
PropertyForShapeDimensionTemplate(y; z)
PropertyQuantificationTriple(x; y; z)
PropertyQuantificationTemplate(y; z)
PropertySpaceForClassOfShapeDimensionTriple(x; y; z)
PropertySpaceForClassOfShapeDimension(x)
PropertySpaceForClassOfShapeDimensionTemplate(y; z)
RecognitionTriple(x; y; z)
RecognitionTemplate(y; z)
RelativeLocationTriple(x; y; z)
RelativeLocationTemplate(y; z)
RepresentationOfThingTriple(x; y; z)
RepresentationOfThingTemplate(y; z)
ResponsibilityForRepresentationTriple(x; y; z)
ResponsibilityForRepresentation(x)
ResponsibilityForRepresentationTemplate(y; z)
ScaleTriple(x; y; z)
SpecializationTriple(x; y; z)
SpecializationTemplate(y; z)
SpecializationByRoleTriple(x; y; z)
SpecializationByRoleTemplate(y; z)
SpecializationOfIndividualDimensionFromPropertyTriple(x; y; z)
SpecializationOfIndividualDimensionFromProperty(x)
SpecializationOfIndividualDimensionFromPropertyTemplate(y; z)
9u(SpecializationOfIndividualDimensionFromPropertyTriple(u; y; z))
TemporalSequenceTriple(x; y; z)
TemporalSequenceTemplate(y; z)
UnionOfSetOfClassTriple(x; y; z)
UnionOfSetOfClassTemplate(y; z)
UpperBoundOfNumberRangeTriple(x; y; z)
UpperBoundOfNumberRange(x)
UpperBoundOfNumberRangeTemplate(y; z)
UpperBoundOfPropertyRangeTriple(x; y; z)
UpperBoundOfPropertyRange(x)
UpperBoundOfPropertyRangeTemplate(y; z)
UsageOfRepresentationTriple(x; y; z)
UsageOfRepresentationTemplate(y; z)
ArrangementOfIndividualTriple(x; y; z)
ArrangementOfIndividualTemplate(y; z)
AssemblyOfIndividualTriple(x; y; z)
AssemblyOfIndividualTemplate(y; z)
BeginningTriple(x; y; z)
BeginningTemplate(y; z)
ClassOfArrangementOfIndividualTriple(x; y; z)
ClassOfArrangementOfIndividual(x)
ClassOfArrangementOfIndividualTemplate(y; z)
ClassOfAssemblyOfIndividualTriple(x; y; z)
ClassOfAssemblyOfIndividual(x)
ClassOfAssemblyOfIndividualTemplate(y; z)
ClassOfClassOfDefinitionTriple(x; y; z)
ClassOfClassOfDefinitionTemplate(y; z)
ClassOfClassOfDescriptionTriple(x; y; z)
ClassOfClassOfDescriptionTemplate(y; z)
ClassOfClassOfIdentificationTriple(x; y; z)
ClassOfClassOfIdentification(x)
ClassOfClassOfIdentificationTemplate(y; z)
ClassOfClassOfRelationshipWithSignatureTriple(x; y; z)
ClassOfClassOfRelationshipWithSignature(x)
ClassOfClassOfRelationshipWithSignatureTemplate(y; z)
ClassOfContainmentOfIndividualTriple(x; y; z)
ClassOfContainmentOfIndividual(x)
ClassOfContainmentOfIndividualTemplate(y; z)
ClassOfDefinitionTriple(x; y; z) ClassOfDefinition(x)
ClassOfDefinitionTemplate(y; z)
ClassOfDescriptionTriple(x; y; z)
ClassOfDescriptionTemplate(y; z)
ClassOfDirectConnectionTriple(x; y; z)
ClassOfDirectConnectionTemplate(y; z)
ClassOfFeatureWholePartTriple(x; y; z)
ClassOfFeatureWholePartTemplate(y; z)
ClassOfIdentificationTriple(x; y; z)
ClassOfIdentificationTemplate(y; z)
ClassOfIndirectConnectionTriple(x; y; z)
ClassOfIndirectConnection(x)
ClassOfIndirectConnectionTemplate(y; z)
ClassOfIsomorphicFunctionalMappingTriple(x; y; z)
ClassOfIsomorphicFunctionalMapping(x)
ClassOfIsomorphicFunctionalMappingTemplate(y; z)
ClassOfLeftNamespaceTriple(x; y; z)
ClassOfLeftNamespaceTemplate(y; z)
ClassOfRightNamespaceTriple(x; y; z)
ClassOfRightNamespaceTemplate(y; z)
ClassOfTemporalWholePartTriple(x; y; z)
ClassOfTemporalWholePart(x)
ClassOfTemporalWholePartTemplate(y; z)
ContainmentOfIndividualTriple(x; y; z)
ContainmentOfIndividualTemplate(y; z)
CoordinateSystemTriple(x; y; z)
CoordinateSystemTemplate(y; z)
DefinitionTriple(x; y; z)
DefinitionTemplate(y; z)
DescriptionTriple(x; y; z)
DescriptionTemplate(y; z)
DirectConnectionTriple(x; y; z)
DirectConnectionTemplate(y; z)
EndingTriple(x; y; z)
FeatureWholePartTriple(x; y; z)
FeatureWholePartTemplate(y; z)
IdentificationTriple(x; y; z)
IdentificationTemplate(y; z)
IndirectConnectionTriple(x; y; z)
IndirectConnectionTemplate(y; z)
LeftNamespaceTriple(x; y; z)
LeftNamespaceTemplate(y; z)
MultidimensionalScaleTriple(x; y; z)
MultidimensionalScaleTemplate(y; z)
NamespaceTriple(x; y; z)
NamespaceTemplate(y; z)
ParticipationTriple(x; y; z)
ParticipationTemplate(y; z)
RightNamespaceTriple(x; y; z)
RightNamespaceTemplate(y; z)
SpecializationByDomainTriple(x; y; z)
SpecializationByDomainTemplate(y; z)
TemporalBoundingTriple(x; y; z)
TemporalBoundingTemplate(y; z)
TemporalWholePartTriple(x; y; z)
TemporalWholePartTemplate(y; z)
entityTriple(x; y; z)
AssemblyOfIndividualTriple(x; y; z)
BoundaryOfPropertySpaceTriple(x; y; z)
ClassOfApprovalTriple(x; y; z)
ClassOfCauseOfBeginningOfClassOfIndividualTriple(x; y; z)
ClassOfClassificationTriple(x; y; z)
ClassOfClassOfDescriptionTriple(x; y; z)
ClassOfClassOfRelationshipWithSignatureTriple(x; y; z)
ClassOfClassOfRepresentationTriple(x; y; z)
ClassOfClassOfUsageOfRepresentationTriple(x; y; z)
ClassOfConnectionOfIndividualTriple(x; y; z)
ClassOfDefinitionTriple(x; y; z)
ClassOfDirectConnectionTriple(x; y; z)
ClassOfIdentificationTriple(x; y; z)
ClassOfIndividualUsedInConnectionTriple(x; y; z)
ClassOfInvolvementByReferenceTriple(x; y; z)
ClassOfLeftNamespaceTriple(x; y; z)
ClassOfPossibleRoleAndDomainTriple(x; y; z)
ClassOfRelationshipWithSignatureTriple(x; y; z)
ClassOfRepresentationOfThingTriple(x; y; z)
ClassOfResponsibilityForRepresentationTriple(x; y; z)
ClassOfScaleConversionTriple(x; y; z)
ClassOfTemporalWholePartTriple(x; y; z)
ComparisonOfPropertyTriple(x; y; z)
ContainmentOfIndividualTriple(x; y; z)
DescriptionTriple(x; y; z)
DimensionOfShapeTriple(x; y; z)
FunctionalMappingTriple(x; y; z)
IndirectPropertyTriple(x; y; z)
IntersectionOfSetOfClassTriple(x; y; z)
LifecycleStageTriple(x; y; z)
MultidimensionalScaleTriple(x; y; z)
PossibleRoleAndDomainTriple(x; y; z)
PropertySpaceForClassOfShapeDimensionTriple(x; y; z)
RepresentationOfThingTriple(x; y; z)
ScaleTriple(x; y; z)
SpecializationOfIndividualDimensionFromPropertyTriple(x; y; z)
TemporalBoundingTriple(x; y; z)
UnionOfSetOfClassTriple(x; y; z)
UsageOfRepresentationTriple(x; y; z))
(справочное)
В таблице D.1 представлен список всех протошаблонов и их ролей.
Пример 1 - Листинг протошаблона ApprovalTemplate
Это означает, что первая роль шаблона - это hasApproved, и экземпляры первой роли должны быть экземплярами типа сущности Relationship. Вторая роль - это hasApprover, и экземпляры настоящей роли должны быть экземплярами типа сущности PossibleIndividual.
Таблица D.1
(справочное)
РЕКУРСИВНОЕ И НЕРЕКУРСИВНОЕ РАСШИРЕНИЕ ШАБЛОНА
На компьютерном языке слова макрос, шаблон, встраивание (замещение вызова) используются для обозначения различных частично перекрывающихся понятий.
Макрос:
- на языке LISP макрос - функция, выполняемая в процессе компиляции. Она формирует вспомогательную программу, которая встраивается в нужное место. Так как данная функция работает в произвольном коде, это весьма общий механизм;
- в препроцессоре языка C (cpp) вызов макроса заменяется тестом на расширение. После этого снова производится сканирование для поиска вызовов макроса. Обычно препятствий для рекурсии нет, однако это приводит к зацикливанию препроцессора. Блок GNU <3> (cpp) может выявлять и блокировать рекурсию;
- в языке TeX, макросы расширяются аналогично (cpp), рекурсия допускается. Но здесь также используются условные структуры данных, позволяющие предотвращать рекурсию.
--------------------------------
Шаблон:
- в языке C++ шаблоны, изначально рассматривавшиеся как средства описания параметрического полиморфизма типов данных, также могут быть рекурсивными. Допускаются несколько расширений одного шаблона с различными аргументами. Компилятор предпочитает самое конкретное определение, соответствующее конкретной реализации. Это дает возможность определить завершающий "базовый случай". Данная ситуация часто имеет место при так называемом мета-программировании шаблона;
- шаблоны кодов в средах IDE <4>.
--------------------------------
<4> Интегрированная среда разработки.
Встраивание (замещение вызова): вычислительный процесс, где вызовы функции/процедуры не компилируются в код, который сначала использует стековую память, чтобы запомнить свое предыдущее состояние, а затем "прыгает" в код функции. Вместо этого тело функции расширяется в месте вызова. Данный процесс не откликается на рекурсивные вызовы или, по крайней мере, ограничивает глубину замещаемого вызова. Некоторые компиляторы производят так называемое встраивание "за кулисами". В языке GNU функцию можно также объявить как встраивание, чтобы подсказать компилятору порядок действий. В отличие от ограничений на рекурсию, семантика функции замещения вызова похожа на семантику нормальной функции, но код работает быстрее.
Так как настоящий стандарт определяет работу с шаблонами, то мы далее будем говорить о механизмах работы шаблонов при обсуждении различных вариантов их определения.
Имеет место существенная разница между шаблонами и макро-механизмами, допускающими циклические (рекурсивные) определения и не допускающими их.
Обсуждение данного вопроса см. в 1.3.1 и 2.2.2 [11]. Различие между рекурсивными и нерекурсивными макросами то же самое, что различие между циклическими и ациклическими элементами TBox.
Пример надлежащего определения одного нерекурсивного механизма расширения макроса приведен в [16].
Рассмотрим абстрактное описание множества определений шаблона. Пусть N - это множество возможных имен шаблонов или других частей языка. Пусть определение шаблона дает определение некоторого имени
имеем SpecOrEqual > Spec, тогда как для определения:
получаем SpecStar > Spec и SpecStar > SpecStar. Если имеются несколько таких определений, то пусть знак ">" - это объединение всех зависимостей, данных определениями индивидуальных объектов.
Для нерекурсивных механизмов шаблонов, зависимость ">" для всех определений должна быть ациклической. То есть не должно существовать последовательности n0 > n1 > ... > nk, где n0 = nk. В частности, не существует такое n0, для которого n0 > n0.
Другими словами, транзитивное замыкание >+ должно быть нерефлексивным.
В частности, пример (1) допускается в нерекурсивных механизмах, а пример (2) не допускается.
Обычно множество имен N разделяют на множество примитивных имен P и множество определенных имен D,
, . При этом не существует определений шаблонов для имен из P, в то время как любое имя в D должно иметь определение.Если механизм шаблона работает путем повторной замены ссылок (на определенные имена
Можно видеть, что оценка шаблона путем его расширения непротиворечива с аксиоматической точки зрения. Для каждого определения шаблона:
![]() где тело b - это комплексный термин, возможно содержащий x, y,..., определим аксиому <5>
--------------------------------
<5> Если это есть шаблоны формул, то можно взять
![]() и соберем все указанные аксиомы во множество Ax. Теперь, если s - это результат повторного расширения всех определенных имен в t, то справедливо:
![]() Из аксиоматического прочтения определений шаблонов следует, что расширение s семантически эквивалентно оригинальному члену t <6>. Это можно доказать по индукции, рассматривая шаги расширений и повторные приложения леммы подстановки.
--------------------------------
<6> Обратное не обязательно верно, так как из Ax может следовать много отношений, которые нельзя доказать только путем расширения шаблона.
Следует очень внимательно относиться к аргументам шаблонов: если допустимы аргументы "более высокого порядка" (то есть имеются аргументы, которые используются в расширении как функции), то циклы могут появиться неожиданно. Например, после определения:
SelfApp(x):= x(x)
использование расширения SelfApp(SelfApp) приводит к зацикливанию, что уничтожает все достоинства рассматриваемого механизма. Если исключать аргументы более высокого порядка не хочется, то нужно подобрать для аргументов соответствующую систему типов, исключающую данную проблему.
С другой стороны, рекурсивные механизмы шаблонов ограничений на зависимость ">" не накладывают. В частности, можно использовать рекурсивные определения вида (2), рассмотренные выше. Очевидным преимуществом здесь является возможность представить комплексные свойства, например, транзитивное замыкание. Недостатки:
- нет гарантии, что выход в конкретном оконечном устройстве не зависит от порядка расширения;
- можно получить полный по Тьюрингу механизм, то есть нетипированное лямбда-исчисление. Программировать с шаблонами тоже можно. Настоящий программист всегда с этим справится. Правда, механизм шаблонов - плохой язык программирования: его трудно понять, в нем часто ошибаются. Мета-программирование шаблонов на языке C++ - типовой пример.
Меры предосторожности для нерекурсивных механизмов шаблонов:
- может оказаться интересным использование тела шаблона, не являющегося правильным (действительным) членом. Например, определение
позволяет использовать предпочтительный символ в качестве связующего элемента. Если расширение имеет вид строки, то это реально сработает. Однако это сильно затрудняет анализ системы определений шаблона;
- в контексте первого порядка аргументы шаблона не квантифицируются в теле определения:
![]() это недопустимо и не имеет смысла;
- реализация должна обеспечить переименование связанных переменных при необходимости. Для шаблона:
,реализация t(y) не сводится к:
,Это известно как захват переменной. Этого можно избежать, например, путем переименования связанных переменных:
.(справочное)
В настоящем разделе рассмотрен пример, иллюстрирующий, как выражения, использующие шаблоны, расширяются и соответствуют выражениям языка ИСО 15926-2. Три простых утверждения шаблона расширяются на формулу первого порядка с помощью только предикатов языка ИСО 15926-2. Кванторы данной формулы затем заменяются константами, соответствующими идентификаторам элементарных данных на основе ИСО 15926-2. Результаты проверяются на логическую достоверность.
Нижеследующее утверждение приведено на языке шаблона (см. предшествующие разделы). Следующие разделы показывают результаты расширения данного утверждения, при этом шаблоны заменяются утверждениями на языке ИСО 15926-2.
LowerUpperOfNumberRange([-273.1 to Infinity]; -273.1; Infinity)
DimensionUnitNumberRangeOfScale(Celsius; DegrC;
Temperature; [-273.1 to Infinity])
PropertyRangeMagnitudeRestrictionOfClass(PressureTransmitter;
AmbientTemperature; Celsius; -40;+40)
Шаблоны расширяются в соответствии с их аксиоматическими определениями. Получается экзистенциально квантифицированная формула первого порядка, в которой все предикаты шаблона заменяются на тип сущности (атрибуты) ИСО 15926-2.
(NumberRange([-273.1 to Infinity])
(LowerBoundOfNumberRange(z)
(UpperBoundOfNumberRange(z)
((ClassOfIdentification(u)
(Classification(z)
((ClassOfIndividual(PressureTransmitter)
((ClassOfIndirectProperty(u0)
((Specialization(y)
(Classification(z)
((ExpressReal(-40)
(ClassOfIdentification(z)
(ClassOfIdentification(z)
((PropertyRange(u)
(LowerBoundOfPropertyRange(z)
(UpperBoundOfPropertyRange(z)
((PropertyQuantification(u)
(Classification(z)
((PropertyQuantification(u)
(Classification(z)
Кванторы существования заменяются на их значения (константы). Это аналогично назначению идентификаторов элементов данных в архиве данных ИСО 15926. Результатом является множество элементарных утверждений языка ИСО 15926-2. Используемые константы соответствуют данным, реализующим типы ИСО 15926-2 аналогично данным в библиотеках справочных данных.
NumberRange([-273.1 to Infinity])
ArithmeticNumber(-273.1)
ArithmeticNumber(Infinity)
LowerBoundOfNumberRange(X)
hasClassified(X; -273.1)
hasClassifier(X; [-273.1 to Infinity])
UpperBoundOfNumberRange(Y)
hasClassified(Y; Infinity)
hasClassifier(Y; [-273.1 to Infinity])
Scale(Celsius)
ExpressString(DegrC)
SinglePropertyDimension(Temperature)
Thing(Celsius)
ClassOfClassOfIdentification(UomSymbolAssignment)
ClassOfIdentification(Z)
hasPattern(Z; DegrC)
hasRepresented(Z; Celsius)
Classification(U)
hasClassified(U;Z)
hasClassifier(U; UomSymbolAssignment)
hasCodomain(Celsius; [-273.1 to Infinity])
hasDomain(Celsius;Temperature)
ClassOfIndividual(PressureTransmitter)
ClassOfIndirectProperty(AmbientTemperature)
ExpressReal(-40)
ExpressReal(+40)
PropertyRange(W)
ClassOfIndirectProperty(V5)
hasClassOfPossessor(V5; PressureTransmitter)
hasPropertySpace(V5;W)
ClassOfRelationship(V5)
ClassOfRelationship(AmbientTemperature)
Specialization(V6)
hasSubclass(V6; V5)
hasSuperclass(V6; AmbientTemperature)
Classification(V7)
hasClassified(V7; V6)
hasClassifier(V7; End2UniversalRestriction)
Thing(V8)
ClassOfIdentification(V9)
hasPattern(V9; -40)
hasRepresented(V9; V8)
Thing(V10)
ClassOfIdentification(V11)
hasPattern(V11;+40)
hasRepresented(V11; V10)
ArithmeticNumber(V8)
ArithmeticNumber(V10)
Property(V12)
Property(V13)
LowerBoundOfPropertyRange(V14)
hasClassified(V14; V12)
hasClassifier(V14;W)
UpperBoundOfPropertyRange(V15)
hasClassified(V15; V13)
hasClassifier(V15;W)
PropertyQuantification(V16)
hasInput(V16; V12)
hasResult(V16; V8)
Classification(V17)
hasClassified(V17; V16)
hasClassifier(V17; Celsius)
PropertyQuantification(V18)
hasInput(V18; V13)
hasResult(V18; V10)
Classification(V19)
hasClassified(V19; V18)
hasClassifier(V19; Celsius)
Множество данных, полученное путем расширения и задания значений (F.3) можно проверить на соответствие ИСО 15926-2. Для этого множество данных интерпретируется как элементарные утверждения, расширяющие аксиоматизацию ИСО 15926-2 (приложение B). Результирующее множество аксиом можно проверить с помощью программы автоматического доказательства теорем и базовой логики первого порядка, а также с помощью более специализированной дедуктивной программы. Примеры последней включают программы автоматического доказательства с помощью описательной логики.
(справочное)
Проверка показывает, что язык формализации ИСО 15926-2 и настоящего стандарта попадает внутрь фрагмента логики первого порядка (FOL), известного как когерентная логика (CL), составленная из формул вида:
![]() где Ai - это элементы (атомы), а Cj - их сопряжения. При записи формул когерентной логики (CL) универсальные кванторы обычно опускают. При этом свободные переменные неявно универсально квантифицируются. В примере из приложения B:
- универсальная аксиома
- это формула когерентной логики (CL) ;- аксиомы непересечения могут быть записаны в кодах с помощью операции
![]() записывается в виде:
![]() - все другие аксиомы уже имеют форму CL.
Отметим, что логика CL включает оба квантора
![]() Рассматриваемая здесь проблема - это проблема соответствия множеств T и
необходимо идентифицировать такие условия для T и --------------------------------
<7> Отметим, что указанное покрывает проблему проверки соответствия из раздела K.2: выполнить проверку соответствия
, подлежащая проверке на соответствие.Важное место CL: когерентные формулы можно использовать как генерирующие правила, формирующие полную процедуру доказательства для логики CL. В настоящем примечании мы используем ту же идею для решения проблемы соответствия множеств T,
Технически мы представляем последовательность приложений, которое является строкой приложений правил. Для каждой последовательности приложений s, fml(s) - это множество формул и dom(s) - это множество констант. Множество последовательностей приложений из
- пустая строка
и - это множество символов констант из - Если s - это последовательность приложений, s.r означает, что реализация r - одна из нижеследующих:
- замкнутая реализация
для формулы из T такая, что каждое . Тогда и dom(s.r) = dom(s);-
, где , и ни один из членов s не относится к . Тогда и dom(s.r) = dom(s);-
, где каждое . Тогда и dom(s.r) = dom(s);-
для такое, что ни одна из формул формы A(t') не относится к fml(s). В данном случае t - это новый символ константы, и ;-
для A(a), и либо a = b, либо b = a из fml(s). Тогда и dom(s.r) = dom(s).Необходимо пояснить невозможность использования сопряжения "или" в следующем случае. Из последовательности приложений для сущности
следует, что либо a - это возможный индивидуальный объект, либо a - абстрактный объект, но не то и другое вместе.Необходимо пояснить возможность отсутствия
дальше не может быть расширено (свидетель уже есть). Это основной источник улучшения полной логики первого порядка FOL (также используемый в механизмах доказательства описательной логики DL).Легко заметить, что соответствие
![]() конечно, где t <= s означает, что t - это начальная последовательность s.
Это типовой случай, когда можно ограничить число новых членов, появляющихся вследствие отказа от
![]() ![]() Последняя аксиома является потенциально вредной. Если a - это композиция ClassOfClassOfComposition, то она может генерировать новый член b как заполнитель hasClassOfClassOfWhole, из которого следует ClassOfClassOfIndividual(b). Но так как это действительно влечет ClassOfClassOfComposition(b), то не существует неограниченная генерация новых членов на базе указанных аксиом.
Соединение с когерентной логикой CL не противоречит ИСО 15926-2/настоящему стандарту. Имеет смысл ее дальнейшее изучение по нескольким причинам:
- синтаксическая форма формул когерентной логики (CL) допускает использование очень простой процедуры доказательства, известной как "forward ground reasoning" (опережающее базовое логическое обоснование). Данная процедура эффективна для формул когерентной логики (CL), с ее помощью легко строить умозаключения. Предполагается, что алгоритмы проверки соответствия, основанные на логике CL, могут быть использованы для настоящего стандарта и ИСО 15926-2, которые более эффективны, чем алгоритмы, основанные на трансляции в описательную логику (DL). Знание о структурах ИСО 15926-2 может быть использовано при построении исследовательских процедур;
- логика CL более выразительна, чем логика DL. Можно идентифицировать разрешимые фрагменты логики CL, которые более удобны, чем логика DL для приложений типа ИСО 15926, например, при указании ограничений на архивы данных;
- когерентная логика CL конструктивна. Это означает, что она более структурирована, чем логика первого порядка FOL. Во многих ситуациях рассматриваемая структура способствует изучению мета-свойств.
Так как когерентная логика - это недостаточно изученный фрагмент логики первого порядка FOL, мы здесь приводим некоторые ключевые сведения:
- когерентная логика CL возникла благодаря норвежцу Торалфу Сколему (Thoralf Skolem), разработавшему ее в 1920 г. Его целью было получение мета-математических результатов в теории кристаллических решеток и проективной геометрии [24], [25]. Она также известна как геометрическая логика;
- недавно когерентная логика CL была открыта повторно: см. работу [15] (на предмет обоснования ее соответствия компьютерной науке) и работу [12] (в части достигнутого прогресса в компьютерных исследованиях, выполненных на основе когерентной логики CL);
- "восходящие" процедуры доказательств, используемые сегодня в дедуктивных базах данных, и система SATCHMO [21] (для логик слабее когерентной логики CL) описаны в работе [24];
- когерентная логика CL расширяет логику дизъюнкта Хорна [19], на котором основан язык программирования Пролог [20]. В нем, в заключение, можно получить полную дизъюнкцию экзистенциально квантифицированных сопряжений элементов;
- неразрешимость когерентной логики CL без символов функций доказана в работе [13];
- когерентная логика CL менее выразительна, чем полная логика первого порядка FOL. Вместе с тем, существует естественная трансляция FOL в CL [14], дающая удовлетворительные результаты, правда, путем резкого увеличения громоздкости формул. Каждая теория первого порядка имеет консервативное (определительное) расширение, эквивалентное когерентной теории.
(справочное)
Язык шаблона может быть встроен в более выразительный язык первого порядка. С помощью богатых формализмов можно получить выражения для широкого диапазона ограничений, представляющих практический интерес.
Пример 1 - Транзитивность сущности Specialization может быть показана следующим образом.
![]() Пример 2 - Если a - это член b, то b может не быть членом a. Настоящее ограничение можно представить в виде:
![]() (обязательное)
СЕМАНТИКА ШАБЛОНА
Нижеследующее определение взято дословно из определений 3.1 и 3.3 работы [22]. Изначально они представлены в работе [23], где система переписывания паттерна (формы представления) называется системой переписывания высокого порядка.
Член t типа
форме называется паттерном (высокого порядка), если каждое свободное использование переменной F является подчленом списка четко выраженных связанных переменных.Правило переписывания - это пара
. Правило переписывания паттерна - это правило переписывания, где l - это паттерн. Система переписывания паттерна (PRS) - это множество правил переписывания паттернов.Примечание - Указанные определения являются очень общими:
- элементы первого порядка N(x, y,...), являющиеся левыми частями определений шаблонов, фактически являются паттернами (в этом случае список аргументов
- если
определение шаблона, то - это правило переписывания паттерна.Указанные определения использованы вместо стандартных понятий переписывания первого порядка. Это гарантирует, что использование кванторов тела определения шаблона не нанесет вреда. Они также обеспечат достаточно общие рамки рассмотрения в том случае, когда механизм шаблона потребуется расширить в будущем.
Система переписывания паттернов R(S), соответствующая множеству шаблонов S - это множество всех правил
для всех .Нижеследующая лемма гарантирует, что если учащается появление шаблонов в какой-либо заданной формуле, то:
а) в конечном счете, этот процесс прекращается, то есть зацикливания не происходит. Можно последовательно расширять шаблоны до тех пор, пока из них не получится формула, не имеющая к шаблонам никакого отношения;
б) если эта формула и содержит ссылки на шаблоны, то, в конечном счете, все равно, в каком порядке происходит расширение, так как результат такого последовательного расширения всегда один и тот же.
Лемма 1 Форма представления R(S) является конечной и конфлюэнтной для любого множества логических шаблонов S.
Доказательство: Для доказательства конечности сначала определяется порядок на множестве
для всех базовых символов и названий шаблонов. Пусть если и только если существует определение шаблона , такое что A появляется в Теперь пусть
. Так как Для доказательства конфлюэнтности, рассмотрим лемму "критической пары" для системы переписывания паттернов. Это теорема 4.7 в работе [22]. Покажем, что все критические пары в R(S) сходятся к одной точке. Это тривиальный случай, так как в R(S) критических пар нет; никаких символов не появляется в более чем одной левой части правила в R(S). Что и требовалось доказать.
Этим можно воспользоваться для определения семантики шаблонов просто как окончательного результата последовательного расширения. Данная лемма гарантирует, что полученное определение будет правильным.
Пример - Множество шаблонов:
![]() расширено до формулы
в виде:![]() ![]() ![]() ![]() где расширенные подформулы подчеркнуты, или в виде:
![]() ![]() ![]() ![]() или окончательно в виде:
![]() ![]() ![]() ![]() Видно, что получился тот же результат.
Для множества шаблонов
и формулы над символами во множестве , определено расширение (обязательное)
СВОЙСТВА РАСШИРЕНИЯ ШАБЛОНА
Если определения шаблона на множестве рассматриваются как аксиомы эквивалентности, то сама формула и ее расширение эквивалентны по отношению к указанным аксиомам.
Лемма 2 Пусть
- это множество шаблонов, а над символами из множества . Если .Доказательство леммы 2. Так как каждый шаг расширения шаблона заменяет одну подформулу другой, эквивалентной ей в соответствии с рассматриваемыми аксиомами, то результирующая формула будет также эквивалентна исходной. Что и требовалось доказать.
Пример - Аксиомы, соответствующие множеству шаблонов, рассмотренному выше:
![]() ![]() В соответствии с леммой 2, указанные две аксиомы подразумевают эквивалентность
![]() ![]() исходной формулы и ее расширения в нашем примере.
Для практических приложений определений шаблонов представляет интерес нижеследующая проблема. Пусть заданы:
- аксиоматизация по ИСО 15926-2 (формула
- множество шаблонов S;
- формула
без свободных переменных.Необходимо проверить непротиворечивость выражения
.Примечание -
Пример - Аксиоматика ИСО 15926-2 включает аксиомы:
Activily(x)
Relationship(x)
Из определений шаблонов:
![]() ![]() ![]() и рассматриваемой формулы
![]() следует, что a - это и PossibleIndividual, и AbstractObject, что противоречит ИСО 15926-2. Данной пример это показывает. Для более громоздкой формулы
Нижеследующая лемма утверждает, что для решения указанной проблемы сначала нужно расширить все шаблоны.
Лемма 3 Пусть
непротиворечива только в том случае, если непротиворечива формула Доказательство. Для любой модели, удовлетворяющей формуле
из леммы 2 следует, что она также удовлетворяет удовлетворяются в M'. Это означает, что M' удовлетворяет . Используя лемму 2 повторно, получаем, что M' также удовлетворяет Необходимо проверить непротиворечивость формул
, содержащей только базовые символы, в контексте аксиоматики Аксиоматику ИСО 15926-2 можно транслировать в TBox в рамках ALCIQ (описательной логики с обратными ролями и квантифицированными числовыми ограничениями). Это есть подмножество хорошо изученной и используемой на практике описательной логики SHIQ. Для оценки имеющихся возможностей нужно проанализировать различные аксиомы, используемые в формализациях ИСО 15926-2 первого порядка в соответствии с 4.1:
- одноместные предикаты A(x) для сущностей EXPRESS отображаются на элементарные понятия описательной логики;
- двухместные предикаты hasR(x) атрибутов языка EXPRESS отображаются на роли hasR описательной логики (DL);
- типы данных списков EXPRESS в аксиомах фактически не используются;
- практическая реализация
, представляющая отношение подтипов языка EXPRESS, отображается на аксиому - аксиома
декларации ABSRACT языка EXPRESS отображается на аксиому в DL;- аксиома
декларации ONEOF языка EXPRESS отображается на аксиому ;- аксиома
, представляющая область атрибута языка EXPRESS, отображается на аксиому ;- аксиома
локального ограничения диапазона языка EXPRESS отображается на аксиому ;- аксиома
, необходимая для ограничения кардинального числа [0,1] в языке EXPRESS, отображается на аксиому в описательной логике (DL);- аксиома
, дополнительно необходимая для задания ограничения кардинального числа [1,1] в языке EXPRESS, отображается на аксиому в описательной логике (DL);- аксиома
для правила UNIQUE языка EXPRESS отображается на аксиому в описательной логике DL.Это аксиомы TBox описательной логики для ИСО 15926-2.
Для проверки достоверности формула
сколемизируется. При этом каждая экзистенциально связанная переменная заменяется на новый постоянный символ, порождающий ![]() где
Пример - Пример расширения и проверки достоверности см. в приложении F.
Вернуться в "Каталог нормативных документов"
Источник информации: https://internet-law.ru/documents/prod/gost-r_gosudarstvennyj-standart/36/gost_33776.html
На правах рекламы:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||