ГОСТ Р ИСО 10303-41—2022
15.5Определения функций схемы group_schema
15.5.1 Функция acyclic_action_directive_relationship
Функция acyclic_group_relationship определяет, содержит ли образованный экземплярами пред
ставляющих группу объектов group граф, содержащий в качестве одного из ребер объект group_rela-
tionship, играющий роль параметра relation, цепочку ссылок, образующую цикл. Настоящая функция
может использоваться для обработки графа, ребра которого образованы объектами group_relation-ship
или любыми подтипами этого объекта.
Функция возвращает значение TRUE (истина), если не было обнаружено циклов, в противном
случае функция возвращает значение FALSE (ложь).
Примечания
1 Алгоритм функции приведен в Е.2 (приложение Е).
2 Данная функция не используется в настоящей схеме. Определение функции приведено потому, что вдру
гих объединенных ресурсах стандартов серии ИСО 10303 и в прикладных протоколах, в которых используется
представляющий отношение между группами объект group_relationship, используется правило, обращающееся к
настоящей функции.
EXPRESS-спеииФикаиия:
*)
FUNCTION acyclic_group_relationship (relation :
group__relationship; relatives :SET[1:?] OF group;
specific_relation :STRING) :BOOLEAN;
LOCAL
x : SET OF group_relationship;
END_LOCAL;
IF relation.relating_group IN relatives THEN
RETURN (FALSE);
END_IF;
x := QUERY(grp <* bag_to_set(USEDIN(relation.relating_group,
’GROUP_SCHEMA.’ + ’GROUP_RELATIONSHIP.’ + ’RELATED_GROUP’)) |
specific_relation IN TYPEOF(grp));
REPEAT i ;= 1 TO HIINDEX(x);
IF NOT acyclic_group_relationship(x[i], relatives +
relation.relating_group, specific__relation) THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
RETURN (TRUE);
END_FUNCTION;
(*
Определение параметра:
relation — (входной) проверяемый экземпляр представляющего отношение между группами
объекта group_relationship;
relatives — (входной) набор представляющих группы объектов group. Функция проверяет,
есть ли среди данного набора экземпляры, играющие роль атрибута relating_group объекта group_
relationship, играющего роль параметра relation;
specific_relation — (входной) полное квалифицированное наименование подтипа представляю
щего отношение между группами объекта group_relationship.
*)
END__SCHEMA; -- group_schema
(*
94