ГОСТ Р ИСО 10303-43—2016
Формальное положение:
WR1. Каждый экземпляр объекта value_representation_itom должен быть членом множества,
играющего роль атрибута items объекта representation, у которого роль атрибута context_of_items
играет экземпляр объекта representation_context. являющийся экземпляром объекта global_unit_as-
signed_context. или же экземпляр объекта value_representation_item должен использоваться в опре
делении такого объекта representation_item.
Неформальное положение.
IP1.Если экземпляробъектаvalue_representation_itom входит вструктуры более чем одного пред
ставления. представляемых объектами representation, то для каждого из этих объектов representation
должны быть заданы одни и те же единицы измерения или за счет того, что они ссылаются на один и тот же
экземпляр объекта global_unit_assigned_context. или за счет того, что все объекты global_unit_
assigned_context задают одну и ту же единицу измерения.
4.5 Определения функций схемы representation_schema
4.5.1 Функция acyclic_mapped_representation
Функция acyclic_mappod_representation определяет, является ли данный объект m appodjtem
самоопределяющимся за счет отображения представляющих определения объектов representation,
которые ссылаются на объекты m appedjtem . Функция выполняет рекурсивную проверку объектов,
играющих роль атрибутов mapped_representation и атрибутов items этих объектов с целью найти та
кие экземпляры объектов m appedjtem или representationJtem. которые ссылаются на проверяемый
объект m appedjtem . что приводит к самоопределяющимся ссылкам.
Настоящая функция возвращает значение TRUE (истина), если проверяемый объект
representationjtom не приводит к самоопределению. Функция возвращает значение FALSE (ложь) в
противном случае. Функция имеет Булев тип (BOOLEAN).
Примечание — Настоящаяфункция используетсядля наложения ограничения на объект mappedjtem.
EXPRESS-спеииФикация:
*)
FUNCTION acyclic.mapped.representation (mi :mapped.item) :BOOLEAN;
LOCAL
rms : SET OF representation_map;
mis : SET OF mapped.item;
rsl, rs2 : SET OF representation
END .LOCAL;
rsl := using.representations<mi);
rs2 := П ;
-- loop as long as there are elements in rsl
REPEAT WHILE SlZEOF(rsl) > 0;
REPEAT i := 1 TO HIINDEX(rsl>;
-- Determine the set of representstion_map that reference the parent.set
rms :=•bag.to.set{USED1N<rs1[iJ, ’REPRESENTATION_SCHEMA.REPRESENTATION.
MAP.MAPPED REPRESENTATION’));
IF SlZEOF(rms) > 0 THEN
REPEAT j := 1 TO HIINDEX(rms);
mis :=■bag_to_set(USEDIN(rms:i],’REPRESENTATION_SCHEMA.MAPPED_ITEM.
MAPPING.SOURCE’));
IF SIZEOF(mis) > 0 THEN
REPEAT j := 1 TO H1INDEX(mis>;
-- check mis members for instance equal with mi. If so then
there is a cycle
IF mis(i)mi THEN
RETURN (FALSE)
END.IF?
rs2 := rs2 + using.representations(misIi]);
23