ГОСТ Р ИСО 13584-42—2012
WR6: все импортированные свойства imported_properties, являющиеся свойствами со значением класса,
являющегося условной комбинацией других классов, должны быть свойствами со значением класса в рассматри
ваемом классе.
WR7: всем импортированным свойствам imported_properties со значением константы класса class_
constant_value из условной комбинации других классов, должно быть задано одно и то же значение константы
класса class_constant_value в рассматриваемом классе.
F.6.3 Определения функций стандартной схемы условного класса предметов ISO13584_lEC61360_
item_class_case_of_schema
Данный подраздел содержит описания функций, на которые производится ссылка в разделах по месту
для подтверждения непротиворечивости данных или для создания ресурсов приложений.
F.6.3.1 Функция вычисления ограничения известного свойства (Compute_known_property_constraints)
Функция compute_known_property_constraints вычисляет набор ограничений свойств propertyc o n
straints. применимых для свойств набора классов. Ограничения, представленные их идентификаторами, не вы
числяются. Если определениекласса недоступно, тофункция возвращает толькотеограничения свойств property_
constraints, которые могут быть вычислены.
Примечание — Если словарное определение dictionary_defin’rtion класса недоступно в рассматрива
емом контексте обмена (а контекст обмена библиотеки PLIB никогда не предполагается полным), то собственный
суперкласс может быть неизвестен. Следовательно, ограничения, определенные данным суперклассом, не могут
быть вычислены функцией compute_known_property_constraint. И наоборот, если все представительные супер
классы рассматриваемого класса доступны в том же контексте обмена, то все ограничения, применимые вданном
классе, могут быть вычислены за один обход представительного дерева наследственности, даже если некоторые
из указанных суперклассов импортируют свойства с помощью априорного семантического соотношения a_priori_
semantic relationship, такого как условный класс предметов item_class_case_of.
Пример представления на языке EXPRESS:
*)
FUNCTION compute_kno\vn_property_constraints(classes: SET OF class_BSU):
SET OF property_constraint;
LOCAL
s: SET OF property_constraint:= [ ];
END_LOCAL;
REPEAT nb:= 1TO SIZEOF (classes):
IF SIZEOF(classes(nb].definition)=1
THEN
REPEAT i:= 1TO
SIZEOF(classes[nb).definition[1]\class.constraints);
IF ((’ISO13584JEC61360_CLASS_CONSTRAINT_SCHEMA’
+’.PROPERTY_CONSTRAINT)
IN TVPEOF
(classes[nb).definition[1]\dass.constraints(i]))
THEN
s:= s + dasses(nb].definition[1]\dass.constraints{il;
ENDJF:
END_REPEAT;
IF ((‘ISO13584_IEC61360_ITEM_CLASS_CASE_OF_SCHEMA.’
+ ’A_PRIORI_SEMANTIC_RELATIONSHIP)
IN TYPEOF (classes[nb).definition[1J))
THEN
REPEAT i:= 1TO
SIZEOF(classes[nb].definilion[1]
\a_priori_semantic_relationship
,referenced_constraints);
IF ((’IS013584JEC61360_CLASS_CONSTRA1NT_SCHEMA*
+’.PROPERTY_CONSTRAINT) INTYPEOF
(dasses[nb].definition!1]
\a_priori_semantic_relationship
.referenced_conslraintsli]))
THEN
s:= s +classes(nb).definition[1]
\a_priori_semantic_relat»onship
149