ГОСТ Р ИСО 10303-41—2022
Приложение Е
(справочное)
Техническая дискуссия
Е.1 Структура обобщенного ресурса описания изделия
Обобщенный ресурс описания изделия создается схемами, отражающими различные виды данных, которые
могут быть связаны с изделием. Схема application_context_schema позволяет описывать условия, при которых
был определен заданный пример обобщенного ресурса описания изделия. Схема product_definition_schema под
держивает описание данных, которые связаны с конкретным изделием. Схема
product_property_definition_sche-ma поддерживает описание свойств изделия, например его формы и
материала. Схема product_property_rep-resentation_schema устанавливает способы возможного
представления свойства изделия. Связи между этими схемами показаны на рисунке D.1.
a) Прикладной контекст: product_definition определен в одном и только в одном прикладном контексте, но
единый прикладной контекст может быть использован для определения пустого, одного или нескольких product_
definition.
b) Определение свойства изделия: product_definition может содержать одно или несколько определений
свойств, связанных с ним. Каждое определение свойства принадлежит по крайней мере одному product_definition и
может принадлежать нескольким product_definition.
c) Представление свойства: каждое определение свойства может быть представлено одним или несколь
кими способами. Единственным свойством, которое рассматривается в настоящем стандарте, является форма.
Е.2 Шаблон функции исключения ацикличности
Е.2.1 Функция acyclic_object_relationship
Шаблон, описываемый в данном разделе, используется в различных интегрированных ресурсах стандартов
серии ИСО 10303. Данный шаблон является функцией, выявляющей циклические определения.
Функция acyclic_object_relationship определяет, используются или нет заданные объекты в определении
самих себя на основе отношений, формируемых конкретным объектом object_relationship. Данная функция может
быть использована для оценки как самой object_relationship, так и любого из ее подтипов.
Допустим, что Z является набором экземпляров объектного типа данных object. Начальный состав набора
Z является составом набора, играющего роль параметра relatives. Предположим, что R — это экземпляр объекта,
на который ссылается атрибут relating_object объекта, играющего роль параметра relation. Функция осуществляет
поиск экземпляров объекта типа, заданного параметром specific_relation, у которых объект R играет роль атрибу та
related_object (связывемый объект). Функция добавляет к множеству Z набор экземпляров объектов, которые в
экземплярах объектов типа, заданного параметром specific_relation, играют роль атрибута relating_object (свя
зывающий объект).
Далее функция рекурсивно осуществляет такой же поиск для каждого члена набора Z до тех пор, пока не
будут исследованы все ветви графа или пока не будет обнаружен цикл. Функция обнаруживает цикл и возвращает
значение FALSE (ложь) на любом шаге поиска, если объект, который предполагается добавить в набор Z, уже яв
ляется членом набора Z. В противном случае функция возвращает значение TRUE (истина).
Примечание — Вызовы функций на основе этого шаблона должны выполняться следующим образом.
WR1. acyclic_object_relation (SELF, [SELF.relating object],’. . . .’).
EXPRESS-специФикация:
*)
FUNCTION acyclic_object_relationship
(relation :object_relationship;
relatives :SET [1:?] OF object;
specific_relation :STRING) :BOOLEAN;
:SET OF object_relationship;
LOCAL
x
END_LOCAL;
IN relatives THEN
IF relation.relating_object
RETURN (FALSE);
END_IF;
-- IN is based in instance equality
x := QUERY (oor <* bag_to_set (USEDIN
321