Листинг EXPRESS
В настоящем приложении приведен листинг на языке EXPRESS, текст и аннотация не включены.
В настоящем приложении приведена интерпретируемая на компьютере форма.
(* | ||||||||||
JWG 8 N438 | 2005-01-16 | |||||||||
EXPRESS Declarations for ISO 15531-42 | ||||||||||
*) | ||||||||||
SCHEMA domain_property_schema; | ||||||||||
REFERENCE FROM measure_schema | -- ISO 10303-41 | |||||||||
(unit); | ||||||||||
REFERENCE FROM support_resource_schema | -- ISO 10303-41 | |||||||||
(label); | ||||||||||
TYPE type_of_identifier_of_dom_gen_struct = STRING; | ||||||||||
END_TYPE; | ||||||||||
TYPE type_of_domain = STRING; | ||||||||||
END_TYPE; | ||||||||||
SUBTYPE_CONSTRAINT covered_range FOR domain; | ||||||||||
ABSTRACT SUPERTYPE; | ||||||||||
ONEOF (time_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT compl compos_discrcont_bounded FOR | ||||||||||
domain_generic_structure; | ||||||||||
ABSTRACT SUPERTYPE; | ||||||||||
ONEOF (complete_or_composite_domain, discrete_or_continuous_domain, | ||||||||||
bounded_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT complete_composite FOR | ||||||||||
complete_or_composite_domain; | ||||||||||
ABSTRACT SUPERTYPE; | ||||||||||
ONEOF (complete_domain, composite_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT discrete_continuous FOR | ||||||||||
discrete_or_continuous_domain; | ||||||||||
ABSTRACT SUPERTYPE; | ||||||||||
ONEOF (continuous_domain, discrete_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT lower_upper FOR bounded_domain; | ||||||||||
ABSTRACT SUPERTYPE; | ||||||||||
ONEOF (lower_bounded_domain, upper_bounded_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT compl_continuous_discrete FOR complete_domain; | ||||||||||
ABSTRACT SUPERTYPE; | ||||||||||
ONEOF (complete_continuous_domain, complete_discrete_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT compos_continuous_discrete FOR composite_domain; | ||||||||||
ABSTRACT SUPERTYPE; | ||||||||||
ONEOF (composite_continuous_domain, composite_discrete_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT cont_complete_composite FOR continuous_domain; | ||||||||||
ABSTRACT SUPERTYPE; | ||||||||||
ONEOF (complete_continuous_domain, composite_continuous_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT disc_complete_composite FOR discrete_domain; | ||||||||||
ABSTRACT SUPERTYPE; | ||||||||||
ONEOF (complete_discrete_domain, composite_discrete_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT both_bd_compl_compos_disc_cont FOR | ||||||||||
both_sides_bounded_domain; | ||||||||||
ABSTRACT SUPERTYPE; | ||||||||||
ONEOF (both_sides_bounded_complete_continuous_domain, | ||||||||||
both_sides_bounded_complete_discrete_domain, | ||||||||||
both_sides_bounded_composite_continuous_domain, | ||||||||||
both_sides_bounded_composite_discrete_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT | low_bd_compl_compos_disc_cont | FOR | ||||||||
lower_bounded_domain; | ||||||||||
ABSTRACT SUPERTYPE; | ||||||||||
ONEOF (lower_bounded_complete_continuous_domain, | ||||||||||
lower_bounded_complete_discrete_domain, | ||||||||||
lower_bounded_composite_continuous_domain, | ||||||||||
lower_bounded_composite_discrete_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT up_bd_compl_compos_disc_cont | FOR | |||||||||
upper_bounded_domain; | ||||||||||
ABSTRACT SUPERTYPE; | ||||||||||
ONEOF (upper_bounded_complete_continuous_domain, | ||||||||||
upper_bounded_complete_discrete_domain, | ||||||||||
upper_bounded_composite_continuous_domain, | ||||||||||
upper_bounded_composite_discrete_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT | compl_disc_low_both_up | FOR | ||||||||
complete_discrete_domain; | ||||||||||
ONEOF (lower_bounded_complete_discrete_domain, | ||||||||||
both_sides_bounded_complete_discrete_domain, | ||||||||||
upper_bounded_complete_discrete_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT | compl_cont_low_both_up | FOR | ||||||||
complete_continuous_domain; | ||||||||||
ONEOF (lower_bounded_complete_continuous_domain, | ||||||||||
both_sides_bounded_complete_continuous_domain, | ||||||||||
upper_bounded_complete_continuous_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT | compos_cont_low_both_up | FOR | ||||||||
composite_continuous_domain; | ||||||||||
ONEOF (lower_bounded_composite_continuous_domain, | ||||||||||
both_sides_bounded_composite_continuous_domain, | ||||||||||
upper_bounded_composite_continuous_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
SUBTYPE_CONSTRAINT | compos_disc_low_both_up | FOR | ||||||||
composite_discrete_domain; | ||||||||||
ONEOF (lower_bounded_composite_discrete_domain, | ||||||||||
both_sides_bounded_composite_discrete_domain, | ||||||||||
upper_bounded_composite_discrete_domain); | ||||||||||
END_SUBTYPE_CONSTRAINT; | ||||||||||
ENTITY domain; | ||||||||||
id: type_of_domain; | ||||||||||
domain_structure:domain_generic_structure; | ||||||||||
UNIQUE | ||||||||||
UR1: id; | ||||||||||
END_ENTITY; | ||||||||||
ENTITY time_domain | ||||||||||
SUBTYPE OF (domain); | ||||||||||
name: label; | ||||||||||
decomposes_into: SET [0:?] OF time_domain; | ||||||||||
END_ENTITY; | ||||||||||
ENTITY domain_generic_structure; | ||||||||||
id: type_of_identifier_of_dom_gen_struct; | ||||||||||
UNIQUE | ||||||||||
UR1: id; | ||||||||||
END_ENTITY; | ||||||||||
ENTITY complete_or_composite_domain | ||||||||||
SUBTYPE OF (domain_generic_structure); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY discrete_or_continuous_domain | ||||||||||
SUBTYPE OF (domain_generic_structure); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY bounded_domain | ||||||||||
SUBTYPE OF (domain_generic_structure); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY complete_domain | ||||||||||
SUBTYPE OF (complete_or_composite_domain); | ||||||||||
reference_to_unit: unit; | ||||||||||
reference_to_origin: domain_point; | ||||||||||
END_ENTITY; | ||||||||||
ENTITY composite_domain | ||||||||||
SUBTYPE OF (complete_or_composite_domain); | ||||||||||
components: SET [0:?] OF domain; | ||||||||||
WHERE | -- components do not overlap | |||||||||
WR1 : (components (domain.id [1]) <> | ||||||||||
components (domain.id [2])); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY continuous_domain | ||||||||||
SUBTYPE OF (discrete_or_continuous_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY discrete_domain | ||||||||||
SUBTYPE OF (discrete_or_continuous_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY lower_bounded_domain | ||||||||||
SUBTYPE OF (bounded_domain); | ||||||||||
lower_bound: domain_point; | ||||||||||
END_ENTITY; | ||||||||||
ENTITY upper_bounded_domain | ||||||||||
SUBTYPE OF (bounded_domain); | ||||||||||
upper_bound: domain_point; | ||||||||||
END_ENTITY; | ||||||||||
ENTITY both_sides_bounded_domain; | ||||||||||
low_bound_assigned_to: lower_bounded_domain; | ||||||||||
up_bound_assigned_to: upper_bounded_domain; | ||||||||||
END_ENTITY; | ||||||||||
ENTITY complete_continuous_domain | ||||||||||
SUBTYPE OF (complete_domain, continuous_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY lower_bounded_complete_continuous_domain | ||||||||||
SUBTYPE OF (lower_bounded_domain, complete_continuous_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY upper_bounded_complete_continuous_domain | ||||||||||
SUBTYPE OF (upper_bounded_domain, complete_continuous_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY both_sides_bounded_complete_continuous_domain | ||||||||||
SUBTYPE OF (both_sides_bounded_domain, complete_continuous_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY composite_continuous_domain | ||||||||||
SUBTYPE OF (composite_domain, continuous_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY lower_bounded_composite_continuous_domain | ||||||||||
SUBTYPE OF (lower_bounded_domain, composite_continuous_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY upper_bounded_composite_continuous_domain | ||||||||||
SUBTYPE OF (upper_bounded_domain, composite_continuous_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY both_sides_bounded_composite_continuous_domain | ||||||||||
SUBTYPE OF (both_sides_bounded_domain, composite_continuous_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY complete_discrete_domain | ||||||||||
SUBTYPE OF (complete_domain, discrete_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY lower_bounded_complete_discrete_domain | ||||||||||
SUBTYPE OF (lower_bounded_domain, complete_discrete_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY upper_bounded_complete_discrete_domain | ||||||||||
SUBTYPE OF (upper_bounded_domain, complete_discrete_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY both_sides_bounded_complete_discrete_domain | ||||||||||
SUBTYPE OF (both_sides_bounded_domain, complete_discrete_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY composite_discrete_domain | ||||||||||
SUBTYPE OF (composite_domain, discrete_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY lower_bounded_composite_discrete_domain | ||||||||||
SUBTYPE OF (lower_bounded_domain, composite_discrete_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY upper_bounded_composite_discrete_domain | ||||||||||
SUBTYPE OF (upper_bounded_domain, composite_discrete_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY both_sides_bounded_composite_discrete_domain | ||||||||||
SUBTYPE OF (both_sides_bounded_domain, composite_discrete_domain); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY domain_point; | ||||||||||
unit_of_measure: unit; | ||||||||||
END_ENTITY; | ||||||||||
END_SCHEMA; | -- domain_property_schema | |||||||||
SCHEMA time_domain_schema; | ||||||||||
REFERENCE FROM domain_property_schema | -- ISO 15531-42 | |||||||||
(time_domain); | ||||||||||
REFERENCE FROM date_time_schema | -- ISO 10303-41 | |||||||||
(event_occurrence, time_interval); | ||||||||||
REFERENCE FROM measure_schema | -- ISO 10303-41 | |||||||||
(time_unit); | ||||||||||
REFERENCE FROM support_resource_schema | -- ISO 10303-41 | |||||||||
(label, text); | ||||||||||
TYPE type_of_description_of_transformation_rule = STRING; | ||||||||||
END_TYPE; | ||||||||||
TYPE type_of_value_of_point_or_interval_in_time = REAL; | ||||||||||
END_TYPE; | ||||||||||
ENTITY interval_of_time | ||||||||||
SUBTYPE OF (time_interval); -- generic type from 10303-41 | ||||||||||
unit_of_measure: time_unit; | ||||||||||
duration_of_period_in_time: | ||||||||||
type_of_value_of_point_or_interval_in_time; | ||||||||||
of_time_domain: time_domain; | ||||||||||
END_ENTITY; | ||||||||||
ENTITY point_in_time; | ||||||||||
unit_of_measure: time_unit; | ||||||||||
value_of_point_in_time: type_of_value_of_point_or_interval_in_time; | ||||||||||
of_time_domain: time_domain; | ||||||||||
END_ENTITY; | ||||||||||
ENTITY frequence_of_event; | ||||||||||
unit_of_measure : STRING; | ||||||||||
related_to: event_occurrence; | ||||||||||
based_upon : LIST OF point_in_time_event_assignment; | ||||||||||
DERIVE | ||||||||||
frequ_event: REAL:= frequency (SELF); | ||||||||||
END_ENTITY; | ||||||||||
ENTITY time_domain_relation; | ||||||||||
related_time_domain: time_domain; | ||||||||||
relating_time_domain: time_domain; | ||||||||||
origin_relation: rule_of_reference_to_origin_relation; | ||||||||||
reference_to_unit_relation: OPTIONAL rule_of_unit_relation; | ||||||||||
END_ENTITY; | ||||||||||
ENTITY rule_of_reference_to_origin_relation; | ||||||||||
contents_of_rule: type_of_description_of_transformation_rule; | ||||||||||
END_ENTITY; | ||||||||||
ENTITY rule_of_unit_relation; | ||||||||||
contents_of_rule: type_of_description_of_transformation_rule; | ||||||||||
END_ENTITY; | ||||||||||
ENTITY time_unit_relation; | ||||||||||
relating_time_unit: time_unit; | ||||||||||
related_time_unit: time_unit; | ||||||||||
reference_to_unit_relation: rule_of_unit_relation; | ||||||||||
END_ENTITY; | ||||||||||
ENTITY point_in_time_event_assignment; | ||||||||||
assigned_2_to: point_in_time; | ||||||||||
assigned_1_to: event_occurrence; -- event_occurrence generic entity | ||||||||||
from 10303-41 | ||||||||||
role: point_in_time_event_assignment_role; | ||||||||||
END_ENTITY; | ||||||||||
ENTITY point_in_time_event_assignment_role; | ||||||||||
name: label; | ||||||||||
description: text; | ||||||||||
END_ENTITY; | ||||||||||
FUNCTION frequency | ||||||||||
(event: event_occurrence; | ||||||||||
id: string; | ||||||||||
time_meas_unit:point_in_time; | ||||||||||
unit_of_measure: unit; | ||||||||||
limit_points: SET [0:2] OF assigned_2_to):REAL; | ||||||||||
LOCAL | ||||||||||
inf: REAL; | ||||||||||
sup: REAL; | ||||||||||
time_dist: REAL; | ||||||||||
a:SET OF assigned_1_to := event; | ||||||||||
b:SET OF assigned_2_to ; | ||||||||||
count: INTEGER; | ||||||||||
num_event: INTEGER; | ||||||||||
END_LOCAL; | ||||||||||
inf := LOBOUND (limit_points); | ||||||||||
sup := HIBOUND (limit_points); | ||||||||||
time_dist := sup - inf; | ||||||||||
count := 0; | ||||||||||
REPEAT I := 1 TO HIINDEX(a); | ||||||||||
IF (b>inf) AND (b<sup) | ||||||||||
THEN count := count + 1; | ||||||||||
END_IF; | ||||||||||
END_REPEAT; | ||||||||||
num_event := count; | ||||||||||
frequ_event := num_event / time_dist; | ||||||||||
RETURN (frequ_event); | ||||||||||
END_FUNCTION; | ||||||||||
END_SCHEMA; -- time_domain_schema |