ГОСТ Р ИСО 10303-59-2012 Системы автоматизации производства их интеграция. Представление данных об изделии и обмен этими данными. Часть 59. Интегрированный обобщенный ресурс. Качество данных о форме изделия стр. 39

SELF\shape_data_quality_criterion.assessment_specification - объектshape_data_quality_assessment_by_numerical_test, который задает сравнение числа пустот с заданным предельным значением.
Формальные положения
WR1: Атрибут threshold объекта, играющего роль атрибута assessment_specificationнастоящего объекта, должен в качестве значения иметь объект типаshape_data_quality_lower_value_limit, атрибут value_component которого должен быть экземпляром данных типа count_measure (счетная мера).
WR2: Атрибут representative_measured_value объектаshape_data_quality_inspection_criterion_report и атрибут measured_value объектаshape_data_quality_inspection_instance_report_item во всех экземплярах, связанных с настоящим объектом, должны иметь значение типа count_measure (счетная мера).
WR3: Объекты, играющие роль атрибута inspected_elements в экземплярах объектаshape_data_quality_inspection_instance_report_item, связанных с настоящим объектом, должны быть объектами типа manifold_solid_brep.
WR4: Объект shape_data_quality_inspection_instance_report_item, связанный с настоящим объектом, не должен быть объектом типаinstance_report_item_with_extreme_instances, поскольку указание в отчете о проверке выходящих за пределы значений не имеет смысла.
WR5: Настоящий объект не должен быть связан посредством объектовshape_data_quality_criterion_and_accuracy_association ни с какими элементами данных, задающими точность. Объект shape_data_quality_inspection_result, соответствующий настоящему объекту, также не должен связан быть посредством объектаshape_inspection_result_accuracy_association с какими-либо элементами данных, задающими точность.

7.5 Определение функций схемы критериев качества данных о форме

7.5.1 Функция validate_inspected_elements_type
Функция validate_inspected_elements_type проверяет, содержатся ли типы объектов, играющих роль атрибута inspected_elements объектаshape_data_quality_inspection_instance_report_item, на который ссылается объектshape_data_quality_inspection_instance_report, соответствующий объектуshape_data_quality_criterion, являющемуся входным параметром настоящей функции, в списке типов, являющемся другим входным параметром настоящей функции. Если с заданным критерием не связан ни один объект, то функция возвращает значение 'TRUE'. Функция выполняется следующим образом:
1) собрать все экземпляры объекта shape_data_quality_inspection_instance_report_item, связанные посредством объектов shape_data_quality_inspection_result иshape_data_quality_inspection_instance_report с объектом shape_data_quality_criterion, задаваемым в качестве входного параметра настоящей функции;
2) проверить, точно ли соответствуют наименования типов объектов, играющих роль атрибутаinspected_elements во всех собранных экземплярах, именам типов из списка типов, данного в качестве входного параметра настоящей функции.
EXPRESS-спецификация:
*)
FUNCTION validate_inspected_elements_type
(ei:shape_data_quality_criterion;
type list:BAGOFSTRING):LOGICAL;
LOCAL
sdqir: SET OF
SHAPE_DATA_QUALITY_INSPECTION_RESULT:=[];
sdir: SET OF
SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT:=[];
sdiri: SET OF
SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM:=[];
t_type_list:BAG OF STRING:=[];
END_LOCAL;
- - STEP-1
- - collect all shape_data_quality_inspection_instance_report_item
- - instances associated with the given shape_data_quality_criterion
- - via shape_data_quality_inspection_result and
- - shape_data_quality_inspection_instance_report
sdqir :=QUERY(q <* bag_to_set(USEDIN(ei,
'PRODUCT_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'DATA_QUALITY_INSPECTION_RESULT'+
'CRITERION_INSPECTED'))|
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'SHAPE_DATA_QUALITY_INSPECTION_RESULT'
IN TYPEOF(q));
IF(SIZEOF(sdqir) = 0) THEN
RETURN(TRUE);
END_IF;
REPEAT i:= 1 TO SIZEOF(sdqir);
sdir := sdir + QUERY(q <* bag_to_set(USEDIN(sdqir[i],
'PRODUCT_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'DATA_QUALITY_INSPECTION_REPORT.'+
'INSPECTION_RESULT'))|
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT'
IN TYPEOF(q));
END_REPEAT;
IF(SIZEOF(sdir) = 0)THEN
RETURN(TRUE);
END_IF;
REPEAT i:= 1 TO SIZEOF(sdir);
sdiri := sdiri + QUERY(q <* sdir[i].inspected_instances|
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT ITEM'
IN TYPEOF(q));
END_REPEAT;
- - STEP-2
- - check if the types of inspected_elements of the collected
- - instances are exactly coincident with the type names in the
- - type list given as an input argument of this function.
- - If there is no instance_report_item, then return true.
IF(SIZEOF(sdiri) = 0)THEN
RETURN(TRUE);
END_IF;
- - When reports exist, then perform the following checking process.
REPEAT i:= 1 TO SIZEOF(sdiri);
- - If the size of inspected_elements is not equal to the size of
- - type_list, then return false.
IF(SIZEOF(sdiri[i].inspected_elements) <>
SIZEOF(type list)) THEN
RETURN(FALSE);
END_IF;
- - check all elements in the type_list
- - for each element of inspected_elements.
t_type_list := type_list;
REPEAT j:= 1 TO SIZEOF(sdiri[i].inspected_elements);
REPEAT k:=1 TO SIZEOF(t_type_list);
IF(t_type_list[k] IN
TYPEOF(sdiri[i].inspected_elements[j]))THEN
t_type_list := t_type_list - t_type_list[k];
ESCAPE;
END_IF;
END_REPEAT;
END_REPEAT;
IF(SIZEOF(t_type_list) > 0) THEN
RETURN(FALSE);
END_IF;
END_REPEAT;
RETURN(TRUE);
END_FUNCTION;
(*
Определение параметров
ei - экземпляр объекта shape_data_quality_criterion, который должен быть проверен;
type_list - множество (BAG), задающее приемлемые типы данных из числа типов данных, используемых в определении типа данных inspected_shape_element_select.
7.5.2 Функция validate_locations_of_extreme_value_type
Функция validate_locations_of_extreme_value_type проверяет допустимость типов объектов, играющих роль атрибута locations_of_extreme_values объектов, играющих роль атрибута extreme_instances объекта instance_report_item_with_extreme_instances, связанного с экземпляром объекта shape_data_quality_criterion. Функция выполняется следующим образом:
1) собрать все экземпляры объекта instance_report_item_with_extreme_instances, связанные посредством объектов shape_data_quality_inspection_result иshape_data_quality_inspection_instance_report с объектом shape_data_quality_criterion, задаваемым в качестве входного параметра настоящей функции;
2) проверить, точно ли соответствуют типы объектов, играющих роль атрибутовlocations_of_extreme_value объектов, играющих роль атрибута extreme_instances во всех собранных экземплярах, именам типов из списка типов, данного в качестве входного параметра настоящей функции.
Примечание - Если список типов пуст и существует связанный с объектомshape_data_quality_criterion объект instance_report_item_with_extreme_instances, то функция возвращает значение 'FALSE'.
EXPRESS-спецификация:
*)
FUNCTION validate_locations_of_extreme_value_type
(ei:shape_data_quality_criterion;
type_list:BAG O FSTRING):LOGICAL;
LOCAL
sdqir: SET OF
SHAPE_DATA_QUALITY_INSPECTION_RESULT:=[];
sdir: SET OF
SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT:=[];
sdei: SET OF
INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES:=[];
t_type_list:BAG OF STRING:=[];
END_LOCAL;
- - STEP-1
- - collect all instance_report_item_with_extreme_instances instances
- - associated with the given shape_data_quality_criterion
- - via shape_data_quality_inspection_result and
- - shape_data_quality_inspection_instance_report.
sdqir := QUERY(q <* bag_to_set(USEDIN(ei,
'PRODUCT_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'DATA_QUALITY_INSPECTION_RESULT.'+
'CRITERION_INSPECTED'))|
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'SHAPE_DATA_QUALITY_INSPECTION_RESULT'
IN TYPEOF(q));
IF(SIZEOF(sdqir) = 0)THEN
RETURN(TRUE);
END_IF;
REPEAT i:= 1 TO SIZEOF(sdqir);
sdir := sdir + QUERY(q <* bag_to_set(USEDIN(sdqir[i],
'PRODUCT_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'DATA_QUALITY_INSPECTION_REPORT'+
'INSPECTION_RESULT))|
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT'
IN TYPEOF(q));
END_REPEAT;
REPEAT i:= 1 TO SIZEOF(sdir);
sdei := sdei + QUERY(q <* sdir[i].inspected_instances|
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES'
IN TYPEOF(q));
END_REPEAT;
- - STEP-2
- - check if the types of locations_of_extreme_value attributes
- - of all extreme_instances attributes of the collected instances are
- - exactly coincident with the type names in the type list given as an
- - input argument of this function.
- - If there is no instance report, then return true.
IF(SIZEOF(sdei) = 0)THEN
RETURN(TRUE);
END_IF;
- - If the type_list is empty and
- - instance_report_item_with extreme_instances exists, then return false.
IF((SIZEOF(type list) = 0) AND (SIZEOF(sdei) <> 0)) THEN
RETURN(FALSE);
END_IF;
- - When report_items exist, then perform the following checking process.
REPEAT i:= 1 TO SIZEOF(sdei);
REPEAT j:= 1 TO SIZEOF(sdei[i].extreme_instances);
- - If the size of locations_of_extreme_value is not equal to
- - the size of type_list, then return false.
IF(SIZEOF(sdei[i].extreme_instances[j].
locations_of_extreme_value) <>
SIZEOF(type_list)) THEN
RETURN(FALSE);
END_IF;
t_type_list := type_list;
- - check all elements of the type_list
- - for each element of locations_of_extreme_value.
REPEAT k:= 1 TO SIZEOF(sdei[i].extreme_instances[j]
.locations_of_extreme_value);
REPEAT l:=1 TO SIZEOF(t_type_list);
IF(t_type_list[l] IN
TYPEOF(sdei[i].extreme_instances[j].
locations_of_extreme_value[k]))THEN
t_type_list := t_type_list - t_type_list[l];
ESCAPE;
END_IF;
END_REPEAT;
END_REPEAT;
IF(SIZEOF(t_type_list) > 0) THEN
RETURN(FALSE);
END_IF;
END_REPEAT;
END_REPEAT;
RETURN(TRUE);
END_FUNCTION;
(*
Определение параметров
ei - экземпляр объекта shape_data_quality_criterion, который должен быть проверен;
type_list - множество (BAG), задающее приемлемые типы данных из числа типов данных, используемых в определении типа данных location_of_extreme_value_select.
7.5.3 Функция validate_measured_data_type
Функция validate_measured_data_type проверяет допустимость типа данных атрибутаrepresentative_measured_value объекта shape_data_quality_inspection_criterion_report, атрибута measured_value объекта shape_data_quality_inspection_instance_report_item и атрибутов measured_value объектов extreme_instance, на которые ссылается связанный с объектом shape_data_quality_criterion объектinstance_report_item_with_extreme_instances.
Примечание - Если для критерия не существует каких-либо экземпляров объектов типаshape_data_quality_inspection_criterion_report иshape_data_quality_inspection_instance_report, то функция возвращает значение 'TRUE'.
EXPRESS-спецификация:
*)
FUNCTION validate_measured_data_type
(ei:shape_data_quality_criterion;
type_string: STRING):LOGICAL;
LOCAL
sdqir: SET OF
SHAPE_DATA_QUALITY_INSPECTION_RESULT:=[];
sdcr: SET OF
SHAPE_DATA_QUALITY_INSPECTION_CRITERION_REPORT:=[];
sdir: SET OF
SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT:=[];
sdii: SET OF
SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT_ITEM:=[];
sdei: BAG OF
INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES:=[];
END_LOCAL;
- - STEP-1
- - collect all shape_data_quality_inspection_criterion_report instances,
- - all shape_data_quality_inspection_instance_report_item instances, and
- - instance_report_item_with_extreme_instances instances
- - associated with the given shape_data_quality_criterion
- - via shape_data_quality_inspection_result.
sdqir :=QUERY(q <* bag_to_set(USEDIN(ei,
'PRODUCT_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'DATA_QUALITY_INSPECTION_RESULT.'+
'CRITERION_INSPECTED'))|
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'SHAPE_DATA_QUALITY_INSPECTION_RESULT'
IN TYPEOF(q));
IF(SIZEOF(sdqir) = 0)THEN
RETURN(TRUE);
END_IF;
REPEAT i:= 1 TO SIZEOF(sdqir);
sdcr := sdcr + QUERY(q <* bag_to_set(USEDIN(sdqir[i],
'PRODUCT_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'DATA_QUALITY_INSPECTION_REPORT.'+
'INSPECTION_RESULT))|
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'SHAPE_DATA_QUALITY_INSPECTION_CRITERION_REPORT'
IN TYPEOF(q));
END_REPEAT;
REPEAT i:= 1 TO SIZEOF(sdqir);
sdir :=sdir + QUERY(q <* bag_to_set(USEDIN(sdqir[i],
'PRODUCT_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'DATA_QUALITY_INSPECTION_REPORT.'+
'INSPECTION_RESULT'))|
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT'
IN TYPEOF(q));
END_REPEAT;
- - If there is no report, then return true.
IF((SIZEOF(sdcr) = 0) AND (SIZEOF(sdir) = 0)) THEN
RETURN(TRUE);
END_IF;
REPEAT i:= 1 TO SIZEOF(sdir);
sdii := sdii + QUERY(q <* sdir[i].inspected_instances|
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'SHAPE_DATA_QUALITY_INSPECTION_INSTANCE_REPORT ITEM'
IN TYPEOF(q));
END_REPEAT;
REPEAT i:= 1 TO SIZEOF(sdir);
sdei := sdei + QUERY(q <* sdir[i].inspected instances|
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'INSTANCE_REPORT_ITEM_WITH_EXTREME_INSTANCES'
IN TYPEOF(q));
END_REPEAT;
- - When reports exist, then perform the following checking process.
- - Check representative_measured_value of
- - shape_data_quality_inspection_criterion_report
REPEAT i:= 1 TO SIZEOF(sdcr);
IF(NOT(type_string IN
TYPEOF(sdcr[i].representative_measured_value))) THEN
RETURN(FALSE);
END_IF;
END_REPEAT;
- - Check measured_value of shape_data_quality_inspection_
- - instance_report_item
REPEAT i:= 1 TO SIZEOF(sdii);
IF(NOT(type_string IN
TYPEOF(sdii[i].measured_value))) THEN
RETURN(FALSE);
END_IF;
END_REPEAT;
- - Check measured_value of extreme_instances of
- - instance_report_item_with_extreme_instance
REPEAT i:= 1 TO SIZEOF(sdei);
REPEAT j:= 1 TO SIZEOF(sdei[i].extreme_instances);
IF(NOT(type_string IN
TYPEOF(sdei[i].extreme_instances[j].measured_value)))
THEN
RETURN(FALSE);
END_IF;
END_REPEAT;
END_REPEAT;
RETURN(TRUE);
END_FUNCTION;
(*
Определение параметров
ei - экземпляр объекта shape_data_quality_criterion, который должен быть проверен;
type_string - строка, задающая допустимое значение экземпляра типаshape_data_quality_criterion.
7.5.4 Функция validate_accuracy_types
Функция validate_accuracy_types проверяет допустимость типов точности, связанных с экземпляром объекта shape_data_quality_criterion. Функция выполняется следующим образом:
1) собрать типы атрибутов range объектов shape_measurement_accuracy, на которые ссылается объект shape_data_quality_criterion_and_accuracy_association, ссылающийся на объект shape_data_quality_criterion, заданный в качестве входного параметра настоящей функции;
2) проверить, точно ли соответствуют собранные типы именам типов из списка типов, данного в качестве входного параметра настоящей функции;
3) собрать типы атрибутов range объектов shape_measurement_accuracy, на которые ссылается объект shape_inspection_result_accuracy_association, ссылающийся на объектshape_data_quality_inspection_result, связанный с объектом shape_data_quality_criterion.
Примечание - Если список типов пуст и существует связанный с объектомshape_data_quality_criterion объект shape_measurement_accuracy, то функция возвращает значение 'FALSE'.
EXPRESS-спецификация:
*)
FUNCTION validate_accuracy_types
(ei:shape_data_quality_criterion;
type_list:BAG OF STRING):LOGICAL;
LOCAL
sdqca: BAG OF
SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION:=[];
sma: BAG OF SHAPE_MEASUREMENT_ACCURACY:=[];
sdqir: SET OF
SHAPE_DATA_QUALITY_INSPECTION_RESULT:=[];
scraa: BAG OF
SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATION:=[];
t_logic:BOOLEAN;
END_LOCAL;
- - STEP-1
- - collect types of range attribute of shape_measurement_accuracy
- - referred from shape_data_criterion_and_accuracy_association
- - that refers to given shape_data_quality_criterion.
sdqca :=USEDIN(ei,
'SHAPE_DATA_QUALITY_CRITERIA_SCHEMA.'+
'SHAPE_DATA_QUALITY_CRITERION_AND_ACCURACY_ASSOCIATION.'+
'SHAPE_DATA_QUALITY_CRITERION');
IF(SIZEOF(sdqca) <> 0) THEN
REPEAT i:= 1 TO SIZEOF(sdqca);
sma := sma + sdqca[i].required_specific_accuracy;
END_REPEAT;
- - STEP-2
- - check whether the collected types include all the type names
- - in the type list given as an input argument of this function
- - and they do not include any other type names.
IF(SIZEOF(type_list) < SIZEOF(sma)) THEN
RETURN(FALSE);
END_IF;
REPEAT i:= 1 TO SIZEOF(sma);
t_logic := FALSE;
REPEAT j:= 1 TO SIZEOF(type_list);
IF(type_list[j] IN value_limit_type(sma[i].range)) THEN
t_logic := TRUE;
ESCAPE;
END_IF;
END_REPEAT;
IF(NOT(t_logic)) THEN
RETURN(FALSE);
END_IF;
END_REPEAT;
END_IF;
- - STEP-3
- - collect types of range attribute of shape_measurement_accuracy
- - referred from shape_inspection_result_accuracy_association
- - that refers to shape_data_quality_inspection_result
- - for the given shape_data_quality_criterion.
sdqir := QUERY(q <* bag_to_set(USEDIN(ei,
'PRODUCT_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'DATA_QUALITY_INSPECTION_RESULT.'+
'CRITERION_INSPECTED'))|
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'SHAPE_DATA_QUALITY_INSPECTION_RESULT'
IN TYPEOF(q));
IF(SIZEOF(sdqir) = 0) THEN
RETURN(TRUE);
END_IF;
REPEAT i:= 1 TO SIZEOF(sdqir);
scraa := USEDIN(sdqir[i],
'SHAPE_DATA_QUALITY_INSPECTION_RESULT_SCHEMA.'+
'SHAPE_INSPECTION_RESULT_ACCURACY_ASSOCIATIONS
'SHAPE_DATA_QUALITY_RESULT');
IF(SIZEOF(scraa) <> 0) THEN
sma := [];
REPEAT j:= 1 TO SIZEOF(scraa);
sma := sma + scraa[j].applied_specific_accuracy;
END_REPEAT;
- - STEP-4
- - check whether the collected types include all the type
- - names in the type list given as an input argument of
- - this function and they do not include any other type names.
IF(SIZEOF(type list) < SIZEOF(sma)) THEN
RETURN(FALSE);
END_IF;
REPEAT j:= 1 TO SIZEOF(sma);
t_logic := FALSE;
REPEAT k:= 1 TO SIZEOF(type_list);
IF(type_list[k] IN value_limit_type(sma[j].range)) THEN
t_logic := TRUE;
ESCAPE;
END_IF;
END_REPEAT;
IF(NOT(t_logic)) THEN
RETURN(FALSE);
END_IF;
END REPEAT;
END_IF;
END_REPEAT;
RETURN(TRUE);
END_FUNCTION;
(*
Определение параметров
ei - экземпляр объекта shape_data_quality_criterion, который должен быть проверен;
type_list - множество (BAG), задающее приемлемые типы данных.
7.5.5 Функция value_limit_type
Функция value_limit_type возвращает имена типов атрибутов value_component, появляющихся у объектов, играющих роль атрибута item_element в объекте, тип которого входит в список типов shape_data_quality_value_limit_type_select, если он является объектом типа shape_data_quality_value_range. Функция также возвращает имена типов атрибутов value_component объекта value_representation_item, если он является объектом типа shape_data_quality_value_limit.
EXPRESS-спецификация:
*)
FUNCTION value_limit_type
(iv:shape_data_quality_value_limit_type_select):SET OF STRING;
LOCAL
retval : SET OF STRING := [];
END_LOCAL;
IF(('SHAPE_DATA_QUALITY_CRITERIA_SCHEMA.'
+'SHAPE_DATA_QUALITY_VALUE_RANGE') IN TYPEOF(iv)) THEN
retval := TYPEOF(iv\compound_representation_item.
item_element[1].value_component);
END_IF;
IF(('SHAPE_DATA_QUALITY_CRITERIA_SCHEMA.'
+'SHAPE_DATA_QUALITY_VALUE_LIMIT') IN TYPEOF(iv)) THEN
retval :=TYPEOF(iv\measure_representation_item.value_component);
END_IF;
RETURN(retval);
END_FUNCTION;
(*