ГОСТ Р 56271-2014/
ISO/TS 15926-7:2011
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Системы промышленной автоматизации и интеграция
ИНТЕГРАЦИЯ ДАННЫХ ЖИЗНЕННОГО ЦИКЛА ПЕРЕРАБАТЫВАЮЩИХ ПРЕДПРИЯТИЙ, ВКЛЮЧАЯ НЕФТЯНЫЕ И ГАЗОВЫЕ ПРОИЗВОДСТВЕННЫЕ ПРЕДПРИЯТИЯ
Часть 7
Практические методы интеграции распределенных систем: методология шаблонов
Industrial automation systems and integration. Integration of life-cycle data for process plants including oil and gas production facilities. Part 7. Implementation methods for the integration of distributed systems. Template methodology
ОКС 75.020; 25.040.40
Дата введения 2016-01-01
Предисловие
1 ПОДГОТОВЛЕН Обществом с ограниченной ответственностью "НИИ экономики связи и информатики "Интерэкомс" (ООО "НИИ "Интерэкомс") на основе собственного перевода на русский язык англоязычной версии документа, указанного в пункте 4
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 100 "Стратегический и инновационный менеджмент"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 26 ноября 2014 г. N 1857-ст
4 Настоящий стандарт идентичен международному документу ИСО/ТС 15926-7:2011* "Системы промышленной автоматизации и интеграция. Интеграция данных жизненного цикла перерабатывающих предприятий, включая нефтяные и газовые производственные предприятия. Часть 7. Практические методы интеграции распределенных систем: методология шаблонов" (ISO/TS 15926-7:2011 "Industrial automation systems and integration - Integration of life-cycle data for process plants including oil and gas production facilities - Part 7: Implementation methods for the integration of distributed systems: Template methodology", IDT)
________________
* Доступ к международным и зарубежным документам, упомянутым в тексте, можно получить, обратившись в Службу поддержки пользователей. - .
5 ВВЕДЕН ВПЕРВЫЕ
6 ПЕРЕИЗДАНИЕ. Февраль 2020 г.
Правила применения настоящего стандарта установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
Введение
Комплекс международных стандартов ИСО 15926 предназначен для представления информации о жизненном цикле перерабатывающих предприятий, включая нефтяные и газовые производственные предприятия. Это представление определяется общей концептуальной моделью данных, которая является основой для совместного использования баз данных и хранилищ информации. Такая модель предназначена для применения совместно со справочными данными, например стандартными экземплярами, которые представляют информацию, общую для ряда пользователей, технологических установок или того и другого вместе. Поддержка деятельности на протяжении жизненного цикла зависит от использования необходимых справочных данных совместно с моделью данных.
Комплекс международных стандартов ИСО 15926 состоит из частей. Каждая часть публикуется отдельно. Настоящий стандарт определяет методологию шаблонов (темплейтов), от английского слова template. Она не зависит от методологий практической реализации и компьютерных языков.
Под шаблоном в настоящем стандарте понимается специальная структура данных, установленная в комплексе международных стандартов ИСО 15926. В настоящем стандарте шаблоны рассматриваются с нескольких точек зрения.
Во-первых, шаблон - это предикат, утверждение которого формулируется в качестве аксиомы. Шаблон формулирует в себе некое утверждение о модели данных и каждый его экземпляр - истинное утверждение в рамках используемой модели данных.
Во-вторых, шаблон - это способ передачи данных. Когда создается шаблон, четко оговаривается семантика каждой его свободной переменной, а требование к структуре модели данных, в рамках которой применяется шаблон, оформляется в виде формулы логики первого порядка. Предполагается, что справочные данные при обмене не передаются - к ним имеют доступ и получатель, и отправитель, то есть они пользуются общим "словарем" (хотя понятие "справочные данные" намного шире, чем понятие "словарь"). В основном передаются экземпляры шаблонов (template instance), поскольку их семантика задана наперед, получатель и отправитель всегда знают, какой смысл вложен в переданный набор данных. Кроме того, в случае создания хранилища данных об индивидуальных объектах (индивидах) в виде триплетов [реализация фасадов (от английского слова faсade) как способа представления информации об индивидах на основе справочных данных] к нему возможен доступ при помощи SPARQL-запросов, тогда вопрос получения необходимых данных сводится к построению соответствующего запроса. Таким образом, если шаблон соответствует моделям данных передающей и принимающей сторон, то достаточно передать лишь блок данных, идентифицирующий шаблон и содержащий в себе заполненные свободные переменные. Тогда принимающая сторона, зная его семантику, соотнесет переданные значения переменных со своей моделью данных необходимым образом.
В-третьих, шаблоны являются справочными данными, их спецификация хранится в библиотеке справочных данных RDL при помощи специальных структур данных.
Поскольку в соответствии с ИСО 15926 шаблон является предикатом логики первого порядка, удовлетворяющим аксиоматике модели данных настоящего стандарта, то, заполняя соответствующими значениями переменные такого предиката, мы получаем утверждения об объектах с фиксированной семантикой - экземплярах шаблона. Шаблоны позволяют как генерировать справочные данные (для создания однородной группы утверждений об элементах библиотеки справочных данных RDL достаточно применить шаблон необходимое количество раз с соответствующими значениями переменных), так и создавать связи между библиотеками справочных данных RDL и моделью данных приложения (например, PLMприложения) - так называемый маппинг (mapping).
Настоящий стандарт рассматривает методологию шаблонов, определяющую точное содержание концептуальных элементов модели ИСО 15926-2, используемых при формировании данных, интеграции или при использовании методов взаимодействия агрегатов. Настоящий стандарт не зависит от используемых языков, инфраструктуры практической реализации и методов испытаний, а служит основой для языков и инфраструктуры практической реализации и методов испытаний.
Настоящий стандарт определяет:
- методы логики первого порядка;
- синтаксис шаблонов;
- семантику шаблонов;
- метод расширения шаблона;
- протошаблон;
- начальное множество шаблонов.
Для понимания положений настоящего стандарта требуется знание концептуальных моделей данных в соответствии с ИСО 15926-2.
Целевая аудитория настоящего стандарта:
- технические директора, определяющие степень соответствия ИСО 15926 их деловым потребностям;
- сотрудники, использующие настоящий стандарт для решения практических задач.
В настоящем стандарте одно и то же английское понятие может^ 1) обозначать реальный объект (элемент) (thing); 2) задавать представление реального объекта на языке EXPRESS; 3) задавать представление реального элемента (объекта) на языке RDF/XML. Указанные значения слова различаются путем введения нижеследующих типографских обозначений:
- если слово (фраза) набрано обычным шрифтом, то оно обозначает реальный элемент;
- если слово (фраза) набрано жирным шрифтом, то это представление на языке EXPRESS в соответствии с моделью данных ИСО 15926-2.
Пример 1 - "class_of_inanimate_physical_object";
- если слово (фраза) набраны жирным "горбатым" шрифтом, то это термин языка ИСО 15926-2 (см. раздел 4.1).
Пример 2 "ClassOfApprovalByStatus";
- если слово (фраза) набраны "горбатым" курсивом, то это название шаблона.
Пример 3 - "RTriple(z, x, y)".
Ссылки на идентификаторы в примерах вымышленные.
В настоящем стандарте в ряде случаев использованы диаграммы. Они иллюстрируют паттерны моделирования (modelling patterns) в соответствии с ИСО 15926-2. Символы, используемые в диаграммах экземпляров, являются производными символов, определенных ИСО 15926-2.
1 Область применения
Настоящий стандарт содержит описание процедуры обмена данными и интеграции информации о жизненном цикле с помощью шаблонов, основанных на модели данных ИСО 15926-2. Настоящий стандарт устанавливает методологию интеграции данных об онтологиях с помощью математической логики первого порядка, что позволяет сделать данную топологию независимой от компьютерных языков.
Настоящий стандарт распространяется на:
- представление модели языка EXPRESS ИСО 15926-2 в формальной логике;
- критерии определений шаблонов;
- методы расширения и проверки шаблонов;
- начальное множество определений шаблонов.
Примечание - Практическое руководство для представления информации с помощью шаблонов приведено в [17].
Настоящий стандарт не распространяется на:
- практическую реализацию на компьютерно-представимых языках;
- хранение и получение данных;
- безопасность данных.
2 Термины, определения и аббревиатуры
2.1 Термины и определения
В настоящем документе применены следующие термины с соответствующими определениями:
2.1.1 базовый шаблон (base template): Шаблон, содержащий только типы сущности в расширении соответствующей аксиомы шаблона.
2.1.2 класс (class): Категория или классификация элементов, выделенных по одному или нескольким критериям для последующего включения или исключения.
Примечание 1 - Класс не обязательно должен состоять из известных членов класса (сущностей, которые удовлетворяют критериям вхождения в данный класс).
Примечание 2 - Из-за пространственно-временной парадигмы, используемой для определения индивидуальных объектов (индивидов) в настоящем стандарте, не все классы являются хорошо обособленными множествами. Пояснение приводится в ИСО 15926-2.
Примечание 3 - Адаптировано из ИСО 15926-1:2004, определение 3.1.1.
2.1.3 шаблон класса (class template): Шаблон формирования утверждений (высказываний) о классах.
2.1.4 концептуальная модель данных (conceptual data model): Модель данных в трехсхемной архитектуре, определенной в ИСО/ТО 9007, в которой структура данных представляется в форме, не зависимой от формата физического хранения или внешнего представления.
2.1.5 основной класс (core class): Класс, отражающий разделения индивидов и отношений в соответствии с общеупотребительными терминами, применяемыми в обычном языке.
Примечание - Условия членства часто не имеют формального определения; понимание класса может быть задано примером.
Пример - Труба, пол, насос, лампочка - основные классы.
[ИСО 15926-1:2004, определение 3.1.4]
2.1.6 основной шаблон (core template): Шаблон библиотеки справочных данных RDL, для которого все элементы справочных данных в расширении аксиомы шаблона являются основными классами.
2.1.7 банк данных (data store): Компьютерная система, обеспечивающая хранение данных для обращения к ним в будущем.
2.1.8 тип данных (data type): Область значений.
2.1.9 хранилище данных (data warehouse): Банк данных, в котором смежные данные объединяются для обеспечения интегрированного множества данных без дублирования или избыточности с поддержкой множества различных прикладных вариантов.
2.1.10 документ (document): Элемент, представляющий информацию с помощью специальных символов.
Примечание - Слово "документ" используется в широком смысле. Кроме обычной информации, содержащейся в бумажных документах (это не тот бумажный документ, который является экземпляром физического объекта PhysicalObject), например "описание оборудования" или "заказ на покупку", документ может также содержать другие данные, например данные транзакций на входе в инженерные программы или данные, которыми обмениваются деловые партнеры.
2.1.11 сущность (entity): Класс информации, определенный общими свойствами.
[ИСО 10303-11:2004, определение 3.3.6]
2.1.12 экземпляр сущности (entity instance): Именованный блок данных, представляющий собой блок информации внутри класса, определенного некоторой сущностью.
Примечание 1 - Является членом области, установленной типом данных сущности.
Примечание 2 - Адаптировано из ИСО 10303-11:2004, определение 3.3.8.
2.1.13 логика первого порядка (first-order logic): Формализованные суждения, в которых каждое предложение или высказывание (утверждение) подразделяются на субъект (подлежащее) и предикат (сказуемое).
Примечание 1 - Предикат модифицирует или определяет свойства субъекта. В логике первого порядка предикат может относиться только к одному субъекту.
Примечание 2 - Логику первого порядка также называют исчислением предикатов первого порядка или функциональным исчислением первого порядка.
2.1.14 шаблон индивидуального объекта (individual template): Шаблон утверждений об индивидуальном объекте.
2.1.15 экземпляр (instance): Именованное значение.
[ИСО 10303-11:2004, определение 3.3.10]
2.1.16 язык ИСО 15926-2 (ISO 15926-2 language): Язык первого порядка, на котором выражена модель данных ИСО 15926-2.
Примечание - Язык ИСО 15926-2 описан в разделе 4.1.
2.1.17 информация о жизненном цикле (life-cycle information): Информация (сведения) об объекте possible_individual, собранная в некоторый момент времени в течение жизненного цикла конкретного индивидуального объекта (индивида).
Примечание - В ИСО 15926-2:2003, определение 3.1.6, индивидуальный объект - это "объект реального мира, который существует в пространстве и времени".
2.1.18 шаблон библиотеки справочных данных RDL (RDL template): Шаблон, имеющий, по крайней мере, один элемент справочных данных в расширении аксиомы данного шаблона.
2.1.19 справочные данные (reference data): Данные жизненного цикла перерабатывающих предприятий, предоставляющие информацию о классе или об отдельных его элементах, которые являются типовыми для большей части оборудования или представляют интерес для многих пользователей.
[ИСО 15926-1:2004, определение 3.1.18]
2.1.20 библиотека справочных данных (reference data library; RDL): Управляемый набор справочных данных.
[ИСО 15926-1:2004, определение 3.1.19]
Примечание - В ИСО/ТС 15926-8 понятия "RDL" и "онтология" взаимозаменяемы. Альтернативный термин - "информационная модель".
2.1.21 воплощение (reification): Стиль моделирования, в котором отношение выражается как класс объектов.
Пример - Отношение Employed-by (принят на работу) воплощается объектом Employment (прием на работу), соединенным с объектами Employee (служащий) и Organization (организация). Смысл данного отношения (с определенным количеством элементов с обеих сторон) заключается в том, что "количество служащих организации должно быть больше или равно нулю". Воплощенный объект Employment может быть субъектом в других отношениях, определяя их.
Примечание - Реляционные типы данных сущности ИСО 15926 - это все типы данных сущности, имеющей два атрибута, за исключением класса отношений class_of_relationship.
2.1.22 шаблон (template): Множество, включающее предикат логики первого порядка (для которого определение задается как аксиома), шаблонные подписи и расширение аксиомы шаблона.
2.1.23 расширение шаблона; расширение аксиомы шаблона (template expansion; template axiom expansion): Утверждение (высказывание), выраженное в типах данных сущности ИСО 15926-2, эквивалентных аксиоме шаблона.
Примечание - Расширение аксиомы шаблона относится к типовым комплексным условиям равнозначности на языке ИСО 15926-2. Данное расширение получается путем повторного использования условий равнозначности шаблона до тех пор, пока интерпретация шаблона будет выражена непосредственно в терминах простых конструктивов (конструкций) языка ИСО 15926-2.
2.1.24 расширение экземпляра шаблона (template instance expansion): Множество простых утверждений (высказываний) на языке ИСО 15926-2, полученных путем задания значений переменных в расширенной аксиоме шаблона с экземплярами сущности.
2.1.25 аксиома шаблона (template axiom): Аксиома на языке шаблона, определяющая интерпретацию шаблонных высказываний (утверждений шаблона).
2.1.26 экземпляр шаблона (template instance): Упорядоченный список экземпляров сущности, для которых шаблон является истинным.
2.1.27 язык шаблона (template language): Аксиомы логики первого порядка, расширяющие модель данных ИСО 15926-2.
2.1.28 роль шаблона (template role): Поименованный и перенумерованный аргумент шаблона с требуемым типом, представленным как тип данных сущности, тип данных или класс справочных данных.
Пример - Экземпляр косвенного (непрямого) свойства шаблона InstanceOflndirectProperty(a, b, c) означает, что a - это класс косвенных свойств ClassOflndirectProperty, b (временная часть) - это возможный индивидуальный объект Possiblelndividual, к которому относится рассматриваемая зависимость, и c - это экземпляр свойства Property. Аргумент b имеет тип ClassOflndirectProperty, который имеет экземпляр Property равный c. Шаблон имеет следующие роли:
- название роли: тип свойства;
- название роли: обладатель свойства;
- название роли: Property.
2.1.29 шаблонная подпись (template signature): Поименованный, упорядоченный и напечатанный список ролей шаблона.
Пример - Релизация* косвенного (непрямого) свойства шаблона InstanceOflndirectProperty(a, b, c) означает, что a - это класс косвенного (непрямого) свойства ClassOflndirectProperty, b (временная часть) - это возможный индивидуальный объект Possiblelndividual, к которому относится рассматриваемая зависимость и c - это экземпляр свойства Property. Аргумент b имеет тип ClassOflndirectProperty, c - это экземпляр Property. Шаблонная подпись:
________________
* Текст документа соответствует оригиналу. - .
- название роли: тип свойства, тип роли: ClassOflndirectProperty;
- название роли: обладатель свойства, тип роли: Possiblelndividual;
- название роли: Property, тип роли: Property.
2.1.30 утверждение шаблона, шаблонное высказывание (template statement): Утверждение (высказывание), сделанное путем задания значений (инстанцирования) ролей шаблона экземплярами сущностей.
2.1.31 значение (value): Элемент (единица) данных.
[ИСО 10303-11:2004, definition 3.3.22]
2.2 Аббревиатуры
FOL - Логика первого порядка (first order logic);
DL - Описательная логика (description logic);
RDL - Библиотека справочных данных (reference data library).
3 Фундаментальные понятия и допущения
3.1 Общие положения
Модель данных ИСО 15926-2 является базовой и высоконормализованной. С одной стороны, это обеспечивает требуемую гибкость, с другой - это усложняет рассмотрение. Настоящий стандарт определяет шаблоны, являющиеся выражениями предварительно заданных семантических блоков, допускающих удобное использование в рамках рассматриваемой модели. Подход, принятый в настоящем стандарте, основан на архитектуре, описанной в ИСО/ТС 18876-1 (см. рисунок 1).
3.2 Понятия и модели
Понятия и модели, показанные на рисунке 1, рассмотрены в настоящем стандарте.
Foundation concepts | Основные понятия |
Integration model subset | Подмножество интеграционной модели |
General concepts | Общие понятия |
Subset selection | Выбор подмножества |
Mapping | Отображение |
Discipline-specific concepts | Понятия для конкретной дисциплины |
Derived concepts | Производные понятия |
Application model | Модель приложения |
Рисунок 1 - Обзор архитектуры интеграции ИСО/ТС 18876-1
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.
Classifiedldentification (myPump; PU10100; TagNumber)
Указанные три термина - это справочные данные, шаблон определен в логике первого порядка.
Если практическая реализация верифицирует шаблон, то типы сущностей справочных данных проверяются путем лифтинга шаблона. Указанные справочные данные рассматриваются как постоянные. При этом результатом проверки может быть значение true или false.
3.2.3 Таксономия пользователя
Там, где таксономия ИСО/ТС 15926-4 определяет общие понятия на рисунке 1, организации (пользователю) часто бывает необходимым определить конкретные прикладные понятия. Указанные понятия определяются в форме специализаций общих понятий в таксономии ИСО/ТС 15926-4.
Пример - СР-834833 ('Модель насоса AK/150') - это специализированный класс в каталоге поставщика корпорации XYZ. Этот класс поставщика размещается в библиотеке RDL поставщика. При этом данный класс должен быть специализацией другого класса, размещенного в рассматриваемой таксономии вверх по дереву до попадания внутрь таксономии ИСО/ТС 15926-4.
3.2.4 Шаблоны
Шаблоны (см. разделы 4 и 5), определенные в настоящем стандарте и в специализациях пользователя, формируют "производные понятия" на рисунке 1.
4 Основы моделирования
4.1 Модели данных ИСО 15926-2 в логике первого порядка
Настоящий раздел определяет язык ИСО 15926-2 (формулировку ИСО 15926-2, стандартизованную в соответствии с форматом языка EXPRESS) в логике первого порядка. В настоящем стандарте этот язык служит для представления модели данных ИСО 15926.
В языке EXPRESS ИСО 15926-2 названия типов сущностей и атрибутов пишутся в нижнем регистре вместе с символом нижнего подчеркивания "_", разделяющем слова в названии. В языке ИСО 15926-2, типы сущностей и названия атрибутов пишутся в верхнем регистре в "горбатом" стиле. Атрибуты имеют дополнительную приставку "has". Например, тип сущности class_of_class_of_relationship поименован как ClassOfClassOfRelationship. Атрибут shape_dimension в настоящем стандарте поименован как hasShapeDimension.
В языке ИСО 15926-2 типы сущностей представляются как унарные предикаты первого порядка. Пусть а - тип сущности EXPRESS. На языке ИСО 15926-2 он представляется как
A(x),
где A(c) истинно только в том случае, если c является экземпляром a.
Атрибуты представляются на языке ИСО 15926-2 как бинарные предикаты: если r - атрибут EXPRESS, то получим:
hasR(x; у).
Интерпретация 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:
A(x)
Типы сущностей ABSTRACT ИСО 15926-2 представляются на языке ИСО 15926-2 утверждением, что каждый экземпляр абстрактного типа сущности также задает значение, по крайней мере, одному ближайшему подтипу абстрактного типа сущности. Если тип сущности a - это тип ABSTRACT, а b, c и d - ближайшие подтипы a, то a - это абстрактный объект. Он представляется в логике первого порядка (FOL) следующим образом:
A(x)
Стандарт ИСО 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, то:
hasR(x, y)
Множество допустимых значений атрибута представляется на языке ИСО 15926-2 путем задания ограничения на диапазон бинарного предиката, представляющего рассматриваемый атрибут. В языке EXPRESS значения атрибутов всегда ограничиваются по отношению к данному типу сущности. Указанные ограничения представляются локальными ограничениями диапазонов на языке ИСО 15926-2. Это означает, что ограничение диапазона всегда включает ограничение области бинарного предиката.
Предположим, что r - это атрибут, значения которого ограничены типом сущности f для типа сущности a и типом сущности g для типа сущности b. Тогда на языке ИСО 15926-2 это записывается следующим образом:
A(x)
B(x)
Каждый атрибут практической реализации EXPRESS ИСО 15926-2 имеет ограничение кардинального числа: [0,1] или [1,1]. Ограничения кардинального числа для атрибутов задаются на каждый тип сущности как для ограничений диапазона. Ограничения кардинального числа на бинарные предикаты представляются с помощью двух аксиом. Предположим, что атрибут r имеет ограничение кардинального числа [1,1] для типа сущности a. На языке ИСО 15926-2 это записывается как пара аксиом:
A(x)
A(x)
Формула (1) представляет собой ограничение кардинального числа [1,*). Вторая аксиома представляет собой ограничение кардинального числа [0,1]. Вместе они выражают ограничение кардинального числа [1,1]. Ограничение кардинального числа [0,1] представляется только формулой (2).
Если атрибут ограничен правилом UNIQUE языка EXPRESS, то на языке ИСО 15926-2 это представляется путем задания требования, что предикат - это обратный функционал. Если атрибут r удовлетворяет требованию UNIQUE для типа сущности A, то:
A(x)
Множество аксиом языка ИСО 15926-2 перечислено в приложении В.
Примечание 3 - С помощью блока проверки логики первого порядка FOL доказано, что рассматриваемое множество аксиом логически непротиворечиво.
4.2 Определение логического шаблона
Настоящий раздел определяет логические шаблоны. Данные шаблоны, в соответствии с разделом 5, дополнительно имеют подписи. В настоящем стандарте этот вопрос не рассматривается.
Для формулы
где N
Множество TS (
-
- если S
Примечание - Интуитивное представление о рассматриваемом множестве шаблонов: чтобы гарантировать, что расширение шаблона заканчивается, нужно запретить множества циклических определений шаблонов (например, если шаблон расширяется до формулы, содержащей шаблон B, который, в свою очередь, расширяется до формулы, содержащей шаблон A). Наше определение гарантирует, что определение шаблона N(...)
Пример - Множество определений
{А(х)
B(x)
это действительное множество шаблонов, а множество определений
{A(x)
B(x)
4.3 Протошаблоны
Протошаблоны являются базовой формой шаблонов. Они реализуют слой абстракции сразу над реляционными типами сущностей ИСО 15926-2 путем сокрытия конкретизированных (см. 2.1.21) отношений ИСО 15926-2.
Каждый протошаблон основывается на двух аксиомах в логике первого порядка FOL. Первая аксиома дает краткую форму реляционного типа сущности. Предикат протошаблона называется прототройкой (прототриплетом).
Предположим, что R - это реляционный тип сущности в ИСО 15926-2, и что R имеет две роли: r1 и r2. Прототройка для R, Rtriple, определяется как:
Rtriple(z, x, y)
Если реляционная сущность T наследует свою роль из супертипа R, то прототройка TTriple определяется как:
TTriple(z, x, y)
Предложение (бинарное) протошаблона выражает отношение между двумя заполнителями роли соответствующего реляционного типа сущности. Протошаблон для R, RTemplate, определяется как
RTemplate(x, y)
Аксиомы, определяющие протошаблоны для реляционных типов сущностей ИСО 15926-2, представлены в приложении C. Краткий листинг всех протошаблонов дан в приложении D.
4.3.1 entity Triple
Сказуемое entityTriple определено в разделе C.3, как дизъюнкция всех протошаблонов, данных в разделах C.1 и C.2. Данная тройка позволяет получить краткие выражения утверждений, применимых ко всем реляционным типам сущностей.
4.4 Диаграммы
Настоящий раздел определяет порядок интерпретации диаграмм.
Класс представляется прямоугольником, разделенным пополам. Верхняя часть содержит обозначение, нижняя определяет тип сущности ИСО 15926-2 класса. Класс с обозначением A и типом сущности Class показан на рисунке 2.
Рисунок 2 - Диаграмма класса
Зависимость показана двойным ромбом и соединительной линией, идущей к прямоугольнику, показывающему тип сущности и (по выбору) обозначение зависимости. Зависимость с обозначением R и тип сущности ClassOfConnectionOflndividual показаны на рисунке 3 (справа с обозначением, слева без обозначения).
Рисунок 3 - Диаграмма зависимости
Отношение (экземпляр зависимости) показывается аналогично зависимости, но с одинарным ромбом. Отношениям в общем случае не дают обозначений. На рисунке 4 показано отношение с типом сущности ConnectionOflndividual.
Рисунок 4 - Диаграмма отношения
Роли зависимостей и отношений указываются соединительными линиями с расшифровкой названия роли по ИСО 15926-2. Зависимость R типа ClassOfConnectionOflndividual между классами A и B (класс A - в роли hasClassOfSide1, класс B - в роли hasClassOfSide2) показана на рисунке 5.
Рисунок 5 - Диаграмма ролей зависимости
Кардинальное число зависимости ставится в соответствие роли с помощью соединительной линии, указывающей, какая роль соответствует end_l_cardinality, а какая - end_2_cardinality. См. рисунок 6.
Рисунок 6 - Диаграмма кардинальных чисел
Для часто используемых зависимостей типа "Классификация (членство)" и "Специализация (разбиение на подклассы)" символы отношений и индикаторы ролей могут отсутствовать. Вместо них рисуют стрелки. Зависимости представляются "точечными" и "пулевидными" стрелками соответственно. На рисунке 7 представлено отношение специализации между классами A и B.
Рисунок 7 - Диаграмма отношения Специализация
На рисунке 8 представлено отношение классификации индивидуального объекта a как члена класса A.
Рисунок 8 - Диаграмма отношения Классификация
5 Спецификации шаблона
5.1 Требования к шаблону, общие положения
Шаблон должен иметь:
- название;
- неформальное текстовое объяснение надлежащего использования шаблона и его смысл;
- роли листинга подписей и типы каждого аргумента (см. 5.2);
- формальное определение в форме двухусловного выражения (двухсторонней условной зависимости) на языке шаблона.
Формальное определение шаблона должно расширяться для иллюстративных целей до паттернов (образцов) языка ИСО 15926-2 (см. 4.1). Данное определение должно быть проверено на соответствие модели данных (см. 5.4).
5.2 Шаблонные подписи
Шаблонные подписи должны указывать ограничение для каждой роли шаблона, для допустимого типа индивидуального объекта, заполняющего роль. Каждое ограничение роли должно задаваться унарным предикатом.
Примечание 1 - Подпись можно рассматривать как представление полного определения шаблона, в который не включены зависимости между заполнителями ролей (указателями ролей).
Шаблонные подписи важны для представления и хранения данных. Выбор ограничений (из определения шаблона) для включения в подпись определяется только соображениями практической пользы.
Примечание 2 - Дальнейшая информация о представлении шаблона в виде справочных данных приведена в разделе 8.
Шаблонная подпись описывается как упорядоченный список ролей шаблона. Каждая роль должна иметь:
a) название. Названия ролей должны быть уникальными внутри подписи;
b) допустимый тип ограничения для индивидуальных объектов, заполняющих данную роль:
1) тип сущности,
2) класс библиотеки справочных данных RDL;
3) тип данных, означающий, соответственно, что любой индивидуальный объект, заполняющий роль: 1) должен иметь заданный тип сущности, 2) классифицирован в указанном классе библиотеки RDL, 3) является экземпляром указанного типа данных.
Примечание - Каждая роль подписи задает ограничение на тип индивидуального объекта, реализующего рассматриваемую роль. Если унарные шаблоны используются в практических реализациях справочных данных, то в общем случае они не подходят для определения типов роли, даже если хранятся в библиотеке RDL в качестве классов. Именно шаблоны "пробегают" упорядоченный список индивидуальных объектов, а не индивидуальные объекты. Роль, тип которой задается унарным шаблоном, может, таким образом, быть реализована только списками, содержащими один элемент.
5.3 Шаблонная специализация
Специальным случаем определения шаблона является введение одного шаблона как специализированной версии другого шаблона. Пусть
T(x, y, z)
Предположим, что
Отсюда следует, что
Примечание - Это относится только к логическому определению специализированного шаблона. Если шаблон соответствует настоящему стандарту, то требования давать пояснения и иметь подписи (см. 5.1) сохраняются.
5.4 Проверка соответствия по ИСО 15926-2
Каждое определение шаблона должно быть проверено на выполнение ограничений, наложенных моделью данных ИСО 15926-2. Нужно удостовериться, что каждый шаблон может быть реализован способом, соответствующим требованиям языка ИСО 15926-2.
Примечание 1 - Нижеследующая процедура может быть использована для проверки того, что шаблон T удовлетворяет требованиям ИСО 15926-2.
Реализуем T с парой четко выраженных произвольных индивидуальных объектов, а затем расширим данное утверждение в соответствии с аксиомой шаблона. Расширение данного шаблона обычно требует расширения других шаблонов (любых шаблонов, появляющихся в определении T и в определениях последующих шаблонов, являющихся результатом расширения предшествующих). Выполним расширение рассматриваемого экземпляра шаблона и посмотрим, содержит ли данное расширение предикаты языка, которые не являются частью ИСО 15926-2 (то есть, посмотрим содержатся ли в нем языковые предикаты шаблона):
- если "да", то определение шаблона обращается к предикатам, для которых формальное определение ИСО 15926-2 отсутствует и определение T является неполным;
- если "нет", то расширение экземпляра шаблона является выражением языка ИСО 15926-2. Данное выражение должно быть проверено на соответствие модели ИСО 15926-2 с помощью обобщенных методов логики первого порядка.
Успешные испытания соответствия доказывают, что рассматриваемый шаблон имеет интерпретацию в терминах модели данных ИСО 15926 и, таким образом, удовлетворяет требованиям формального критерия соответствия.
Примечание 2 - Процедура проверки соответствия поставленной цели в настоящем стандарте не рассматривается.
6 Шаблоны индивидуальных объектов
6.1 Цель
В данном разделе рассматриваются шаблоны, характеризующие индивидуальные объекты, в отличие от классов. Обычно данные шаблоны регистрируют информацию об одном физическом объекте.
Примечание 1 - ИСО 15926 не требует четкого разделения всей (совокупной) предметной области на индивидуальные объекты, классы, метаклассы и т.д. Соответственно, вопрос "Что такое индивидуальный объект?" не имеет четкого ответа.
6.2 Необходимые справочные элементы
В настоящем разделе рассмотрены следующие элементы справочных данных, используемые в аксиомах шаблона. Расширение языка ИСО 15926-2 происходит за счет термина индивидуального объекта. Для практических приложений шаблонов, определения которых относятся к рассматриваемому элементу, указанный элемент должен быть внесен в библиотеку справочных данных.
Таблица 1 - Справочные элементы: шаблоны индивидуальных объектов (индивид)
Справочный индивидуальный объект | Тип сущности |
ActivityLocation | ClassOfRelationshipWithSignature |
InvolvementSuccession | ClassOfRelationshipWithSignature |
ActivityLocation и InvolvementSuccession - это зависимости. Соответствующие записи библиотеки RDL должны определять классы для ролей в соответствии с типом сущности hasClassOfEnd1 или hasClassOfEnd2, представляющие, соответственно, области и диапазоны указанных зависимостей.
Для ActivityLocation область и диапазон задаются справочными элементами, представляющими типы сущностей Activity и SpatialLocation, в соответствии с предназначением в части размещения операции.
Для InvolvementSuccession область и диапазон задаются справочными элементами, представляющими тип сущности InvolvementByReference.
6.3 Начальное множество
6.3.1 Шаблон ClassificationOflndividual
Рассматривается шаблон классификации индивидуальных объектов (в отличие от пар индивидуальных объектов, классов или зависимостей).
ClassificationOflndividual(a, b) означает, что a - это индивидуальный объект, b - это класс индивидуальных объектов, и a - член класса b.
В соответствии с ИСО 15926-2:
Классификация - это тип отношения, указывающего, что классифицируемый элемент является членом некоторого класса.
N | Название роли | Тип роли |
1 | Индивидуальный объект | Possiblelndividual |
2 | Класс | ClassOflndividual |
ClassificationOflndividual(
Possiblelndividual(
ClassOflndividual(
ClassificationTemplate(
Пример - Классификация Alfred (Альфреда) как Engineer (инженера) может быть выражена с помощью настоящего шаблона. Расширение утверждения ClassificationOflndividual(Alfred, Person) соответствует утверждению на языке ИСО 15926-2, показанному на нижеследующей диаграмме.
Отметим, что справочные индивидуальные объекты Alfred и Engineer не определяются утверждениями шаблона. Каждый элемент может иметь более специализированный тип сущности в отличие от показанного на диаграмме.
6.3.2 Шаблон ClassificationOfRelationship
Настоящий шаблон задает тип отношения. Это шаблон классификации. Он только классифицирует пары элементов как члены зависимостей.
ClassificationOfRelationship(a, b) означает, что a - это упорядоченая пара, b - это зависимость, и a - член b.
Рисунок 9 - Пример шаблона ClassificationOflndividual
N | Название роли | Тип роли |
1 | Пара | Relationship |
2 | Зависимость | ClassOfRelationship |
ClassificationOfRelationship(
Relationship(
ClassOfRelationshipfe(
ClassificationTemplate(
Примечание - См. также InstanceOfRelationship.
Пример - Утверждение ClassificationOfRelationship(<Alfred, ACME Co.>, Employment) расширяется на представление, структурированное в следующей диаграмме. Отметим, что:
- определение первого аргумента (спецификация типа сущности и членов упорядоченной пары) не представлено как часть утверждения шаблона;
- тип сущности Relationship является абстрактным. В надлежащей реализации настоящего шаблона упорядоченная пара имеет тип сущности, являющийся подтипом Relationship;
- использование угловых скобок,
Рисунок 10 - Пример шаблона ClassificationOfRelationship
6.3.3 Шаблон InstanceOfRelation
Настоящий шаблон выражает отношения, не имеющие предварительно определенного типа ИСО 15926-2. Утверждение lnstanceOfRelationship(a, b, c) означает, что a - обычная зависимость, в которой аргумент b поставлен в соответствие аргументу c.
N | Название роли | Тип роли |
1 | Зависимость | ClassOfRelationshipWithSignature |
2 | Первый элемент | Thing |
3 | Второй элемент | Thing |
lnstanceOfRelation(
ClassOfRelationshipWithSignature(
Thing(
Thing(
ClassificationOfRelationship(u,
Примечание - Настоящий шаблон использует шаблон ClassificationOfRelationship. Если этот шаблон использует некоторую упорядоченную пару (отношение) как аргумент, классифицируемый некоторой зависимостью, то данный шаблон использует указанные элементы упорядоченной пары как аргументы. Представление указанных элементов в виде упорядоченной пары определяется аксиомой шаблона.
Пример - Пусть Alfred и ACME Co. - это экземпляры сущности Person, а Employment - заданная зависимость (то есть ClassesOfRelationshipWithSignature). Тогда экземпляр зависимости InstanceOfRelationship(Employment, Alfred, ACME Co.) расширяется на нижеследующее представление, сравнимое с тем, что показано в примере для зависимости ClassificationOfRelationship. Отметим, что:
- никакие обозначения классифицированных упорядоченных пар не определены;
- определение зависимости ClassOfRelationshipWithSignature, включающей спецификации ролей для границ зависимости, в утверждении шаблона не дается.
Рисунок 11 - Пример шаблона InstanceOfRelationship
6.3.4 Шаблон IdentificationByNumber (идентификация по номеру)
Данный шаблон обеспечивает именование элементов (things) действительными числами.
ldentificationByNumber(a, b) означает, что a - действительное число, и что а ставится в соответствие b.
N | Название роли | Тип роли |
1 | Идентификатор | ExpressReal |
2 | Идентифицирован | Thing |
ldentificationByNumber(
ExpressReal(
Thing(
ClassOfldentificationTemplate(
Примечание - Настоящий шаблон - это специализированная версия ClassOfldentificationTemplate, накладывающая ограничение на тип первого аргумента от ClassOfinformationRepresentation до его подтипа ExpressReal.
Пример - Утверждение, что число
Рисунок 12 - Пример шаблона IdentificationByNumber
6.3.5 Шаблон Classifiedldentification (классифицированная идентификация)
Настоящий шаблон задает типизированное название элемента.
Classifiedldentification(a, b, c) означает, что b - это строка, c - тип назначения имени, а b - имя c-типа для a.
N | Название роли | Тип роли |
1 | Объект | Thing |
2 | Идентификатор | ExpressString |
3 | Контекст | ClassOfClassOfIdentification |
Classifiedldentification(
Thing(
ExpressString(
ClassOfClassOfldentification(
ClassificationTemplate(u,
Пример - Утверждение Classifiedldentification(Alfred, PN4723, Employee No. ACME Co.) (например, присвоение номера сотруднику) расширяется следующим образом.
Рисунок 13 - Пример шаблона Classifiedldentification
Примечание - Настоящий шаблон определяет названия элементов, а также тип (классификатор) для самих назначений. Надлежащее использование данного классификатора - представление контекста, в котором назначение имени является действительным.
6.3.6 Шаблон LocationOfActivity (размещение операции)
Настоящий шаблон определяет место проведения операции.
LocationOfActivity(a, b) означает, что a - это операция, b - размещение, и a происходит в b.
N | Название роли | Тип роли |
1 | Операция | Activity |
2 | Размещение | SpatialLocation |
LocationOfActivity(
Activity(
SpatialLocation(
InstanceOfRelationship(ActivityLocation,
Пример - Утверждение LocationOfActivity(Site Survey #23, Site No. 11) расширяется до нижеследующего представления.
Рисунок 14 - Пример шаблона LocationOfActivity
Примечание - LocationOfActivity - это шаблон библиотеки RDL, так как справочный индивидуальный объект ActivityLocation (ClassOfRelationshipWithSignature) имеется в соответствующей аксиоме шаблона.
6.3.7 Шаблон BeginningOflndividual
Настоящий шаблон устанавливает время начала существования индивидуального объекта (индивидуума).
BeginningOflndividual(a, b) означает, что a - это индивидуальный объект, b - момент времени, и a начинает существовать в момент b.
N | Название роли | Тип роли |
1 | Индивидуальный объект | Possiblelndividual |
2 | Время начала | RepresentationOfGregorianDateAndUtcTime |
BeginningOflndividual(
Possiblelndividual(
RepresentationOfGregorianDateAndUtcTime(
ClassOfRepresentationOfThingTemplate(
6.3.8 Шаблон BeginningEndOflndividual
Настоящий шаблон задает время начала и время окончания существования индивидуального объекта.
BeginningEndOflndividual(a, b, c) означает, что a - это индивидуальный объект, b и c - моменты времени. При этом a начинает существование в момент b и прекращает существование в момент c.
N | Название роли | Тип роли |
1 | Индивидуальный объект | Possiblelndividual |
2 | Время начала | RepresentationOfGregorianDateAndUtcTime |
3 | Время окончания | RepresentationOfGregorianDateAndUtcTime |
BeginningEndOflndividual(
Possiblelndividual(
RepresentationOfGregorianDateAndUtcTime(
RepresentationOfGregorianDateAndUtcTime(
ClassOfRepresentationOfThingTemplate(
ClassOfRepresentationOfThingTemplate(
Пример - Утверждение BeginningEndOflndividual(Survey # 23,2009-10-19,2009-10-21) расширяется до нижеследующего представления. Отметим, что обозначение экземпляра PointlnTime не определено.
Рисунок 15 - Пример шаблона BeginningEndOflndividual
6.3.9 Шаблон BeginningOfTemporalPart
Настоящий шаблон служит для утверждения того, что некоторый индивидуальный объект является временной частью другого индивидуального объекта и что он инициирован в момент времени, определенный значением временной отметки.
BeginningOfTemporalPart(a, b, c) означает, что a - индивидуальный объект, b - индивидуальный объект, c - это момент времени, а также что a - это временная часть b, и a начинает существовать в момент времени c.
N | Название роли | Тип роли |
1 | Часть | Possiblelndividual |
2 | Целое | Possiblelndividual |
3 | Время начала | RepresentationOfGregorianDateAndUtcTime |
BeginningOfTemporalPart(
Possiblelndividual(
Possiblelndividual(
RepresentationOfGregorianDateAndUtcTime(
TemporalWholePartTemplate(
BeginningOflndividual(
6.3.10 Шаблон BeginningEndLocationOfActivity
Настоящий шаблон указывает, где и когда выполняется операция.
BeginningEndLocationOfActivity(a, b, c, d) означает, что a - это операция, b и c - моменты времени, d - это размещение, а также что a происходит в расположении d, начинается в момент b и заканчивается в момент времени c.
N | Название роли | Тип роли |
1 | Операция | Activity |
2 | Время начала | RepresentationOfGregorianDateAndUtcTime |
3 | Время окончания | RepresentationOfGregorianDateAndUtcTime |
4 | Размещение | SpatialLocation |
BeginningEndLocationOfActivity(
Activity(
RepresentationOfGregorianDateAndUtcTime(
RepresentationOfGregorianDateAndUtcTime(
SpatialLocation(
BeginningEndOflndividual(
LocationOfActivity(
6.3.11 Шаблон InstanceOflndirectProperty (экземпляр косвенного (непрямого) свойства)
Настоящий шаблон выражает классифицированное обладание индивидуального объекта косвенным свойством.
lnstanceOflndirectProperty(a, b, c) означает, что a - это класс ClassOflndirectProperty, b (временная часть) - это возможный индивидуальный объект Possiblelndividual, к которому относится рассматриваемая зависимость, c - это экземпляр свойства Property. При этом b имеет тип a для класса ClassOflndirectProperty, в котором c - это экземпляр свойства Property.
N | Название роли | Тип роли |
1 | Тип свойства | ClassOflndirectProperty |
2 | Обладатель свойства | Possiblelndividual |
3 | Свойство | Property |
lnstanceOflndirectProperty(
ClassOflndirectProperty(
Possiblelndividual(
Property(
lndirectPropertyTriple(u,
6.3.12 Шаблон RealMagnitudeOfProperty (действительная величина свойства)
Настоящий шаблон определяет версию MagnitudeOfProperty, для которой величина представляется типом данных, а не нумерованным объектом.
RealMagnitudeOfProperty(a, b, c) означает, что a - это экземпляр Property, b - число с плавающей точкой, задающее значение свойства, а d - шкала (единица измерения).
N | Название роли | Тип роли |
1 | Свойство | Property |
2 | Значение свойства | ExpressReal |
3 | Шкала свойства | Scale |
RealMagnitudeOfProperty(
Property(
ExpressReal(
Scale(
ldentificationByNumber(
6.3.13 Шаблон IndirectPropertyScaleReal
Настоящий шаблон назначает типизированное косвенное свойство индивидуальному объекту. Величина свойства задается действительным числом и шкалой.
lndirectPropertyScaleReal(a, b, c, d) означает, что a - это класс ClassOflndirectProperty, b (временная часть) возможного индивидуального объекта Possiblelndividual, к которому относится данная зависимость, c - это число с плавающей точкой, задающее значение свойства, d - это шкала (единица измерения). При этом b имеет тип a для класса ClassOflndirectProperty, имеет значение c, и d - единица измерения.
N | Название роли | Тип роли |
1 | Тип свойства | ClassOflndirectProperty |
2 | Обладатель свойства | Possiblelndividual |
3 | Значение свойства | ExpressReal |
4 | Шкала свойства | Scale |
IndirectPropertyScaleReal(
ClassOflndirectProperty(
Possiblelndividual(
ExpressReal(
Scale(
RealMagnitudeOfProperty(u,
6.3.14 Шаблон StatusApproval (утверждение статуса)
Настоящий шаблон указывает, что утверждающее лицо назначает статус отношения.
StatusApproval(a, b, c) означает, что a - это отношение, b - это класс утверждения по статусу, c - это утверждающее лицо, назначающее величине a статус b.
N | Название роли | Тип роли |
1 | Отношение | Relationship |
2 | Статус | ClassOfApprovalByStatus |
3 | Утверждающее лицо | Possiblelndividual |
StatusApproval(
Relationship(
ClassOfApprovalByStatus(
Possiblelndividual(
ClassificationTemplate(u,
6.3.15 Шаблон Classifiedlnvolvement (классифицированное вовлечение в операцию)
Настоящий шаблон задает следующее условие: некоторый элемент вовлечен в операцию, и тип вовлечения классифицирован.
Примечание 1 - Настоящий шаблон также годится для слабых типов вовлечения, например "по ссылке".
Classifiedlnvolvement(a, b, c) означает, что a - это элемент, b - это операция и c - это тип вовлечения. При этом аргумент a вовлечен в операцию b, c - это тип вовлечения.
N | Название роли | Тип роли |
1 | Вовлечена | Thing |
2 | Операция вовлечения | Activity |
3 | Тип вовлечения | ClassOflnvolvementByReference |
Classifiedlnvolvement(
Thing(
Activity(
ClassOflnvolvementByReference(
ClassificationTemplate(u,
6.3.16 Шаблон InvolvementStatus (статус вовлечения)
Настоящий шаблон нужен для утверждения, что элемент вовлечен в операцию, что данное вовлечение классифицировано и имеет определенный тип и что данное вовлечение утверждено утверждающим лицом и имеет определенный статус.
lnvolvementStatus(a, b, c, d, e) означает, что a - это элемент, b - операция, c - тип вовлечения, d - статус утверждения, e - утверждающее лицо. Аргумент a вовлечен в операцию b, c - тип вовлечения; операция утверждена, d - тип статуса утверждения, e - утверждающее лицо.
N | Название роли | Тип роли |
1 | Вовлечен | Thing |
2 | Операция вовлечения | Activity |
3 | Тип вовлечения | ClassOflnvolvementByReference |
4 | Статус | ClassOfApprovalByStatus |
5 | Утверждающее лицо | Possiblelndividual |
lnvolvementStatus(
Thing(
Activity(
ClassOflnvolvementByReference(
ClassOfApprovalByStatus(
Possiblelndividual(
ClassificationTemplate(u,
StatusApproval(u,
6.3.17 Шаблон InvolvementStatusBeginning
Настоящий шаблон служит для утверждения, что начало происходит в определенное время, что элемент вовлечен в операцию, вовлечение классифицировано и имеет определенный тип, вовлечение утверждено утверждающим лицом и имеет определенный статус.
lnvolvementStatusBeginning(a, b, c, d, e, f) означает, что a - это элемент, b - операция, c - тип вовлечения, d - статус утверждения, e - утверждающее лицо, f - момент времени. Аргумент a вовлечен в операцию b, c - тип вовлечения, операция утверждена, d - тип статуса утверждения, e - утверждающее лицо, f - время начала операции.
N | Название роли | Тип роли |
1 | Вовлечен | Thing |
2 | Операция вовлечения | Activity |
3 | Тип вовлечения | ClassOflnvolvementByReference |
4 | Статус | ClassOfApprovalByStatus |
5 | Утверждающее лицо | Possiblelndividual |
6 | Время начала | RepresentationOfGregorianDateAndUtcTime |
lnvolvementStatusBeginning(
Thing(
Activity(
ClassOflnvolvementByReference(
ClassOfApprovalByStatus(
Possiblelndividual(
RepresentationOfGregorianDateAndUtcTime(
InvolvementStatus(
6.3.18 Шаблон SuccessionOflnvolvementByReference
Настоящий шаблон указывает, что за одним вовлечением следует другое.
SuccessionOflnvolvementByReference(a, b) означает, что a - это вовлечение, b - вовлечение, и b следует за a.
Примечание - Утверждение SuccessionOflnvolvementByReference - это шаблон RDL, так как справочный индивидуальный объект InvolvementSuccession имеется в аксиоме шаблона.
N | Название роли | Тип роли |
1 | Предок (predecessor) | InvolvementByReference |
2 | Наследник (successor) | InvolvementByReference |
SuccessionOflnvolvementByReference(
InvolvementByReference(
lnvolvementByReference(
lnstanceOfRelationship(InvolvementSuccession,
6.3.19 Шаблон SuccessionOflnvolvementlnActivity
Настоящий шаблон указывает, что в некоторой операции за одним элементом, вовлеченным в данную операцию, следует другой элемент.
Примечание 1 - Здесь именно вовлеченные элементы являются аргументами шаблона, а не отношения вовлечения.
SuccessionOflnvolvementlnActivity(a, b, c) означает, что a - это вовлечение, b - вовлечение, c - операция. Аргумент b следует за a, и оба они вовлечены в операцию c.
N | Название роли | Тип роли |
1 | Вовлеченный предок (predecessor) | Thing |
2 | Вовлеченный наследник (successor) | Thing |
3 | Предмет вовлечения | Activity |
SuccessionOflnvolvementlnActivity(
Thing(
Thing(
Activity(
lnvolvementByReferenceTriple(
SuccessionOflnvolvementByReference(
7 Шаблоны классов
7.1 Цель
В данном разделе рассмотрены шаблоны, характеризующие типы сущностей. В характеристическом случае члены класса (индивидуальные объекты) или члены зависимостей (упорядоченные пары) удовлетворяют общим ограничениям.
Примечание - ИСО 15926 не требует строгого разделения на индивидуальные объекты, классы, метаклассы и т.д.
7.2 Необходимые элементы справочных данных
В настоящем разделе следующие элементы справочных данных используются в аксиомах шаблона. Они представляют собой расширение языка ИСО 15926-2 за счет членов индивидуальных объектов. Для практических приложений шаблонов, чьи определения относятся к указанным элементам, данные элементы должны быть занесены в библиотеку справочных данных.
Таблица 2 - Справочные элементы: шаблоны классов
Справочный индивидуальный объект | Тип сущности |
EmptyClass | Class |
SetOf1Class | CIassOfClass |
SetOf2Classes | ClassOfClass |
SetOf3Classes | ClassOfClass |
End1UniversalRestriction | ClassOfSpecialization |
End2UniversalRestriction | ClassOfSpecialization |
* Cardinality | INTEGER |
Infinity | ArithmeticNumber |
-Infinity | ArithmeticNumber |
UomSymbolAssignment | ClassOfClassOfIdentification |
7.2.1 Справочные классы
Справочные элементы SetOf1Class, SetOf2Classes и SetOf3Classes являются классами. Их следует использовать в качестве классификаторов, например, EnumeratedSetOfClass, классифицирующих один, два или три класса соответственно. Классы с большим кардинальным числом могут быть добавлены к справочным данным.
Примечание - Справочные элементы SetOf1Class и т.д. используются в настоящем стандарте для представления того, что все члены экземпляров типа сущности EnumeratedSetOfClass заданы явно. Для класса A EnumeratedSetOfClass, членство в этом классе A выражается отношениями классификации. Классификация A, например, SetOf3Classes, указывает, что там есть три таких члена.
Справочный индивидуальный объект EmptyClass - это класс, в котором нет членов. Семантически данный класс может быть определен как результат применения класса DifferenceOfSetOfClass к классу EnumeratedSetOfClass, содержащему только один класс (какой класс выбрать - это несущественно). См. диаграмму ниже.
Рисунок 16 - Использование пустого класса EmptyClass
Примечание - На рисунке 16 экземпляр класса EnumeratedSetOfClass {а} обозначен фигурными скобками. Это означает, что его естественная интерпретация - это множество, содержащее элемент a. Данный паттерн (образец) представления названия не является обязательным.
Справочный элемент * Cardinality в настоящем стандарте представляет собой неограниченное максимальное кардинальное число.
Справочные элементы Infinity (бесконечность) и -Infinity в настоящем стандарте представляют собой положительную и отрицательную бесконечность в соответствии с требованиями определения числовых диапазонов.
7.2.2 Справочные зависимости
Элементы End1UniversalRestriction, End2UniversalRestriction и UomSymbolAssignment - это зависимости (relations), их типы сущностей являются подтипами ClassOfRelationship. Это означает, что запись в библиотеке RDL должна назначать классы для ролей указанных элементов в соответствии с требованиями соответствующих типов сущностей. Для рассматриваемых целей достаточно указания общих требований к таким назначениям в библиотеке справочных данных RDL.
Ограничения End1UniversalRestriction и End2UniversalRestriction характеризуют отношения подзависимостей. Для каждого элемента требуются роли hasClassOfSubclass и hasClassOfSuperclass. Этим ролям назначаются справочные элементы, представляющие тип сущности ClassOfRelationship.
Сущность UomSymbolAssignment назначает символы для шкал. Требуемые роли - это hasClassOfRepresented и hasClassOfPattern. Им назначают справочные элементы, представляющие типы сущностей Scale и ExpressString, соответственно.
7.3 Представление комплексных классов
В соответствии с ИСО 15926 операции классов объединение, пересечение и дополнение выражаются с помощью функциональных зависимостей UnionOfSetOfClass, IntersectionOfSetOfClass и DifferenceOfSetOfClass, соответственно. Каждый экземпляр указанных типов сущностей относится к множеству классов (элемент типа EnumeratedSetOfClass) в роли haslnput и к одному классу в роли hasResult.
Пусть A - это множество классов
- для UnionOfSetOfClass: объединение множеств в A, то есть множество элементов, принадлежащих либо
- для IntersectionOfSetOfClass: пересечение множеств в A, то есть множество элементов, принадлежащих одновременно и
- для DifferenceOfSetOfClass: члены объединения множеств в A, не принадлежащих пересечению множеств в A.
Шаблоны, выражающие определения комплексных классов, включают сущности UnionOf2Classes, lntersectionOf2Classes и 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. Ниже используются сокращенные обозначения множеств (например,
Примечание - Вместе с пересечением IntersectionOfSetOfClass, тип сущности DifferenceOfSetOfClass необходим для представления общего понятия дополнения множества. (Относительное) дополнение двух множеств a и b определяется как {x
7.4 Ограничения зависимостей
В данном разделе показано, как сложные ограничения на классы и зависимости могут быть представлены в соответствии с настоящим стандартом.
7.4.1 зависимости: области и сообласти
Представление зависимости между классами C и D не означает наложения ограничений на C или на D. Покажем, как можно использовать настоящий стандарт для наложения ограничений на классы в соответствии с зависимостями, в которые могут входить члены этих классов.
Пример - Типовое множество справочных данных механического оборудования включает данные рисунка 17 (параметр "Допустимая наружная температура") и число 18 (температура по Цельсию). В соответствии с иллюстрацией, Permitted Ambient Temperature - это зависимость, включающая Equipment в его роли hasClassOfPossessor, Temperature в роли hasPropertySpace и Celsius, как шкалу, соотносящую свойство Temperature с его числовым значением.
Рисунок 17 - Зависимость: допустимая наружная температура
Рисунок 18 - Зависимость: температура по Цельсию
Рисунок 17 соответствует нижеследующему множеству утверждений на языке ИСО 15926-2.
ClassOflnanimatePhysicalObject(Equipment)
SinglePropertyDimension(Temperature)
ClassOflndirectProperty(Perimitted Ambient Temperature)
hasClassOfPossessor(Permitted Ambient Temperature, Equipment)
hasPropertySpace(Permitted Ambient Temperature, Temperature)
Естественно рассматривать два направления (слева-направо и справа-налево) для такой зависимости, как Permitted Ambient Temperature, как четко выраженные направленные зависимости:
a) зависимость с областью Equipment (оборудование) и сообластью
________________
b) зависимость с областью Temperature и сообластью Equipment.
На каждое направление могут быть наложены различные ограничения.
7.4.2 Экзистенциальные и универсальные ограничения
Экзистенциальные ("некоторые") и универсальные ("все") ограничения представляют особый интерес для справочных данных. В обозначениях логики первого порядка FOL характеристические случаи соответствуют выражениям, представленным в нижеследующей форме, где C и D обозначают классы, а R - некоторую зависимость.
C(x)
C(x)
По формуле (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', классифицирована с помощью ограничения End1UniversalRestriction, то каждая пара величин (x, y) в R, для которой выполняется C'(x), является членом R'. (3)
Паттерн (pattern) представления классификации для специализации зависимости с помощью ограничения End2UniversalRestriction представлена на рисунке 22. В соответствии с настоящим стандартом классификация показывает, что ограничение (4) выполняется.
C'(x)
Рисунок 19 - Экзистенциальное ограничение: допустимая наружная температура
Пример - Пример паттерна (формы представления) приведен на рисунке 23, где подзависимость (без имени) между типом двигателя Туре N Engine и диапазоном Temperature представлена как Specialization для обобщенного отношения Permitted Ambient Temperature
________________
7.4.3 Подограничение зависимости "не более, чем n" (At-most n)
Паттерн (форма представления) ограничения лимитирует число отношений данного типа, в которые могут входить элементы данного класса. Для обобщенной зависимости R, действующей из C в D, и подкласса C' из C (см. рисунок 24), ограничения кардинального числа типа "не более, чем n", действующие по отношению к R, могут быть применены к C в соответствии с паттероном (5), который говорит, что C' может быть поставлено в соответствие (с помощью R) не более, чем n элементам.
Что касается универсальных ограничений, то справочные элементы ограничений End1UniversalRestriction и End2UniversalRestriction используются в настоящем стандарте, чтобы выражать ограничения типа "не более, чем n". Чтобы лимитировать число отношений R для класса C', используйте ограничения кардинального числа на подзависимости R', для которой область ограничена сущностью C'. Тогда специализация подзависимости классифицируется как универсальное ограничение паттерна (формы представления), указанного выше.
Пример - Пример паттерна ограничения типа "не более, чем n" приведен на рисунке 25. В соответствии с ним каждый член сущности C' участвует в 1-3 отношениях типа R'. Классификация ограничения End2UniversalRestriction гарантирует, что каждое отношение R с сущностью C в левой роли - это отношение R'. Таким образом, C' поставлено в соответствие (с помощью R) не более, чем трем D'.
Рисунок 20 - Ровно одно ограничение: допустимая наружная температура
Рисунок 21 - Классификация универсального ограничения
Рисунок 22 - Паттерн универсального ограничения
Рисунок 23 -Универсальное ограничение: оборудование, температура
Рисунок 24 - Пример ограничения типа "не более, чем n"
Рисунок 25 - Комбинирование универсальных ограничений и кардинальных чисел
7.5 Начальное множество
7.5.1 Шаблон ClassificationOfClass
Это шаблон для классификации классов.
ClassificationOfClass(a, b) означает, что a - это класс, b - это класс классов и a - это член b.
N | Название роли | Тип роли |
1 | Класс | Class |
2 | Классификатор классов | ClassOfClass |
ClassificationOfClass(
Class(
ClassOfClass(
ClassificationTemplate(
Пример - Типовое применение настоящего шаблона заключается в классификации классов, используемых либо специальными сущностями, либо сущностями, определенными в стандартах областей. На порядок класса ограничения не накладываются. В качестве примера классификации класса второго порядка с помощью класса третьего порядка рассмотрим "типы буровой штанги из области бурения". Можно использовать выражение ClassificationOfClass(Drilling Domain Class, Drill String Type), которое расширяется до утверждения на языке ИСО 15926-2, представленного на нижеследующей диаграмме.
Рисунок 26 - Пример шаблона ClassificationOfClass
7.5.2 Шаблон ClassificationOfClassOflndividual
Настоящий шаблон классифицирует классы, имеющие своими членами только индивидуальные объекты.
ClassificationOfClassOflndividual(a, b) означает, что a - это класс первого порядка, b - это класс второго порядка и a - это член b.
N | Название роли | Тип роли |
1 | Класс | ClassOflndividual |
2 | Классификатор класса | ClassOfClassOfIndividual |
ClassificationOfClassOflndividual(
ClassOflndividual(
ClassOfClassOflndividual(
ClassificationOfClass(
Примечание - Настоящий шаблон - это специализированная версия ClassificationOfClass с добавленным ограничением: первый аргумент - это класс первого порядка (ClassOflndividual), а второй аргумент - это класс второго порядка (ClassOfClassOflndividual).
Пример - Расширение утверждения ClassificationOfClass(Drilling Class, Drill String) показано на нижеследующей диаграмме.
Рисунок 27 - Пример шаблона ClassificationOfClassOflndividual
7.5.3 Шаблон ClassificationOfClassOfRelationship
Настоящий шаблон классифицирует зависимости.
ClassificationOfClassOfRelationship(a, b) означает, что a - это зависимость, b - это класс зависимостей и a - это член b.
N | Название роли | Тип роли |
1 | Класс | ClassOfRelationship |
2 | Классификатор класса | ClassOfClassOfRelationship |
ClassificationOfClassOfRelationship(
ClassOfRelationship(
ClassOfClassOfRelationship(
ClassificationOfClass(
Примечание - Настоящий шаблон - это специализированная версия утверждения ClassificationOfClass с добавленным ограничением: первый аргумент является зависимостью (ClassOfRelationship), второй аргумент - это класс зависимостей (ClassOfClassOfRelationship).
Пример - Расширение утверждения ClassificationOfClass(Shaft Seal Connection, Machinery relation) показано на нижеследующей диаграмме.
Рисунок 28 - Пример шаблона ClassificationOfClassOfRelationship
7.5.4 Шаблон RelationOflndividualsTolndividuals
Настоящий шаблон устанавливает, что зависимость относится только к индивидуальным объектам.
RelationOflndividualsTolndividuals(a) означает, что a - это зависимость одного из подтипов ClassOfRelationship, и что ее область и диапазон (определенные атрибутами в соответствии с типом сущности) являются классами первого порядка.
N | Название роли | Тип роли |
1 | Зависимость | ClassOfRelationship |
RelationOflndividualsTolndividuals(
ClassOfRelationship(x)
ClassOflndividual(
Примечание 1 - Цель настоящего унарного шаблона - выразить ограничение на зависимость. Использование дизъюнктивного шаблона entityTriple (см. приложение С.3) при определении аксиомы означает, что настоящий шаблон не подходит для представления зависимостей.
Примечание 2 - Языку шаблона не хватает выразительности для полного представления ограничения для рассматриваемого шаблона. Полное представление требует универсальной квантификации, утверждающей, что для каждого типа сущности, которому принадлежит рассматриваемое отношение субъектов, атрибуты данного отношения являются классами первого порядка. Универсальные утверждения в определениях шаблонов не рассматриваются (см. 4.2, приложение Н). Шаблон дает полезную аппроксимацию, так как надлежащее ограничение удовлетворяется при условии, что рассматриваемое отношение субъектов имеет только одну пару атрибутов (то есть, имеет уникальную область и диапазон). Данное требование не содержится в ИСО 15926-2 или языках шаблона.
Пример - Расширением утверждения RelationOflndividualTolndividuals(Shaft Seal Connection) является дизъюнктивное утверждение, что Shaft Seal Connection (соединение вала через уплотнение) принадлежит одному из подтипов отношения ClassOfRelationship с соответствующими атрибутами, заполненными элементами классов первого порядка. Данное утверждение не вполне подходит для представления одной диаграммой. Ниже приведена неформальная иллюстрация, соединительные линии не аннотированы названиями атрибутов.
Рисунок 29 - Пример шаблона RelationOflndividualsTolndividuals
7.5.5 Шаблон SpecializationOflndividualRelation (специализация зависимости для индивидуального объекта)
Настоящий шаблон показывает, что одна зависимость - это подзависимость другой зависимости. Она ограничена зависимостями между индивидуальными объектами.
SpecializationOflndividualRelation(a, b) означает, что a и b - это зависимости между индивидуальными объектами и a - это подзависимость b.
N | Название роли | Тип роли |
1 | Подзависимость | ClassOfRelationship |
2 | Суперзависимость | ClassOfRelationship |
SpecializationOflndividualRelation(
ClassOfRelationship(
ClassOfRelationship(
RelationOflndividualTolndividuals(
RelationOflndividualTolndividuals(
SpecializationTemplate(
Пример - Расширение утверждения SpecializationOflndividualRelation(Shatt Seal Connection, Seal Connection) - это дизъюнктивное утверждение: для сравнения см. пример утверждения RelationOflndividualsTolndividuals. Неформальная иллюстрация приведена на нижеследующей диаграмме.
Рисунок 30 - Пример шаблона SpecializationOflndividualRelation
7.5.6 Шаблон EnumeratedSetOf2Classes (Нумерованное множество двух классов)
Шаблон EnumeratedSetOf2Classes собирает два класса в один третий класс.
EnumeratedSetOf2Classes(a, b, c) означает, что a, b и c - это классы и a имеет только b и c своими членами.
N | Название роли | Тип роли |
1 | Классифицирован N 1 | Class |
2 | Классифицирован N 2 | Class |
3 | Нумерованное множество класса | EnumeratedSetOfClass |
EnumeratedSetOf2Classes(
Class(
Class(
EnumeratedSetOfClass(
ClassificationTemplate(
ClassificationTemplate(
ClassificationTemplate(
Примечание 1 - Порядок, в котором даются первые два аргумента, является несущественным. Нумерация названий роли ("Классифицирован N 1", "Классифицирован N 2") нужна только для того, чтобы отличить одну роль от другой.
Примечание 2 - См. 7.2.1, указание о представлении, используемом в настоящем шаблоне.
Пример - Утверждение EnumeratedSetOf2Classes(Pump, Pipe, {Pump, Pipe}) расширяется на нижеследующее представление.
Рисунок 31 - Пример шаблона EnumeratedSetOf2Classes
7.5.7 Шаблон EnumeratedSetOf3Classes
Шаблон EnumeratedSetOf2Classes собирает три класса в один четвертый.
EnumeratedSetOf2Classes(a, b, c, d) означает, что a, b, c и d - классы, и что a имеет только b, c и d своими членами.
N | Название роли | Тип роли |
1 | Классифицирован N 1 | Class |
2 | Классифицирован N 2 | Class |
3 | Классифицирован N 3 | Class |
4 | Нумерованное множество класса | EnumeratedSetOfClass |
EnumeratedSetOf3Classes(
Class(
Class(
Class(
EnumeratedSetOfClass(
ClassificationTemplate(
ClassificationTemplate(
ClassificationTemplate(
ClassificationTemplate(
Примечание - См. 7.2.1, дальнейшую информацию о представлении, используемом в настоящем шаблоне.
7.5.8 Шаблон UnionOf2Classes (объединение двух классов)
Шаблон UnionOf2Classes указывает, что один класс является объединением двух классов.
UnionOf2Classes(a, b, c) означает, что a, b и c - классы, c - это объединение a и b.
N | Название роли | Тип роли |
1 | Класс 1 | Class |
2 | Класс 2 | Class |
3 | Объединение классов | Class |
UnionOf2Classes(
Class(
Class(
Class(
UnionOfSetOfClassTemplate(y,
Примечание - См. 7.3, дальнейшую информацию о представлении, используемом в настоящем шаблоне.
Пример - Утверждение UnionOf2Classes(Pump, Pipe, Pump
Рисунок 32 - Пример шаблона UnionOf2Classes
7.5.9 Шаблон lntersectionOf2Classes (пересечение двух классов)
Шаблон lntersectionOf2Classes указывает, что класс является пересечением двух классов.
lntersectionOf2Classes(a, b, c) означает, что c - это пересечение a и b.
N | Название роли | Тип роли |
1 | Класс 1 | Class |
2 | Класс 2 | Class |
3 | Пересечение классов | Class |
lntersectionOf2Classes(
Class(
Class(
Class(
lntersectionOfSetOfClassTemplate(y,
Примечание - См. 7.3, дальнейшую информацию о представлении, используемом в настоящем шаблоне.
7.5.10 Шаблон DifferenceOf2Classes (разность двух классов)
Шаблон DifferenceOf2Classes указывает, что класс - это Difference (разность) двух классов в соответствии с ИСО 15926-2.
DifferenceOf2Classes(a, b, c) означает, что c - это разность a и b.
N | Название роли | Тип роли |
1 | Класс 1 | Class |
2 | Класс 2 | Class |
3 | Разность классов | Class |
DifferenceOf2Classes(
Class(
Class(
Class(
DifferenceOfSetOfClassTemplate(y,
Примечание - ИСО 15926-2 определяет разность двух классов a и b как (a
7.5.11 Шаблон RelativeComplementOf2Classes (относительное дополнение двух классов)
Шаблон RelativeComplementOf2Classes указывает, что один класс является относительным дополнением двух других классов.
RelativeComplementOf2Classes(a, b, c) означает, что c - это относительное дополнение a и b.
N | Название роли | Тип роли |
1 | Класс 1 | Class |
2 | Класс 2 | Class |
3 | Относительное дополнение классов | Class |
RelativeComplementOf2Classes(
Class(
Class(
Class(
lntersectionOf2Classes(
Примечание - Относительное дополнение двух классов a и b обычно обозначается как anb. См. 7.3, дальнейшую информацию о представлении, используемом в настоящем шаблоне.
Пример - Нижеследующая диаграмма показывает расширение RelativeComplementOf2Classes(a, b, a\b). Примечание: обозначения элементов {a,b}, (a
Рисунок 33 - Пример шаблона RelativeComplementOf2Classes
7.5.12 Шаблон DisjointnessOf2Classes (непересекаемость двух классов)
Настоящий шаблон указывает, что два класса не имеют общих членов (не пересекаются).
DisjointnessOf2Classes(x, y) означает, что пересечение x и y пусто.
N | Название роли | Тип роли |
1 | Класс 1 | Class |
2 | Класс 2 | Class |
DisjointnessOf2Classes(
Class(
Class(
lntersectionOf2Classes(
Примечание - См. 7.3, дальнейшую информацию о представлении, используемом в настоящем шаблоне. См. 7.2.1, описание элемента EmptyClass (пустой класс), использованного в настоящем шаблоне.
Пример - Утверждение DisjointnessOf2Classes(Pamp, Pipe, EmptyClass) расширяется до нижеследующего представления. Примечание: обозначения элемента {Pump,Pipe} включено, чтобы сделать диаграмму более читабельной. В определение расширения оно не включено.
Рисунок 34 - Пример шаблона DisjointnessOf2Classes
7.5.13 Шаблоны SpecializationAsEnd1UniversalRestriction, SpecializationAsEnd2UniversalRestriction
Шаблоны SpecializationAsEnd1UniversalRestriction и SpecializationAsEnd2UniversalRestriction указывают на специализацию зависимости с силой универсального ограничения.
Указанные шаблоны имеют одинаковые роли и подобные определения, за исключением использования справочных элементов End1UniversalRestriction и End2UniversalRestriction, соответственно.
SpecializationAsEnd1UniversalRestriction означает, что a и b - это зависимости, a - это подзависимость b, зависимость специализации между a и b является членом универсального ограничения End1UniversalRestriction.
N | Название роли | Тип роли |
1 | Подзависимость | ClassOfRelationship |
2 | Суперзависимость | ClassOfRelationship |
SpecializationAsEnd1UniversalRestriction(
ClassOfRelationship(
ClassOfRelationship(
ClassificationTemplate(y, End1UniversalRestriction))
SpecializationAsEnd2UniversalRestriction(
ClassOfRelationship(
ClassOfRelationship(
ClassificationTemplate(y, End2UniversalRestriction))
Примечание - Утверждение SpecializationAsEnd1UniversalRestriction(a, b) означает, что специализация b в a имеет силу универсального ограничения в классе, являющемся областью a: любая пара элементов b, в которой первый элемент является членом области в a - это член a (соответственно утверждение SpecializationAsEnd2UniversalRestriction(a, b) ограничивает диапазон a). См. 7.4, дальнейшую информацию о представлении, используемом в настоящем шаблоне.
Пример - Расширение утверждения SpecializationAsEnd2UniversalRestriction (Допустимая наружная температура 330А-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
N | Название роли | Тип роли |
1 | Кардинальное число | Cardinality |
2 | Минимальное кардинальное число | INTEGER |
CardinalityMax
N | Название роли | Тип роли |
1 | Кардинальное число | Cardinality |
2 | Максимальное кардинальное число | INTEGER |
CardinalityMinMax
N | Название роли | Тип роли |
1 | Кардинальное число | Cardinality |
2 | Минимальное кардинальное число | INTEGER |
3 | Максимальное кардинальное число | INTEGER |
CardinalityMin(
Cardinality(
INTEGER(
hasMinimumCardinality(
CardinalityMax(
Cardinality(
INTEGER(
hasMaximumCardinality(
CardinalityMinMax(
Cardinality(
INTEGER(
INTEGER(
CardinalityMin(
CardinalityMax(
Примечание - В соответствии с ИСО 15926 кардинальные числа - это объекты первого класса. В ИСО 15926-2 указано, что отсутствие описанных минимального или максимального значений кардинального числа должно интерпретироваться как отсутствие ограничений (см. 5.2.13.1). В основе представления ИСО 15926-2 лежит логика первого порядка, с общеизвестным допущением, что и нижняя, и верхняя границы задаются явно. Если нижняя граница не задана, то она принимается равной 0. Если верхняя граница не задана, то назначается справочный элемент * Cardinality (кардинальное число) (см. 7.2.1).
Пример - Утверждение CardinalityMin(2:*, 2, * Cardinality), с нижней границей кардинального числа равной 2 и неограниченной верхней границей иллюстрируется нижеследующей диаграммой.
Рисунок 36 - Пример шаблона CardinalityMinMax
7.5.15 Шаблоны назначения кардинального числа
Шаблоны CardinalityEnd1Min, CardinalityEnd1Max, CardinalityEnd1MinMax, CardinalityEnd2Min, CardinalityEnd2Max и CardinalityEnd2MinMax указывают ограничения кардинальных чисел для зависимостей.
CardinalityEnd1MinMax(a, b) означает, что a - это зависимость, b и c - целые, первая роль a имеет b как минимальное кардинальное число, c - как максимальное кардинальное число. Другие шаблоны настоящей группы имеют тот же паттерн.
CardinalityEnd1Min
N | Название роли | Тип роли |
1 | Отношение | ClassOfRelationship |
2 | Минимальное кардинальное число | INTEGER |
CardinalityEnd1Max
N | Название роли | Тип роли |
1 | Отношение | ClassOfRelationship |
2 | Максимальное кардинальное число | INTEGER |
CardinalityEnd1MinMax
N | Название роли | Тип роли |
1 | Отношение | ClassOfRelationship |
2 | Минимальное кардинальное число | INTEGER |
3 | Максимальное кардинальное число | INTEGER |
CardinalityEnd2Min
N | Название роли | Тип роли |
1 | Отношение | ClassOfRelationship |
2 | Минимальное кардинальное число | INTEGER |
CardinalityEnd2Max
N | Название роли | Тип роли |
1 | Отношение | ClassOfRelationship |
2 | Максимальное кардинальное число | INTEGER |
CardinalityEnd2MinMax
N | Название роли | Тип роли |
1 | Отношение | ClassOfRelationship |
2 | Минимальное кардинальное число | INTEGER |
3 | Максимальное кардинальное число | INTEGER |
CardinalityEnd1Min(
ClassOfRelationship(
INTEGER(
hasEnd1Cardinality(
CardinalityEnd1Max(
ClassOfRelationship(
INTEGER(
hasEnd1Cardinality(
CardinalityEnd1MinMax(
ClassOfRelationship(
INTEGER(
INTEGER(
hasEnd1Cardinality(
CardinalityEnd2Min(
ClassOfRelationship(
INTEGER(
hasEnd2Cardinality(
CardinalityEnd2Max(
ClassOfRelationship(
INTEGER(
hasEnd2Cardinality(
CardinalityEnd2MinMax(
ClassOfRelationship(
INTEGER(
INTEGER(
hasEnd2Cardinality(
Примечание 1 - Для неограниченных минимальных и максимальных кардинальных чисел следует назначать значения 0 и * Cardinality соответственно. См. определения шаблонов CardinalityMin и т.д. выше.
Примечание 2 - Первые и вторые роли зависимостей определены в таблице протошаблонов (см. приложение D.1).
Примечание 3 - Пусть R - это зависимость, в которой кардинальное число
Пример - Утверждение CardinalityEnd1MinMax(6 М8 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
7.5.16 Шаблон TimeRepresentation
Настоящий шаблон задает координаты моментов времени.
TimeRepresentation(a, b, c, d, e, f, g) означает, что a - это представление момента времени, b, c, d, e и f - целые числа, g - действительное число. Координаты величины a задаются числом b, представляющим год, c - месяц, d - день, e - часы, f - минуты, g - секунды.
N | Название роли | Тип роли |
1 | Время | RepresentationOfGregorianDateAndUtcTime |
2 | Год | INTEGER |
3 | Месяц | INTEGER |
4 | День | INTEGER |
5 | Часы | INTEGER |
6 | Минуты | INTEGER |
7 | Секунды | REAL |
TimeRepresentation(
RepresentationOfGregorianDateAndUtcTime(
INTEGER(
INTEGER(
INTEGER(
INTEGER(
INTEGER(
REAL(
hasYear(
hasMonth(
hasDay(
hasHour(
hasMinute(
hasSecond(
Примечание - Настоящий шаблон задает паттерн для определения моментов времени. В то время, как у типа сущности RepresentationOfGregorianDateAndUtcTime все атрибуты кроме hasYear (года) задаются по выбору, в данном шаблоне аргументов по выбору нет.
7.5.17 Шаблон MagnitudeOfProperty (величина свойства)
Шаблон MagnitudeOfProperty задает величину свойства.
MagnitudeOfProperty(a, b, c) означает, что a - это свойство, b - число, c - шкала значений, b - значение а, измеренное по шкале c.
N | Название роли | Тип роли |
1 | Свойство | Property |
2 | Значение свойства | ArithmeticNumber |
3 | Шкала значений свойства | Scale |
MagnitudeOfProperty(
Property(
ArithmeticNumber(
Scale(
ClassificationTemplate(u,
Пример - Расширение утверждения MagnitudeOfProperty(Mass 2 kg, 2, Kilogramme) иллюстрируется нижеследующей диаграммой.
Рисунок 38 - Пример шаблона MagnitudeOfProperty
7.5.18 Шаблон LowerUpperOfNumberRange
Шаблон LowerUpperOfNumberRange задает верхнюю и нижнюю границы числового диапазона.
LowerUpperOfNumberRange(a, b, с) означает, что a - это числовой диапазон, b и c - числа. Число b является нижней, а число c - верхней границей a.
N | Название роли | Тип роли |
1 | Диапазон | NumberRange |
2 | Нижняя граница | ArithmeticNumber |
3 | Верхняя граница | ArithmeticNumber |
LowerUpperOfNumberRange(
NumberRange(
ArithmeticNumber(
ArithmeticNumber(
LowerBoundOfNumberRangeTemplate(
UpperBoundOfNumberRangeTemplate(
Примечание - Если числовой диапазон не ограничен, то используйте справочные элементы Infinity и -Infinity (см. 7.2.1).
Пример - Расширение утверждения LowerUpperOfNumberRange([-213.1 Infinity], 273.1, Infinity) иллюстрируется нижеследующей диаграммой.
Рисунок 39 - Пример шаблона LowerUpperOfNumberRange
7.5.19 Шаблон LowerUpperOfPropertyRange
Шаблон LowerUpperOfPropertyRange задает верхнюю и нижнюю границы диапазона свойств.
LowerUpperOfPropertyRange(a, b, c) означает, что a - это диапазон свойств, b и c - свойства. Свойство b - нижняя граница, свойство c - верхняя граница a.
N | Название роли | Тип роли |
1 | Диапазон свойств | PropertyRange |
2 | Нижняя граница | Property |
3 | Верхняя граница | Property |
LowerUpperOfPropertyRange(
PropertyRange(
Property(
Property(
LowerBoundOfPropertyRangeTemplate(
UpperBoundOfPropertyRangeTemplate(
Пример - Расширение утверждения LowerUpperOfPropertyRange(0 20 Fahrenheit,0 Fahrenheit, 20 Fahrenheit) иллюстрируется нижеследующей диаграммой.
Рисунок 40 - Пример шаблона LowerUpperOfPropertyRange
7.5.20 Шаблон LowerUpperMagnitudeOfPropertyRange
Шаблон LowerUpperMagnitudeOfPropertyRange задает протяженность диапазона свойств в терминах максимального и минимального значений по шкале.
LowerUpperMagnitudeOfPropertyRange(a, b, c, d) означает, что a - диапазон свойств, b - шкала, c и d - числа. Величина a имеет c и d, соответственно, своими нижней и верхней границами, измеренными по шкале b.
N | Название роли | Тип роли |
1 | Диапазон свойств | Property Диапазон |
2 | Шкала | Scale |
3 | Нижняя граница | ArithmeticNumber |
4 | Верхняя граница | ArithmeticNumber |
LowerUpperMagnitudeOfPropertyRange(
PropertyRange(
Scale(
ArithmeticNumber(
ArithmeticNumber(
MagnitudeOfProperty(
Magnitude Property(
Пример - Расширение утверждения LowerUpperMagnitudeOfPropertyRange(-40 to 85 Celsius,Celsius,-40, 85) иллюстрируется нижеследующей диаграммой. Примечание: обозначения Temperature -40°С и Temperature 85°С включены, чтобы сделать диаграмму более читабельной. В определение расширения они не входят.
Рисунок 41 - Пример шаблона LowerUpperMagnitudeOfPropertyRange
7.5.21 Шаблон PropertyRangeRestrictionOfClass
Шаблон PropertyRangeRestrictionOfClass для класса индивидуальных объектов указывает, что величина свойства ограничена диапазоном значений.
PropertyRangeRestrictionOfClass(a, b, c) означает, что a - это класс, b - зависимость между свойствами, c - диапазон свойств. Каждое назначение свойства b для a принадлежит подзависимости b, диапазон которой ограничен c.
N | Название роли | Тип роли |
1 | Класс | ClassOflndividual |
2 | Свойство | ClassOflndirectProperty |
3 | Диапазон | PropertyRange |
PropertyRangeRestrictionOfClass(
ClassOflndividual(
ClassOflndirectProperty(
PropertyRange(
SpecializationAsEnd2UniversalRestriction(u,
Пример - Утверждение PropertyRangeRestrictionOfClass(330A-3-874, Working Pressure, 0-300 psi) (которое может представлять утверждение "допустимое рабочее давление насосов типа 330А-3-874 находится в диапазоне от 0 до 300 фунтов на квадратный дюйм") расширяется до нижеследующего представления.
Рисунок 42 - Пример шаблона PropertyRangeRestrictionOfClass
7.5.22 Шаблон PropertyRangeMagnitudeRestrictionOfClass
Шаблон PropertyRangeMagnitudeRestrictionOfClass задает диапазон значений свойств, применимый к классу индивидуальных объектов.
PropertyRangeMagnitudeRestrictionOfClass(a, b, c, d, e) означает, что a - это класс индивидуальных объектов, b - зависимость для свойства, c - шкала, d и e - действительные числа. Каждое свойство b имеет значение в диапазоне от d до e, измеренное по шкале c.
N | Название роли | Тип роли |
1 | Класс | ClassOflndividual |
2 | Ограниченное свойство | ClassOflndirectProperty |
3 | Шкала | Scale |
4 | Верхняя граница | ExpressReal |
5 | Нижняя граница | ExpressReal |
PropertyRangeMagnitudeRestrictionOfClass(
ClassOflndividual(
ClassOflndirectProperty(
Scale(
ExpressReal(
ExpressReal(
ldentificationByNumber(
LowerUpperMagnitudeOfPropertyRange(u,
Пример - Утверждение PropertyRangeMagnitudeRestrictionOfClass(330A-3-874, Working Pressure, pound-force per square inch, 0, 300) имеет нижеследующее расширение.
Рисунок 43 - Пример шаблона PropertyRangeMagnitudeRestrictionOfClass
7.5.23 Шаблон SymbolOfScale
Шаблон SymbolOfScale указывает, что символ представляет шкалу.
SymbolOfScale(a, b, c) означает, что a - шкала, b - строка. b - это идентификатор a, обозначенный как единица измерения.
N | Название роли | Тип роли |
1 | Шкала | Scale |
2 | Символ | ExpressString |
SymbolOfScale{
Scale(
ExpressString(
Classifiedldentification(
Примечание - Настоящий шаблон использует справочный элемент UomSymbolAssignment. Это зависимость, используемая для выбора символа названия. См. 7.2.2.
Пример - Расширение утверждения SymbolOfScale(Celsius,DegrC) иллюстрируется нижеследующей диаграммой.
Рисунок 44 - Пример шаблона SymbolOfScale
7.5.24 Шаблон DimensionUnitNumberRangeOfScale
Шаблон DimensionUnitNumberRangeOfScale задает размерность, числовой диапазон и обозначение шкалы.
DimensionUnitNumberRangeOfScale(a, b, с, d) означает, что a - это шкала, b - строка, c - размерность свойства, d - числовой диапазон, b - символ единицы измерения для шкалы, c - размерность, d - числовой диапазон шкалы.
N | Название роли | Тип роли |
1 | Шкала | Scale |
2 | Символ | ClassOfldentification |
3 | Размерность | SinglePropertyDimension |
4 | Числовой диапазон | NumberRange |
DimensionUnitNumberRangeOfScale(
Scale(
ExpressString(
SinglePropertyDimension(
NumberRange(
SymbolOfScale(
ScaleТройк(
Пример - Расширение утверждения DimensionUnitNumberRangeOfScale(Celsius, DegrC, Temperature, [-273.1 to Infinity]) иллюстрируется нижеследующей диаграммой.
Рисунок 45 - Пример шаблона DimensionUnitNumberRangeOfScale
7.5.25 Шаблон ClasslnvolvementStatusBeginning
Настоящий шаблон специализирует шаблон InvolvementStatusBeginning путем наложения ограничения: элемент, вовлеченный в операцию, должен быть классом.
ClasslnvolvementStatusBeginning(a, b, с, d, e, f) означает, что a - это класс, b - операция, c - тип вовлечения, d - статус утверждения, e - утверждающее лицо, f - момент времени. Объект a вовлечен в операцию b, c - тип вовлечения. Операция должна быть утверждена. d - тип статуса утверждения, e - утверждающее лицо, f - время начала операции.
N | Название роли | Тип роли |
1 | Вовлеченный класс | Class |
2 | Операция вовлекающего объекта | Activity |
3 | Тип вовлечения | ClassOflnvolvementByReference |
4 | Статус | ClassOfApprovalByStatus |
5 | Утверждающее лицо | Possiblelndividual |
6 | Время начала операции | RepresentationOfGregorianDateAndUtcTime |
ClasslnvolvementStatusBeginning(
Class(
Activity(
ClassOflnvolvementByReference(
ClassOfApprovalByStatus(
Possiblelndividual(
RepresentationOfGregorianDateAndUtcTime(
InvolvementStatusBeginning(
7.5.26 Шаблон ClasslnvolvementSuccession
ClasslnvolvementSuccession(a, b, c, d, e, f, g, h) означает, что два класса a, b вовлечены в одинаковой степени в операцию c. За вовлечением a с момента времени h происходит вовлечение b. Утверждающее лицо g назначает статус e для вовлечения a и статус f для вовлечения b.
Примечание 1 - В соответствии с ИСО 15926 классы являются неизменными (eternal class), то есть не имеющими жизненного цикла. Вместе с тем, некоторые высокоспециализированные классы могут быть пересмотрены (это тоже операция). Настоящий шаблон используется для соединения классов наследников (successor). Шаблон квалифицирует последующее вовлечение путем указания операции, утверждающего лица и отметки времени.
N | Название роли | Тип роли |
1 | Предшествующий класс | Class |
2 | Последующий класс | Class |
3 | Операция вовлечения | Activity |
4 | Тип вовлечения | ClassOflnvolvementByReference |
5 | Статус предка (predecessor) | ClassOfApprovalByStatus |
6 | Статус наследника | ClassOfApprovalByStatus |
7 | Статус утверждающего лица | Possiblelndividual |
8 | Время начала | RepresentationOfGregorianDateAndUtcTime |
ClasslnvolvementSuccession(
Class(
Class(
Activity(
ClassOflnvolvementByReference(
ClassOfApprovalByStatus(
ClassOfApprovalByStatus(
Possiblelndividual(
RepresentationOfGregorianDateAndUtcTime(
lnvolvementByReferenceTriple(
lnvolvementByReferenceTriple(
ClassificationTemplate(
ClassificationTemplate(
StatusApproval(
StatusApproval(
SuccessionOflnvolvementByReference(
8 Шаблоны как справочные данные
Если шаблон заносится в библиотеку справочных данных (RDL) в соответствии с ИСО 15926, то ему назначается идентификатор в соответствии с ИСО 15926. Хранение шаблона в библиотеке RDL обеспечивает эффективное совместное использование паттернов информации ИСО 15926.
8.1 Шаблонные подписи и аксиомы шаблонов
В соответствии с ИСО 15926 библиотека RDL хранит справочные данные, представленные на языке ИСО 15926-2. Язык ИСО 15926-2 и языки шаблонов, используемые в настоящем стандарте для выражения аксиом шаблонов, содержат логические операторы и кванторы. Выразительная сила указанных языков не ограничивается возможностями ИСО 15926-2. Формальные требования к представлению шаблонов в библиотеке RDL ограничиваются аспектом шаблонной подписи.
Библиотечное RDL-представление шаблона должно включать аксиому шаблона как аннотацию. Жесткие требования на синтаксис аксиом (превышающие стандартные требования к выражениям как формулам первого порядка в соответствии с языком ИСО 15926-2, рассматриваемым в настоящем стандарте в приложении В) не накладываются.
8.2 Представление class_of_multidimensional_object
Если шаблон представляется как справочные данные, то он имеет тип сущности 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(l)}
Смысл идентификатора определен в ИСО/МЭК 8824-1. Описание приведено в ИСО 10303-1.
Приложение B
(обязательное)
Листинг: ИСО 15926-2 в логике первого порядка
B.1 Общие положения
Настоящее приложение содержит множество аксиом в логике первого порядка FOL, представляющих практические реализации ИСО 15926-2 на языке EXPRESS, используемые в настоящем стандарте. Результаты трансляции практической реализации ИСО 15926-2 с языка EXPRESS в настоящее представление в логике первого порядка FOL представлены в 4.1.
B.2 Аксиома генеральной совокупности
B.3 Аксиомы подтипов
AbstractObject(x)
Activity(x)
Actuallndividual(x)
Approval(x)
ArithmeticNumber(x)
Arrangedlndividual(x)
ArrangementOflndividual(x)
AssemblyOflndividual(x)
Beginning(x)
BoundaryOfNumberSpace(x)
BoundaryOfPropertySpace(x)
Cardinality(x)
CauseOfEvent(x)
Class(x)
ClassOfAbstractObject(x)
ClassOfActivity(x)
ClassOfApproval(x)
ClassOfApprovalByStatus(x)
ClassOfArrangedlndividual(x)
ClassOfArrangementOflndividual(x)
ClassOfAssemblyOflndividual(x)
ClassOfAssertion(x)
ClassOfAtom(x)
ClassOfBiologicalMatter(x)
ClassOfCauseOfBeginningOfClassOflndividual(x)
ClassOfCauseOfEndingOfClassOflndividual(x)
ClassOfClass(x)
ClassOfClassOfComposition(x)
ClassOfClassOfDefinition(x)
ClassOfClassOfDescription(x)
ClassOfClassOfldentification(x)
ClassOfClassOflndividual(x)
ClassOfClassOflnformationRepresentation(x)
ClassOfClassOfRelationship(x)
ClassOfClassOfRelationshipWithSignature(x)
ClassOfClassOfRelationshipWithSignature(x)
ClassOfClassOfRepresentation(x)
ClassOfClassOfRepresentationTranslation(x)
ClassOfClassOfResponsibilityForRepresentation(x)
ClassOfClassOfUsageOfRepresentation(x)
ClassOfClassification(x)
ClassOfCompositeMaterial(x)
ClassOfCompositionOflndividual(x)
ClassOfCompound(x)
ClassOfConnectionOflndividual(x)
ClassOfContainmentOflndividual(x)
ClassOfDefinition(x)
ClassOfDescription(x)
ClassOfDimensionForShape(x)
ClassOfDirectConnection(x)
ClassOfEvent(x)
ClassOfExpresslnformationRepresentation(x)
ClassOfFeature(x)
ClassOfFeatureWholePart(x)
ClassOfFunctionalMapping(x)
ClassOfFunctionalObject(x)
ClassOfldentification(x)
ClassOflnanimatePhysicalObject(x)
ClassOflndirectConnection(x)
ClassOflndirectProperty(x)
ClassOflndividual(x)
ClassOflndividualUsedlnConnection(x)
ClassOflnformationObject(x)
ClassOflnformationPresentation(x)
ClassOflnformationRepresentation(x)
ClassOflntendedRoleAndDomain(x)
ClassOflnvolvementByReference(x)
ClassOflsomorphicFunctionalMapping(x)
ClassOfLeftNamespace(x)
ClassOfLifecycleStage(x)
ClassOfMolecule(x)
ClassOfMultidimensionalObject(x)
ClassOfNamespace(x)
ClassOfNumber(x)
ClassOfOrganism(x)
ClassOfOrganization(x)
ClassOfParticipation(x)
ClassOfParticulateMaterial(x)
ClassOfPeriodlnTime(x)
ClassOfPerson(x)
ClassOfPointlnTime(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)
CompositionOflndividual(x)
ConnectionOflndividual(x)
ContainmentOflndividual(x)
CoordinateSystem(x)
CrystallineStructure(x)
Definition(x)
Description(x)
DiverenceOfSetOfClass(x)
DimensionOflndividual(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)
Expresslnteger(x)
ExpressLogical(x)
ExpressReal(x)
ExpressString(x)
FeatureWholePart(x)
FunctionalMapping(x)
FunctionalPhysicalObject(x)
Identification(x)
IndirectConnection(x)
IndirectProperty(x)
IndividualDimension(x)
IndividualUsedlnConnection(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)
PeriodlnTime(x)
Phase(x)
PhysicalObject(x)
PointlnTime(x)
Possiblelndividual(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)
SpecializationOflndividualDimensionFromProperty(x)
Status(x)
Stream(x)
TemporalBounding(x)
TemporalSequence(x)
TemporalWholePart(x)
UnionOfSetOfClass(x)
UpperBoundOfNumberRange(x)
UpperBoundOfPropertyRange(x)
UsageOfRepresentation(x)
WholeLifelndividual(x)
B.4 Абстрактные аксиомы
AbstractObject(x)
ClassOfAbstractObject(x)
(ClassOfClass(x) v ClassOfMultidimensionalObject(x) v ClassOfRelationship(x))
ClassOfConnectionOflndividual(x)
ClassOfExpresslnformationRepresentation(x)
Expresslnteger(x) v ExpressLogical(x) v ExpressReal(x) v ExpressString(x))
Namespace(x)
Relationship(x)
Classification(x) v ComparisonOfProperty(x) v CompositionOflndividual(x) v ConnectionOflndividual(x) v
FunctionalMapping(x) v IndirectProperty(x) v IndividualUsedlnConnection(x) v
IntendedRoleAndDomain(x) v InvolvementByReference(x) v LifecycleStage(x) v OtherRelationship(x) v
PossibleRoleAndDomain(x) v Recognition(x) v RelativeLocation(x) v RepresentationOfThing(x) v
ResponsibilityForRepresentation(x) v Specialization(x) v TemporalSequence(x) v UsageOfRepresentation(x))
TemporalBounding(x)
Thing(x)
B.5 Аксиомы непересечения
ClassOfFunctionalObject(x) v ClassOflnformationPresentation(x) v
ClassOflnformationRepresentation(x) v ClassOfMolecule(x) v ClassOfParticulateMaterial(x) v
ClassOfSubAtomicParticle(x) v CrystallineStructure(x) v Phase(x)))
ClassOfFunctionalObject(x) v ClassOflnformationPresentation(x) v
ClassOflnformationRepresentation(x) v ClassOfMolecule(x) v ClassOfParticulateMaterial(x) v
ClassOfSubAtomicParticle(x) v CrystallineStructure(x) v Phase(x)))
ClassOflnformationPresentation(x) v ClassOflnformationRepresentation(x) v ClassOfMolecule(x) v
ClassOfParticulateMaterial(x) v ClassOfSubAtomicParticle(x) v CrystallineStructure(x) v Phase(x)))
ClassOflnformationRepresentation(x) v ClassOfMolecule(x) v ClassOfParticulateMaterial(x) v
ClassOfSubAtomicParticle(x) v CrystallineStructure(x) v Phase(x)))
ClassOflnformationRepresentation(x) v ClassOfMolecule(x) v ClassOfParticulateMaterial(x) v
ClassOfSubAtomicParticle(x) v CrystallineStructure(x) v Phase(x)))
ClassOfParticulateMaterial(x) v ClassOfSubAtomicParticle(x) v CrystallineStructure(x) v Phase(x)))
ClassOfSubAtomicParticle(x) v CrystallineStructure(x) v Phase(x)))
CrystallineStructure(x) v Phase(x)))
ClassOfNumber(x) v ClassOfPropertySpace(x) v ClassOfShapeDimension(x)))
ClassOfPropertySpace(x) v ClassOfShapeDimension(x)))
ClassOfShapeDimension(x)))
ShapeDimension(x)))
ClassOfClassOfRepresentation(x) v ClassOfClassOfRepresentationTranslation(x) v
ClassOfClassOfResponsibilityForRepresentation(x) v ClassOfClassOfUsageOfRepresentation(x) v
ClassOfDimensionForShape(x) v ClassOfNamespace(x) v ClassOfScale(x) v DimensionOfShape(x) v
PropertySpaceForClassOfShapeDimension(x)))
ClassOfClassOfRepresentationTranslation(x) v ClassOfClassOfResponsibilityForRepresentation(x) v
ClassOfClassOfUsageOfRepresentation(x) v ClassOfDimensionForShape(x) v ClassOfNamespace(x) v
ClassOfScale(x) v DimensionOfShape(x) v PropertySpaceForClassOfShapeDimension(x)))
ClassOfClassOfResponsibilityForRepresentation(x) v ClassOfClassOfUsageOfRepresentation(x) v
ClassOfDimensionForShape(x) v ClassOfNamespace(x) v ClassOfScale(x) v DimensionOfShape(x) v
PropertySpaceForClassOfShapeDimension(x)))
ClassOfClassOfUsageOfRepresentation(x) v ClassOfDimensionForShape(x) v ClassOfNamespace(x) v
ClassOfScale(x) v DimensionOfShape(x) v PropertySpaceForClassOfShapeDimension(x)))
ClassOfDimensionForShape(x) v ClassOfNamespace(x) v ClassOfScale(x) v DimensionOfShape(x) v
PropertySpaceForClassOfShapeDimension(x)))
ClassOfScale(x) v DimensionOfShape(x) v PropertySpaceForClassOfShapeDimension(x)))
PropertySpaceForClassOfShapeDimension(x)))
PropertySpaceForClassOfShapeDimension(x)))
ExpressReal(x)))
Status(x)))
Property(x) v Status(x)))
ClassOfCauseOfBeginningOfClassOflndividual(x) v ClassOfCauseOfEndingOfClassOflndividual(x) v
ClassOfClassification(x) v ClassOfCompositionOflndividual(x) v ClassOfConnectionOflndividual(x) v
ClassOfFunctionalMapping(x) v ClassOflndirectProperty(x) v ClassOflndividualUsedlnConnection(x) v
ClassOflntendedRoleAndDomain(x) v ClassOflnvolvementByReference(x) v ClassOfLifecycleStage(x) v
ClassOfPossibleRoleAndDomain(x) v ClassOfRecognition(x) v ClassOfRelationshipWithSignature(x) v
ClassOfRelativeLocation(x) v ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfCauseOfBeginningOfClassOflndividual(x) v ClassOfCauseOfEndingOfClassOflndividual(x) v
ClassOfClassification(x) v ClassOfCompositionOflndividual(x) v ClassOfConnectionOflndividual(x) v
ClassOfFunctionalMapping(x) v ClassOflndirectProperty(x) v ClassOflndividualUsedlnConnection(x) v
ClassOflntendedRoleAndDomain(x) v ClassOflnvolvementByReference(x) v ClassOfLifecycleStage(x) v
ClassOfPossibleRoleAndDomain(x) v ClassOfRecognition(x) v ClassOfRelationshipWithSignature(x) v
ClassOfRelativeLocation(x) v ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfRelationshipWithSignature(x) v ClassOfRelativeLocation(x) v ClassOfRepresentationOfThing(x) v
ClassOfRepresentationTranslation(x) v ClassOfResponsibilityForRepresentation(x) v
ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v ClassOfUsageOfRepresentation(x) v
DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfCauseOfEndingOfClassOflndividual(x) v ClassOfClassification(x) v
ClassOfCompositionOflndividual(x) v ClassOfConnectionOflndividual(x) v
ClassOfFunctionalMapping(x) v ClassOflndirectProperty(x) v ClassOflndividualUsedlnConnection(x) v
ClassOflntendedRoleAndDomain(x) v ClassOflnvolvementByReference(x) v ClassOfLifecycleStage(x) v
ClassOfPossibleRoleAndDomain(x) v ClassOfRecognition(x) v ClassOfRelationshipWithSignature(x) v
ClassOfRelativeLocation(x) v ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfCompositionOflndividual(x) v ClassOfConnectionOflndividual(x) v
ClassOfFunctionalMapping(x) v ClassOflndirectProperty(x) v ClassOflndividualUsedlnConnection(x) v
ClassOflntendedRoleAndDomain(x) v ClassOflnvolvementByReference(x) v ClassOfLifecycleStage(x) v
ClassOfPossibleRoleAndDomain(x) v ClassOfRecognition(x) v ClassOfRelationshipWithSignature(x) v
ClassOfRelativeLocation(x) v ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfConnectionOflndividual(x) v ClassOfFunctionalMapping(x) v ClassOflndirectProperty(x) v
ClassOflndividualUsedlnConnection(x) v ClassOflntendedRoleAndDomain(x) v
ClassOflnvolvementByReference(x) v ClassOfLifecycleStage(x) v ClassOfPossibleRoleAndDomain(x) v
ClassOfRecognition(x) v ClassOfRelationshipWithSignature(x) v ClassOfRelativeLocation(x) v
ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfFunctionalMapping(x) v ClassOflndirectProperty(x) v ClassOflndividualUsedlnConnection(x) v
ClassOflntendedRoleAndDomain(x) v ClassOflnvolvementByReference(x) v ClassOfLifecycleStage(x) v
ClassOfPossibleRoleAndDomain(x) v ClassOfRecognition(x) v ClassOfRelationshipWithSignature(x) v
ClassOfRelativeLocation(x) v ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOflndirectProperty(x) v ClassOflndividualUsedlnConnection(x) v
ClassOflntendedRoleAndDomain(x) v ClassOflnvolvementByReference(x) v ClassOfLifecycleStage(x) v
ClassOfPossibleRoleAndDomain(x) v ClassOfRecognition(x) v ClassOfRelationshipWithSignature(x) v
ClassOfRelativeLocation(x) v ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOflndividualUsedlnConnection(x) v ClassOflntendedRoleAndDomain(x) v
ClassOflnvolvementByReference(x) v ClassOfLifecycleStage(x) v ClassOfPossibleRoleAndDomain(x) v
ClassOfRecognition(x) v ClassOfRelationshipWithSignature(x) v ClassOfRelativeLocation(x) v
ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOflntendedRoleAndDomain(x) v ClassOflnvolvementByReference(x) v ClassOfLifecycleStage(x) v
ClassOfPossibleRoleAndDomain(x) v ClassOfRecognition(x) v ClassOfRelationshipWithSignature(x) v
ClassOfRelativeLocation(x) v ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOflnvolvementByReference(x) v ClassOfLifecycleStage(x) v ClassOfPossibleRoleAndDomain(x) v
ClassOfRecognition(x) v ClassOfRelationshipWithSignature(x) v ClassOfRelativeLocation(x) v
ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfLifecycleStage(x) v ClassOfPossibleRoleAndDomain(x) v ClassOfRecognition(x) v
ClassOfRelationshipWithSignature(x) v ClassOfRelativeLocation(x) v ClassOfRepresentationOfThing(x) v
ClassOfRepresentationTranslation(x) v ClassOfResponsibilityForRepresentation(x) v
ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v ClassOfUsageOfRepresentation(x) v
DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfPossibleRoleAndDomain(x) v ClassOfRecognition(x) v ClassOfRelationshipWithSignature(x) v
ClassOfRelativeLocation(x) v ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfRecognition(x) v ClassOfRelationshipWithSignature(x) v ClassOfRelativeLocation(x) v
ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfRelativeLocation(x) v ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfRepresentationOfThing(x) v ClassOfRepresentationTranslation(x) v
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfResponsibilityForRepresentation(x) v ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfSpecialization(x) v ClassOfTemporalSequence(x) v ClassOfUsageOfRepresentation(x) v
DimensionOflndividual(x) v PropertyForShapeDimension(x)))
ClassOfUsageOfRepresentation(x) v DimensionOflndividual(x) v PropertyForShapeDimension(x)))
DimensionOflndividual(x) v PropertyForShapeDimension(x)))
PropertyForShapeDimension(x)))
MultidimensionalScale(x)))
MultidimensionalProperty(x) v MultidimensionalScale(x)))
ComparisonOfProperty(x) v CompositionOflndividual(x) v ConnectionOflndividual(x) v
FunctionalMapping(x) v IndirectProperty(x) v IndividualUsedlnConnection(x) v
IntendedRoleAndDomain(x) v InvolvementByReference(x) v LifecycleStage(x) v OtherRelationship(x) v
PossibleRoleAndDomain(x) v Recognition(x) v RelativeLocation(x) v RepresentationOfThing(x) v
ResponsibilityForRepresentation(x)vSpecialization(x)vTemporalSequence(x)vUsageOfRepresentation(x)))
ComparisonOfProperty(x) v CompositionOflndividual(x) v ConnectionOflndividual(x) v
FunctionalMapping(x) v IndirectProperty(x) v IndividualUsedlnConnection(x) v
IntendedRoleAndDomain(x) v InvolvementByReference(x) v LifecycleStage(x) v OtherRelationship(x) v
PossibleRoleAndDomain(x) v Recognition(x) v RelativeLocation(x) v RepresentationOfThing(x) v
ResponsibilityForRepresentation(x)vSpecialization(x)vTemporalSequence(x)vUsageOfRepresentation(x)))
CompositionOflndividual(x) v ConnectionOflndividual(x) v FunctionalMapping(x) v IndirectProperty(x) v
IndividualUsedlnConnection(x) v IntendedRoleAndDomain(x) v InvolvementByReference(x) v
LifecycleStage(x) v OtherRelationship(x) v PossibleRoleAndDomain(x) v Recognition(x) v
RelativeLocation(x) v RepresentationOfThing(x) v ResponsibilityForRepresentation(x) v Specialization(x) v
TemporalSequence(x) v UsageOfRepresentation(x)))
FunctionalMapping(x) v IndirectProperty(x) v IndividualUsedlnConnection(x) v
IntendedRoleAndDomain(x) v InvolvementByReference(x) v LifecycleStage(x) v OtherRelationship(x) v
PossibleRoleAndDomain(x) v Recognition(x) v RelativeLocation(x) v RepresentationOfThing(x) v
ResponsibilityForRepresentation(x)vSpecialization(x)vTemporalSequence(x)vUsageOfRepresentation(x)))
FunctionalMapping(x) v IndirectProperty(x) v IndividualUsedlnConnection(x) v
IntendedRoleAndDomain(x) v InvolvementByReference(x) v LifecycleStage(x) v OtherRelationship(x) v
PossibleRoleAndDomain(x) v Recognition(x) v RelativeLocation(x) v RepresentationOfThing(x) v
ResponsibilityForRepresentation(x)vSpecialization(x)vTemporalSequence(x)vUsageOfRepresentation(x)))
IndirectProperty(x) v IndividualUsedlnConnection(x) v IntendedRoleAndDomain(x) v
InvolvementByReference(x) v LifecycleStage(x) v OtherRelationship(x) v PossibleRoleAndDomain(x) v
Recognition(x) v RelativeLocation(x) v RepresentationOfThing(x) v ResponsibilityForRepresentation(x) v
Specialization(x) v TemporalSequence(x) v UsageOfRepresentation(x)))
IndividualUsedlnConnection(x) v IntendedRoleAndDomain(x) v InvolvementByReference(x) v
LifecycleStage(x) v OtherRelationship(x) v PossibleRoleAndDomain(x) v Recognition(x) v
RelativeLocation(x) v RepresentationOfThing(x) v ResponsibilityForRepresentation(x) v Specialization(x) v
TemporalSequence(x) v UsageOfRepresentation(x)))
IntendedRoleAndDomain(x) v InvolvementByReference(x) v LifecycleStage(x) v OtherRelationship(x) v
PossibleRoleAndDomain(x) v Recognition(x) v RelativeLocation(x) v RepresentationOfThing(x) v
ResponsibilityForRepresentation(x)vSpecialization(x)vTemporalSequence(x)vUsageOfRepresentation(x)))
InvolvementByReference(x) v LifecycleStage(x) v OtherRelationship(x) v PossibleRoleAndDomain(x) v
Recognition(x) v RelativeLocation(x) v RepresentationOfThing(x) v ResponsibilityForRepresentation(x) v
Specialization(x) vTemporalSequence(x) v UsageOfRepresentation(x)))
LifecycleStage(x) v OtherRelationship(x) v PossibleRoleAndDomain(x) v Recognition(x) v
RelativeLocation(x) v RepresentationOfThing(x) v ResponsibilityForRepresentation(x) v Specialization(x) v
TemporalSequence(x) v UsageOfRepresentation(x)))
PossibleRoleAndDomain(x) v Recognition(x) v RelativeLocation(x) v RepresentationOfThing(x) v
ResponsibilityForRepresentation(x)vSpecialization(x)vTemporalSequence(x)vUsageOfRepresentation(x)))
Recognition(x) v RelativeLocation(x) v RepresentationOfThing(x) v ResponsibilityForRepresentation(x) v
Specialization(x) v TemporalSequence(x) v UsageOfRepresentation(x)))
RelativeLocation(x) v RepresentationOfThing(x) v ResponsibilityForRepresentation(x) v Specialization(x) v
TemporalSequence(x) v UsageOfRepresentation(x)))
RepresentationOfThing(x) v ResponsibilityForRepresentation(x) v Specialization(x) v
TemporalSequence(x) v UsageOfRepresentation(x)))
ResponsibilityForRepresentation(x)vSpecialization(x)vTemporalSequence(x)vUsageOfRepresentation(x)))
Specialization(x) v TemporalSequence(x) v UsageOfRepresentation(x)))
Specialization(x) vTemporalSequence(x) v UsageOfRepresentation(x)))
TemporalSequence(x) v UsageOfRepresentation(x)))
UsageOfRepresentation(x)))
SpecializationByRole(x) v SpecializationOflndividualDimensionFromProperty(x)))
SpecializationOflndividualDimensionFromProperty(x)))
SpecializationOflndividualDimensionFromProperty(x)))
B.6 Аксиомы ролей
hasApproved(x; у)
Approval(x) ^ hasApproved(x; у)
Approval(x)
Approval(x) ^ hasApproved(x; у) ^ hasApproved(x; z)
hasApprover(x; y)
Approval(x) ^ hasApprover(x; y)
Approval(x)
Approval(x) ^ hasApprover(x; у) ^ hasApprover(x; z)
hasCardinalities(x; y)
ClassOfMultidimensionalObject(x) ^ hasCardinalities(x; у) ^ hasCardinalities(x; z)
hasCaused(x; y)
CauseOfEvent(x) ^ hasCaused(x; y)
CauseOfEvent(x)
CauseOfEvent(x) ^ hasCaused(x; у) ^ hasCaused(x; z)
hasCauser(x; y)
CauseOfEvent(x) ^ hasCauser(x; y)
CauseOfEvent(x)
CauseOfEvent(x) ^ hasCauser(x; у) ^ hasCauser(x; z)
hasClassOfApproved(x; y)
ClassOfApproval(x) ^ hasClassOfApproved(x; y)
ClassOfApproval(x)
ClassOfApproval(x) ^ hasClassOfApproved(x; у) ^ hasClassOfApproved(x; z)
hasClassOfApprover(x; y)
ClassOfApproval(x) ^ hasClassOfApprover(x; y)
ClassOfApproval(x)
ClassOfApproval(x) ^ hasClassOfApprover(x; у) ^ hasClassOfApprover(x; z)
hasClassOfBegun(x; y)
ClassOfCauseOfBeginningOfClassOflndividual(x) ^ hasClassOfBegun(x; y)
ClassOfCauseOfBeginningOfClassOflndividual(x)
ClassOfCauseOfBeginningOfClassOflndividual(x) ^ hasClassOfBegun(x; у) ^ hasClassOfBegun(x; z)
hasClassOfCauser(x; y)
(ClassOfCauseOfBeginningOfClassOflndividual(x) v ClassOfCauseOfEndingOfClassOflndividual(x))
ClassOfCauseOfBeginningOfClassOflndividual(x) ^ hasClassOfCauser(x; y)
ClassOfCauseOfBeginningOfClassOflndividual(x)
ClassOfCauseOfBeginningOfClassOflndividual(x)^hasClassOfCauser(x; y)^hasClassOfCauser(x; z)
ClassOfCauseOfEndingOfClassOflndividual(x) ^ hasClassOfCauser(x; y)
ClassOfCauseOfEndingOfClassOflndividual(x)
ClassOfCauseOfEndingOfClassOflndividual(x) ^ hasClassOfCauser(x; у) ^ hasClassOfCauser(x; z)
hasClassOfClassOfControlled(x; y)
ClassOfClassOfResponsibilityForRepresentation(x) ^ hasClassOfClassOfControlled(x; y)
ClassOfClassOfRepresentation(y)
ClassOfClassOfResponsibilityForRepresentation(x)
ClassOfClassOfResponsibilityForRepresentation(x) ^ hasClassOfClassOfControlled(x; у) ^
hasClassOfClassOfControlled(x; z)
hasClassOfClassOfPart(x; y)
ClassOfClassOfComposition(x) ^ hasClassOfClassOfPart(x; y)
ClassOfClassOfComposition(x)
ClassOfClassOfComposition(x) ^ hasClassOfClassOfPart(x; у) ^ hasClassOfClassOfPart(x; z)
hasClassOfClassOfUsed(x; y)
ClassOfClassOfUsageOfRepresentation(x) ^ hasClassOfClassOfUsed(x; y)
ClassOfClassOfRepresentation(y)
ClassOfClassOfUsageOfRepresentation(x)
ClassOfClassOfUsageOfRepresentation(x) ^ hasClassOfClassOfUsed(x; у) ^ hasClassOfClassOfUsed(x; z)
hasClassOfClassOfWhole(x; y)
ClassOfClassOfComposition(x) ^ hasClassOfClassOfWhole(x; y)
ClassOfClassOfComposition(x)
ClassOfClassOfComposition(x) ^ hasClassOfClassOfWhole(x; у) ^ hasClassOfClassOfWhole(x; z)
ClassOfNamespace(x) ^ hasClassOfClassOfWhole(x; y)
ClassOfNamespace(x)
ClassOfNamespace(x) ^ hasClassOfClassOfWhole(x; у) ^ hasClassOfClassOfWhole(x; z)
hasClassOfClassified(x; y)
ClassOfClassification(x) ^ hasClassOfClassified(x; у)
ClassOfClassification(x)
ClassOfClassification(x) ^ hasClassOfClassified(x; у) ^ hasClassOfClassified(x; z)
hasClassOfClassifier(x; y)
ClassOfClassification(x) ^ hasClassOfClassifier(x; y)
ClassOfClassification(x)
ClassOfClassification(x) ^ hasClassOfClassifier(x; у) ^ hasClassOfClassifier(x; z)
hasClassOfConnection(x; y)
ClassOflndividualUsedlnConnection(x) ^ hasClassOfConnection(x; y)
ClassOflndividualUsedlnConnection(x)
ClassOflndividualUsedlnConnection(x) ^ hasClassOfConnection(x; у) ^ hasClassOfConnection(x; z)
hasClassOfControlled(x; y)
ClassOfResponsibilityForRepresentation(x) ^ hasClassOfControlled(x; y)
ClassOfRepresentationOfThing(y)
ClassOfResponsibilityForRepresentation(x)
ClassOfResponsibilityForRepresentation(x)^hasClassOfControlled(x; y)^hasClassOfControlled(x; z)
hasClassOfDimension(x; y)
ClassOfDimensionForShape(x) ^ hasClassOfDimension(x; y)
ClassOfDimensionForShape(x)
ClassOfDimensionForShape(x) ^ hasClassOfDimension(x; у) ^ hasClassOfDimension(x; z)
hasClassOfEnd1(x; y)
ClassOfRelationshipWithSignature(x) ^ hasClassOfEnd1(x; y)
ClassOfRelationshipWithSignature(x) ^ hasClassOfEnd1(x; у) ^ hasClassOfEnd1(x; z)
hasClassOfEnd2(x; y)
ClassOfRelationshipWithSignature(x) ^ hasClassOfEnd2(x; y)
ClassOfRelationshipWithSignature(x) ^ hasClassOfEnd2(x; у) ^ hasClassOfEnd2(x; z)
hasClassOfEnded(x; y)
ClassOfCauseOfEndingOfClassOflndividual(x) ^ hasClassOfEnded(x; y)
ClassOfCauseOfEndingOfClassOflndividual(x)
ClassOfCauseOfEndingOfClassOflndividual(x) ^ hasClassOfEnded(x; у) ^ hasClassOfEnded(x; z)
hasClassOfFirst(x; y)
(ClassOfClassOfRepresentationTranslation(x) v ClassOfRepresentationTranslation(x))
ClassOfClassOfRepresentationTranslation(x) ^ hasClassOfFirst(x; y)
ClassOfClassOflnformationRepresentation(y)
ClassOfClassOfRepresentationTranslation(x)
ClassOfClassOfRepresentationTranslation(x) ^ hasClassOfFirst(x; у) ^ hasClassOfFirst(x; z)
ClassOfRepresentationTranslation(x) ^ hasClassOfFirst(x; y)
ClassOfRepresentationTranslation(x)
ClassOfRepresentationTranslation(x) ^ hasClassOfFirst(x; y) ^ hasClassOfFirst(x; z)
hasClassOflnvolved(x; y)
ClassOflnvolvementByReference(x) ^ hasClassOflnvolved(x; y)
ClassOflnvolvementByReference(x)
ClassOflnvolvementByReference(x) ^ hasClassOflnvolved(x; у) ^ hasClassOflnvolved(x; z)
hasClassOflnvolver(x; y)
ClassOflnvolvementByReference(x) ^ hasClassOflnvolver(x; y)
ClassOflnvolvementByReference(x)
ClassOflnvolvementByReference(x) ^ hasClassOflnvolver(x; y) ^ hasClassOflnvolver(x; z)
hasClassOfLocated(x; y)
ClassOfRelativeLocation(x) ^ hasClassOfLocated(x; y)
ClassOfRelativeLocation(x)
ClassOfRelativeLocation(x) ^ hasClassOfLocated(x; y) ^ hasClassOfLocated(x; z)
hasClassOfLocator(x; y)
ClassOfRelativeLocation(x) ^ hasClassOfLocator(x; y)
ClassOfRelativeLocation(x)
ClassOfRelativeLocation(x) ^ hasClassOfLocator(x; y) ^ hasClassOfLocator(x; z)
hasClassOfPart(x; y)
ClassOfCompositionOflndividual(x) ^ hasClassOfPart(x; y)
ClassOfCompositionOflndividual(x)
ClassOfCompositionOflndividual(x) ^ hasClassOfPart(x; у) ^ hasClassOfPart(x; z)
ClassOfNamespace(x) ^ hasClassOfPart(x; y)
ClassOfNamespace(x)
ClassOfNamespace(x) ^ hasClassOfPart(x; y ^) hasClassOfPart(x; z)
hasClassOfPattern(x; y)
ClassOfClassOfRepresentation(x) ^ hasClassOfPattern(x; y)
ClassOfClassOflnformationRepresentation(y)
ClassOfClassOfRepresentation(x)
ClassOfClassOfRepresentation(x) ^ hasClassOfPattern(x; y) ^ hasClassOfPattern(x; z)
hasClassOfPlayer(x; y)
ClassOflntendedRoleAndDomain(x) ^ hasClassOfPlayer(x; y)
ClassOflntendedRoleAndDomain(x)
ClassOflntendedRoleAndDomain(x) ^ hasClassOfPlayer(x; y) ^ hasClassOfPlayer(x; z)
ClassOfPossibleRoleAndDomain(x) ^ hasClassOfPlayer(x; y)
ClassOfPossibleRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x) ^ hasClassOfPlayer(x; y) ^ hasClassOfPlayer(x; z)
hasClassOfPossessor(x; y)
ClassOflndirectProperty(x) ^ hasClassOfPossessor(x; y)
ClassOflndirectProperty(x)
ClassOflndirectProperty(x) ^ hasClassOfPossessor(x; y) ^ hasClassOfPossessor(x; z)
hasClassOfPredecessor(x; y)
ClassOfTemporalSequence(x) ^ hasClassOfPredecessor(x; y)
ClassOfTemporalSequence(x)
ClassOfTemporalSequence(x) ^ hasClassOfPredecessor(x; y) ^ hasClassOfPredecessor(x; z)
hasClassOfRecognized(x; y)
ClassOfRecognition(x) ^ hasClassOfRecognized(x; y)
ClassOfRecognition(x)
ClassOfRecognition(x) ^ hasClassOfRecognized(x; y) ^ hasClassOfRecognized(x; z)
hasClassOfRecognizing(x; y)
ClassOfRecognition(x) ^ hasClassOfRecognizing(x; y)
ClassOfRecognition(x)
ClassOfRecognition(x) ^ hasClassOfRecognizing(x; y) ^ hasClassOfRecognizing(x; z)
hasClassOfRepresented(x; y)
ClassOfClassOfRepresentation(x) ^ hasClassOfRepresented(x; y)
ClassOfClassOfRepresentation(x)
ClassOfClassOfRepresentation(x) ^ hasClassOfRepresented(x; у) ^ hasClassOfRepresented(x; z)
hasClassOfSecond(x; y)
(ClassOfClassOfRepresentationTranslation(x) v ClassOfRepresentationTranslation(x))
ClassOfClassOfRepresentationTranslation(x) ^ hasClassOfSecond(x; y)
ClassOfClassOflnformationRepresentation(y)
ClassOfClassOfRepresentationTranslation(x)
ClassOfClassOfRepresentationTranslation(x) ^ hasClassOfSecond(x; y) ^ hasClassOfSecond(x; z)
ClassOfRepresentationTranslation(x) ^ hasClassOfSecond(x; y)
ClassOfRepresentationTranslation(x)
ClassOfRepresentationTranslation(x) ^ hasClassOfSecond(x; y) ^ hasClassOfSecond(x; z)
hasClassOfShape(x; y)
ClassOfDimensionForShape(x) ^ hasClassOfShape(x; y)
ClassOfDimensionForShape(x)
ClassOfDimensionForShape(x) ^ hasClassOfShape(x; y) ^ hasClassOfShape(x; z)
hasClassOfShapeDimension(x; y)
PropertySpaceForClassOfShapeDimension(x) ^ hasClassOfShapeDimension(x; y)
ClassOfShapeDimension(y)
PropertySpaceForClassOfShapeDimension(x)
PropertySpaceForClassOfShapeDimension(x) ^ hasClassOfShapeDimension(x; y) ^
hasClassOfShapeDimension(x; z)
hasClassOfSide1(x; y)
ClassOfConnectionOflndividual(x) ^ hasClassOfSide1(x; y)
ClassOfConnectionOflndividual(x)
ClassOfConnectionOflndividual(x) ^ hasClassOfSide1(x; у) ^ hasClassOfSide1(x; z)
hasClassOfSide2(x; y)
ClassOfConnectionOflndividual(x) ^ hasClassOfSide2(x; y)
ClassOfConnectionOflndividual(x)
ClassOfConnectionOflndividual(x) ^ hasClassOfSide2(x; y) ^ hasClassOfSide2(x; z)
hasClassOfSubclass(x; y)
ClassOfSpecialization(x) ^ hasClassOfSubclass(x; y)
ClassOfSpecialization(x)
ClassOfSpecialization(x) ^ hasClassOfSubclass(x; y) ^ hasClassOfSubclass(x; z)
hasClassOfSuccessor(x; y)
ClassOfTemporalSequence(x) ^ hasClassOfSuccessor(x; у)
ClassOfTemporalSequence(x)
ClassOfTemporalSequence(x) ^ hasClassOfSuccessor(x; y) ^ hasClassOfSuccessor(x; z)
hasClassOfSuperclass(x; y)
ClassOfSpecialization(x) ^ hasClassOfSuperclass(x; y)
ClassOfSpecialization(x)
ClassOfSpecialization(x) ^ hasClassOfSuperclass(x; y) ^ hasClassOfSuperclass(x; z)
hasClassOfUsage(x; y)
ClassOflndividualUsedlnConnection(x) ^ hasClassOfUsage(x; y)
ClassOflndividualUsedlnConnection(x)
ClassOflndividualUsedlnConnection(x) ^ hasClassOfUsage(x; y) ^ hasClassOfUsage(x; z)
hasClassOfUsed(x; y)
ClassOfUsageOfRepresentation(x) ^ hasClassOfUsed(x; y)
ClassOfUsageOfRepresentation(x)
ClassOfUsageOfRepresentation(x) ^ hasClassOfUsed(x; y) ^ hasClassOfUsed(x; z)
hasClassOfWhole(x; y)
ClassOfCompositionOflndividual(x) ^ hasClassOfWhole(x; y)
ClassOfCompositionOflndividual(x)
ClassOfCompositionOflndividual(x) ^ hasClassOfWhole(x; y) ^ hasClassOfWhole(x; z)
hasClassified(x; y)
Classification(x) ^ hasClassified(x; y)
Classification(x)
Classification(x) ^ hasClassified(x; y) ^ hasClassified(x; z)
hasClassifier(x; y)
Classification(x) ^ hasClassifier(x; y)
Classification(x)
Classification(x) ^ hasClassifier(x; y) ^ hasClassifier(x; z)
hasCodomain(x; y)
ClassOfFunctionalMapping(x) ^ hasCodomain(x; y)
ClassOfFunctionalMapping(x)
ClassOfFunctionalMapping(x) ^ hasCodomain(x; y) ^ hasCodomain(x; z)
hasConnection(x; y)
IndividualUsedlnConnection(x) ^ hasConnection(x; y)
IndividualUsedlnConnection(x)
IndividualUsedlnConnection(x) ^ hasConnection(x; y) ^ hasConnection(x; z)
hasContent(x; y)
ExpressReal(x) v ExpressString(x))
ExpressBinary(x) ^ hasContent(x; y)
ExpressBinary(x)
ExpressBinary(x) ^ hasContent(x; y) ^ hasContent(x; z)
ExpressBinary(x) ^ ExpressBinary(y) ^ hasContent(x; z) ^ hasContent(y; z)
ExpressBoolean(x) ^ hasContent(x; y)
ExpressBoolean(x)
ExpressBoolean(x) ^ hasContent(x; y) ^ hasContent(x; z)
ExpressBoolean(x) ^ ExpressBoolean(y) ^ hasContent(x; z) ^ hasContent(y; z)
Expresslnteger(x) ^ hasContent(x; y)
Expresslnteger(x)
Expresslnteger(x) ^ hasContent(x; y) ^ hasContent(x; z)
Expresslnteger(x) ^ Expresslnteger(y) ^ hasContent(x; z) ^ hasContent(y; z)
ExpressLogical(x) ^ hasContent(x; y)
ExpressLogical(x)
ExpressLogical(x) ^ hasContent(x; y) ^ hasContent(x; z)
ExpressLogical(x) ^ ExpressLogical(y) ^ hasContent(x; z) ^ hasContent(y; z)
ExpressReal(x) ^ hasContent(x; y)
ExpressReal(x)
ExpressReal(x) ^ hasContent(x; y) ^ hasContent(x; z)
ExpressReal(x) ^ ExpressReal(y) ^ hasContent(x; z) ^ hasContent(y; z)
ExpressString(x) ^ hasContent(x; y)
ExpressString(x)
ExpressString(x) ^ hasContent(x; y) ^ hasContent(x; z)
ExpressString(x) ^ ExpressString(y) ^ hasContent(x; z) ^ hasContent(y; z)
hasControlled(x; y)
ResponsibilityForRepresentation(x) ^ hasControlled(x; y)
ResponsibilityForRepresentation(x)
ResponsibilityForRepresentation(x) ^ hasControlled(x; y) ^ hasControlled(x; z)
hasController(x; y)
ClassOfResponsibilityForRepresentation(x) v ResponsibilityForRepresentation(x))
ClassOfClassOfResponsibilityForRepresentation(x) ^ hasController(x; y)
ClassOfClassOfResponsibilityForRepresentation(x)
ClassOfClassOfResponsibilityForRepresentation(x) ^ hasController(x; y) ^ hasController(x; z)
ClassOfResponsibilityForRepresentation(x) ^ hasController(x; y)
ClassOfResponsibilityForRepresentation(x)
ClassOfResponsibilityForRepresentation(x) ^ hasController(x; y) ^ hasController(x; z)
ResponsibilityForRepresentation(x) ^ hasController(x; y)
ResponsibilityForRepresentation(x)
ResponsibilityForRepresentation(x) ^ hasController(x; y) ^ hasController(x; z)
hasDay(x; y)
RepresentationOfGregorianDateAndUtcTime(x) ^ hasDay(x; y)
RepresentationOfGregorianDateAndUtcTime(x) ^ hasDay(x; y) ^ hasDay(x; z)
hasDimension(x; y)
DimensionOfShape(x) ^ hasDimension(x; y)
DimensionOfShape(x)
DimensionOfShape(x) ^ hasDimension(x; y) ^ hasDimension(x; z)
hasDomain(x; y)
ClassOfFunctionalMapping(x) ^ hasDomain(x; y)
ClassOfFunctionalMapping(x)
ClassOfFunctionalMapping(x) ^ hasDomain(x; y) ^ hasDomain(x; z)
hasElements(x; y)
MultidimensionalObject(x)
MultidimensionalObject(x) ^ hasElements(x; y) ^ hasElements(x; z)
hasEnd1(x; y)
OtherRelationship(x) ^ hasEnd1(x; y)
OtherRelationship(x)
OtherRelationship(x) ^ hasEnd1(x; y) ^ hasEnd1(x; z)
hasEnd1Cardinaiity(x; y)
ClassOfRelationship(x) ^ hasEnd1Cardinality(x; y)
ClassOfRelationship(x) ^ hasEnd1Cardinality(x; y) ^ hasEnd1Cardinality(x; z)
hasEnd2(x; y)
OtherRelationship(x)^ hasEnd2(x; y)
OtherRelationship(x)
OtherRelationship(x) ^ hasEnd2(x; y) ^ hasEnd2(x; z)
hasEnd2Cardinality(x; y)
ClassOfRelationship(x) ^ hasEnd2Cardinality(x; y)
ClassOfRelationship(x) ^ hasEnd2Cardinality(x; y) ^ hasEnd2Cardinality(x; z)
hasGreaterElement(x; y)
ComparisonOfProperty(x) ^ hasGreaterElement(x; y)
ComparisonOfProperty(x)
ComparisonOfProperty(x) ^ hasGreaterElement(x; y) ^ hasGreaterElement(x; z)
hasHour(x; y)
RepresentationOfGregorianDateAndUtcTime(x) ^ hasHour(x; y)
RepresentationOfGregorianDateAndUtcTime(x) ^ hasHour(x; y) ^ hasHour(x; z)
hasld(x; y)
Thing(x) ^ hasld(x; y)
Thing(x)
Thing(x) ^ hasld(x; у) ^ hasld(x; z)
Thing(x) ^ Thing(y) ^ hasld(x; z) ^ hasld(y; z)
haslndividual(x; y)
DimensionOflndividual(x) ^ haslndividual(x; y)
DimensionOflndividual(x)
DimensionOflndividual(x) ^ haslndividual(x; y) ^ haslndividual(x; z)
haslndividualDimension(x; y)
DimensionOflndividual(x) ^ haslndividualDimension(x; y)
DimensionOflndividual(x)
DimensionOflndividual(x) ^ haslndividualDimension(x; y) ^ haslndividualDimension(x; z)
haslnput(x; y)
FunctionalMapping(x) ^ haslnput(x; y)
FunctionalMapping(x)
FunctionalMapping(x) ^ haslnput(x; y) ^ haslnput(x; z)
haslnterest(x; y)
LifecycleStage(x) ^ haslnterest(x; y)
LifecycleStage(x)
LifecycleStage(x) ^ haslnterest(x; y) ^ haslnterest(x; z)
haslnterested(x; y)
LifecycleStage(x) ^ haslnterested(x; y)
LifecycleStage(x)
LifecycleStage(x) ^ haslnterested(x; y) ^ haslnterested(x; z)
haslnvolved(x; y)
InvolvementByReference(x) ^ haslnvolved(x; y)
InvolvementByReference(x)
InvolvementByReference(x) ^ haslnvolved(x; y) ^ haslnvolved(x; z)
haslnvolver(x; y)
InvolvementByReference(x) ^ haslnvolver(x; y)
InvolvementByReference(x)
InvolvementByReference(x) ^ haslnvolver(x; y) ^ haslnvolver(x; z)
hasLesserElement(x; y)
ComparisonOfProperty(x) ^ hasLesserElement(x; y)
ComparisonOfProperty(x)
ComparisonOfProperty(x) ^ hasLesserElement(x; y) ^ hasLesserElement(x; z)
hasLocated(x; y)
RelativeLocation(x) ^ hasLocated(x; y)
RelativeLocation(x)
RelativeLocation(x) ^ hasLocated(x; y) ^ hasLocated(x; z)
hasLocator(x; y)
RelativeLocation(x) ^ hasLocator(x; y)
RelativeLocation(x)
RelativeLocation(x) ^ hasLocator(x; y) ^ hasLocator(x; z)
hasMaximumCardinality(x; y)
Cardinality(x) ^ hasMaximumCardinality(x; y)
Cardinality(x) ^ hasMaximumCardinality(x; y) ^ hasMaximumCardinality(x; z)
hasMinimumCardinality(x; y)
Cardinality(x) ^ hasMinimumCardinality(x; y)
Cardinality(x) ^ hasMinimumCardinality(x; y) ^ hasMinimumCardinality(x; z)
hasMinute(x; y) (RepresentationOfGregorianDateAndUtcTime(x))
RepresentationOfGregorianDateAndUtcTime(x) ^ hasMinute(x; y)
RepresentationOfGregorianDateAndUtcTime(x) ^ hasMinute(x; у) ^ hasMinute(x; z)
hasMonth(x; y)
RepresentationOfGregorianDateAndUtcTime(x) ^ hasMonth(x; y)
RepresentationOfGregorianDateAndUtcTime(x) ^ hasMonth(x; y) ^ hasMonth(x; z)
hasOptionalElement(x; y)
ClassOfMultidimensionalObject(x)
ClassOfMultidimensionalObject(x) ^ hasOptionalElement(x; y) ^ hasOptionalElement(x; z)
hasParameterPosition(x; y)
ClassOfMultidimensionalObject(x) ^ hasParameterPosition(x; y) ^ hasParameterPosition(x; z)
hasParameters(x; y)
ClassOfMultidimensionalObject(x) ^ hasParameters(x; y) ^ hasParameters(x; z)
hasPart(x; y)
CompositionOflndividual(x) ^ hasPart(x; y) - Possiblelndividual(y)
CompositionOflndividual(x)
CompositionOflndividual(x) ^ hasPart(x; y) ^ hasPart(x; z)
hasPattern(x; y)
ClassOfRepresentationOfThing(x) ^ hasPattern(x; y)
ClassOfRepresentationOfThing(x)
ClassOfRepresentationOfThing(x) ^ hasPattern(x; y) ^ hasPattern(x; z)
hasPlayed(x; y)
IntendedRoleAndDomain(x) v PossibleRoleAndDomain(x))
ClassOflntendedRoleAndDomain(x) ^ hasPlayed(x; y)
ClassOflntendedRoleAndDomain(x)
ClassOflntendedRoleAndDomain(x) ^ hasPlayed(x; y) ^ hasPlayed(x; z)
ClassOfPossibleRoleAndDomain(x) ^ hasPlayed(x; y)
ClassOfPossibleRoleAndDomain(x)
ClassOfPossibleRoleAndDomain(x) ^ hasPlayed(x; y) ^ hasPlayed(x; z)
IntendedRoleAndDomain(x) ^ hasPlayed(x; y)
IntendedRoleAndDomain(x)
IntendedRoleAndDomain(x) ^ hasPlayed(x; y) ^ hasPlayed(x; z)
PossibleRoleAndDomain(x) ^ hasPlayed(x; y)
PossibleRoleAndDomain(x)
PossibleRoleAndDomain(x) ^ hasPlayed(x; y) ^ hasPlayed(x; z)
hasPlayer(x; y)
IntendedRoleAndDomain(x) ^ hasPlayer(x; y)
IntendedRoleAndDomain(x)
IntendedRoleAndDomain(x) ^ hasPlayer(x; y) ^ hasPlayer(x; z)
PossibleRoleAndDomain(x) ^ hasPlayer(x; y)
PossibleRoleAndDomain(x)
PossibleRoleAndDomain(x) ^ hasPlayer(x; y) ^ hasPlayer(x; z)
hasPosition(x; y)
MultidimensionalObject(x) ^ hasPosition(x; y) ^ hasPosition(x; z)
hasPossessor(x; y)
IndirectProperty(x) ^ hasPossessor(x; y)
IndirectProperty(x)
IndirectProperty(x) ^ hasPossessor(x; y) ^ hasPossessor(x; z)
hasPredecessor(x; y)
TemporalSequence(x) ^ hasPredecessor(x; y)
TemporalSequence(x)
TemporalSequence(x) ^ hasPredecessor(x; y) ^ hasPredecessor(x; z)
hasProperty(x; y)
IndirectProperty(x) ^ hasProperty(x; y)
IndirectProperty(x)
IndirectProperty(x) ^ hasProperty(x; y) ^ hasProperty(x; z)
PropertyForShapeDimension(x) ^ hasProperty(x; y)
PropertyForShapeDimension(x)
PropertyForShapeDimension(x) ^ hasProperty(x; y) ^ hasProperty(x; z)
hasPropertySpace(x; y)
ClassOflndirectProperty(x) ^ hasPropertySpace(x; y)
ClassOflndirectProperty(x)
ClassOflndirectProperty(x) ^ hasPropertySpace(x; y) ^ hasPropertySpace(x; z)
PropertySpaceForClassOfShapeDimension(x) ^ hasPropertySpace(x; y)
PropertySpaceForClassOfShapeDimension(x)
PropertySpaceForClassOfShapeDimension(x) ^ hasPropertySpace(x; y) ^ hasPropertySpace(x; z)
hasRecognized(x; y)
Recognition(x) ^ hasRecognized(x; y)
Recognition(x)
Recognition(x) ^ hasRecognized(x; y) ^ hasRecognized(x; z)
hasRecognizing(x; y)
Recognition(x) ^ hasRecognizing(x; y)
Recognition(x)
Recognition(x) ^ hasRecognizing(x; y) ^ hasRecognizing(x; z)
hasRecordCopyCreated(x; y)
Thing(x) ^ hasRecordCopyCreated(x; y)
Thing(x) ^ hasRecordCopyCreated(x; y) ^ hasRecordCopyCreated(x; z)
hasRecordCreated(x; y)
Thing(x) ^ hasRecordCreated(x; y)
Thing(x) ^ hasRecordCreated(x; y) ^ hasRecordCreated(x; z)
hasRecordCreator(x; y)
Thing(x) ^ hasRecordCreator(x; y)
Thing(x) ^ hasRecordCreator(x; y) ^ hasRecordCreator(x; z)
hasRecordLogicallyDeleted(x; y)
Thing(x) ^ hasRecordLogicallyDeleted(x; y)
Thing(x) ^ hasRecordLogicallyDeleted(x; y) ^ hasRecordLogicallyDeleted(x; z)
hasRelated(x; y)
ClassOfRelationshipWithRelatedEnd1(x) ^ hasRelated(x; y)
ClassOfRelationshipWithRelatedEnd1(x)
ClassOfRelationshipWithRelatedEnd1(x) ^ hasRelated(x; y) ^ hasRelated(x; z)
ClassOfRelationshipWithRelatedEnd2(x) ^ hasRelated(x; y)
ClassOfRelationshipWithRelatedEnd2(x)
ClassOfRelationshipWithRelatedEnd2(x) ^ hasRelated(x; y) ^ hasRelated(x; z)
hasRepresented(x; y)
ClassOfRepresentationOfThing(x) ^ hasRepresented(x; y)
ClassOfRepresentationOfThing(x)
ClassOfRepresentationOfThing(x) ^ hasRepresented(x; у) ^ hasRepresented(x; z)
RepresentationOfThing(x) ^ hasRepresented(x; y)
RepresentationOfThing(x)
RepresentationOfThing(x) ^ hasRepresented(x; y) ^ hasRepresented(x; z)
hasResult(x; y)
FunctionalMapping(x) ^ hasResult(x; y)
FunctionalMapping(x)
FunctionalMapping(x) ^ hasResult(x; y) ^ hasResult(x; z)
hasRoles(x; y)
ClassOfMultidimensionalObject(x)
ClassOfMultidimensionalObject(x) ^ hasRoles(x; y) ^ hasRoles(x; z)
hasSecond(x; y)
RepresentationOfGregorianDateAndUtcTime(x) ^ hasSecond(x; y)
RepresentationOfGregorianDateAndUtcTime(x) ^ hasSecond(x; y) ^ hasSecond(x; z)
hasShape(x; y)
DimensionOfShape(x) ^ hasShape(x; y)
DimensionOfShape(x)
DimensionOfShape(x) ^ hasShape(x; y) ^ hasShape(x; z)
hasShapeDimension(x; y)
PropertyForShapeDimension(x) ^ hasShapeDimension(x; y)
PropertyForShapeDimension(x)
PropertyForShapeDimension(x) ^ hasShapeDimension(x; y) ^ hasShapeDimension(x; z)
hasSide1(x; y)
ConnectionOflndividual(x) ^ hasSide1(x; y)
ConnectionOflndividual(x)
ConnectionOflndividual(x) ^ hasSide1(x; y) ^ hasSide1(x; z)
hasSide2(x; y)
ConnectionOflndividual(x) ^ hasSide2(x; y)
ConnectionOflndividual(x)
ConnectionOflndividual(x) ^ hasSide2(x; y) ^ hasSide2(x; z)
hasSign(x; y)
RepresentationOfThing(x) ^ hasSign(x; y)
RepresentationOfThing(x)
RepresentationOfThing(x) ^ hasSign(x; y) ^ hasSign(x; z)
hasSubclass(x; y)
Specialization(x) ^ hasSubclass(x; y)
Specialization(x)
Specialization(x) ^ hasSubclass(x; y) ^ hasSubclass(x; z)
hasSuccessor(x; y)
TemporalSequence(x) ^ hasSuccessor(x; y)
TemporalSequence(x)
TemporalSequence(x) ^ hasSuccessor(x; y) ^ hasSuccessor(x; z)
hasSuperclass(x; y)
Specialization(x) ^ hasSuperclass(x; y)
Specialization(x)
Specialization(x) ^ hasSuperclass(x; y) ^ hasSuperclass(x; z)
hasUsage(x; y)
IndividualUsedlnConnection(x) ^ hasUsage(x; y)
IndividualUsedlnConnection(x)
IndividualUsedlnConnection(x) ^ hasUsage(x; y) ^ hasUsage(x; z)
hasUsed(x; y)
UsageOfRepresentation(x) ^ hasUsed(x; y)
UsageOfRepresentation(x)
UsageOfRepresentation(x) ^ hasUsed(x; y) ^ hasUsed(x; z)
hasUser(x; y)
UsageOfRepresentation(x))
ClassOfClassOfUsageOfRepresentation(x) ^ hasUser(x; y)
ClassOfClassOfUsageOfRepresentation(x)
ClassOfClassOfUsageOfRepresentation(x) ^ hasUser(x; y) ^ hasUser(x; z)
ClassOfUsageOfRepresentation(x) ^ hasUser(x; y)
ClassOfUsageOfRepresentation(x)
ClassOfUsageOfRepresentation(x) ^ hasUser(x; y) ^ hasUser(x; z)
UsageOfRepresentation(x) ^ hasUser(x; y)
UsageOfRepresentation(x)
UsageOfRepresentation(x) ^ hasUser(x; y) ^ hasUser(x; z)
hasWhole(x; y)
CompositionOflndividual(x) ^ hasWhole(x; y)
CompositionOflndividual(x)
CompositionOflndividual(x) ^ hasWhole(x; y) ^ hasWhole(x; z)
hasWhyDeleted(x; y)
Thing(x) ^ hasWhyDeleted(x; y)
Thing(x) ^ hasWhyDeleted(x; y) ^ hasWhyDeleted(x; z)
hasYear(x; y)
RepresentationOfGregorianDateAndUtcTime(x) ^ hasYear(x; y)
RepresentationOfGregorianDateAndUtcTime(x)
RepresentationOfGregorianDateAndUtcTime(x) ^ hasYear(x; y) ^ hasYear(x; z)
B.7 Аксиомы дополнительного ограничения диапазона
ClassOfParticipation(x) ^ hasClassOfPart(x; y)
Namespace(x) ^ hasClassOfPart(x; y)
ClassOfArrangementOflndividual(x) ^ hasClassOfWhole(x; y)
ClassOfParticipation(x) ^ hasClassOfWhole(x; у)
Namespace(x) ^ hasClassOfWhole(x; y)
LowerBoundOfNumberRange(x) ^ hasClassified(x; y)
LowerBoundOfPropertyRange(x) ^ hasClassified(x; y)
UpperBoundOfNumberRange(x) ^ hasClassified(x; y)
UpperBoundOfPropertyRange(x) ^ hasClassified(x; y)
LowerBoundOfNumberRange(x) ^ hasClassifier(x; y)
LowerBoundOfPropertyRange(x) ^ hasClassifier(x; y)
UpperBoundOfNumberRange(x) ^ hasClassifier(x; y)
UpperBoundOfPropertyRange(x) ^ hasClassifier(x; y)
ClassOfScaleConversion(x) ^ hasCodomain(x; y)
Scale(x) ^ hasCodomain(x; y)
ClassOfScaleConversion(x) ^ hasDomain(x; y)
Scale(x) ^ hasDomain(x; y)
DiverenceOfSetOfClass(x) ^ haslnput(x; y)
IntersectionOfSetOfClass(x) ^ haslnput(x; y)
PropertyQuantification(x) ^ haslnput(x; y)
UnionOfSetOfClass(x) ^ haslnput(x; y)
TemporalBounding(x) ^ hasPart(x; y)
ClassOfDefinition(x) ^ hasRepresented(x; y)
Definition(x) ^ hasRepresented(x; y)
DiverenceOfSetOfClass(x) ^ hasResult(x; y)
IntersectionOfSetOfClass(x) ^ hasResult(x; y)
PropertyQuantification(x) ^ hasResult(x; y)
UnionOfSetOfClass(x) ^ hasResult(x; y)
BoundaryOfNumberSpace(x) ^ hasSubclass(x; y)
BoundaryOfPropertySpace(x) ^ hasSubclass(x; y)
SpecializationByDomain(x) ^ hasSubclass(x; y)
SpecializationByRole(x) ^ hasSubclass(x; y)
SpecializationOflndividualDimensionFromProperty(x) ^ hasSubclass(x; y)
BoundaryOfNumberSpace(x) ^ hasSuperclass(x; y)
BoundaryOfPropertySpace(x) ^ hasSuperclass(x; y)
SpecializationByRole(x) ^ hasSuperclass(x; y)
SpecializationOflndividualDimensionFromProperty(x) ^ hasSuperclass(x; y)
ArrangementOflndividual(x) ^ hasWhole(x; y)
Participation(x) ^ hasWhole(x; y)
Приложение C
(обязательное)
Листинг: протошаблоны
В настоящем приложении рассмотрено полное множество протошаблонов, определенных в настоящем стандарте. См. также 4.3.
С.1 Протошаблоны реляционных типов сущностей
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)
ClassOfCauseOfBeginningOfClassOflndividualTriple(x; y; z)
ClassOfCauseOfBeginningOfClassOflndividual(x) ^ hasClassOfBegun(x; y) ^ hasClassOfCauser(x; z)
ClassOfCauseOfBeginningOfClassOflndividualTemplate(y; z)
9u(ClassOfCauseOfBeginningOfClassOflndividualTriple(u; y; z))
ClassOfCauseOfEndingOfClassOflndividualTriple(x; y; z)
ClassOfCauseOfEndingOfClassOflndividual(x) ^ hasClassOfCauser(x; у) ^ hasClassOfEnded(x; z)
ClassOfCauseOfEndingOfClassOflndividualTemplate(y; z)
ClassOfClassOfCompositionTriple(x; y; z)
ClassOfClassOfComposition(x) ^ hasClassOfClassOfPart(x; у) ^ hasClassOfClassOfWhole(x; z)
ClassOfClassOfCompositionTemplate(y; z)
ClassOfClassOfRepresentationTriple(x; y; z)
ClassOfClassOfRepresentation(x) ^ hasClassOfPattern(x; у) ^ hasClassOfRepresented(x; z)
ClassOfClassOfRepresentationTemplate(y; z)
ClassOfClassOfRepresentationTranslationTriple(x; y; z)
ClassOfClassOfRepresentationTranslation(x) ^ hasClassOfFirst(x; у) ^ hasClassOfSecond(x; z)
ClassOfClassOfRepresentationTranslationTemplate(y; z)
ClassOfClassOfResponsibilityForRepresentationTriple(x; y; z)
ClassOfClassOfResponsibilityForRepresentation(x)^hasClassOfClassOfControlled(x; y)^hasController(x; z)
ClassOfClassOfResponsibilityForRepresentationTemplate(y; z)
9u(ClassOfClassOfResponsibilityForRepresentationTriple(u; y; z))
ClassOfClassOfUsageOfRepresentationTriple(x; y; z)
ClassOfClassOfUsageOfRepresentation(x) ^ hasClassOfClassOfUsed(x; у) ^ hasUser(x; z)
ClassOfClassOfUsageOfRepresentationTemplate(y; z)
ClassOfClassificationTriple(x; y; z)
ClassOfClassification(x) ^ hasClassOfClassified(x; у) ^ hasClassOfClassifier(x; z)
ClassOfClassificationTemplate(y; z)
ClassOfCompositionOflndividualTriple(x; y; z)
ClassOfCompositionOflndividual(x) ^ hasClassOfPart(x; у) ^ hasClassOfWhole(x; z)
ClassOfCompositionOflndividualTemplate(y; z)
ClassOfConnectionOflndividualTriple(x; y; z)
ClassOfConnectionOflndividual(x) ^ hasClassOfSide1(x; у) ^ hasClassOfSide2(x; z)
ClassOfConnectionOflndividualTemplate(y; z)
ClassOfDimensionForShapeTriple(x; y; z)
ClassOfDimensionForShape(x) ^ hasClassOfDimension(x; y) ^ hasClassOfShape(x; z)
ClassOfDimensionForShapeTemplate(y; z)
ClassOfFunctionalMappingTriple(x; y; z)
ClassOfFunctionalMappingTemplate(y; z)
ClassOflndirectPropertyTriple(x; y; z)
ClassOflndirectProperty(x) ^ hasClassOfPossessor(x; у) ^ hasPropertySpace(x; z)
ClassOflndirectPropertyTemplate(y; z)
ClassOflndividualUsedlnConnectionTriple(x; y; z)
ClassOflndividualUsedlnConnection(x) ^ hasClassOfConnection(x; у) ^ hasClassOfUsage(x; z)
ClassOflndividualUsedlnConnectionTemplate(y; z)
ClassOflntendedRoleAndDomainTriple(x; y; z)
ClassOflntendedRoleAndDomain(x) ^ hasClassOfPlayer(x; у) ^ hasPlayed(x; z)
ClassOflntendedRoleAndDomainTemplate(y; z)
ClassOflnvolvementByReferenceTriple(x; y; z)
ClassOflnvolvementByReference(x) ^ hasClassOflnvolved(x; у) ^ hasClassOflnvolver(x; z)
ClassOflnvolvementByReferenceTemplate(y; z)
ClassOfNamespaceTriple(x; y; z)
ClassOfNamespaceTemplate(y; z)
ClassOfParticipationTriple(x; y; z)
ClassOfParticipationTemplate(y; z)
ClassOfPossibleRoleAndDomainTriple(x; y; z)
ClassOfPossibleRoleAndDomain(x) ^ hasClassOfPlayer(x; у) ^ hasPlayed(x; z)
ClassOfPossibleRoleAndDomainTemplate(y; z)
ClassOfRecognitionTriple(x; y; z)
ClassOfRecognition(x) ^ hasClassOfRecognized(x; y) ^ hasClassOfRecognizing(x; z)
ClassOfRecognitionTemplate(y; z)
ClassOfRelationshipWithSignatureTriple(x; y; z)
ClassOfRelationshipWithSignature(x) ^ hasClassOfEnd1(x; y) ^ hasClassOfEnd2(x; z)
ClassOfRelationshipWithSignatureTemplate(y; z)
ClassOfRelativeLocationTriple(x; y; z)
ClassOfRelativeLocation(x) ^ hasClassOfLocated(x; y) ^ hasClassOfLocator(x; z)
ClassOfRelativeLocationTemplate(y; z)
ClassOfRepresentationOfThingTriple(x; y; z)
ClassOfRepresentationOfThing(x) ^ hasPattern(x; y) ^ hasRepresented(x; z)
ClassOfRepresentationOfThingTemplate(y; z)
ClassOfRepresentationTranslationTriple(x; y; z)
ClassOfRepresentationTranslation(x) ^ hasClassOfFirst(x; y) ^ hasClassOfSecond(x; z)
ClassOfRepresentationTranslationTemplate(y; z)
ClassOfResponsibilityForRepresentationTriple(x; y; z)
ClassOfResponsibilityForRepresentation(x) ^ hasClassOfControlled(x; у) ^ hasController(x; z)
ClassOfResponsibilityForRepresentationTemplate(y; z)
ClassOfScaleConversionTriple(x; y; z)
ClassOfScaleConversionTemplate(y; z)
ClassOfSpecializationTriple(x; y; z)
ClassOfSpecialization(x) ^ hasClassOfSubclass(x; у) ^ hasClassOfSuperclass(x; z)
ClassOfSpecializationTemplate(y; z)
ClassOfTemporalSequenceTriple(x; y; z)
ClassOfTemporalSequence(x) ^ hasClassOfPredecessor(x; у) ^ hasClassOfSuccessor(x; z)
ClassOfTemporalSequenceTemplate(y; z)
ClassOfUsageOfRepresentationTriple(x; y; z)
ClassOfUsageOfRepresentation(x) ^ hasClassOfUsed(x; у) ^ hasUser(x; z)
ClassOfUsageOfRepresentationTemplate(y; z)
ClassificationTriple(x; y; z)
ClassificationTemplate(y; z)
ComparisonOfPropertyTriple(x; y; z)
ComparisonOfProperty(x) ^ hasGreaterElement(x; у) ^ hasLesserElement(x; z)
ComparisonOfPropertyTemplate(y; z)
CompositionOflndividualTriple(x; y; z)
CompositionOflndividualTemplate(y; z)
ConnectionOflndividualTriple(x; y; z)
ConnectionOflndividualTemplate(y; z)
Di_erenceOfSetOfClassTriple(x; y; z)
Di_erenceOfSetOfClassTemplate(y; z)
DimensionOflndividualTriple(x; y; z)
DimensionOflndividual(x) ^ haslndividual(x; у) ^ haslndividualDimension(x; z)
DimensionOflndividualTemplate(y; z)
DimensionOfShapeTriple(x; y; z)
DimensionOfShapeTemplate(y; z)
FunctionalMappingTriple(x; y; z)
FunctionalMappingTemplate(y; z)
lndirectPropertyTriple(x; y; z)
lndirectPropertyTemplate(y; z)
lndividualUsedlnConnectionTriple(x; y; z)
lndividualUsedlnConnectionTemplate(y; z)
lntendedRoleAndDomainTriple(x; y; z)
lntendedRoleAndDomainTemplate(y; z)
lntersectionOfSetOfClassTriple(x; y; z)
lntersectionOfSetOfClassTemplate(y; z)
lnvolvementByReferenceTriple(x; y; z)
lnvolvementByReferenceTemplate(y; z)
LifecycleStageTriple(x; y; z)
LifecycleStageTemplate(y; z)
LowerBoundOfNumberRangeTriple(x; y; z)
LowerBoundOfNumberRange(x) ^ hasClassified(x; у) ^ hasClassifier(x; z)
LowerBoundOfNumberRangeTemplate(y; z)
LowerBoundOfPropertyRangeTriple(x; y; z)
LowerBoundOfPropertyRange(x) ^ hasClassified(x; у) ^ hasClassifier(x; z)
LowerBoundOfPropertyRangeTemplate(y; z)
OtherRelationshipTriple(x; y; z)
OtherRelationshipTemplate(y; z)
PossibleRoleAndDomainTriple(x; y; z)
PossibleRoleAndDomainTemplate(y; z)
PropertyForShapeDimensionTriple(x; y; z)
PropertyForShapeDimension(x) ^ hasProperty(x; у) ^ hasShapeDimension(x; z)
PropertyForShapeDimensionTemplate(y; z)
PropertyQuantificationTriple(x; y; z)
PropertyQuantificationTemplate(y; z)
PropertySpaceForClassOfShapeDimensionTriple(x; y; z)
PropertySpaceForClassOfShapeDimension(x) ^ hasClassOfShapeDimension(x; y) ^ hasPropertySpace(x; z)
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) ^ hasControlled(x; у) ^ hasController(x; z)
ResponsibilityForRepresentationTemplate(y; z)
ScaleTriple(x; y; z)
SpecializationTriple(x; y; z)
SpecializationTemplate(y; z)
SpecializationByRoleTriple(x; y; z)
SpecializationByRoleTemplate(y; z)
SpecializationOflndividualDimensionFromPropertyTriple(x; y; z)
SpecializationOflndividualDimensionFromProperty(x) ^ hasSubclass(x; у) ^ hasSuperclass(x; z)
SpecializationOflndividualDimensionFromPropertyTemplate(y; z)
9u(SpecializationOflndividualDimensionFromPropertyTriple(u; y; z))
TemporalSequenceTriple(x; y; z)
TemporalSequenceTemplate(y; z)
UnionOfSetOfClassTriple(x; y; z)
UnionOfSetOfClassTemplate(y; z)
UpperBoundOfNumberRangeTriple(x; y; z)
UpperBoundOfNumberRange(x) ^ hasClassified(x; y) ^ hasClassifier(x; z)
UpperBoundOfNumberRangeTemplate(y; z)
UpperBoundOfPropertyRangeTriple(x; y; z)
UpperBoundOfPropertyRange(x) ^ hasClassified(x; y) ^ hasClassifier(x; z)
UpperBoundOfPropertyRangeTemplate(y; z)
UsageOfRepresentationTriple(x; y; z)
UsageOfRepresentationTemplate(y; z)
C.2 Протошаблоны для подтипов реляционных типов сущностей
ArrangementOflndividualTriple(x; y; z)
ArrangementOflndividualTemplate(y; z)
AssemblyOflndividualTriple(x; y; z)
AssemblyOflndividualTemplate(y; z)
BeginningTriple(x; y; z)
BeginningTemplate(y; z)
ClassOfArrangementOflndividualTriple(x; y; z)
ClassOfArrangementOflndividual(x) ^ ClassOfCompositionOflndividualTriple(x; y; z)
ClassOfArrangementOflndividualTemplate(y; z)
ClassOfAssemblyOflndividualTriple(x; y; z)
ClassOfAssemblyOflndividual(x) ^ ClassOfArrangementOflndividualTriple(x; y; z)
ClassOfAssemblyOflndividualTemplate(y; z)
ClassOfClassOfDefinitionTriple(x; y; z)
ClassOfClassOfDefinitionTemplate(y; z)
ClassOfClassOfDescriptionTriple(x; y; z)
ClassOfClassOfDescriptionTemplate(y; z)
ClassOfClassOfldentificationTriple(x; y; z)
ClassOfClassOfldentification(x) ^ ClassOfClassOfRepresentationTriple(x; y; z)
ClassOfClassOfldentificationTemplate(y; z)
ClassOfClassOfRelationshipWithSignatureTriple(x; y; z)
ClassOfClassOfRelationshipWithSignature(x) ^ ClassOfRelationshipWithSignatureTriple(x; y; z)
ClassOfClassOfRelationshipWithSignatureTemplate(y; z)
ClassOfContainmentOflndividualTriple(x; y; z)
ClassOfContainmentOflndividual(x) ^ ClassOfRelativeLocationTriple(x; y; z)
ClassOfContainmentOflndividualTemplate(y; z)
ClassOfDefinitionTriple(x; y; z)
ClassOfDefinitionTemplate(y; z)
ClassOfDescriptionTriple(x; y; z)
ClassOfDescriptionTemplate(y; z)
ClassOfDirectConnectionTriple(x; y; z)
ClassOfDirectConnectionTemplate(y; z)
ClassOfFeatureWholePartTriple(x; y; z)
ClassOfFeatureWholePartTemplate(y; z)
ClassOfldentificationTriple(x; y; z)
ClassOfldentificationTemplate(y; z)
ClassOflndirectConnectionTriple(x; y; z)
ClassOflndirectConnection(x) ^ ClassOfConnectionOflndividualTriple(x; y; z)
ClassOflndirectConnectionTemplate(y; z)
ClassOflsomorphicFunctionalMappingTriple(x; y; z)
ClassOflsomorphicFunctionalMapping(x) ^ ClassOfFunctionalMappingTriple(x; y; z)
ClassOflsomorphicFunctionalMappingTemplate(y; z)
ClassOfLeftNamespaceTriple(x; y; z)
ClassOfLeftNamespaceTemplate(y; z)
ClassOfRightNamespaceTriple(x; y; z)
ClassOfRightNamespaceTemplate(y; z)
ClassOfTemporalWholePartTriple(x; y; z)
ClassOfTemporalWholePart(x) ^ ClassOfCompositionOflndividualTriple(x; y; z)
ClassOfTemporalWholePartTemplate(y; z)
ContainmentOflndividualTriple(x; y; z)
ContainmentOflndividualTemplate(y; z)
CoordinateSystemTriple(x; y; z)
CoordinateSystemTemplate(y; z)
DefinitionTriple(x; y; z)
DefinitionTemplate(y; z)
DescriptionTriple(x; у; z)
DescriptionTemplate(y; z)
DirectConnectionTriple(x; y; z)
DirectConnectionTemplate(y; z)
EndingTriple(x; y; z)
FeatureWholePartTriple(x; y; z)
FeatureWholePartTemplate(y; z)
ldentificationTriple(x; y; z)
ldentificationTemplate(y; z)
lndirectConnectionTriple(x; y; z)
lndirectConnectionTemplate(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)
C.3 entity Triple
entityTriple(x; y; z)
AssemblyOflndividualTriple(x; y; z) v BeginningTriple(x; y; z) v BoundaryOfNumberSpaceTriple(x; y; z) v
BoundaryOfPropertySpaceTriple(x; y; z) v CauseOfEventTriple(x; y; z) v ClassificationTriple(x; y; z) v
ClassOfApprovalTriple(x; y; z)vClassOfArrangementOflndividualTriple(x; y; z) v ClassOfAssemblyOflndividualTriple(x; y; z) v
ClassOfCauseOfBeginningOfClassOflndividualTriple(x; y; z) v ClassOfCauseOfEndingOfClassOflndividualTriple(x; y; z) v
ClassOfClassificationTriple(x; y; z) v ClassOfClassOfCompositionTriple(x; y; z) v ClassOfClassOfDefinitionTriple(x; y; z) v
ClassOfClassOfDescriptionTriple(x; y; z) v ClassOfClassOfldentificationTriple(x; y; z) v
ClassOfClassOfRelationshipWithSignatureTriple(x; y; z) v ClassOfClassOfRepresentationTranslationTriple(x; y; z) v
ClassOfClassOfRepresentationTriple(x; y; z) v ClassOfClassOfResponsibilityForRepresentationTriple(x; y; z) v
ClassOfClassOfUsageOfRepresentationTriple(x; y; z) v ClassOfCompositionOflndividualTriple(x; y; z) v
ClassOfConnectionOflndividualTriple(x; y; z) v ClassOfContainmentOflndividualTriple(x; y; z) v
ClassOfDefinitionTriple(x; y; z) v ClassOfDescriptionTriple(x; y; z) v ClassOfDimensionForShapeTriple(x; y; z) v
ClassOfDirectConnectionTriple(x; y; z) v ClassOfFeatureWholePartTriple(x; y; z) v ClassOfFunctionalMappingTriple(x; y; z) v
ClassOfldentificationTriple(x; y; z) v ClassOflndirectConnectionTriple(x; y; z) v ClassOflndirectPropertyTriple(x; y; z) v
ClassOflndividualUsedlnConnectionTriple(x; y; z) v ClassOflntendedRoleAndDomainTriple(x; y; z) v
ClassOflnvolvementByReferenceTriple(x; y; z) v ClassOflsomorphicFunctionalMappingTriple(x; y; z) v
ClassOfLeftNamespaceTriple(x; y; z) v ClassOfNamespaceTriple(x; y; z) v ClassOfParticipationTriple(x; y; z) v
ClassOfPossibleRoleAndDomainTriple(x; y; z) v ClassOfRecognitionTriple(x; y; z) v
ClassOfRelationshipWithSignatureTriple(x; y; z) v ClassOfRelativeLocationTriple(x; y; z) v
ClassOfRepresentationOfThingTriple(x; y; z) v ClassOfRepresentationTranslationTriple(x; y; z) v
ClassOfResponsibilityForRepresentationTriple(x; y; z) v ClassOfRightNamespaceTriple(x; y; z) v
ClassOfScaleConversionTriple(x; y; z) v ClassOfSpecializationTriple(x; y; z) v ClassOfTemporalSequenceTriple(x; y; z) v
ClassOfTemporalWholePartTriple(x; y; z) v ClassOfUsageOfRepresentationTriple(x; y; z) v
ComparisonOfPropertyTriple(x; y; z) v CompositionOflndividualTriple(x; y; z) v ConnectionOflndividualTriple(x; y; z) v
ContainmentOflndividualTriple(x; y; z) v CoordinateSystemTriple(x; y; z) v DefinitionTriple(x; y; z) v
DescriptionTriple(x; y; z) v DiverenceOfSetOfClassTriple(x; y; z) v DimensionOflndividualTriple(x; y; z) v
DimensionOfShapeTriple(x; y; z) v DirectConnectionTriple(x; y; z) v EndingTriple(x; y; z) v FeatureWholePartTriple(x; y; z) v
FunctionalMappingTriple(x; y; z) v ldentificationTriple(x; y; z) v lndirectConnectionTriple(x; y; z) v
lndirectPropertyTriple(x; y; z) v lndividualUsedlnConnectionTriple(x; y; z) v lntendedRoleAndDomainTriple(x; y; z) v
lntersectionOfSetOfClassTriple(x; y; z) v lnvolvementByReferenceTriple(x; y; z) v LeftNamespaceTriple(x; y; z) v
LifecycleStageTriple(x; у; z) v LowerBoundOfNumberRangeTriple(x; y; z) v LowerBoundOfPropertyRangeTriple(x; y; z) v
MultidimensionalScaleTriple(x; y; z) v NamespaceTriple(x; y; z) v OtherRelationshipTriple(x; y; z) v ParticipationTriple(x; y; z) v
PossibleRoleAndDomainTriple(x; y; z) v PropertyForShapeDimensionTriple(x; y; z) v PropertyQuantificationTriple(x; y; z) v
PropertySpaceForClassOfShapeDimensionTriple(x; y; z) v RecognitionTriple(x; y; z) v RelativeLocationTriple(x; y; z) v
RepresentationOfThingTriple(x; y; z) v ResponsibilityForRepresentationTriple(x; y; z) v RightNamespaceTriple(x; y; z) v
ScaleTriple(x; y; z) v SpecializationByDomainTriple(x; y; z) v SpecializationByRoleTriple(x; y; z) v
SpecializationOflndividualDimensionFromPropertyTriple(x; y; z) v SpecializationTriple(x; y; z) v
TemporalBoundingTriple(x; y; z) v TemporalSequenceTriple(x; y; z) v TemporalWholePartTriple(x; y; z) v
UnionOfSetOfClassTriple(x; y; z) v UpperBoundOfNumberRangeTriple(x; y; z) v UpperBoundOfPropertyRangeTriple (x; y; z) v
UsageOfRepresentationTriple(x; y; z))
Приложение D
(справочное)
Таблица протошаблонов
В таблице D.1 представлен список всех протошаблонов и их ролей.
Протошаблон | Первая роль | Вторая роль |
Название протошаблона | Название роли | Название роли |
Тип роли | Тип роли |
Пример 1 - Листинг протошаблона ApprovalTemplate
Протошаблон | Первая роль | Вторая роль |
ApprovalTemplate | hasApproved | hasApprover |
Relationship | Possiblelndividual |
Это означает, что первая роль шаблона - это hasApproved, и экземпляры первой роли должны быть экземплярами типа сущности Relationship. Вторая роль - это hasApprover, и экземпляры настоящей роли должны быть экземплярами типа сущности Possiblelndividual.
Таблица D.1 - Сжатый листинг протошаблонов
Протошаблон | Первая роль | Вторая роль |
ApprovalTemplate | has Approved | has Approver |
Relationship | Possiblelndividual | |
ArrangementOflndividualTemplate | hasPart | hasWhole |
Possiblelndividual | Arrangedlndividual | |
AssemblyOflndividualTemplate | hasPart | hasWhole |
Possiblelndividual | Arrangedlndividual | |
BeginningTemplate | hasPart | hasWhole |
Event | Possiblelndividual | |
BoundaryOfNumberSpaceTemplate | hasSubclass | hasSuperclass |
NumberSpace | NumberSpace | |
BoundaryOfPropertySpaceTemplate | hasSubclass | hasSuperclass |
PropertySpace | PropertySpace | |
CauseOfEventTemplate | hasCaused | hasCauser |
Event | Activity | |
ClassOfApprovalTemplate | hasClassOfApproved | hasClassOfApprover |
ClassOfRelationship | ClassOflndividual | |
ClassOfArrangementOflndividualTemplate | hasClassOfPart | hasClassOfWhole |
ClassOflndividual | ClassOfArrangedIndividual | |
ClassOfAssemblyOflndividualTemplate | hasClassOfPart | hasClassOfWhole |
ClassOflndividual | ClassOfArrangedIndividual | |
ClassOfCauseOfBeginningOfClassOflndividualTemplate | hasClassOfBegun | hasClassOfCauser |
ClassOflndividual | ClassOfActivity | |
ClassOfCauseOfEndingOfClassOflndividualTemplate | hasClassOfCauser | hasClassOfEnded |
ClassOfActivity | ClassOflndividual | |
ClassOfClassOfCompositionTemplate | hasClassOfClassOfPart | hasClassOfClassOfWhole |
ClassOfClassOfIndividual | ClassOfClassOflndividual | |
ClassOfClassOfDefinitionTemplate | hasClassOfPattern | hasClassOfRepresented |
ClassOfClassOfInformationRepresentation | Class | |
ClassOfClassOfDescriptionTemplate | hasClassOfPattern | hasClassOfRepresented |
ClassOfClassOfInformationRepresentation | Class | |
ClassOfClassOfldentificationTemplate | hasClassOfPattern | hasClassOfRepresented |
ClassOfClassOfInformationRepresentation | Class | |
ClassOfClassOfRelationshipWithSignatureTemplate | hasClassOfEnd1 | hasClassOfEnd2 |
RoleAndDomain | RoleAndDomain | |
ClassOfClassOfRepresentationTemplate | hasClassOfPattern | hasClassOfRepresented |
ClassOfClassOfInformationRepresentation | Class | |
ClassOfClassOfRepresentationTranslationTemplate | hasClassOfFirst | hasClassOfSecond |
ClassOfClassOflnformationRepresentation | ClassOfClassOflnformationRepresentation | |
ClassOfClassOfResponsibilityForRepresentationTemplate | hasClassOfClassOfControlled | hasController |
ClassOfClassOfRepresentation | Possiblelndividual | |
ClassOfClassOfUsageOfRepresentationTemplate | hasClassOfClassOfUsed | hasUser |
ClassOfClassOfRepresentation | Possiblelndividual | |
ClassOfClassificationTemplate | hasClassOfClassified | hasClassOfClassifier |
Class | ClassOfClass | |
ClassOfCompositionOflndividualTemplate | hasClassOfPart | hasClassOfWhole |
ClassOflndividual | ClassOflndividual | |
ClassOfConnectionOflndividualTemplate | hasClassOfSide1 | hasClassOfSide2 |
ClassOflndividual | ClassOflndividual | |
ClassOfContainmentOflndividualTemplate | hasClassOfLocated | hasClassOfLocator |
ClassOflndividual | ClassOflndividual | |
ClassOfDefinitionTemplate | hasPattern | hasRepresented |
ClassOfDescriptionTemplate | hasPattern | hasRepresented |
ClassOflnformationRepresentation | Thing | |
ClassOfDimensionForShapeTemplate | hasClassOfDimension | hasClassOfShape |
ClassOfShapeDimension | ClassOfShape | |
ClassOfDirectConnectionTemplate | hasClassOfSide1 | hasClassOfSide2 |
ClassOflndividual | ClassOflndividual | |
ClassOfFeatureWholePartTemplate | hasClassOfPart | hasClassOfWhole |
ClassOflndividual | ClassOfArrangedIndividual | |
ClassOfFunctionalMappingTemplate | hasCodomain | hasDomain |
Class | Class | |
ClassOfldentificationTemplate | hasPattern | hasRepresented |
ClassOflnformationRepresentation | Thing | |
ClassOflndirectConnectionTemplate | hasClassOfSide1 | hasClassOfSide2 |
ClassOflndividual | ClassOflndividual | |
ClassOflndirectPropertyTemplate | hasClassOfPossessor | hasPropertySpace |
ClassOflndividual | PropertySpace | |
ClassOflndividualUsedlnConnectionTemplate | hasClassOfConnection | hasClassOfUsage |
ClassOfConnectionOfIndividual | ClassOflndividual | |
ClassOflntendedRoleAndDomainTemplate | hasClassOfPlayer | hasPlayed |
ClassOflndividual | RoleAndDomain | |
ClassOflnvolvementByReferenceTemplate | hasClassOfInvolved | hasClassOflnvolver |
RoleAndDomain | ClassOfActivity | |
ClassOflsomorphicFunctionalMappingTemplate | hasCodomain | hasDomain |
Class | Class | |
ClassOfLeftNamespaceTemplate | hasClassOfClassOfWhole | hasClassOfPart |
ClassOfClassOflnformationRepresentation | ClassOflnformationRepresentation | |
ClassOfNamespaceTemplate | hasClassOfClassOfWhole | hasClassOfPart |
ClassOfClassOflnformationRepresentation | ClassOflnformationRepresentation | |
ClassOfParticipationTemplate | hasClassOfPart | hasClassOfWhole |
ParticipatingRoleAndDomain | ClassOfActivity | |
ClassOfPossibleRoleAndDomainTemplate | hasClassOfPlayer | hasPlayed |
ClassOflndividual | RoleAndDomain | |
ClassOfRecognitionTemplate | hasClassOfRecognized | hasClassOfRecognizing |
Class | ClassOfActivity | |
ClassOfRelationshipWithSignatureTemplate | hasClassOfEnd1 | hasClassOfEnd2 |
RoleAndDomain | RoleAndDomain | |
ClassOfRelativeLocationTemplate | hasClassOfLocated | hasClassOfLocator |
ClassOflndividual | ClassOflndividual | |
ClassOfRepresentationOfThingTemplate | hasPattern | hasRepresented |
ClassOflnformationRepresentation | Thing | |
ClassOfRepresentationTranslationTemplate | hasClassOfFirst | hasClassOfSecond |
ClassOflnformationRepresentation | ClassOflnformationRepresentation | |
ClassOfResponsibilityForRepresentationTemplate | hasClassOfControlled | hasController |
ClassOfRepresentationOfThing | Possiblelndividual | |
ClassOfRightNamespaceTemplate | hasClassOfClassOfWhole | hasClassOfPart |
ClassOfClassOflnformationRepresentation | ClassOflnformationRepresentation | |
ClassOfScaleConversionTemplate | hasCodomain | hasDomain |
Scale | Scale | |
ClassOfSpecializationTemplate | hasClassOfSubclass | hasClassOfSuperclass |
ClassOfClass | ClassOfClass | |
ClassOfTemporalSequenceTemplate | hasClassOfPredecessor | hasClassOfSuccessor |
ClassOflndividual | ClassOflndividual | |
ClassOfTemporalWholePartTemplate | hasClassOfPart | hasClassOfWhole |
ClassOflndividual | ClassOflndividual | |
ClassOfUsageOfRepresentationTemplate | hasClassOfUsed | hasUser |
ClassOfRepresentationOfThing | Possiblelndividual | |
ClassificationTemplate | hasClassified | hasClassifier |
Thing | Class | |
ComparisonOfPropertyTemplate | hasGreaterElement | hasLesserElement |
Property | Property | |
CompositionOflndividualTemplate | hasPart | hasWhole |
Possiblelndividual | Possiblelndividual | |
ConnectionOflndividualTemplate | hasSide1 | hasSide2 |
Possiblelndividual | Possiblelndividual | |
ContainmentOflndividualTemplate | hasLocated | hasLocator |
Possiblelndividual | Possiblelndividual | |
CoordinateSystemTemplate | hasCodomain | hasDomain |
NumberSpace | PropertySpace | |
DefinitionTemplate | hasRepresented | hasSign |
Class | Possiblelndividual | |
DescriptionTemplate | hasRepresented | hasSign |
Thing | Possiblelndividual | |
Di_erenceOfSetOfClassTemplate | haslnput | hasResult |
EnumeratedSetOfClass | Class | |
DimensionOflndividualTemplate | haslndividual | haslndividualDimension |
Possiblelndividual | IndividualDimension | |
DimensionOfShapeTemplate | hasDimension | hasShape |
ShapeDimension | Shape | |
DirectConnectionTemplate | hasSide1 | hasSide2 |
Possiblelndividual | Possiblelndividual | |
EndingTemplate | hasPart | hasWhole |
Event | Possiblelndividual | |
FeatureWholePartTemplate | hasPart | hasWhole |
Possiblelndividual | Arrangedlndividual | |
FunctionalMappingTemplate | haslnput | hasResult |
Thing | Thing | |
IdentificationTemplate | hasRepresented | hasSign |
Thing | Possiblelndividual | |
IndirectConnectionTemplate | hasSide1 | hasSide2 |
Possiblelndividual | Possiblelndividual | |
IndirectPropertyTemplate | hasPossessor | hasProperty |
Possiblelndividual | Property | |
IndividualUsedlnConnectionTemplate | hasConnection | hasUsage |
ConnectionOflndividual | Possiblelndividual | |
IntendedRoleAndDomainTemplate | hasPlayed | hasPlayer |
RoleAndDomain | Possiblelndividual | |
IntersectionOfSetOfClassTemplate | haslnput | hasResult |
EnumeratedSetOfClass | Class | |
InvolvementByReferenceTemplate | haslnvolved | haslnvolver |
Thing | Activity | |
LeftNamespaceTemplate | hasClassOfPart | hasClassOfWhole |
ClassOflnformationRepresentation | ClassOflndividual | |
LifecycleStageTemplate | haslnterest | haslnterested |
Possiblelndividual | Possiblelndividual | |
LowerBoundOfNumberRangeTemplate | hasClassified | hasClassifier |
ArithmeticNumber | NumberRange | |
LowerBoundOfPropertyRangeTemplate | hasClassified | hasClassifier |
Property | PropertyRange | |
MultidimensionalScaleTemplate | hasCodomain | hasDomain |
NumberSpace | PropertySpace | |
NamespaceTemplate | hasClassOfPart | hasClassOfWhole |
ClassOflnformationRepresentation | ClassOfArrangedIndividual | |
OtherRelationshipTemplate | hasEnd1 | hasEnd2 |
Thing | Thing | |
ParticipationTemplate | hasPart | hasWhole |
Possiblelndividual | Activity | |
PossibleRoleAndDomainTemplate | hasPlayed | hasPlayer |
RoleAndDomain | Possiblelndividual | |
PropertyForShapeDimensionTemplate | hasProperty | hasShapeDimension |
Property | ShapeDimension | |
PropertyQuantificationTemplate | haslnput | hasResult |
Property | ArithmeticNumber | |
PropertySpaceForClassOfShapeDimensionTemplate | hasClassOfShapeDimension | hasPropertySpace |
ClassOfShapeDimension | PropertySpace | |
RecognitionTemplate | hasRecognized | hasRecognizing |
Thing | Activity | |
RelativeLocationTemplate | hasLocated | hasLocator |
Possiblelndividual | Possiblelndividual | |
RepresentationOfThingTemplate | hasRepresented | hasSign |
Thing | Possiblelndividual | |
ResponsibilityForRepresentationTemplate | hasControlled | hasController |
RepresentationOfThing | Possiblelndividual | |
RightNamespaceTemplate | hasClassOfPart | hasClassOfWhole |
ClassOflnformationRepresentation | ClassOflndividual | |
ScaleTemplate | hasCodomain | hasDomain |
NumberSpace | PropertySpace | |
SpecializationTemplate | hasSubclass | hasSuperclass |
Class | Class | |
SpecializationByDomainTemplate | hasSubclass | hasSuperclass |
RoleAndDomain | Class | |
SpecializationByRoleTemplate | hasSubclass | hasSuperclass |
RoleAndDomain | Role | |
SpecializationOflndividualDimensionFromPropertyTemplate | hasSubclass | hasSuperclass |
IndividualDimension | Property | |
TemporalBoundingTemplate | hasPart | hasWhole |
Event | Possiblelndividual | |
TemporalSequenceTemplate | hasPredecessor | hasSuccessor |
Possiblelndividual | Possiblelndividual | |
TemporalWholePartTemplate | hasPart | hasWhole |
Possiblelndividual | Possiblelndividual | |
UnionOfSetOfClassTemplate | haslnput | hasResult |
EnumeratedSetOfClass | Class | |
UpperBoundOfNumberRangeTemplate | hasClassified | hasClassifier |
ArithmeticNumber | NumberRange | |
UpperBoundOfPropertyRangeTemplate | hasClassified | hasClassifier |
Property | PropertyRange | |
UsageOfRepresentationTemplate | hasUsed | hasUser |
RepresentationOfThing | Possiblelndividual |
Приложение E
(справочное)
Рекурсивное и нерекурсивное расширение шаблона
E.1 Номенклатура
На компьютерном языке слова макрос, шаблон, встраивание (замещение вызова) используются для обозначения различных частично перекрывающихся понятий.
Макрос:
- на языке LISP макрос - функция, выполняемая в процессе компиляции. Она формирует вспомогательную программу, которая встраивается в нужное место. Так как данная функция работает в произвольном коде, это весьма общий механизм;
- в препроцессоре языка C (cpp) вызов макроса заменяется тестом на расширение. После этого снова производится сканирование для поиска вызовов макроса. Обычно препятствий для рекурсии нет, однако это приводит к зацикливанию препроцессора. Блок GNU
________________
- в языке ТеХ, макросы расширяются аналогично (cpp), рекурсия допускается. Но здесь также используются условные структуры данных, позволяющие предотвращать рекурсию.
Шаблон:
- в языке C++ шаблоны, изначально рассматривавшиеся как средства описания параметрического полиморфизма типов данных, также могут быть рекурсивными. Допускаются несколько расширений одного шаблона с различными аргументами. Компилятор предпочитает самое конкретное определение, соответствующее конкретной реализации. Это дает возможность определить завершающий "базовый случай". Данная ситуация часто имеет место при так называемом метапрограммировании шаблона;
- шаблоны кодов в средах IDE4
________________
Встраивание (замещение вызова): вычислительный процесс, где вызовы функции/процедуры не компилируются в код, который сначала использует стековую память, чтобы запомнить свое предыдущее состояние, а затем "прыгает" в код функции. Вместо этого тело функции расширяется в месте вызова. Данный процесс не откликается на рекурсивные вызовы или, по крайней мере, ограничивает глубину замещаемого вызова. Некоторые компиляторы производят так называемое встраивание "за кулисами". В языке GNU функцию можно также объявить как встраивание, чтобы подсказать компилятору порядок действий. В отличие от ограничений на рекурсию, семантика функции замещения вызова похожа на семантику нормальной функции, но код работает быстрее.
Так как настоящий стандарт определяет работу с шаблонами, то мы далее будем говорить о механизмах работы шаблонов при обсуждении различных вариантов их определения.
Е.2 Использовать рекурсию или нет?
Имеет место существенная разница между шаблонами и макромеханизмами, допускающими циклические (рекурсивные) определения и не допускающими их.
Обсуждение данного вопроса см. в 1.3.1 и 2.2.2 [11]. Различие между рекурсивными и нерекурсивными макросами то же самое, что различие между циклическими и ациклическими элементами ТВох.
Пример надлежащего определения одного нерекурсивного механизма расширения макроса приведен в [16].
Рассмотрим абстрактное описание множества определений шаблона. Пусть N - это множество возможных имен шаблонов или других частей языка. Пусть определение шаблона дает определение некоторого имени n
SpecOrEqual(a,b) := Spec(a,b)
имеем SpecOrEqual > Spec, тогда как для определения:
SpecStar(a,b) := (
получаем SpecStar > Spec и SpecStar > SpecStar. Если имеются несколько таких определений, то пусть знак ">" - это объединение всех зависимостей, данных определениями индивидуальных объектов.
Для нерекурсивных механизмов шаблонов, зависимость ">" для всех определений должна быть ациклической. То есть не должно существовать последовательности
Другими словами, транзитивное замыкание >+ должно быть нерефлексивным.
В частности, пример (1) допускается в нерекурсивных механизмах, а пример (2) не допускается.
Обычно множество имен N разделяют на множество примитивных имен P и множество определенных имен D, N=P
Если механизм шаблона работает путем повторной замены ссылок (на определенные имена n
Можно видеть, что оценка шаблона путем его расширения непротиворечива с аксиоматической точки зрения. Для каждого определения шаблона:
где тело b - это комплексный термин, возможно содержащий х, у, ..., определим аксиому
________________
и соберем все указанные аксиомы во множество Ax. Теперь, если s - это результат повторного расширения всех определенных имен в t, то справедливо:
Из аксиоматического прочтения определений шаблонов следует, что расширение s семантически эквивалентно оригинальному члену t
________________
Следует очень внимательно относиться к аргументам шаблонов: если допустимы аргументы "более высокого порядка" (то есть имеются аргументы, которые используются в расширении как функции), то циклы могут появиться неожиданно. Например, после определения:
SelfApp(x):=x(x)
использование расширения SelfApp(SelfApp) приводит к зацикливанию, что уничтожает все достоинства рассматриваемого механизма. Если исключать аргументы более высокого порядка не хочется, то нужно подобрать для аргументов соответствующую систему типов, исключающую данную проблему.
С другой стороны, рекурсивные механизмы шаблонов ограничений на зависимость ">" не накладывают. В частности, можно использовать рекурсивные определения вида (2), рассмотренные выше. Очевидным преимуществом здесь является возможность представить комплексные свойства, например, транзитивное замыкание. Недостатки:
- нет гарантии, что выход в конкретном оконечном устройстве не зависит от порядка расширения;
- можно получить полный по Тьюрингу механизм, то есть нетипированное лямбда-исчисление. Программировать с шаблонами тоже можно. Настоящий программист всегда с этим справится. Правда, механизм шаблонов - плохой язык программирования: его трудно понять, в нем часто ошибаются. Метапрограммирование шаблонов на языке C++ - типовой пример.
Е.3 Прочие технические вопросы
Меры предосторожности для нерекурсивных механизмов шаблонов:
- может оказаться интересным использование тела шаблона, не являющегося правильным (действительным) членом. Например, определение
& :=
позволяет использовать предпочтительный символ в качестве связующего элемента. Если расширение имеет вид строки, то это реально сработает. Однако это сильно затрудняет анализ системы определений шаблона;
- в контексте первого порядка аргументы шаблона не квантифицируются в теле определения:
t(x):=
это недопустимо и не имеет смысла;
- реализация должна обеспечить переименование связанных переменных при необходимости. Для шаблона
t(x):=
реализация t(y) не сводится к:
Это известно как захват переменной. Этого можно избежать, например, путем переименования связанных переменных:
Приложение F
(справочное)
Пример расширения шаблона
В настоящем разделе рассмотрен пример, иллюстрирующий, как выражения, использующие шаблоны, расширяются и соответствуют выражениям языка ИСО 15926-2. Три простых утверждения шаблона расширяются на формулу первого порядка с помощью только предикатов языка ИСО 15926-2. Кванторы данной формулы затем заменяются константами, соответствующими идентификаторам элементарных данных на основе ИСО 15926-2. Результаты проверяются на логическую достоверность.
F.1 Пример расширения шаблона
Нижеследующее утверждение приведено на языке шаблона (см. предшествующие разделы). Следующие разделы показывают результаты расширения данного утверждения, при этом шаблоны заменяются утверждениями на языке ИСО 15926-2.
LowerUpperOfNumberRange([-273.1 to Infinity]; -273.1; Infinity) ^
DimensionUnitNumberRangeOfScale(Celsius; DegrC;
Temperature; [-273.1 to Infinity]) ^
PropertyRangeMagnitudeRestrictionOfClass(PressureTransmitter;
AmbientTemperature; Celsius; -40;+40)
F.2 Результат расширения в соответствии с аксиомами шаблонов
Шаблоны расширяются в соответствии с их аксиоматическими определениями. Получается экзистенциально квантифицированная формула первого порядка, в которой все предикаты шаблона заменяются на тип сущности (атрибуты) ИСО 15926-2.
(NumberRange([-273.1 to Infinity]) | ||||||||||
^ ArithmeticNumber(-273.1) | ||||||||||
(LowerBoundOfNumberRange(z) | ||||||||||
| ^ hasClassified(z; -273.1) | |||||||||
^ | ||||||||||
(UpperBoundOfNumberRange(z) | ||||||||||
^ hasClassified(z; Infinity) | ||||||||||
^ (Scale(Celsius) | ||||||||||
^ ExpressString(DegrC) | ||||||||||
^ ExpressString(DegrC) | ||||||||||
^ hasPattern(u; DegrC) | ||||||||||
^ | ||||||||||
(Classification(z) | ||||||||||
^hasClassified(z; u) | ||||||||||
^Scale(Celsius) | ||||||||||
^ ClassOflndividual(PressureTransmitter) | ||||||||||
((ClassOflndividual(PressureTransmitter) | ||||||||||
^ ClassOflndirectProperty(AmbientTemperature) | ||||||||||
((ClassOflndirectProperty(u0) | ||||||||||
^ hasClassOfPossessor(u0; PressureTransmitter) | ||||||||||
^ ClassOfRelationship(u0) | ||||||||||
((Specialization(y) | ||||||||||
^ hasSubclass(y; u0) | ||||||||||
^ | ||||||||||
^ hasClassified(z; y) | ||||||||||
((ExpressReal(-40) | ||||||||||
^ Thing(y1) | ||||||||||
(ClassOfldentification(z) | ||||||||||
^ hasPattern(z; -40 | ||||||||||
^ (ExpressReal(+40 | ||||||||||
^ Thing( | ||||||||||
(ClassOfldentification(z) | ||||||||||
^ hasPattern(z;+40 | ||||||||||
^ PropertyRange(u) | ||||||||||
((PropertyRange(u) | ||||||||||
^ Property( | ||||||||||
(LowerBoundOfPropertyRange(z) | ||||||||||
^ hasClassified(z; | ||||||||||
^ | ||||||||||
(UpperBoundOfPropertyRange(z) | ||||||||||
^ hasClassified(z; | ||||||||||
^ (Property(y | ||||||||||
^ ArithmeticNumber( | ||||||||||
((PropertyQuantification(u) | ||||||||||
^ haslnput(u; | ||||||||||
^ | ||||||||||
(Classification(z) | ||||||||||
^ hasClassified(z; u) | ||||||||||
^ Property( | ||||||||||
((PropertyQuantification(u) | ||||||||||
^ haslnput(u; | ||||||||||
^ | ||||||||||
(Classification(z) | ||||||||||
^ hasClassified(z; u) |
F.3 Задание значений кванторов существования
Кванторы существования заменяются на их значения (константы). Это аналогично назначению идентификаторов элементов данных в архиве данных ИСО 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)
ClassOfClassOfldentification(UomSymbolAssignment)
ClassOfldentification(Z)
hasPattern(Z; DegrC)
hasRepresented(Z; Celsius)
Classification(U)
hasClassified(U;Z)
hasClassifier(U; UomSymbolAssignment)
hasCodomain(Celsius; [-273.1 to Infinity])
hasDomain(Celsius;Temperature)
ClassOflndividual(PressureTransmitter)
ClassOflndirectProperty(AmbientTemperature)
ExpressReal(-40)
ExpressReal(+40)
PropertyRange(W)
ClassOflndirectProperty(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)
ClassOfldentification(V9)
hasPattern(V9; -40)
hasRepresented(V9; V8)
Thing(V10)
ClassOfldentification(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)
haslnput(V16; V12)
hasResult(V16; V8)
Classification(V17)
hasClassified(V17; V16)
hasClassifier(V17; Celsius)
PropertyQuantification(V18)
haslnput(V18; V13)
hasResult(V18; V10)
Classification(V19)
hasClassified(V19; V18)
hasClassifier(V19; Celsius)
F.4 Проверка на соответствие
Множество данных, полученное путем расширения и задания значений (F.3) можно проверить на соответствие ИСО 15926-2. Для этого множество данных интерпретируется как элементарные утверждения, расширяющие аксиоматизацию ИСО 15926-2 (приложение В). Результирующее множество аксиом можно проверить с помощью программы автоматического доказательства теорем и базовой логики первого порядка, а также с помощью более специализированной дедуктивной программы. Примеры последней включают программы автоматического доказательства с помощью описательной логики.
Приложение G
(справочное)
Проверка соответствия с помощью когерентной логики
Проверка показывает, что язык формализации ИСО 15926-2 и настоящего стандарта попадает внутрь фрагмента логики первого порядка (FOL), известного как когерентная логика (CL), составленная из формул вида:
где
- универсальная аксиома
- аксиомы непересечения могут быть записаны в кодах с помощью операции
записывается в виде:
IntegerNumber(x)
- все другие аксиомы уже имеют форму CL.
Отметим, что логика CL включает оба квантора
hasClassOfClassOfWhole(x, y)
Рассматриваемая здесь проблема - это проблема соответствия множеств T и
________________
Важное место CL: когерентные формулы можно использовать как генерирующие правила, формирующие полную процедуру доказательства для логики CL. В настоящем примечании мы используем ту же идею для решения проблемы соответствия множеств T,
Технически мы представляем последовательность приложений, которое является строкой приложений правил. Для каждой последовательности приложений s, fml(s) - это множество формул и dom(s) - это множество констант. Множество последовательностей приложений из
- пустая строка
- fml(
- Если s - это последовательность приложений, s.r означает, что реализация r - одна из нижеследующих:
- замкнутая реализация
-
-
-
- A(a)
Необходимо пояснить невозможность использования сопряжения "или" в следующем случае. Из последовательности приложений для сущности {Possiblelndividual(a)
Необходимо пояснить возможность отсутствия
Легко заметить, что соответствие
конечно, где t
Это типовой случай, когда можно ограничить число новых членов, появляющихся вследствие отказа от
ClassOfClassOfComposition(x)
ClassOfClassOfComposition(x)
Последняя аксиома является потенциально вредной. Если a - это композиция ClassOfClassOfComposition, то она может генерировать новый член b как заполнитель hasClassOfClassOfWhole, из которого следует ClassOfClassOflndividual(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], дающая удовлетворительные результаты, правда, путем резкого увеличения громоздкости формул. Каждая теория первого порядка имеет консервативное (определительное) расширение, эквивалентное когерентной теории.
Приложение H
(справочное)
Формальные ограничения вне шаблона
Язык шаблона может быть встроен в более выразительный язык первого порядка. С помощью богатых формализмов можно получить выражения для широкого диапазона ограничений, представляющих практический интерес.
Пример 1 - Транзитивность сущности Specialization может быть показана следующим образом.
Пример 2 - Если a - это член b, то b может не быть членом a. Настоящее ограничение можно представить в виде:
Приложение J
(обязательное)
Семантика шаблона
J.1 Правило переписывания
Нижеследующее определение взято дословно из определений 3.1 и 3.3 работы [22]. Изначально они представлены в работе [23], где система переписывания паттерна (формы представления) называется системой переписывания высокого порядка.
Член t типа
Правило переписывания - это пара
Примечание - Указанные определения являются очень общими:
- элементы первого порядка N(x, у, ...), являющиеся левыми частями определений шаблонов, фактически являются паттернами (в этом случае список аргументов
- если
Указанные определения использованы вместо стандартных понятий переписывания первого порядка. Это гарантирует, что использование кванторов тела определения шаблона не нанесет вреда. Они также обеспечат достаточно общие рамки рассмотрения в том случае, когда механизм шаблона потребуется расширить в будущем.
J.2 Система переписывания паттернов, соответствующая множеству шаблонов
Система переписывания паттернов R(S), соответствующая множеству шаблонов S - это множество всех правил
Нижеследующая лемма гарантирует, что если учащается появление шаблонов в какой-либо заданной формуле, то:
а) в конечном счете, этот процесс прекращается, то есть зацикливания не происходит. Можно последовательно расширять шаблоны до тех пор, пока из них не получится формула, не имеющая к шаблонам никакого отношения;
б) если эта формула и содержит ссылки на шаблоны, то, в конечном счете, все равно, в каком порядке происходит расширение, так как результат такого последовательного расширения всегда один и тот же.
Лемма 1 Форма представления R(S) является конечной и конфлюэнтной для любого множества логических шаблонов S.
Доказательство: Для доказательства конечности сначала определяется порядок на множестве
Теперь пусть
Для доказательства конфлюэнтности, рассмотрим лемму "критической пары" для системы переписывания паттернов. Это теорема 4.7 в работе [22]. Покажем, что все критические пары в R(S) сходятся к одной точке. Это тривиальный случай, так как в R(S) критических пар нет: никаких символов не появляется в более чем одной левой части правила в R(S). Что и требовалось доказать.
Этим можно воспользоваться для определения семантики шаблонов просто как окончательного результата последовательного расширения. Данная лемма гарантирует, что полученное определение будет правильным.
Пример - Множество шаблонов:
{A(x)
B(x)
расширено до формулы A(a)
A(a)
где расширенные под-формулы подчеркнуты, или в виде:
A(a)
или окончательно в виде:
A(a)
Видно, что получился тот же результат.
J.3 Расширение шаблона
Для множества шаблонов S
Приложение K
(обязательное)
Свойства расширения шаблона
K.1 Логическое считывание определений шаблонов
Если определения шаблона на множестве рассматриваются как аксиомы эквивалентности, то сама формула и ее расширение эквивалентны по отношению к указанным аксиомам.
Лемма 2 Пусть S
Доказательство леммы 2. Так как каждый шаг расширения шаблона заменяет одну подформулу другой, эквивалентной ей в соответствии с рассматриваемыми аксиомами, то результирующая формула будет также эквивалентна исходной. Что и требовалось доказать.
Пример - Аксиомы, соответствующие множеству шаблонов, рассмотренному выше:
В соответствии с леммой 2, указанные две аксиомы подразумевают эквивалентность
A(a)
исходной формулы и ее расширения в нашем примере.
K.2 Разрешимость соответствия ИСО 15926-2
Для практических приложений определений шаблонов представляет интерес нижеследующая проблема. Пусть заданы:
- аксиоматизация по ИСО 15926-2 (формула
- множество шаблонов S;
- формула
Необходимо проверить непротиворечивость выражения
Примечание -
Пример - Аксиоматика ИСО 15926-2 включает аксиомы:
Activily(x)
Relationship(x)
Из определений шаблонов:
AB(x)
A(x)
B(x)
и рассматриваемой формулы
следует, что a - это и Possiblelndividual, и AbstractObject, что противоречит ИСО 15926-2. Данный пример это показывает. Для более громоздкой формулы
Нижеследующая лемма утверждает, что для решения указанной проблемы сначала нужно расширить все шаблоны.
Лемма 3 Пусть
Доказательство. Для любой модели, удовлетворяющей формуле
Необходимо проверить непротиворечивость формул
K.2.1 Трансляция языка ИСО 15926-2 в описательную логику
Аксиоматику ИСО 15926-2 можно транслировать в ТВох в рамках ALCIQ (описательной логики с обратными ролями и квантифицированными числовыми ограничениями). Это есть подмножество хорошо изученной и используемой на практике описательной логики SHIQ. Для оценки имеющихся возможностей нужно проанализировать различные аксиомы, используемые в формализациях ИСО 15926-2 первого порядка в соответствии с 4.1:
- одноместные предикаты A(x) для сущностей EXPRESS отображаются на элементарные понятия описательной логики;
- двухместные предикаты hasR(x) атрибутов языка EXPRESS отображаются на роли hasR описательной логики (DL);
- типы данных списков EXPRESS в аксиомах фактически не используются;
- практическая реализация A(x)
- аксиома A(x)
- аксиома
- аксиома hasR(x, y)
- аксиома A(x)
- аксиома A(x)
- аксиома A(x)
- аксиома A(x)
Это аксиомы ТВох описательной логики для ИСО 15926-2.
K.2.2 Проверка достоверности расширения шаблона
Для проверки достоверности формула
где
Пример - Пример расширения и проверки достоверности см. в приложении F.
Библиография
[1] | ИСО/МЭК 8824-1:2008 | Информационные технологии. Нотация абстрактного синтаксиса версии 1 (ASN.1). Часть 1. Спецификация базовой нотации |
(ISO/IEC 8824-1:2008) | [Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation] | |
[2] | ИСО/ТО 9007:1987 | Системы обработки информации. Понятия и терминология для концептуальной модели базы данных |
(ISO/TR 9007:1987) | (Information processing systems; Concepts and terminology for the conceptual schema and the information base) | |
[3] | ИСО 10303-1:1994 | Системы промышленной автоматизации и интеграция. Представление данных о продукции и обмен данными. Часть 1. Обзор и основные принципы |
(ISO 10303-1:1994) | (Industrial automation systems and integration - Product data representation and exchange - Part 1: Overview and fundamental principles) | |
[4] | ИСО 10303-11:2004 | Системы промышленной автоматизации и интеграция. Представление данных о продукции и обмен данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS |
(ISO 10303-11:2004) | (Industrial automation systems and integration - Product data representation and exchange - Part 11: Description methods: The EXPRESS language reference manual) | |
[5] | ИСО 15926-1:2004 | Системы промышленной автоматизации и интеграция. Интеграция данных о сроке службы нефтехимических установок, включая установки по добыче нефти и газа. Часть 1. Общее представление и основные принципы |
(ISO 15926-1:2004) | (Industrial automation systems and integration - Integration of life-cycle data for process plants including oil and gas production facilities - Part 1: Overview and fundamental principles) | |
[6] | ИСО 15926-2:2003 | Системы промышленной автоматизации и интеграция. Интеграция данных о сроке службы нефтехимических установок, включая установки по добыче нефти и газа. Часть 2. Модель данных |
(ISO 15926-2:2003) | (Industrial automation systems and integration - Integration of life-cycle data for process plants including oil and gas production facilities - Part 2: Data model) | |
[7] | ИСО/ТС 15926-4:2007 | Системы промышленной автоматизации и интеграция. Интеграция данных о сроке службы нефтехимических установок, включая оборудование и сооружения для добычи нефти и газа. Часть 4. Исходные справочные данные |
(ISO/TS 15926-4:2007) | (Industrial automation systems and integration - Integration of lifecycle data for process plants including oil and gas production facilities - Part 4: Initial reference data) | |
[8] | ИСО/ТС 15926-8:2011 | Системы промышленной автоматизации и интеграция. Интеграция данных о сроке службы нефтехимических установок, включая оборудование и сооружения для добычи нефти и газа. Часть 8. Методы исполнения объединения распределенных систем. Внедрение сетевого онтологического языка |
(ISO/TS 15926-8:2011) | [Industrial automation systems and integration - Integration of life-cycle data for process plants including oil and gas production facilities - Part 8: Implementation methods for the integration of distributed systems: Web Ontology Language (OWL) implementation] | |
[9] | OWL 2 web ontology language direct semantics. [online] W3C Recommendation 27 October 2009. Available from World Wide Web: <http://www.w3.org/TR/owl2-direct-semantics/> | |
[10] | BAADER Franz. DL terminology, DL handbook, etc. Appendix 1, pages 495-505. | |
[11] | BAADER Franz, CALVANESE Diego, McGUINNESS Deborah L., NARDI Daniele and PATELSCHNEIDER Peter F., editors. The description logic handbook: theory, implementation, and applications. Cambridge University Press, 2003. | |
[12] | BEZEM M. Website for geometric/coherent logic. Available from World Wide Web: http://www.ii.uib.no/~bezem/GL | |
[13] | BEZEM M.A. On the undecidability of coherent logic. In A. Middeldorp e.a., editors, Processes, terms and cycles: steps on the road to infinity. LNCS 3838, pages 6-13, Springer-Verlag, Berlin, 2005. | |
[14] | BEZEM M.A. and COQUAND T. Automating coherent logic. In G. Sutcli_e and A. Voronkov, editors, Proceedings LPAR-12, LNCS 3835, pages 246-260, Springer-Verlag, Berlin, 2005. | |
[15] | BLASS A. Topoi and computation. Bulletin of the EATCS 36:57-65, 10-1998. | |
[16] | BOVE, Ana and ARBILLA, Laura. A confluent calculus of macro expansion and evaluation. SIGPLAN lisp pointers, V(1):278-287, 1992. Available from World Wide Web: http://www.cse.chalmers.se/~bove/Papers/papers.html | |
[17] | GLENDINNING Ian and VALEN-SENDSTAD Magne. Characterization methodology for ISO/TS 15926-7 templates. [online]. In progress, 2008. Available from World Wide Web: https://www.posccaesar.org/browser/projects/IDS-ADI/Part7/Part7SpecificationsMethodologies/P7L_Characterization_Methodology_IDS-120-001_lss_2x.doc | |
[18] | HE L., CHAO Y. and ITOH H. R-SATCHMO refinements on l-SATCHMO. Journal of logic and computation 14(2):117-143, 2004. | |
[19] | HORN A. Sentences which are true of direct unions of algebras. Journal of symbolic logic 16(1):14-21, 1951. | |
[20] | KOWALSKI R.A. Predicate logic as programming language. Procedings IFIP congress, pages 569-574, 1974. 10. | |
[21] | MANTHEY R. and BRY F. SATCHMO a theorem prover implemented in prolog. In E. Lusk and R. Overbeek, editors, roceedings of the 9th conference on automated deduction, lecture notes in computer science 310, pages 415-434, Springer, 1988. | |
[22] | MAYR Richard and NIPKOW Tobias. Higher-order rewrite systems and their confluence. Theoretical computer science, vol. 192, 3-29, 1998. | |
[23] | NIPKOW T. Higher-order critical pairs. Proceeding of the 6th annual symposium on logic in computer science, ed. G. Kahn, IEEE, pages 342-349, 1991. | |
[24] | SKOLEM T. Logisch-kombinatorische Untersuchungen "uber die Erfullbarkeit und Beweisbarkeit mathematischen Satze nebst einem Theoreme uber dichte Mengen." Videnskapsselskapets skrifter I, Matematisk-naturvidenskabelig klasse, Videnskabsakademiet i Kristiania 4:1-36, 1920. | |
[25] | SKOLEM T. Selected works in logic, edited by J.E. Fenstad. Universitetsforlaget, Oslo, 1970. |
УДК 656.072:681.3:006.354 | ОКС 75.020; 25.040.40 | |
Ключевые слова: системы промышленной автоматизации, интеграция, жизненный цикл систем, управление производством, интеграция данных жизненного цикла перерабатывающих предприятий, шаблон индивидуального объекта, расширение шаблона, протошаблоны, модель языка EXPRESS в соответствии с ИСО 15926-2, среда описания ресурса (RDF) |
Электронный текст документа
и сверен по:
, 2020