ГОСТ Р ИСО 10303-41—2022
4.5.4 Функция acyclic_action_resource_relationship
Функция acyclic_action_resource_relationship определяет, содержит ли образованный экземпля
рами представляющих ресурс действия объектов action_ resource граф, содержащий в качестве одно
го из ребер объект action_resource_ relationship, играющий роль аргумента relation, цепочку ссылок,
образующую цикл. Настоящая функция может использоваться для обработки графа, ребра которого
образованы объектами action_resource_relationship или любыми подтипами этого объекта.
Функция возвращает значение TRUE (истина), если не было обнаружено циклов, в противном
случае функция возвращает значение FALSE (ложь).
Примечания
1 Алгоритм функции приведен в Е.2 (приложение Е).
2 Данная функция не используется в настоящей схеме. Определение функции приведено потому, что в дру
гих объединенных ресурсах стандартов серии ИСО 10303 и в прикладных протоколах, в которых используется
представляющий отношение между ресурсами действия объект action_resource_relationship, используется пра
вило, обращающееся к настоящей функции.
EXPRESS-специФикация:
*)
FUNCTION acyclic_action__resource_relationship (relation :action_resource_
relationship; relatives : SET[1:?] OF action_resource; specific_relation :
:BOOLEAN;
STRING)
LOCAL
x
: SET OF action_resource_relationship;
END_LOCAL;
IF relation.relating_resource IN relatives THEN
RETURN (FALSE);
END_IF;
x := QUERY(ar <* bag_to_set(USEDIN(relation.relating_resource, ’ACTION_
SCHEMA.’ + ’ACTION_RESOURCE_RELATIONSHIP.’ + ’RELATED_RESOURCE’)) |specific_
relation IN TYPEOF(ar));
REPEAT i := 1 TO HIINDEX(x);
IF NOT acyclic_action_resource_relationship(x[i], relatives + relation.
relating_resource, specific_relation) THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
RETURN (TRUE);
END_FUNCTION;
(*
Определения параметров:
relation — (входной) проверяемый экземпляр представляющего отношение между ресурсами
действия объекта action_resource_relationship;
relatives — (входной) набор представляющих ресурсы действия объектов action_resource. Функ
ция проверяет, есть ли среди данного набора экземпляры, играющие роль атрибута relating_resource
объекта action_resource_relationship, играющего роль параметра relation;
specific_relation — (входной) полное квалифицированное наименование подтипа представляю
щего отношение между ресурсами действия объекта action_resource_relationship.
4.5.5 Функция acyclic_versioned_action_request_relationship
Функция acyclic_versioned_action_request_relationship определяет, содержит ли образован
ный экземплярами представляющих запрос на выполнение действия объектов versioned_action_re-
quest граф, содержащий в качестве одного из ребер объект versioned_action_request_relationship,
играющий роль аргумента relation, цепочку ссылок, образующую цикл. Настоящая функция может ис
пользоваться для обработки графа, ребра которого образованы объектами versioned_action_request_
relationship или любыми подтипами этого объекта.
Функция возвращает значение TRUE (истина), если не было обнаружено циклов, в противном
случае функция возвращает значение FALSE (ложь).
19