ГОСТ Р ИСО 13584-42—2012
s: SET OF dataJype_BSU;=( ]:
END_LOCAL;
s:= s + USEDIN(d. ISO13584JEC61360_DICTIONARY_SCHEMA ♦
\DataJype_BSU.NAME_SCOPE);
IF SIZEOF(d.definition) = 0
THEN
RETURN(s):
ELSE
IF EXISTS(d.definition[1l\class.its_superclass)
THEN
s:= s + compute_kno\vn_visible_dataJypes(
d.definition(1]\dass.its_superdass):
ENOJF;
RETURN(s);
ENDJF;
END_FUNCTION; — compute_known_visible_dataJypes
(*
F.3.10.13 Функция вычисления известных применимых свойств (Compute_known_app!icable_properties)
Функция compute_known_applicable_properties вычисляет набор свойств, являющихся применимыми
в данном классе. Если определение недоступно, то функция возвращает только те применимые свойства, кото
рые могут быть вычислены.
Примечание — Если словарное определение dictionary_definition некоторого класса не присутствует
в рассматриваемом контекстеобмена (аконтекст обменабиблиотеки PUB никогда не предполагается полным), тосу
перкласс некоторого класса может быть неизвестен. Следовательно, свойство, определенное как применимое вдан
ном суперклассе, не может быть вычислено функцией compute_known_applicable_properties. Толькодля получаю
щей системы все словарные определения dictionary_definitk>n базового семантического элемента (ВСЕ) являются
доступными. Следовательно, для получающей системыфункция compute_known_applicable_properties вычисляет
всесвойства, являющиеся применимыми вданном классе, так как на них производитсяссылкаатрибутом described_
by. или они импортируются с помощью априорного семантического соотношения a_priori_semantic_relationship.
Пример представления на языке EXPRESS:
*)
FUNCTION cornpute_known_applicable_properties(d: dass_BSU):
SET OF property_BSU;
LOCAL
s: SET OF property_BSU:= [ J:
END_LOCAL:
IF SIZEOF(d.deftnition)=0
THEN
RETURN(s):
ELSE
REPEAT i:= 1TO SIZEOF(d.de(inition[1]\class.described_by);
s:= s + cl.definit*on[1]\dass.described_by[i];
END_REPEAT;
IF((ISO13584JEC61360JTEM_CLASS_CASE_OF_SCHEMA:
+ -A_PRIORI_SEMANTIC_RELATIONSHIP)
IN TYPEOF (cl.defimticn[1]))
THEN
s:= s +cl.definitkDn[1]\a_priori_semantic_relationship
.referencedproperties:
ENDJF;
IF EXISTS(cl.definitk)n(1)\dass.ils_superdass)
THEN
s:= s + computeJ<nown_applicable_properties(
d .definition[1]\class. its_superclass);
ENDJF;
RETURN(s);
ENDJF:
ENDJUNCTION; — compute_known_applicabte_properties
C
121