ГОСТ Р ИСО 10303-41—2022
EXPRESS-спеииФикаиия:
*)
FUNCTION acyclic_external_source_relationship (relation :
external_source_relationship; relatives :SET[1:?] OF
external_source; specific_relation :STRING) :BOOLEAN;
LOCAL
x : SET OF external_source_relationship;
END_LOCAL;
IF relation.relating_source IN relatives THEN
RETURN (FALSE);
END_IF;
x := QUERY(es <* bag_to_set(USEDIN(relation.relating_source,
’EXTERNAL_REFERENCE_SCHEMA.’+ ’EXTERNAL_SOURCE_RELATIONSHIP.’ +
’RELATED_SOURCE’)) |specific_relation IN TYPEOF(es));
REPEAT i := 1 TO HIINDEX(x);
IF NOT acyclic_external_source_relationship(x[i], relatives
+ relation.relating_source, specific_relation) THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
RETURN (TRUE);
END_FUNCTION;
(*
"
Определение параметров:
relation — (входной) проверяемый экземпляр представляющего отношение между внешними ис
точниками объекта external_source_relationship;
relatives — (входной) набор представляющих внешние источники объектов external_source. Функ
ция проверяет, есть ли среди данного набора экземпляры, играющие роль атрибута relating_source
объекта external_source_relationship, играющего роль параметра relation;
specific_relation — (входной) полное квалифицированное наименование подтипа представляю
щего отношение между внешними источниками объекта external_source_relationship.
14.5.2 Функция acyclic_externally_defined_item_relationship
Функция acyclic_externally_defined_item_relationship определяет, содержит ли образованный
экземплярами представляющих элементы, имеющие внешние определения, объектов externally_de-
fined_item граф, содержащий в качестве одного из ребер объект externally_defined_item_relationship,
играющий роль параметра relation, цепочку ссылок, образующую цикл. Настоящая функция может
использоваться для обработки графа, ребра которого образованы объектами externally_defined_item_
relationship или любыми подтипами этого объекта.
Функция возвращает значение TRUE (истина), если не было обнаружено циклов, в противном
случае функция возвращает значение FALSE (ложь).
Примечания
1 Алгоритм функции приведен в Е.2 (приложение Е).
2 Данная функция не используется в настоящей схеме. Определение функции приведено потому, что вдру
гих объединенных ресурсах стандартов серии ИСО 10303 и в прикладных протоколах, в которых используется
представляющий отношение между внешне определенными элементами объект externally_defined_item_relation-
ship, используется правило, обращающееся к настоящей функции.
EXPRESS-спеииФикация:
*)
FUNCTION acyclic_externally_defined_item_relationship (relation :
externally_defined_item_relationship; relatives :SET[1:?] OF
externally_defined_item; specific_relation :STRING) :BOOLEAN;
LOCAL
x : SET OF externally_defined_item_relationship;
END LOCAL;
90