Статус документа
Статус документа

ГОСТ Р ИСО 10303-41-99 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 41. Интегрированные обобщенные ресурсы. Основы описания и поддержки изделий

ПРИЛОЖЕНИЕ D
(справочное)

          
Технические соображения

D.1 Структура обобщенного ресурса описания изделия

Обобщенный ресурс описания изделия создается схемами, отражающими различные виды данных, которые могут быть связаны с изделием. Схема application_context_schema позволяет описывать условия, при которых был определен заданный пример обобщенного ресурса описания изделия. Схема product_definition_schema поддерживает описание данных, которые связаны с конкретным изделием. Схема product_property_definition_schema поддерживает описание свойств изделия, например его формы и материала. Схема product_property_representation_schema устанавливает способы возможного представления свойства изделия. Связи между этими схемами показаны на рисунке D.1.

Рисунок D.1 - Структура обобщенного ресурса описания изделия



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

b) Определение свойства изделия: product_definition может содержать одно или несколько определений свойств, связанных с ним. Каждое определение свойства принадлежит, по крайней мере, одному product_definition и может принадлежать нескольким product_definition.

c) Представление свойства: каждое определение свойства может быть представлено одним или несколькими способами. Единственным свойством, которое рассматривается в настоящем стандарте, является форма.

D.2 Шаблон функции исключения ацикличности

Шаблон, описываемый в данном разделе, используется различными интегрированными ресурсами стандартов серии ГОСТ Р ИСО 10303. Данный шаблон является функцией, выявляющей циклические определения.

D.2.1 acyclic_object_relationship

Функция acyclic_object_relationship определяет, являются или нет заданные объекты самоопределенными на основе отношений, порождаемых конкретной object_relationship. Данная функция может быть использована для оценки как самой object_relationship, так и любого из ее подтипов.

Примечание 1 - Конкретным типом объекта object_relationship является либо сама object_relationship, либо один из ее подтипов.


Функция возвращает значение TRUE, если ни один из элементов аргумента relatives не встречается в аргументе relation в виде типа, заданного в аргументе specific_relation. В противном случае функция возвращает значение FALSE.

Примечание 2 - Данная функция не использована в настоящей схеме. Она определена здесь для того, чтобы другие интегрированные ресурсы стандартов серии ГОСТ Р ИСО 10303 и прикладные протоколы, использующие объект object_relationship, включали в себя правила, использующие данную функцию.

Примечание 3 - При вызове функций, основанных на данном шаблоне, пользователю следует ссылаться на них, как показано ниже, чтобы позволить второму параметру функции иметь тип SET.


WR1: acyclic_object_relation[SELF.relating_object], '. . . .');

EXPRESS-спецификация:

FUNCTION acyclic_object_relationship

(relation

: object_relationship;

relatives

: SET [1:?] OF object;

specific_relation

: STRING)  : LOGICAL;

LOCAL

x

: SET [1:?] OF object_relationship;

i

: INTEGER;

local_relatives

: SET [1:?] OF object;

END_LOCAL;

REPEAT i : = 1 TO HIINDEX(relatives);

IF relation.relating_object :=: relatives[i] THEN

RETURN(FALSE);

END_IF;

END_REPEAT;

x : = bag_to_set(USEDIN (relation.relating_object, specific_relation));

local_relatives : = relatives + relation.relating_object;

IF SIZEOF(x) > 0 THEN

REPEAT i : = 1 TO HIINDEX(x);

        IF NOT acyclic_object_relationship

                        (x[i], local_relatives, specific_relation) THEN

             RETURN(FALSE);

          END_IF;

END_REPEAT;

END_IF;

RETURN(TRUE);

END_FUNCTION;


Определения аргументов:

relation - проверяемый кандидат object_relationship (исходные данные);

relatives - множество объектов, которые функция отыскивает для параметра relating_object аргумента relation (исходные данные);

specific_relation - полностью квалифицированное имя подтипа объекта object_relationship (исходные данные).

D.3 Шаблон отношения