"Fossies" - the Fresh Open Source Software Archive

Member "brlcad-7.32.4/src/other/stepcode/data/ap219/10303-219-AIM-long.exp" (29 Jul 2021, 505813 Bytes) of package /linux/misc/brlcad-7.32.4.tar.bz2:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Express source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 (* AIM EXPRESS long form for ISO/CD 10303-219
    2    2004-10-15
    3    Len Slovensky
    4    ISO TC184/SC4/WG3 N1517
    5 *)
    6 
    7 SCHEMA dimensional_inspection_schema;
    8 
    9   CONSTANT
   10   dummy_gri : geometric_representation_item := representation_item('') || 
   11        geometric_representation_item();
   12   dummy_tri : topological_representation_item := representation_item('') 
   13        || topological_representation_item();
   14   END_CONSTANT;
   15 
   16   TYPE ahead_or_behind = ENUMERATION OF
   17     (exact,
   18      ahead,
   19      behind);
   20   END_TYPE; -- ahead_or_behind
   21 
   22   TYPE amount_of_substance_measure = REAL;
   23   END_TYPE; -- amount_of_substance_measure
   24 
   25   TYPE angle_relator = ENUMERATION OF
   26     (equal,
   27      small,
   28      large);
   29   END_TYPE; -- angle_relator
   30 
   31   TYPE area_measure = REAL;
   32   END_TYPE; -- area_measure
   33 
   34   TYPE attribute_type = SELECT
   35     (label,
   36      text);
   37   END_TYPE; -- attribute_type
   38 
   39   TYPE axis2_placement = SELECT
   40     (axis2_placement_2d,
   41      axis2_placement_3d);
   42   END_TYPE; -- axis2_placement
   43 
   44   TYPE b_spline_curve_form = ENUMERATION OF
   45     (elliptic_arc,
   46      polyline_form,
   47      parabolic_arc,
   48      circular_arc,
   49      unspecified,
   50      hyperbolic_arc);
   51   END_TYPE; -- b_spline_curve_form
   52 
   53   TYPE b_spline_surface_form = ENUMERATION OF
   54     (surf_of_linear_extrusion,
   55      plane_surf,
   56      generalised_cone,
   57      toroidal_surf,
   58      conical_surf,
   59      spherical_surf,
   60      unspecified,
   61      ruled_surf,
   62      surf_of_revolution,
   63      cylindrical_surf,
   64      quadric_surf);
   65   END_TYPE; -- b_spline_surface_form
   66 
   67   TYPE boolean_operand = SELECT
   68     (solid_model);
   69   END_TYPE; -- boolean_operand
   70 
   71   TYPE celsius_temperature_measure = REAL;
   72   END_TYPE; -- celsius_temperature_measure
   73 
   74   TYPE characterized_action_definition = SELECT
   75     (action,
   76      action_method);
   77   END_TYPE; -- characterized_action_definition
   78 
   79   TYPE characterized_definition = SELECT
   80     (characterized_object,
   81      characterized_product_definition,
   82      shape_definition);
   83   END_TYPE; -- characterized_definition
   84 
   85   TYPE characterized_product_definition = SELECT
   86     (product_definition);
   87   END_TYPE; -- characterized_product_definition
   88 
   89   TYPE characterized_resource_definition = SELECT
   90     (action_resource,
   91      action_resource_requirement);
   92   END_TYPE; -- characterized_resource_definition
   93 
   94   TYPE compound_item_definition = SELECT
   95     (set_representation_item);
   96   END_TYPE; -- compound_item_definition
   97 
   98   TYPE count_measure = NUMBER;
   99   END_TYPE; -- count_measure
  100 
  101   TYPE curve_on_surface = SELECT
  102     (pcurve,
  103      surface_curve,
  104      composite_curve_on_surface);
  105   END_TYPE; -- curve_on_surface
  106 
  107   TYPE date_item = SELECT
  108     (dm_program_run);
  109   END_TYPE; -- date_item
  110 
  111   TYPE date_time_or_event_occurrence = SELECT
  112     (date_time_select);
  113   END_TYPE; -- date_time_or_event_occurrence
  114 
  115   TYPE date_time_select = SELECT
  116     (date,
  117      local_time,
  118      date_and_time);
  119   END_TYPE; -- date_time_select
  120 
  121   TYPE day_in_month_number = INTEGER;
  122   WHERE
  123 wr1: (1 <= SELF) AND (SELF <= 31);
  124   END_TYPE; -- day_in_month_number
  125 
  126   TYPE derived_property_select = SELECT
  127     (property_definition,
  128      action_property,
  129      resource_property);
  130   END_TYPE; -- derived_property_select
  131 
  132   TYPE description_attribute_select = SELECT
  133     (application_context,
  134      date_role,
  135      external_source,
  136      organization_role,
  137      person_and_organization_role,
  138      person_and_organization,
  139      property_definition_representation,
  140      representation);
  141   END_TYPE; -- description_attribute_select
  142 
  143   TYPE dimension_count = INTEGER;
  144   WHERE
  145 wr1: SELF > 0;
  146   END_TYPE; -- dimension_count
  147 
  148   TYPE dimensional_characteristic = SELECT
  149     (dimensional_location,
  150      dimensional_size);
  151   END_TYPE; -- dimensional_characteristic
  152 
  153   TYPE document_reference_item = SELECT
  154     (product_definition_formation,
  155      externally_defined_feature_definition,
  156      externally_defined_dimension_definition);
  157   END_TYPE; -- document_reference_item
  158 
  159   TYPE electric_current_measure = REAL;
  160   END_TYPE; -- electric_current_measure
  161 
  162   TYPE founded_item_select = SELECT
  163     (founded_item,
  164      representation_item);
  165   END_TYPE; -- founded_item_select
  166 
  167   TYPE geometric_set_select = SELECT
  168     (point,
  169      curve,
  170      surface);
  171   END_TYPE; -- geometric_set_select
  172 
  173   TYPE hour_in_day = INTEGER;
  174   WHERE
  175 wr1: (0 <= SELF) AND (SELF < 24);
  176   END_TYPE; -- hour_in_day
  177 
  178   TYPE id_attribute_select = SELECT
  179     (action,
  180      address,
  181      property_definition,
  182      shape_aspect,
  183      shape_aspect_relationship,
  184      application_context,
  185      organizational_project,
  186      representation);
  187   END_TYPE; -- id_attribute_select
  188 
  189   TYPE identifier = STRING;
  190   END_TYPE; -- identifier
  191 
  192   TYPE knot_type = ENUMERATION OF
  193     (uniform_knots,
  194      quasi_uniform_knots,
  195      piecewise_bezier_knots,
  196      unspecified);
  197   END_TYPE; -- knot_type
  198 
  199   TYPE label = STRING;
  200   END_TYPE; -- label
  201 
  202   TYPE length_measure = REAL;
  203   END_TYPE; -- length_measure
  204 
  205   TYPE limit_condition = ENUMERATION OF
  206     (regardless_of_feature_size,
  207      maximum_material_condition,
  208      least_material_condition);
  209   END_TYPE; -- limit_condition
  210 
  211   TYPE list_of_reversible_topology_item = LIST [0:?] OF
  212     reversible_topology_item;
  213   END_TYPE; -- list_of_reversible_topology_item
  214 
  215   TYPE luminous_intensity_measure = REAL;
  216   END_TYPE; -- luminous_intensity_measure
  217 
  218   TYPE mass_measure = REAL;
  219   END_TYPE; -- mass_measure
  220 
  221   TYPE measure_value = SELECT
  222     (length_measure,
  223      mass_measure,
  224      time_measure,
  225      electric_current_measure,
  226      thermodynamic_temperature_measure,
  227      celsius_temperature_measure,
  228      amount_of_substance_measure,
  229      luminous_intensity_measure,
  230      plane_angle_measure,
  231      solid_angle_measure,
  232      area_measure,
  233      volume_measure,
  234      ratio_measure,
  235      parameter_value,
  236      positive_length_measure,
  237      positive_plane_angle_measure,
  238      count_measure);
  239   END_TYPE; -- measure_value
  240 
  241   TYPE minute_in_hour = INTEGER;
  242   WHERE
  243 wr1: (0 <= SELF) AND (SELF <= 59);
  244   END_TYPE; -- minute_in_hour
  245 
  246   TYPE month_in_year_number = INTEGER;
  247   WHERE
  248 wr1: (1 <= SELF) AND (SELF <= 12);
  249   END_TYPE; -- month_in_year_number
  250 
  251   TYPE name_attribute_select = SELECT
  252     (address,
  253      derived_unit,
  254      person_and_organization,
  255      product_definition,
  256      property_definition_representation);
  257   END_TYPE; -- name_attribute_select
  258 
  259   TYPE organization_item = SELECT
  260     (dm_program_identification,
  261      dm_program_run);
  262   END_TYPE; -- organization_item
  263 
  264   TYPE parameter_value = REAL;
  265   END_TYPE; -- parameter_value
  266 
  267   TYPE pcurve_or_surface = SELECT
  268     (pcurve,
  269      surface);
  270   END_TYPE; -- pcurve_or_surface
  271 
  272   TYPE person_and_organization_item = SELECT
  273     (dm_program_identification,
  274      dm_program_run);
  275   END_TYPE; -- person_and_organization_item
  276 
  277   TYPE person_organization_select = SELECT
  278     (person,
  279      organization,
  280      person_and_organization);
  281   END_TYPE; -- person_organization_select
  282 
  283   TYPE plane_angle_measure = REAL;
  284   END_TYPE; -- plane_angle_measure
  285 
  286   TYPE positive_length_measure = length_measure;
  287   WHERE
  288 wr1: SELF > 0;
  289   END_TYPE; -- positive_length_measure
  290 
  291   TYPE positive_plane_angle_measure = plane_angle_measure;
  292   WHERE
  293 wr1: SELF > 0;
  294   END_TYPE; -- positive_plane_angle_measure
  295 
  296   TYPE preferred_surface_curve_representation = ENUMERATION OF
  297     (pcurve_s2,
  298      pcurve_s1,
  299      curve_3d);
  300   END_TYPE; -- preferred_surface_curve_representation
  301 
  302   TYPE product_or_formation_or_definition = SELECT
  303     (product,
  304      product_definition_formation,
  305      product_definition);
  306   END_TYPE; -- product_or_formation_or_definition
  307 
  308   TYPE property_or_shape_select = SELECT
  309     (property_definition,
  310      shape_definition);
  311   END_TYPE; -- property_or_shape_select
  312 
  313   TYPE ratio_measure = REAL;
  314   END_TYPE; -- ratio_measure
  315 
  316   TYPE represented_definition = SELECT
  317     (property_definition,
  318      property_definition_relationship,
  319      shape_aspect,
  320      shape_aspect_relationship);
  321   END_TYPE; -- represented_definition
  322 
  323   TYPE reversible_topology = SELECT
  324     (reversible_topology_item,
  325      list_of_reversible_topology_item,
  326      set_of_reversible_topology_item);
  327   END_TYPE; -- reversible_topology
  328 
  329   TYPE reversible_topology_item = SELECT
  330     (edge,
  331      path,
  332      face,
  333      face_bound,
  334      closed_shell,
  335      open_shell);
  336   END_TYPE; -- reversible_topology_item
  337 
  338   TYPE role_select = SELECT
  339     (document_reference,
  340      security_classification_assignment);
  341   END_TYPE; -- role_select
  342 
  343   TYPE second_in_minute = REAL;
  344   WHERE
  345 wr1: (0 <= SELF) AND (SELF <= 60);
  346   END_TYPE; -- second_in_minute
  347 
  348   TYPE security_classification_item = SELECT
  349     (product_definition_formation);
  350   END_TYPE; -- security_classification_item
  351 
  352   TYPE set_of_reversible_topology_item = SET [0:?] OF
  353     reversible_topology_item;
  354   END_TYPE; -- set_of_reversible_topology_item
  355 
  356   TYPE set_representation_item = SET [1:?] OF representation_item;
  357   END_TYPE; -- set_representation_item
  358 
  359   TYPE shape_definition = SELECT
  360     (product_definition_shape,
  361      shape_aspect,
  362      shape_aspect_relationship);
  363   END_TYPE; -- shape_definition
  364 
  365   TYPE shell = SELECT
  366     (open_shell,
  367      closed_shell);
  368   END_TYPE; -- shell
  369 
  370   TYPE si_prefix = ENUMERATION OF
  371     (exa,
  372      pico,
  373      mega,
  374      femto,
  375      atto,
  376      centi,
  377      nano,
  378      hecto,
  379      micro,
  380      tera,
  381      giga,
  382      milli,
  383      peta,
  384      deci,
  385      kilo,
  386      deca);
  387   END_TYPE; -- si_prefix
  388 
  389   TYPE si_unit_name = ENUMERATION OF
  390     (hertz,
  391      degree_celsius,
  392      siemens,
  393      sievert,
  394      lux,
  395      watt,
  396      ohm,
  397      second,
  398      becquerel,
  399      pascal,
  400      henry,
  401      tesla,
  402      volt,
  403      joule,
  404      kelvin,
  405      ampere,
  406      gram,
  407      steradian,
  408      mole,
  409      lumen,
  410      gray,
  411      candela,
  412      farad,
  413      radian,
  414      newton,
  415      metre,
  416      weber,
  417      coulomb);
  418   END_TYPE; -- si_unit_name
  419 
  420   TYPE solid_angle_measure = REAL;
  421   END_TYPE; -- solid_angle_measure
  422 
  423   TYPE source_item = SELECT
  424     (identifier);
  425   END_TYPE; -- source_item
  426 
  427   TYPE supported_item = SELECT
  428     (action,
  429      action_method);
  430   END_TYPE; -- supported_item
  431 
  432   TYPE text = STRING;
  433   END_TYPE; -- text
  434 
  435   TYPE thermodynamic_temperature_measure = REAL;
  436   END_TYPE; -- thermodynamic_temperature_measure
  437 
  438   TYPE time_measure = REAL;
  439   END_TYPE; -- time_measure
  440 
  441   TYPE tolerance_method_definition = SELECT
  442     (tolerance_value,
  443      limits_and_fits);
  444   END_TYPE; -- tolerance_method_definition
  445 
  446   TYPE tolerance_select = SELECT
  447     (geometric_tolerance,
  448      plus_minus_tolerance);
  449   END_TYPE; -- tolerance_select
  450 
  451   TYPE transformation = SELECT
  452     (functionally_defined_transformation);
  453   END_TYPE; -- transformation
  454 
  455   TYPE transition_code = ENUMERATION OF
  456     (discontinuous,
  457      cont_same_gradient_same_curvature,
  458      cont_same_gradient,
  459      continuous);
  460   END_TYPE; -- transition_code
  461 
  462   TYPE trimming_select = SELECT
  463     (cartesian_point,
  464      parameter_value);
  465   END_TYPE; -- trimming_select
  466 
  467   TYPE unit = SELECT
  468     (named_unit,
  469      derived_unit);
  470   END_TYPE; -- unit
  471 
  472   TYPE value_qualifier = SELECT
  473     (precision_qualifier,
  474      type_qualifier,
  475      uncertainty_qualifier);
  476   END_TYPE; -- value_qualifier
  477 
  478   TYPE vector_or_direction = SELECT
  479     (vector,
  480      direction);
  481   END_TYPE; -- vector_or_direction
  482 
  483   TYPE volume_measure = REAL;
  484   END_TYPE; -- volume_measure
  485 
  486   TYPE year_number = INTEGER;
  487   END_TYPE; -- year_number
  488 
  489   ENTITY action;
  490       name: label;
  491       description   : OPTIONAL text;
  492       chosen_method : action_method;
  493     DERIVE
  494       id : identifier := get_id_value(SELF);
  495     WHERE
  496   wr1: SIZEOF(USEDIN(SELF,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  497      'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
  498   END_ENTITY; -- action
  499 
  500   ENTITY action_method;
  501       name        : label;
  502       description : OPTIONAL text;
  503       consequence : text;
  504       purpose     : text;
  505   END_ENTITY; -- action_method
  506 
  507   ENTITY action_property;
  508       name        : label;
  509       description : text;
  510       definition  : characterized_action_definition;
  511   END_ENTITY; -- action_property
  512 
  513   ENTITY action_property_representation;
  514       name : label;
  515       description    : text;
  516       property       : action_property;
  517       representation : representation;
  518   END_ENTITY; -- action_property_representation
  519 
  520   ENTITY action_resource;
  521       name        : label;
  522       description : OPTIONAL text;
  523       usage       : SET [1:?] OF supported_item;
  524       kind        : action_resource_type;
  525   END_ENTITY; -- action_resource
  526 
  527   ENTITY action_resource_requirement;
  528       name        : label;
  529       description : text;
  530       kind        : resource_requirement_type;
  531       OPERATIONS  : SET [1:?] OF characterized_action_definition;
  532   END_ENTITY; -- action_resource_requirement
  533 
  534   ENTITY action_resource_type;
  535       name : label;
  536   END_ENTITY; -- action_resource_type
  537 
  538   ENTITY address;
  539       internal_location       : OPTIONAL label;
  540       street_number : OPTIONAL label;
  541       street        : OPTIONAL label;
  542       postal_box    : OPTIONAL label;
  543       town: OPTIONAL label;
  544       region        : OPTIONAL label;
  545       postal_code   : OPTIONAL label;
  546       country       : OPTIONAL label;
  547       facsimile_number        : OPTIONAL label;
  548       telephone_number        : OPTIONAL label;
  549       electronic_mail_address : OPTIONAL label;
  550       telex_number  : OPTIONAL label;
  551     DERIVE
  552       name : label := get_name_value(SELF);
  553       url  : identifier := get_id_value(SELF);
  554     WHERE
  555   wr1: ((((((((((EXISTS(internal_location) OR EXISTS(street_number)) 
  556          OR EXISTS(street)) OR EXISTS(postal_box)) OR EXISTS(town)) 
  557          OR EXISTS(region)) OR EXISTS(postal_code)) OR EXISTS(country)) 
  558          OR EXISTS(facsimile_number)) OR EXISTS(telephone_number)) OR
  559          EXISTS(electronic_mail_address)) OR EXISTS(telex_number);
  560   END_ENTITY; -- address
  561 
  562   ENTITY advanced_brep_shape_representation
  563     SUBTYPE OF (shape_representation);
  564     WHERE
  565   wr1: SIZEOF(QUERY ( it <* SELF.items | (NOT (SIZEOF([
  566        'DIMENSIONAL_INSPECTION_SCHEMA.MANIFOLD_SOLID_BREP',
  567        'DIMENSIONAL_INSPECTION_SCHEMA.FACETED_BREP',
  568        'DIMENSIONAL_INSPECTION_SCHEMA.MAPPED_ITEM',
  569        'DIMENSIONAL_INSPECTION_SCHEMA.AXIS2_PLACEMENT_3D'] * 
  570        TYPEOF(it)) = 1)) )) = 0;
  571   wr2: SIZEOF(QUERY ( it <* SELF.items | (SIZEOF([
  572        'DIMENSIONAL_INSPECTION_SCHEMA.MANIFOLD_SOLID_BREP',
  573        'DIMENSIONAL_INSPECTION_SCHEMA.MAPPED_ITEM'] * TYPEOF(it)) =
  574         1) )) > 0;
  575   wr3: SIZEOF(QUERY ( msb <* QUERY ( it <* SELF.items | (
  576        'DIMENSIONAL_INSPECTION_SCHEMA.MANIFOLD_SOLID_BREP' IN 
  577        TYPEOF(it)) ) | (NOT (SIZEOF(QUERY ( csh <* msb_shells(msb)
  578        | (NOT (SIZEOF(QUERY ( fcs <* csh\connected_face_set.
  579        cfs_faces | (NOT (
  580        'DIMENSIONAL_INSPECTION_SCHEMA.ADVANCED_FACE' 
  581         IN TYPEOF(fcs))) )) = 0)) )) = 0)) )) = 0;
  582   wr4: SIZEOF(QUERY ( msb <* QUERY ( it <* items | (
  583        'DIMENSIONAL_INSPECTION_SCHEMA.MANIFOLD_SOLID_BREP' IN 
  584        TYPEOF(it)) ) | (
  585        'DIMENSIONAL_INSPECTION_SCHEMA.ORIENTED_CLOSED_SHELL' IN 
  586        TYPEOF(msb\manifold_solid_brep.outer)) )) = 0;
  587   wr5: SIZEOF(QUERY ( brv <* QUERY ( it <* items | (
  588        'DIMENSIONAL_INSPECTION_SCHEMA.BREP_WITH_VOIDS' IN TYPEOF(it)) )
  589        | (NOT (SIZEOF(QUERY ( csh <* brv\brep_with_voids.voids | 
  590        csh\oriented_closed_shell.orientation )) = 0)) )) = 0;
  591   wr6: SIZEOF(QUERY ( mi <* QUERY ( it <* items | (
  592        'DIMENSIONAL_INSPECTION_SCHEMA.MAPPED_ITEM' IN TYPEOF(it)) )| (NOT 
  593        ('DIMENSIONAL_INSPECTION_SCHEMA.ADVANCED_BREP_SHAPE_REPRESENTATION' 
  594        IN TYPEOF(mi\mapped_item.mapping_source.
  595        mapped_representation))) )) = 0;
  596   END_ENTITY; -- advanced_brep_shape_representation
  597 
  598   ENTITY advanced_face
  599     SUBTYPE OF (face_surface);
  600     WHERE
  601   wr1 : SIZEOF(['DIMENSIONAL_INSPECTION_SCHEMA.ELEMENTARY_SURFACE',
  602       'DIMENSIONAL_INSPECTION_SCHEMA.B_SPLINE_SURFACE',
  603       'DIMENSIONAL_INSPECTION_SCHEMA.SWEPT_SURFACE'] * TYPEOF(
  604       face_geometry)) = 1;
  605   wr2 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | (
  606       'DIMENSIONAL_INSPECTION_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.
  607       bound)) ) | (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path
  608       .edge_list | (NOT (
  609       'DIMENSIONAL_INSPECTION_SCHEMA.EDGE_CURVE' IN TYPEOF(oe\
  610       oriented_edge.edge_element))) )) = 0)) )) = 0;
  611   wr3 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | (
  612       'DIMENSIONAL_INSPECTION_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.
  613       bound)) ) | (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path
  614       .edge_list | (NOT (SIZEOF([
  615       'DIMENSIONAL_INSPECTION_SCHEMA.LINE',
  616       'DIMENSIONAL_INSPECTION_SCHEMA.CONIC',
  617       'DIMENSIONAL_INSPECTION_SCHEMA.POLYLINE',
  618       'DIMENSIONAL_INSPECTION_SCHEMA.SURFACE_CURVE',
  619       'DIMENSIONAL_INSPECTION_SCHEMA.B_SPLINE_CURVE'] * TYPEOF(oe
  620       .edge_element\edge_curve.edge_geometry)) = 1)) )) = 0)) )) 
  621       = 0;
  622   wr4 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | (
  623       'DIMENSIONAL_INSPECTION_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.
  624       bound)) ) | (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path
  625       .edge_list | (NOT (((
  626       'DIMENSIONAL_INSPECTION_SCHEMA.VERTEX_POINT' IN TYPEOF(oe\
  627       edge.edge_start)) AND (
  628       'DIMENSIONAL_INSPECTION_SCHEMA.CARTESIAN_POINT' IN TYPEOF(
  629       oe\edge.edge_start\vertex_point.vertex_geometry))) AND ((
  630       'DIMENSIONAL_INSPECTION_SCHEMA.VERTEX_POINT' IN TYPEOF(oe\
  631       edge.edge_end)) AND (
  632       'DIMENSIONAL_INSPECTION_SCHEMA.CARTESIAN_POINT' IN TYPEOF(
  633       oe\edge.edge_end\vertex_point.vertex_geometry))))) )) = 0)) )) 
  634       = 0;
  635   wr5 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | (
  636       'DIMENSIONAL_INSPECTION_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.
  637       bound)) ) | ('DIMENSIONAL_INSPECTION_SCHEMA.ORIENTED_PATH' 
  638       IN TYPEOF(elp_fbnds.bound)) )) = 0;
  639   wr6 : (NOT ('DIMENSIONAL_INSPECTION_SCHEMA.SWEPT_SURFACE' IN TYPEOF(
  640       face_geometry))) OR (SIZEOF([
  641       'DIMENSIONAL_INSPECTION_SCHEMA.LINE',
  642       'DIMENSIONAL_INSPECTION_SCHEMA.CONIC',
  643       'DIMENSIONAL_INSPECTION_SCHEMA.POLYLINE',
  644       'DIMENSIONAL_INSPECTION_SCHEMA.B_SPLINE_CURVE'] * TYPEOF(
  645       face_geometry\swept_surface.swept_curve)) = 1);
  646   wr7 : SIZEOF(QUERY ( vlp_fbnds <* QUERY ( bnds <* bounds | (
  647       'DIMENSIONAL_INSPECTION_SCHEMA.VERTEX_LOOP' IN TYPEOF(bnds.
  648       bound)) ) | (NOT ((
  649       'DIMENSIONAL_INSPECTION_SCHEMA.VERTEX_POINT' IN TYPEOF(
  650       vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex)) AND (
  651       'DIMENSIONAL_INSPECTION_SCHEMA.CARTESIAN_POINT' IN TYPEOF(
  652       vlp_fbnds\face_bound.bound\vertex_loop.loop_vertex\
  653       vertex_point.vertex_geometry)))) )) = 0;
  654   wr8 : SIZEOF(QUERY ( bnd <* bounds | (NOT (SIZEOF([
  655       'DIMENSIONAL_INSPECTION_SCHEMA.EDGE_LOOP',
  656       'DIMENSIONAL_INSPECTION_SCHEMA.VERTEX_LOOP'] * TYPEOF(bnd.
  657       bound)) = 1)) )) = 0;
  658   wr9 : SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* bounds | (
  659       'DIMENSIONAL_INSPECTION_SCHEMA.EDGE_LOOP' IN TYPEOF(bnds.
  660       bound)) ) | (NOT (SIZEOF(QUERY ( oe <* elp_fbnds.bound\path
  661       .edge_list | ((
  662       'DIMENSIONAL_INSPECTION_SCHEMA.SURFACE_CURVE' IN TYPEOF(oe\
  663       oriented_edge.edge_element\edge_curve.edge_geometry)) AND (
  664       NOT (SIZEOF(QUERY ( sc_ag <* oe.edge_element\edge_curve.
  665       edge_geometry\surface_curve.associated_geometry | (NOT (
  666       'DIMENSIONAL_INSPECTION_SCHEMA.PCURVE' IN TYPEOF(sc_ag))) )) 
  667       = 0))) )) = 0)) )) = 0;
  668   wr10: ((NOT ('DIMENSIONAL_INSPECTION_SCHEMA.SWEPT_SURFACE' IN 
  669       TYPEOF(face_geometry))) OR ((NOT (
  670       'DIMENSIONAL_INSPECTION_SCHEMA.POLYLINE' IN TYPEOF(
  671       face_geometry\swept_surface.swept_curve))) OR (SIZEOF(
  672       face_geometry\swept_surface.swept_curve\polyline.points) >=
  673        3))) AND (SIZEOF(QUERY ( elp_fbnds <* QUERY ( bnds <* 
  674       bounds | ('DIMENSIONAL_INSPECTION_SCHEMA.EDGE_LOOP' IN 
  675       TYPEOF(bnds.bound)) ) | (NOT (SIZEOF(QUERY ( oe <* 
  676       elp_fbnds.bound\path.edge_list | ((
  677       'DIMENSIONAL_INSPECTION_SCHEMA.POLYLINE' IN TYPEOF(oe\
  678       oriented_edge.edge_element\edge_curve.edge_geometry)) AND (
  679       NOT (SIZEOF(oe\oriented_edge.edge_element\edge_curve.
  680       edge_geometry\polyline.points) >= 3))) )) = 0)) )) = 0);
  681   END_ENTITY; -- advanced_face
  682 
  683   ENTITY angular_location
  684     SUBTYPE OF (dimensional_location);
  685       angle_selection : angle_relator;
  686   END_ENTITY; -- angular_location
  687 
  688   ENTITY angular_size
  689     SUBTYPE OF (dimensional_size);
  690       angle_selection : angle_relator;
  691   END_ENTITY; -- angular_size
  692 
  693   ENTITY angularity_tolerance
  694     SUBTYPE OF (geometric_tolerance_with_datum_reference);
  695     WHERE
  696   wr1: SIZEOF(SELF\geometric_tolerance_with_datum_reference.
  697      datum_system) < 3;
  698   END_ENTITY; -- angularity_tolerance
  699 
  700   ENTITY apex
  701     SUBTYPE OF (derived_shape_aspect);
  702   END_ENTITY; -- apex
  703 
  704   ENTITY application_context;
  705       application : label;
  706     DERIVE
  707       description : text := get_description_value(SELF);
  708       id: identifier := get_id_value(SELF);
  709     INVERSE
  710       context_elements : SET [1:?] OF application_context_element FOR 
  711         frame_of_reference;
  712     WHERE
  713   wr1: SIZEOF(USEDIN(SELF,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  714      'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  715   wr2: SIZEOF(USEDIN(SELF,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  716      'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
  717   END_ENTITY; -- application_context
  718 
  719   ENTITY application_context_element
  720     SUPERTYPE OF (ONEOF (product_context,product_definition_context));
  721       name     : label;
  722       frame_of_reference : application_context;
  723   END_ENTITY; -- application_context_element
  724 
  725   ENTITY application_protocol_definition;
  726       status      : label;
  727       application_interpreted_model_schema_name : label;
  728       application_protocol_year       : year_number;
  729       application : application_context;
  730   END_ENTITY; -- application_protocol_definition
  731 
  732   ENTITY applied_area
  733     SUBTYPE OF (shape_aspect);
  734     WHERE
  735   wr1: 'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN 
  736      TYPEOF(SELF.of_shape);
  737   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
  738     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
  739       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
  740      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  741      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
  742      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  743      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
  744      used_representation)) )) = 1)) )) = 0;
  745   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
  746     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
  747       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
  748      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  749      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
  750      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  751      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
  752      used_representation)) ) | (NOT ((2 <= SIZEOF(impl_rep.
  753      used_representation.items)) AND (SIZEOF(impl_rep.
  754      used_representation.items) <= 3))) )) = 0)) )) = 0;
  755   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
  756     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
  757       | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
  758      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  759      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (((
  760      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  761      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
  762      used_representation)) AND (SIZEOF(QUERY ( srwp_i <* pdr.
  763      used_representation.items | (NOT (srwp_i.name IN [
  764      'orientation','effective length','maximum length'])) )) > 0)) )) 
  765      = 0) )) = 0;
  766   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
  767     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
  768       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
  769      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  770      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
  771      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  772      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
  773      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
  774      impl_rep.used_representation.items | ((SIZEOF([
  775      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
  776      'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
  777      TYPEOF(it)) = 2) AND (it.name = 'effective length')) )) = 1)) )) 
  778      = 0)) )) <= 1;
  779   wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF,
  780     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
  781       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
  782      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  783      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
  784      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  785      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
  786      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
  787      impl_rep.used_representation.items | ((SIZEOF([
  788      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
  789      'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
  790      TYPEOF(it)) = 2) AND (it.name = 'maximum length')) )) <= 1)) )) 
  791      = 0)) )) = 0;
  792   wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF,
  793     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
  794       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
  795      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  796      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
  797      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  798      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
  799      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
  800      impl_rep.used_representation.items | ((
  801      'DIMENSIONAL_INSPECTION_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND
  802       (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0;
  803   END_ENTITY; -- applied_area
  804 
  805   ENTITY applied_date_assignment
  806     SUBTYPE OF (date_assignment);
  807       items : SET [1:?] OF date_item;
  808   END_ENTITY; -- applied_date_assignment
  809 
  810   ENTITY applied_document_reference
  811     SUBTYPE OF (document_reference);
  812       items : SET [1:?] OF document_reference_item;
  813   END_ENTITY; -- applied_document_reference
  814 
  815   ENTITY applied_organization_assignment
  816     SUBTYPE OF (organization_assignment);
  817       items : SET [1:?] OF organization_item;
  818   END_ENTITY; -- applied_organization_assignment
  819 
  820   ENTITY applied_person_organization_assignment
  821     SUBTYPE OF (person_and_organization_assignment);
  822       items : SET [1:?] OF person_and_organization_item;
  823   END_ENTITY; -- applied_person_organization_assignment
  824 
  825   ENTITY applied_security_classification_assignment
  826     SUBTYPE OF (security_classification_assignment);
  827       items : SET [1:?] OF security_classification_item;
  828   END_ENTITY; -- applied_security_classification_assignment
  829 
  830   ENTITY axis1_placement
  831     SUBTYPE OF (placement);
  832       axis : OPTIONAL direction;
  833     DERIVE
  834       z : direction := NVL(normalise(axis),dummy_gri || direction([0,0,1]));
  835     WHERE
  836   wr1: SELF\geometric_representation_item.dim = 3;
  837   END_ENTITY; -- axis1_placement
  838 
  839   ENTITY axis2_placement_2d
  840     SUBTYPE OF (placement);
  841       ref_direction : OPTIONAL direction;
  842     DERIVE
  843       p : LIST [2:2] OF direction := build_2axes(ref_direction);
  844     WHERE
  845   wr1: SELF\geometric_representation_item.dim = 2;
  846   END_ENTITY; -- axis2_placement_2d
  847 
  848   ENTITY axis2_placement_3d
  849     SUBTYPE OF (placement);
  850       axis: OPTIONAL direction;
  851       ref_direction : OPTIONAL direction;
  852     DERIVE
  853       p : LIST [3:3] OF direction := build_axes(axis,ref_direction);
  854     WHERE
  855   wr1: SELF\placement.location.dim = 3;
  856   wr2: (NOT EXISTS(axis)) OR (axis.dim = 3);
  857   wr3: (NOT EXISTS(ref_direction)) OR (ref_direction.dim = 3);
  858   wr4: ((NOT EXISTS(axis)) OR (NOT EXISTS(ref_direction))) OR (
  859      cross_product(axis,ref_direction).magnitude > 0);
  860   END_ENTITY; -- axis2_placement_3d
  861 
  862   ENTITY b_spline_curve
  863     SUPERTYPE OF (ONEOF (uniform_curve,b_spline_curve_with_knots,
  864         quasi_uniform_curve,bezier_curve) ANDOR rational_b_spline_curve)
  865     SUBTYPE OF (bounded_curve);
  866       degree    : INTEGER;
  867       control_points_list : LIST [2:?] OF cartesian_point;
  868       curve_form: b_spline_curve_form;
  869       closed_curve        : LOGICAL;
  870       self_intersect      : LOGICAL;
  871     DERIVE
  872       upper_index_on_control_points : INTEGER := SIZEOF(
  873       control_points_list) - 1;
  874       control_points      : ARRAY [0:
  875       upper_index_on_control_points] OF
  876       cartesian_point := list_to_array(
  877       control_points_list,0,
  878       upper_index_on_control_points);
  879     WHERE
  880   wr1: ((('DIMENSIONAL_INSPECTION_SCHEMA.UNIFORM_CURVE' IN TYPEOF(SELF)) 
  881     OR ('DIMENSIONAL_INSPECTION_SCHEMA.QUASI_UNIFORM_CURVE' IN 
  882     TYPEOF(SELF))) OR (
  883     'DIMENSIONAL_INSPECTION_SCHEMA.BEZIER_CURVE' IN TYPEOF(SELF))) 
  884     OR (
  885     'DIMENSIONAL_INSPECTION_SCHEMA.B_SPLINE_CURVE_WITH_KNOTS' IN
  886      TYPEOF(SELF));
  887   END_ENTITY; -- b_spline_curve
  888 
  889   ENTITY b_spline_curve_with_knots
  890     SUBTYPE OF (b_spline_curve);
  891       knot_multiplicities : LIST [2:?] OF INTEGER;
  892       knots    : LIST [2:?] OF parameter_value;
  893       knot_spec: knot_type;
  894     DERIVE
  895       upper_index_on_knots : INTEGER := SIZEOF(knots);
  896     WHERE
  897   wr1: constraints_param_b_spline(degree,upper_index_on_knots,
  898     upper_index_on_control_points,knot_multiplicities,knots);
  899   wr2: SIZEOF(knot_multiplicities) = upper_index_on_knots;
  900   END_ENTITY; -- b_spline_curve_with_knots
  901 
  902   ENTITY b_spline_surface
  903     SUPERTYPE OF (ONEOF (b_spline_surface_with_knots,uniform_surface,
  904         quasi_uniform_surface,bezier_surface) ANDOR 
  905         rational_b_spline_surface)
  906     SUBTYPE OF (bounded_surface);
  907       u_degree : INTEGER;
  908       v_degree : INTEGER;
  909       control_points_list : LIST [2:?] OF LIST [2:?] OF cartesian_point;
  910       surface_form        : b_spline_surface_form;
  911       u_closed : LOGICAL;
  912       v_closed : LOGICAL;
  913       self_intersect      : LOGICAL;
  914     DERIVE
  915       u_upper        : INTEGER := SIZEOF(control_points_list) - 1;
  916       v_upper        : INTEGER := SIZEOF(control_points_list[1]) - 1;
  917       control_points : ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF
  918      cartesian_point := make_array_of_array(
  919     control_points_list,0,u_upper,0,v_upper);
  920     WHERE
  921   wr1: ((('DIMENSIONAL_INSPECTION_SCHEMA.UNIFORM_SURFACE' IN TYPEOF(
  922     SELF)) OR (
  923     'DIMENSIONAL_INSPECTION_SCHEMA.QUASI_UNIFORM_SURFACE' IN 
  924     TYPEOF(SELF))) OR (
  925     'DIMENSIONAL_INSPECTION_SCHEMA.BEZIER_SURFACE' IN TYPEOF(
  926     SELF))) OR (
  927     'DIMENSIONAL_INSPECTION_SCHEMA.B_SPLINE_SURFACE_WITH_KNOTS' 
  928     IN TYPEOF(SELF));
  929   END_ENTITY; -- b_spline_surface
  930 
  931   ENTITY b_spline_surface_with_knots
  932     SUBTYPE OF (b_spline_surface);
  933       u_multiplicities : LIST [2:?] OF INTEGER;
  934       v_multiplicities : LIST [2:?] OF INTEGER;
  935       u_knots          : LIST [2:?] OF parameter_value;
  936       v_knots          : LIST [2:?] OF parameter_value;
  937       knot_spec        : knot_type;
  938     DERIVE
  939       knot_u_upper : INTEGER := SIZEOF(u_knots);
  940       knot_v_upper : INTEGER := SIZEOF(v_knots);
  941     WHERE
  942   wr1: constraints_param_b_spline(SELF\b_spline_surface.u_degree,
  943     knot_u_upper,SELF\b_spline_surface.u_upper,u_multiplicities,
  944     u_knots);
  945   wr2: constraints_param_b_spline(SELF\b_spline_surface.v_degree,
  946     knot_v_upper,SELF\b_spline_surface.v_upper,v_multiplicities,
  947     v_knots);
  948   wr3: SIZEOF(u_multiplicities) = knot_u_upper;
  949   wr4: SIZEOF(v_multiplicities) = knot_v_upper;
  950   END_ENTITY; -- b_spline_surface_with_knots
  951 
  952   ENTITY bezier_curve
  953     SUBTYPE OF (b_spline_curve);
  954   END_ENTITY; -- bezier_curve
  955 
  956   ENTITY bezier_surface
  957     SUBTYPE OF (b_spline_surface);
  958   END_ENTITY; -- bezier_surface
  959 
  960   ENTITY block_shape_representation
  961     SUBTYPE OF (shape_representation_with_parameters);
  962     WHERE
  963   wr1: SIZEOF(SELF.items) = 4;
  964   wr2: SIZEOF(QUERY ( it <* SELF.items | ((
  965     'DIMENSIONAL_INSPECTION_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND
  966      (it.name = 'orientation')) )) = 1;
  967   wr3: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF([
  968     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
  969     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
  970     TYPEOF(it)) = 2) AND (it.name = 'length')) )) = 1;
  971   wr4: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF([
  972     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
  973     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
  974     TYPEOF(it)) = 2) AND (it.name = 'width')) )) = 1;
  975   wr5: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF([
  976     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
  977     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
  978     TYPEOF(it)) = 2) AND (it.name = 'height')) )) = 1;
  979   END_ENTITY; -- block_shape_representation
  980 
  981   ENTITY boss
  982     SUBTYPE OF (feature_definition);
  983     WHERE
  984   wr1 : SELF\characterized_object.description IN ['circular','complex',
  985      'rectangular'];
  986   wr2 : SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF,
  987     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
  988       | (
  989      'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN
  990       TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds,
  991      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
  992      sa_occ.description = 'boss height occurrence') AND (SIZEOF(
  993      QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ,
  994      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' 
  995      + 'RELATED_SHAPE_ASPECT') | ((sar.description = 
  996      'path feature component usage') AND ((
  997      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
  998      'SHAPE_DEFINING_RELATIONSHIP') IN TYPEOF(sar))) ) | (((
  999      'DIMENSIONAL_INSPECTION_SCHEMA.PATH_FEATURE_COMPONENT' IN 
 1000      TYPEOF(sdr.relating_shape_aspect)) AND (sdr.
 1001      relating_shape_aspect.description = 'linear')) AND (sdr.
 1002      name = 'boss height')) )) = 1)) )) = 1)) )) = 0;
 1003   wr3 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1004     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1005       | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 1006      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1007      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (((
 1008      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1009      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1010      used_representation)) AND ((1 <= SIZEOF(pdr.
 1011      used_representation.items)) AND (SIZEOF(pdr.
 1012      used_representation.items) <= 2))) )) = 1) )) = 1;
 1013   wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1014     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1015       | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 1016      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1017      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (((
 1018      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1019      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1020      used_representation)) AND (SIZEOF(QUERY ( srwp_i <* pdr.
 1021      used_representation.items | ((srwp_i.name = 'orientation') 
 1022      OR (srwp_i.name = 'fillet radius')) )) = SIZEOF(pdr.
 1023      used_representation.items))) )) = 1) )) = 1;
 1024   wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1025     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1026       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 1027      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1028      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1029      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1030      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1031      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 1032      impl_rep.used_representation.items | ((SIZEOF([
 1033        'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 1034      'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] *
 1035       TYPEOF(it)) = 2) AND (it.name = 'fillet radius')) )) <= 1)) )) 
 1036      = 0)) )) = 0;
 1037   wr6 : (NOT (SELF\characterized_object.description = 'circular')) OR 
 1038      (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF,
 1039        'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1040       | (
 1041      'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN
 1042       TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds,
 1043      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 1044      sa_occ.description = 'circular profile occurrence') AND (
 1045      SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ,
 1046      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' 
 1047      + 'RELATED_SHAPE_ASPECT') | ((sar.description = 
 1048      'profile usage') AND ('DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' 
 1049      IN TYPEOF(sar))) ) | (
 1050      'DIMENSIONAL_INSPECTION_SCHEMA.CIRCULAR_CLOSED_PROFILE' IN 
 1051      TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0);
 1052   wr7 : SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF,
 1053     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1054       | (
 1055      'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN
 1056       TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds,
 1057      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 1058      sa_occ.description = 'top condition occurrence') AND (
 1059      SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ,
 1060      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.'+
 1061      'RELATED_SHAPE_ASPECT')
 1062       | ((sar.description = 'boss top usage') AND 
 1063       ('DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' 
 1064      IN TYPEOF(sar))) ) | (
 1065      'DIMENSIONAL_INSPECTION_SCHEMA.BOSS_TOP' IN TYPEOF(fcr.
 1066      relating_shape_aspect)) )) = 1)) )) = 1)) )) = 0;
 1067   wr8 : (NOT (SELF\characterized_object.description = 'circular')) OR 
 1068      (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF,
 1069      'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1070       | (
 1071      'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN
 1072       TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds,
 1073      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 1074      sa_occ.description = 'change in diameter occurrence') AND (
 1075      SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ,
 1076      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' 
 1077      + 'RELATED_SHAPE_ASPECT') | ((sar.description = 
 1078      'taper usage') AND (
 1079      'DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' 
 1080      IN TYPEOF(sar))) ) | ((
 1081      'DIMENSIONAL_INSPECTION_SCHEMA.TAPER' IN TYPEOF(fcr.
 1082      related_shape_aspect)) AND (
 1083      'DIMENSIONAL_INSPECTION_SCHEMA.BOSS' IN TYPEOF(fcr.
 1084      relating_shape_aspect))) )) = 1)) )) <= 1)) )) = 0);
 1085   wr9 : (NOT (SELF\characterized_object.description = 'complex')) OR (
 1086      SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF,
 1087      'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1088       | (
 1089      'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN
 1090       TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds,
 1091      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 1092      sa_occ.description = 'enclosed boundary occurrence') AND (
 1093      SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ,
 1094      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' 
 1095      + 'RELATED_SHAPE_ASPECT') | ((sar.description = 
 1096      'profile usage') AND 
 1097      ('DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' 
 1098      IN TYPEOF(sar))) ) | (SIZEOF([
 1099      'DIMENSIONAL_INSPECTION_SCHEMA.NGON_CLOSED_PROFILE',
 1100      'DIMENSIONAL_INSPECTION_SCHEMA.CLOSED_PATH_PROFILE'] * 
 1101      TYPEOF(sdr.relating_shape_aspect)) = 1) )) = 1)) )) = 1)) )) 
 1102      = 0);
 1103   wr10: (NOT (SELF\characterized_object.description IN ['complex',
 1104      'rectangular'])) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* 
 1105      USEDIN(SELF,
 1106      'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1107       | (
 1108      'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN
 1109       TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds,
 1110      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 1111      sa_occ.description = 'change in boundary occurrence') AND (
 1112      SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(sa_occ,
 1113      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' 
 1114      + 'RELATING_SHAPE_ASPECT') | ((sar.description = 
 1115      'taper usage') AND 
 1116      ('DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' 
 1117      IN TYPEOF(sar))) ) | (((
 1118      'DIMENSIONAL_INSPECTION_SCHEMA.TAPER' IN TYPEOF(fcr.
 1119      related_shape_aspect)) AND (
 1120      'DIMENSIONAL_INSPECTION_SCHEMA.BOSS' IN TYPEOF(fcr.
 1121      relating_shape_aspect))) AND (fcr.related_shape_aspect.
 1122      description IN ['angle taper','directed taper'])) )) = 1)) )) 
 1123      <= 1)) )) = 0);
 1124   wr11: (NOT (SELF\characterized_object.description = 'rectangular')) 
 1125      OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF,
 1126      'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1127       | (
 1128      'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN
 1129       TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds,
 1130      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 1131      sa_occ.description = 'rectangular profile occurrence') AND 
 1132      (SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ,
 1133      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' 
 1134      + 'RELATED_SHAPE_ASPECT') | ((sar.description = 
 1135      'profile usage') AND (
 1136      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' 
 1137      IN TYPEOF(sar))) ) | (
 1138      'DIMENSIONAL_INSPECTION_SCHEMA.RECTANGULAR_CLOSED_PROFILE' 
 1139      IN TYPEOF(sdr.relating_shape_aspect)) )) = 1)) )) = 1)) )) 
 1140      = 0);
 1141   wr12: SIZEOF(QUERY ( pdr <* get_property_definition_representations(
 1142      SELF) | (('DIMENSIONAL_INSPECTION_SCHEMA.PLANAR_SHAPE_REPRESENTATION' 
 1143      IN TYPEOF(pdr.used_representation)) AND (pdr.
 1144      used_representation.name = 'maximum feature limit')) )) >= 
 1145      0;
 1146   END_ENTITY; -- boss
 1147 
 1148   ENTITY boss_top
 1149     SUBTYPE OF (shape_aspect);
 1150     WHERE
 1151   wr1: 'DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN
 1152      TYPEOF(SELF.of_shape.definition);
 1153   wr2: SELF.description IN ['planar','complex'];
 1154   wr3: (NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY ( pd <* 
 1155     USEDIN(SELF,
 1156   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1157      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 1158     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1159     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 1160     'DIMENSIONAL_INSPECTION_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' 
 1161     IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0);
 1162   wr4: (NOT (SELF.description = 'planar')) OR (SIZEOF(QUERY ( pd <* 
 1163     USEDIN(SELF,
 1164     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1165      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 1166     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1167     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 1168     'DIMENSIONAL_INSPECTION_SCHEMA.LOCATION_SHAPE_REPRESENTATION' 
 1169     IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0);
 1170   wr5: (NOT (SELF.description = 'complex')) OR (SIZEOF(QUERY ( pd <* 
 1171     USEDIN(SELF,
 1172   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1173      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 1174     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1175     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 1176     'DIMENSIONAL_INSPECTION_SCHEMA.FACE_SHAPE_REPRESENTATION' IN
 1177      TYPEOF(pdr.used_representation)) )) = 1)) )) = 0);
 1178   wr6: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF,
 1179     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' +
 1180      'RELATING_SHAPE_ASPECT') | (((sar.description = 
 1181     'boss top usage') AND (sar.name IN ['boss height start',
 1182     'boss height end'])) AND (
 1183     'DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' 
 1184     IN TYPEOF(sar))) ) | (((fcr.related_shape_aspect.description 
 1185     = 'top condition occurrence') AND (
 1186     'DIMENSIONAL_INSPECTION_SCHEMA.BOSS' IN TYPEOF(fcr.
 1187     related_shape_aspect.of_shape.definition))) AND (
 1188     'DIMENSIONAL_INSPECTION_SCHEMA.BOSS_TOP' IN TYPEOF(fcr.
 1189     relating_shape_aspect))) )) >= 1;
 1190   wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1191   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1192      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 1193     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1194     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1195     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1196     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1197     used_representation)) )) <= 1)) )) = 0;
 1198   wr8: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1199   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1200      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1201     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1202     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1203     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1204     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1205     used_representation)) ) | (NOT (SIZEOF(impl_rep.
 1206     used_representation.items) = 1)) )) = 0)) )) = 0;
 1207   wr9: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1208   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1209      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1210     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1211     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1212     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1213     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1214     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 1215     impl_rep.used_representation.items | ((SIZEOF([
 1216     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 1217     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
 1218     TYPEOF(it)) = 2) AND (it.name = 'top radius')) )) <= 1)) )) 
 1219     = 0)) )) = 0;
 1220   END_ENTITY; -- boss_top
 1221 
 1222   ENTITY bounded_curve
 1223     SUPERTYPE OF (ONEOF (polyline,b_spline_curve,composite_curve))
 1224     SUBTYPE OF (curve);
 1225   END_ENTITY; -- bounded_curve
 1226 
 1227   ENTITY bounded_surface
 1228     SUPERTYPE OF (b_spline_surface)
 1229     SUBTYPE OF (surface);
 1230   END_ENTITY; -- bounded_surface
 1231 
 1232   ENTITY brep_with_voids
 1233     SUBTYPE OF (manifold_solid_brep);
 1234       voids : SET [1:?] OF oriented_closed_shell;
 1235   END_ENTITY; -- brep_with_voids
 1236 
 1237   ENTITY calendar_date
 1238     SUBTYPE OF (date);
 1239       day_component   : day_in_month_number;
 1240       month_component : month_in_year_number;
 1241     WHERE
 1242   wr1: valid_calendar_date(SELF);
 1243   END_ENTITY; -- calendar_date
 1244 
 1245   ENTITY cartesian_point
 1246     SUBTYPE OF (point);
 1247       coordinates : LIST [1:3] OF length_measure;
 1248   END_ENTITY; -- cartesian_point
 1249 
 1250   ENTITY cartesian_transformation_operator
 1251     SUPERTYPE OF (cartesian_transformation_operator_3d)
 1252     SUBTYPE OF (geometric_representation_item, 
 1253         functionally_defined_transformation);
 1254       axis1        : OPTIONAL direction;
 1255       axis2        : OPTIONAL direction;
 1256       local_origin : cartesian_point;
 1257       scale        : OPTIONAL REAL;
 1258     DERIVE
 1259       scl : REAL := NVL(scale,1);
 1260     WHERE
 1261   wr1: scl > 0;
 1262   END_ENTITY; -- cartesian_transformation_operator
 1263 
 1264   ENTITY cartesian_transformation_operator_3d
 1265     SUBTYPE OF (cartesian_transformation_operator);
 1266       axis3 : OPTIONAL direction;
 1267     DERIVE
 1268       u : LIST [3:3] OF direction := base_axis(3,SELF\
 1269   cartesian_transformation_operator.axis1,SELF\
 1270   cartesian_transformation_operator.axis2,axis3);
 1271     WHERE
 1272   wr1: SELF\geometric_representation_item.dim = 3;
 1273   END_ENTITY; -- cartesian_transformation_operator_3d
 1274 
 1275   ENTITY centre_of_symmetry
 1276     SUBTYPE OF (derived_shape_aspect);
 1277     WHERE
 1278   wr1: SIZEOF(QUERY ( sadr <* deriving_relationships | (NOT (
 1279     'DIMENSIONAL_INSPECTION_SCHEMA.SYMMETRIC_SHAPE_ASPECT' IN 
 1280     TYPEOF(sadr.related_shape_aspect))) )) = 0;
 1281   END_ENTITY; -- centre_of_symmetry
 1282 
 1283   ENTITY chamfer
 1284     SUBTYPE OF (transition_feature);
 1285     WHERE
 1286   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1287   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1288      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 1289     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1290     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1291     'DIMENSIONAL_INSPECTION_SCHEMA.FACE_SHAPE_REPRESENTATION' IN
 1292      TYPEOF(pdr.used_representation)) AND (pdr.
 1293     used_representation.name = 'chamfer face')) )) <= 1)) )) = 0;
 1294   wr2: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF,
 1295     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' +
 1296      'RELATING_SHAPE_ASPECT') | 
 1297      ('DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' 
 1298     IN TYPEOF(sar)) ) | (((
 1299     'DIMENSIONAL_INSPECTION_SCHEMA.CHAMFER_OFFSET' IN TYPEOF(fcr
 1300     .related_shape_aspect)) AND (
 1301     'DIMENSIONAL_INSPECTION_SCHEMA.CHAMFER' IN TYPEOF(fcr.
 1302     relating_shape_aspect))) AND (fcr.related_shape_aspect.
 1303     description = 'first offset')) )) = 1;
 1304   wr3: SIZEOF(QUERY ( fcr <* QUERY ( sar <* USEDIN(SELF,
 1305     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' +
 1306      'RELATING_SHAPE_ASPECT') | 
 1307      ('DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' 
 1308     IN TYPEOF(sar)) ) | (((
 1309     'DIMENSIONAL_INSPECTION_SCHEMA.CHAMFER_OFFSET' IN TYPEOF(fcr
 1310     .related_shape_aspect)) AND (
 1311     'DIMENSIONAL_INSPECTION_SCHEMA.CHAMFER' IN TYPEOF(fcr.
 1312     relating_shape_aspect))) AND (fcr.related_shape_aspect.
 1313     description = 'second offset')) )) = 1;
 1314   END_ENTITY; -- chamfer
 1315 
 1316   ENTITY chamfer_offset
 1317     SUBTYPE OF (shape_aspect);
 1318     WHERE
 1319   wr1: SELF.description IN ['first offset','second offset'];
 1320   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1321     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1322      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 1323     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1324     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1325     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1326     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1327     used_representation)) )) = 1)) )) = 0;
 1328   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1329     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1330      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1331     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1332     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1333     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1334     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1335     used_representation)) ) | (NOT (SIZEOF(impl_rep.
 1336     used_representation.items) = 1)) )) = 0)) )) = 0;
 1337   wr4: (NOT (SELF.description = 'first offset')) OR (SIZEOF(
 1338     QUERY ( pd <* USEDIN(SELF,
 1339     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1340      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1341     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1342     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1343     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1344     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1345     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 1346     impl_rep.used_representation.items | ((SIZEOF([
 1347     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 1348     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
 1349     TYPEOF(it)) = 2) AND (it.name = 'offset amount')) )) = 1)) )) 
 1350     = 0)) )) = 0);
 1351   wr5: (NOT (SELF.description = 'first offset')) OR (SIZEOF(
 1352     QUERY ( pd <* USEDIN(SELF,
 1353     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1354      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 1355     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1356     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1357     'DIMENSIONAL_INSPECTION_SCHEMA.FACE_SHAPE_REPRESENTATION' IN
 1358      TYPEOF(pdr.used_representation)) AND (pdr.
 1359     used_representation.name = 'first face shape')) )) <= 1)) )) 
 1360     = 0);
 1361   wr6: (NOT (SELF.description = 'second offset')) OR (SIZEOF(
 1362     QUERY ( pd <* USEDIN(SELF,
 1363     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1364      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1365     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1366     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1367     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1368     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1369     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 1370     impl_rep.used_representation.items | (((SIZEOF([
 1371     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 1372     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
 1373     TYPEOF(it)) = 2) AND (it.name = 'offset amount')) OR ((
 1374     SIZEOF([
 1375     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 1376     'DIMENSIONAL_INSPECTION_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] 
 1377     * TYPEOF(it)) = 2) AND (it.name = 'offset angle'))) )) = 1)) )) 
 1378     = 0)) )) = 0);
 1379   wr7: (NOT (SELF.description = 'second offset')) OR (SIZEOF(
 1380     QUERY ( pd <* USEDIN(SELF,
 1381     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1382      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 1383     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1384     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1385     'DIMENSIONAL_INSPECTION_SCHEMA.FACE_SHAPE_REPRESENTATION' IN
 1386      TYPEOF(pdr.used_representation)) AND (pdr.
 1387     used_representation.name = 'second face shape')) )) <= 1)) )) 
 1388     = 0);
 1389   wr8: SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(SELF,
 1390     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' +
 1391      'RELATED_SHAPE_ASPECT') | ((
 1392     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1393     'FEATURE_COMPONENT_RELATIONSHIP') IN TYPEOF(sar)) ) | ((
 1394     'DIMENSIONAL_INSPECTION_SCHEMA.CHAMFER' IN TYPEOF(sdr.
 1395     relating_shape_aspect)) AND (
 1396     'DIMENSIONAL_INSPECTION_SCHEMA.CHAMFER_OFFSET' IN TYPEOF(sdr
 1397     .related_shape_aspect))) )) = 1;
 1398   END_ENTITY; -- chamfer_offset
 1399 
 1400   ENTITY characterized_object;
 1401       name        : label;
 1402       description : OPTIONAL text;
 1403   END_ENTITY; -- characterized_object
 1404 
 1405   ENTITY circle
 1406     SUBTYPE OF (conic);
 1407       radius : positive_length_measure;
 1408   END_ENTITY; -- circle
 1409 
 1410   ENTITY circular_closed_profile
 1411     SUBTYPE OF (shape_aspect);
 1412     WHERE
 1413   wr1: 'DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN
 1414      TYPEOF(SELF.of_shape.definition);
 1415   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1416     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1417      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 1418     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1419     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1420     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1421     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1422     used_representation)) )) = 1)) )) = 0;
 1423   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1424     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1425      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1426     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1427     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1428     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1429     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1430     used_representation)) ) | (NOT (SIZEOF(impl_rep.
 1431     used_representation.items) = 2)) )) = 0)) )) = 0;
 1432   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1433     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1434      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1435     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1436     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1437     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1438     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1439     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 1440     impl_rep.used_representation.items | ((
 1441     'DIMENSIONAL_INSPECTION_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND
 1442      (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0;
 1443   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1444     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1445      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1446     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1447     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1448     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1449     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1450     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 1451     impl_rep.used_representation.items | ((SIZEOF([
 1452     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 1453     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
 1454     TYPEOF(it)) = 2) AND (it.name = 'diameter')) )) = 1)) )) = 0)) )) 
 1455     = 0;
 1456   END_ENTITY; -- circular_closed_profile
 1457 
 1458   ENTITY circular_pattern
 1459     SUBTYPE OF (replicate_feature);
 1460     WHERE
 1461   wr1: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF,
 1462     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1463      | ('DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' 
 1464     IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds,
 1465     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (
 1466     SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ,
 1467     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' +
 1468      'RELATING_SHAPE_ASPECT') | 
 1469      ('DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' 
 1470     IN TYPEOF(sar)) ) | (
 1471     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.
 1472     related_shape_aspect)) )) = 1) )) <= 3)) )) = 0;
 1473   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1474     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1475      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 1476     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1477     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1478     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1479     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1480     used_representation)) )) = 1)) )) = 0;
 1481   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1482     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1483      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1484     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1485     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1486     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1487     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1488     used_representation)) ) | (NOT ((SIZEOF(impl_rep.
 1489     used_representation.items) >= 3) AND (SIZEOF(impl_rep.
 1490     used_representation.items) <= 5))) )) = 0)) )) = 0;
 1491   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1492     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1493      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1494     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1495     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1496     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1497     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1498     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 1499     impl_rep.used_representation.items | ((SIZEOF([
 1500     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 1501     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
 1502     TYPEOF(it)) = 2) AND (it.name = 'diameter')) )) <= 1)) )) = 
 1503     0)) )) = 0;
 1504   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1505     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1506      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1507     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1508     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1509     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1510     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1511     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 1512     impl_rep.used_representation.items | ((SIZEOF([
 1513     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 1514     'DIMENSIONAL_INSPECTION_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] 
 1515     * TYPEOF(it)) = 2) AND (it.name = 'base feature rotation')) )) 
 1516     <= 1)) )) = 0)) )) = 0;
 1517   wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1518     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1519      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1520     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1521     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1522     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1523     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1524     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 1525     impl_rep.used_representation.items | (((
 1526     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM' 
 1527     IN TYPEOF(it)) AND (
 1528     'DIMENSIONAL_INSPECTION_SCHEMA.COUNT_MEASURE' IN TYPEOF(it\
 1529     measure_with_unit.value_component))) AND (it.name = 
 1530     'number of features')) )) = 1)) )) = 0)) )) = 0;
 1531   wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1532     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1533      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1534     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1535     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1536     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1537     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1538     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 1539     impl_rep.used_representation.items | ((SIZEOF([
 1540     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 1541     'DIMENSIONAL_INSPECTION_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] 
 1542     * TYPEOF(it)) = 2) AND (it.name = 'angular spacing')) )) = 1)) )) 
 1543     = 0)) )) = 0;
 1544   wr8: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1545     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1546      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1547     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1548     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1549     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1550     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1551     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 1552     impl_rep.used_representation.items | ((
 1553     'DIMENSIONAL_INSPECTION_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND
 1554      (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0;
 1555   END_ENTITY; -- circular_pattern
 1556 
 1557   ENTITY circular_runout_tolerance
 1558     SUBTYPE OF (geometric_tolerance_with_datum_reference);
 1559     WHERE
 1560   wr1: SIZEOF(SELF\geometric_tolerance_with_datum_reference.
 1561     datum_system) <= 2;
 1562   END_ENTITY; -- circular_runout_tolerance
 1563 
 1564   ENTITY closed_path_profile
 1565     SUBTYPE OF (shape_aspect);
 1566     WHERE
 1567   wr1: 'DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_DEFINITION' IN
 1568      TYPEOF(SELF.of_shape.definition);
 1569   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1570     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.' + 
 1571     'DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 1572     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1573     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1574     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1575     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1576     used_representation)) )) = 1)) )) = 0;
 1577   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1578     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1579      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1580     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1581     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1582     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1583     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1584     used_representation)) ) | (NOT (SIZEOF(impl_rep.
 1585     used_representation.items) = 1)) )) = 0)) )) = 0;
 1586   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1587     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1588      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 1589     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1590     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 1591     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1592     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 1593     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 1594     impl_rep.used_representation.items | ((
 1595     'DIMENSIONAL_INSPECTION_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND
 1596      (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0;
 1597   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 1598     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.' + 
 1599     'DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 1600     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1601     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 1602     'DIMENSIONAL_INSPECTION_SCHEMA.PATH_SHAPE_REPRESENTATION' IN
 1603      TYPEOF(pdr.used_representation)) )) = 1)) )) = 0;
 1604   END_ENTITY; -- closed_path_profile
 1605 
 1606   ENTITY closed_shell
 1607     SUBTYPE OF (connected_face_set);
 1608   END_ENTITY; -- closed_shell
 1609 
 1610   ENTITY coaxiality_tolerance
 1611     SUBTYPE OF (geometric_tolerance_with_datum_reference);
 1612     WHERE
 1613   wr1: SIZEOF(SELF\geometric_tolerance_with_datum_reference.
 1614     datum_system) <= 2;
 1615   END_ENTITY; -- coaxiality_tolerance
 1616 
 1617   ENTITY common_datum
 1618     SUBTYPE OF (composite_shape_aspect, datum);
 1619     WHERE
 1620   wr1: SIZEOF(SELF.component_relationships) = 2;
 1621   wr2: SIZEOF(QUERY ( sar <* SELF.component_relationships | (NOT ((
 1622     'DIMENSIONAL_INSPECTION_SCHEMA.DATUM' IN TYPEOF(sar.
 1623     related_shape_aspect)) AND (NOT (
 1624     'DIMENSIONAL_INSPECTION_SCHEMA.COMMON_DATUM' IN TYPEOF(sar.
 1625     related_shape_aspect))))) )) = 0;
 1626   END_ENTITY; -- common_datum
 1627 
 1628   ENTITY composite_curve
 1629     SUBTYPE OF (bounded_curve);
 1630       segments       : LIST [1:?] OF composite_curve_segment;
 1631       self_intersect : LOGICAL;
 1632     DERIVE
 1633       n_segments   : INTEGER := SIZEOF(segments);
 1634       closed_curve : LOGICAL := segments[n_segments].transition <> 
 1635   discontinuous;
 1636     WHERE
 1637   wr1: ((NOT closed_curve) AND (SIZEOF(QUERY ( temp <* segments | (
 1638     temp.transition = discontinuous) )) = 1)) OR (closed_curve 
 1639     AND (SIZEOF(QUERY ( temp <* segments | (temp.transition = 
 1640     discontinuous) )) = 0));
 1641   END_ENTITY; -- composite_curve
 1642 
 1643   ENTITY composite_curve_on_surface
 1644     SUBTYPE OF (composite_curve);
 1645     DERIVE
 1646       basis_surface : SET [0:2] OF surface := get_basis_surface(SELF);
 1647     WHERE
 1648   wr1: SIZEOF(basis_surface) > 0;
 1649   wr2: constraints_composite_curve_on_surface(SELF);
 1650   END_ENTITY; -- composite_curve_on_surface
 1651 
 1652   ENTITY composite_curve_segment
 1653     SUBTYPE OF (founded_item);
 1654       transition   : transition_code;
 1655       same_sense   : BOOLEAN;
 1656       parent_curve : curve;
 1657     INVERSE
 1658       using_curves : BAG [1:?] OF composite_curve FOR segments;
 1659     WHERE
 1660   wr1: 'DIMENSIONAL_INSPECTION_SCHEMA.BOUNDED_CURVE' IN TYPEOF(
 1661     parent_curve);
 1662   END_ENTITY; -- composite_curve_segment
 1663 
 1664   ENTITY composite_hole
 1665     SUBTYPE OF (compound_feature);
 1666     WHERE
 1667   wr1: SELF\characterized_object.description IN ['counterbore',
 1668     'countersunk'];
 1669   wr2: SIZEOF(QUERY ( pds <* USEDIN(SELF,
 1670     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1671      | ((
 1672     'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN 
 1673     TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds,
 1674     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 1675     'DIMENSIONAL_INSPECTION_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN 
 1676     TYPEOF(csa)) AND (SIZEOF(QUERY ( sar <* csa.
 1677     component_relationships | 
 1678     (('DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' 
 1679     IN TYPEOF(sar)) AND (
 1680     'DIMENSIONAL_INSPECTION_SCHEMA.ROUND_HOLE' IN TYPEOF(sar.
 1681     related_shape_aspect))) )) = 2)) )) = 1)) )) = 1;
 1682   wr3: (NOT (SELF\characterized_object.description = 'countersunk')) 
 1683     OR (SIZEOF(QUERY ( pds <* USEDIN(SELF,
 1684     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1685      | ((
 1686     'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN 
 1687     TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds,
 1688     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 1689     'DIMENSIONAL_INSPECTION_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN 
 1690     TYPEOF(csa)) AND (SIZEOF(QUERY ( sar <* csa.
 1691     component_relationships | ((
 1692     'DIMENSIONAL_INSPECTION_SCHEMA.ROUND_HOLE' IN TYPEOF(sar.
 1693     related_shape_aspect)) AND (NOT (SIZEOF(QUERY ( pds <* 
 1694     QUERY ( pd <* USEDIN(sar.related_shape_aspect,
 1695     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1696      | ('DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' 
 1697     IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds,
 1698     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 1699     sa_occ.description = 'change in diameter occurrence') AND (
 1700     SIZEOF(QUERY ( fcr2 <* QUERY ( sar2 <* USEDIN(sa_occ,
 1701     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.'+
 1702     'RELATING_SHAPE_ASPECT')
 1703      | ((sar2.description = 'taper usage') AND 
 1704      ('DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' 
 1705     IN TYPEOF(sar2))) ) | ('DIMENSIONAL_INSPECTION_SCHEMA.TAPER' 
 1706     IN TYPEOF(fcr2.related_shape_aspect)) )) = 1)) )) = 0)) )) =
 1707      0))) )) = 1)) )) = 1)) )) = 1);
 1708   END_ENTITY; -- composite_hole
 1709 
 1710   ENTITY composite_shape_aspect
 1711     SUBTYPE OF (shape_aspect);
 1712     INVERSE
 1713       component_relationships : SET [2:?] OF shape_aspect_relationship FOR 
 1714   relating_shape_aspect;
 1715   END_ENTITY; -- composite_shape_aspect
 1716 
 1717   ENTITY compound_feature
 1718     SUBTYPE OF (feature_definition);
 1719     WHERE
 1720   wr1: SIZEOF(QUERY ( pds <* USEDIN(SELF,
 1721     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1722      | ((
 1723     'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN 
 1724     TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds,
 1725     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 1726     csa.name = 'compound feature in solid') AND (
 1727     'DIMENSIONAL_INSPECTION_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN 
 1728     TYPEOF(csa))) )) = 1)) )) = 1;
 1729   wr2: SIZEOF(QUERY ( pds <* USEDIN(SELF,
 1730     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1731      | ((
 1732     'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN 
 1733     TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds,
 1734     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (
 1735     'DIMENSIONAL_INSPECTION_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN 
 1736     TYPEOF(csa)) )) = 1)) )) = 1;
 1737   wr3: SIZEOF(QUERY ( pds <* USEDIN(SELF,
 1738     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1739      | ((
 1740     'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN 
 1741     TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds,
 1742     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 1743     'DIMENSIONAL_INSPECTION_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN 
 1744     TYPEOF(csa)) AND (SIZEOF(QUERY ( fcr <* csa.
 1745     component_relationships | (NOT (
 1746     'DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' 
 1747     IN TYPEOF(fcr))) )) = 0)) )) = 1)) )) = 1;
 1748   wr4: SIZEOF(QUERY ( pds <* USEDIN(SELF,
 1749     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1750      | ((
 1751     'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN 
 1752     TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds,
 1753     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (
 1754     'DIMENSIONAL_INSPECTION_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN 
 1755     TYPEOF(csa)) )) = 1)) )) = 1;
 1756   wr5: SIZEOF(QUERY ( pds <* USEDIN(SELF,
 1757     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1758      | ((
 1759     'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN 
 1760     TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds,
 1761     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 1762     'DIMENSIONAL_INSPECTION_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN 
 1763     TYPEOF(csa)) AND (SIZEOF(QUERY ( sar <* csa.
 1764     component_relationships | (
 1765     'DIMENSIONAL_INSPECTION_SCHEMA.THREAD' IN TYPEOF(sar.
 1766     related_shape_aspect)) )) = 0)) )) = 1)) )) = 1;
 1767   wr6: SIZEOF(QUERY ( pds <* USEDIN(SELF,
 1768     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 1769      | ((
 1770     'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN 
 1771     TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds,
 1772     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 1773     'DIMENSIONAL_INSPECTION_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN 
 1774     TYPEOF(csa)) AND (SIZEOF(QUERY ( sar <* csa.
 1775     component_relationships | ((
 1776     'DIMENSIONAL_INSPECTION_SCHEMA.COMPOUND_FEATURE' IN TYPEOF(
 1777     sar.related_shape_aspect)) AND (sar.related_shape_aspect\
 1778     characterized_object.name <> SELF\characterized_object.name)) )) 
 1779     = 0)) )) = 1)) )) = 1;
 1780   END_ENTITY; -- compound_feature
 1781 
 1782   ENTITY compound_representation_item
 1783     SUBTYPE OF (representation_item);
 1784       item_element : compound_item_definition;
 1785   END_ENTITY; -- compound_representation_item
 1786 
 1787   ENTITY concentricity_tolerance
 1788     SUBTYPE OF (geometric_tolerance_with_datum_reference);
 1789     WHERE
 1790   wr1: SIZEOF(SELF\geometric_tolerance_with_datum_reference.
 1791     datum_system) = 1;
 1792   END_ENTITY; -- concentricity_tolerance
 1793 
 1794   ENTITY conic
 1795     SUPERTYPE OF (ONEOF (circle,ellipse,hyperbola,parabola))
 1796     SUBTYPE OF (curve);
 1797       position : axis2_placement;
 1798   END_ENTITY; -- conic
 1799 
 1800   ENTITY conical_surface
 1801     SUBTYPE OF (elementary_surface);
 1802       radius     : length_measure;
 1803       semi_angle : plane_angle_measure;
 1804     WHERE
 1805   wr1: radius >= 0;
 1806   END_ENTITY; -- conical_surface
 1807 
 1808   ENTITY connected_face_set
 1809     SUPERTYPE OF (ONEOF (closed_shell,open_shell))
 1810     SUBTYPE OF (topological_representation_item);
 1811       cfs_faces : SET [1:?] OF face;
 1812   END_ENTITY; -- connected_face_set
 1813 
 1814   ENTITY context_dependent_unit
 1815     SUBTYPE OF (named_unit);
 1816       name : label;
 1817   END_ENTITY; -- context_dependent_unit
 1818 
 1819   ENTITY conversion_based_unit
 1820     SUBTYPE OF (named_unit);
 1821       name   : label;
 1822       conversion_factor : measure_with_unit;
 1823   END_ENTITY; -- conversion_based_unit
 1824 
 1825   ENTITY coordinated_universal_time_offset;
 1826       hour_offset   : INTEGER;
 1827       minute_offset : OPTIONAL INTEGER;
 1828       sense         : ahead_or_behind;
 1829     DERIVE
 1830       actual_minute_offset : INTEGER := NVL(minute_offset,0);
 1831     WHERE
 1832   wr1: (0 <= hour_offset) AND (hour_offset < 24);
 1833   wr2: (0 <= actual_minute_offset) AND (actual_minute_offset <= 59);
 1834   wr3: NOT (((hour_offset <> 0) OR (actual_minute_offset <> 0)) AND (
 1835     sense = exact));
 1836   END_ENTITY; -- coordinated_universal_time_offset
 1837 
 1838   ENTITY curve
 1839     SUPERTYPE OF (ONEOF (line,conic,pcurve,surface_curve))
 1840     SUBTYPE OF (geometric_representation_item);
 1841   END_ENTITY; -- curve
 1842 
 1843   ENTITY cylindrical_shape_representation
 1844     SUBTYPE OF (shape_representation_with_parameters);
 1845     WHERE
 1846   wr1: SIZEOF(SELF.items) = 3;
 1847   wr2: SIZEOF(QUERY ( it <* SELF.items | ((
 1848     'DIMENSIONAL_INSPECTION_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND
 1849      (it.name = 'orientation')) )) = 1;
 1850   wr3: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF([
 1851     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 1852     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
 1853     TYPEOF(it)) = 2) AND (it.name = 'length')) )) = 1;
 1854   wr4: SIZEOF(QUERY ( it <* SELF.items | ((SIZEOF([
 1855     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 1856     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
 1857     TYPEOF(it)) = 2) AND (it.name = 'diameter')) )) = 1;
 1858   END_ENTITY; -- cylindrical_shape_representation
 1859 
 1860   ENTITY cylindrical_surface
 1861     SUBTYPE OF (elementary_surface);
 1862       radius : positive_length_measure;
 1863   END_ENTITY; -- cylindrical_surface
 1864 
 1865   ENTITY cylindricity_tolerance
 1866     SUBTYPE OF (geometric_tolerance);
 1867     WHERE
 1868   wr1: NOT (('DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1869     'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE') IN TYPEOF(SELF));
 1870   END_ENTITY; -- cylindricity_tolerance
 1871 
 1872   ENTITY date
 1873     SUPERTYPE OF (calendar_date);
 1874       year_component : year_number;
 1875   END_ENTITY; -- date
 1876 
 1877   ENTITY date_and_time;
 1878       date_component : date;
 1879       time_component : local_time;
 1880   END_ENTITY; -- date_and_time
 1881 
 1882   ENTITY date_assignment
 1883     ABSTRACT SUPERTYPE;
 1884       assigned_date : date;
 1885       role          : date_role;
 1886   END_ENTITY; -- date_assignment
 1887 
 1888   ENTITY date_role;
 1889       name : label;
 1890     DERIVE
 1891       description : text := get_description_value(SELF);
 1892     WHERE
 1893   wr1: SIZEOF(USEDIN(SELF,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1894     'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
 1895   END_ENTITY; -- date_role
 1896 
 1897   ENTITY datum
 1898     SUBTYPE OF (shape_aspect);
 1899       identification : identifier;
 1900     INVERSE
 1901       established_by_relationships : SET [1:?] OF
 1902         shape_aspect_relationship FOR 
 1903        related_shape_aspect;
 1904     WHERE
 1905   wr1: SIZEOF(QUERY ( x <* SELF.established_by_relationships | (
 1906     SIZEOF(TYPEOF(x.relating_shape_aspect) * [
 1907     'DIMENSIONAL_INSPECTION_SCHEMA.DATUM_FEATURE',
 1908     'DIMENSIONAL_INSPECTION_SCHEMA.DATUM_TARGET']) <> 1) )) = 0;
 1909   END_ENTITY; -- datum
 1910 
 1911   ENTITY datum_feature
 1912     SUBTYPE OF (shape_aspect);
 1913     INVERSE
 1914       feature_basis_relationship : shape_aspect_relationship FOR 
 1915      relating_shape_aspect;
 1916     WHERE
 1917   wr1: SIZEOF(QUERY ( sar <* bag_to_set(USEDIN(SELF,
 1918     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' +
 1919      'RELATING_SHAPE_ASPECT')) | (NOT (
 1920     'DIMENSIONAL_INSPECTION_SCHEMA.DATUM' IN TYPEOF(sar.
 1921     related_shape_aspect))) )) = 0;
 1922   wr2: SELF.product_definitional = TRUE;
 1923   END_ENTITY; -- datum_feature
 1924 
 1925   ENTITY datum_reference;
 1926       precedence       : INTEGER;
 1927       referenced_datum : datum;
 1928     WHERE
 1929   wr1: precedence > 0;
 1930   END_ENTITY; -- datum_reference
 1931 
 1932   ENTITY datum_target
 1933     SUBTYPE OF (shape_aspect);
 1934       target_id : identifier;
 1935     INVERSE
 1936       target_basis_relationship : shape_aspect_relationship FOR 
 1937     relating_shape_aspect;
 1938     WHERE
 1939   wr1: SIZEOF(QUERY ( sar <* bag_to_set(USEDIN(SELF,
 1940     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' +
 1941      'RELATING_SHAPE_ASPECT')) | (NOT (
 1942     'DIMENSIONAL_INSPECTION_SCHEMA.DATUM' IN TYPEOF(sar.
 1943     related_shape_aspect))) )) = 0;
 1944   wr2: SELF.product_definitional = TRUE;
 1945   END_ENTITY; -- datum_target
 1946 
 1947   ENTITY definitional_representation
 1948     SUBTYPE OF (representation);
 1949     WHERE
 1950   wr1: 'DIMENSIONAL_INSPECTION_SCHEMA.'+
 1951        'PARAMETRIC_REPRESENTATION_CONTEXT' 
 1952     IN TYPEOF(SELF\representation.context_of_items);
 1953   END_ENTITY; -- definitional_representation
 1954 
 1955   ENTITY degenerate_toroidal_surface
 1956     SUBTYPE OF (toroidal_surface);
 1957       select_outer : BOOLEAN;
 1958     WHERE
 1959   wr1: major_radius < minor_radius;
 1960   END_ENTITY; -- degenerate_toroidal_surface
 1961 
 1962   ENTITY derived_shape_aspect
 1963     SUPERTYPE OF (ONEOF (apex,centre_of_symmetry,
 1964         geometric_alignment,
 1965         geometric_intersection,parallel_offset,
 1966         perpendicular_to,extension,
 1967         tangent))
 1968     SUBTYPE OF (shape_aspect);
 1969     INVERSE
 1970       deriving_relationships : SET [1:?] OF
 1971   shape_aspect_deriving_relationship FOR 
 1972  relating_shape_aspect;
 1973   END_ENTITY; -- derived_shape_aspect
 1974 
 1975   ENTITY derived_unit;
 1976       elements : SET [1:?] OF derived_unit_element;
 1977     DERIVE
 1978       name : label := get_name_value(SELF);
 1979     WHERE
 1980   wr1: (SIZEOF(elements) > 1) OR ((SIZEOF(elements) = 1) 
 1981      AND (elements
 1982     [1].exponent <> 1));
 1983   wr2: SIZEOF(USEDIN(SELF,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 1984     'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
 1985   END_ENTITY; -- derived_unit
 1986 
 1987   ENTITY derived_unit_element;
 1988       unit     : named_unit;
 1989       exponent : REAL;
 1990   END_ENTITY; -- derived_unit_element
 1991 
 1992   ENTITY description_attribute;
 1993       attribute_value : text;
 1994       described_item  : description_attribute_select;
 1995   END_ENTITY; -- description_attribute
 1996 
 1997   ENTITY descriptive_representation_item
 1998     SUBTYPE OF (representation_item);
 1999       description : text;
 2000   END_ENTITY; -- descriptive_representation_item
 2001 
 2002   ENTITY dimension_related_tolerance_zone_element;
 2003       related_dimension : dimensional_location;
 2004       related_element   : tolerance_zone_definition;
 2005   END_ENTITY; -- dimension_related_tolerance_zone_element
 2006 
 2007   ENTITY dimensional_characteristic_representation;
 2008       dimension      : dimensional_characteristic;
 2009       representation : shape_dimension_representation;
 2010   END_ENTITY; -- dimensional_characteristic_representation
 2011 
 2012   ENTITY dimensional_exponents;
 2013       length_exponent         : REAL;
 2014       mass_exponent: REAL;
 2015       time_exponent: REAL;
 2016       electric_current_exponent          : REAL;
 2017       thermodynamic_temperature_exponent : REAL;
 2018       amount_of_substance_exponent       : REAL;
 2019       luminous_intensity_exponent        : REAL;
 2020   END_ENTITY; -- dimensional_exponents
 2021 
 2022   ENTITY dimensional_location
 2023     SUPERTYPE OF (ONEOF (angular_location, 
 2024           dimensional_location_with_path))
 2025     SUBTYPE OF (shape_aspect_relationship);
 2026   END_ENTITY; -- dimensional_location
 2027 
 2028   ENTITY dimensional_location_with_path
 2029     SUBTYPE OF (dimensional_location);
 2030       path : shape_aspect;
 2031   END_ENTITY; -- dimensional_location_with_path
 2032 
 2033   ENTITY dimensional_measurement_representation
 2034     SUBTYPE OF (representation);
 2035   END_ENTITY; -- dimensional_measurement_representation
 2036 
 2037   ENTITY dimensional_size
 2038     SUPERTYPE OF (ONEOF (angular_size,
 2039          dimensional_size_with_path));
 2040       applies_to : shape_aspect;
 2041       name       : label;
 2042     WHERE
 2043   wr1: applies_to.product_definitional = TRUE;
 2044   END_ENTITY; -- dimensional_size
 2045 
 2046   ENTITY dimensional_size_with_path
 2047     SUBTYPE OF (dimensional_size);
 2048       path : shape_aspect;
 2049   END_ENTITY; -- dimensional_size_with_path
 2050 
 2051   ENTITY directed_dimensional_location
 2052     SUBTYPE OF (dimensional_location);
 2053   END_ENTITY; -- directed_dimensional_location
 2054 
 2055   ENTITY direction
 2056     SUBTYPE OF (geometric_representation_item);
 2057       direction_ratios : LIST [2:3] OF REAL;
 2058     WHERE
 2059   wr1: SIZEOF(QUERY ( tmp <* direction_ratios | (tmp <> 0) )) > 0;
 2060   END_ENTITY; -- direction
 2061 
 2062   ENTITY direction_shape_representation
 2063     SUBTYPE OF (shape_representation);
 2064     WHERE
 2065   wr1: SIZEOF(SELF.items) = 1;
 2066   wr2: SIZEOF(QUERY ( it <* SELF.items | (NOT (
 2067     'DIMENSIONAL_INSPECTION_SCHEMA.DIRECTION' IN TYPEOF(it))) )) 
 2068     = 0;
 2069   END_ENTITY; -- direction_shape_representation
 2070 
 2071   ENTITY dm_analysis_dofs_dml
 2072     SUBTYPE OF (dimensional_measurement_representation);
 2073     WHERE
 2074   wr1: SIZEOF(QUERY ( repi <* SELF.items | ((SIZEOF([
 2075     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 2076     'DIMENSIONAL_INSPECTION_SCHEMA.QUALIFIED_REPRESENTATION_ITEM'] 
 2077     * TYPEOF(repi)) = 2) AND (repi.name = 'transx')) )) = 1;
 2078   wr2: SIZEOF(QUERY ( repi <* SELF.items | ((SIZEOF([
 2079     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 2080     'DIMENSIONAL_INSPECTION_SCHEMA.QUALIFIED_REPRESENTATION_ITEM'] 
 2081     * TYPEOF(repi)) = 2) AND (repi.name = 'transy')) )) = 1;
 2082   wr3: SIZEOF(QUERY ( repi <* SELF.items | ((SIZEOF([
 2083     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 2084     'DIMENSIONAL_INSPECTION_SCHEMA.QUALIFIED_REPRESENTATION_ITEM'] 
 2085     * TYPEOF(repi)) = 2) AND (repi.name = 'transz')) )) = 1;
 2086   wr4: SIZEOF(QUERY ( repi <* SELF.items | ((SIZEOF([
 2087     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 2088     'DIMENSIONAL_INSPECTION_SCHEMA.QUALIFIED_REPRESENTATION_ITEM'] 
 2089     * TYPEOF(repi)) = 2) AND (repi.name = 'rotx')) )) = 1;
 2090   wr5: SIZEOF(QUERY ( repi <* SELF.items | ((SIZEOF([
 2091     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 2092     'DIMENSIONAL_INSPECTION_SCHEMA.QUALIFIED_REPRESENTATION_ITEM'] 
 2093     * TYPEOF(repi)) = 2) AND (repi.name = 'roty')) )) = 1;
 2094   wr6: SIZEOF(QUERY ( repi <* SELF.items | ((SIZEOF([
 2095     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 2096     'DIMENSIONAL_INSPECTION_SCHEMA.QUALIFIED_REPRESENTATION_ITEM'] 
 2097     * TYPEOF(repi)) = 2) AND (repi.name = 'rotz')) )) = 1;
 2098   END_ENTITY; -- dm_analysis_dofs_dml
 2099 
 2100   ENTITY dm_dimension_parameter
 2101     SUBTYPE OF (dm_result_parameter);
 2102     WHERE
 2103   wr1: SIZEOF(QUERY ( pdr <* USEDIN(SELF,
 2104     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2105     'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | 
 2106     ('DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT' 
 2107  IN TYPEOF(pdr.definition.definition)) )) <= 1;
 2108  
 2109   wr2: SIZEOF(QUERY ( sri <* SELF.items | ((
 2110     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM' 
 2111     IN TYPEOF(sri)) AND (sri.name = 'specification')) )) <= 1;
 2112   wr3: SIZEOF(QUERY ( sri <* SELF.items | (
 2113     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM' 
 2114     IN TYPEOF(sri)) )) <= 2;
 2115   END_ENTITY; -- dm_dimension_parameter
 2116 
 2117   ENTITY dm_execution_result
 2118     SUBTYPE OF (executed_action);
 2119     WHERE
 2120   wr1: 'DIMENSIONAL_INSPECTION_SCHEMA.DM_PROGRAM_RUN' IN TYPEOF(SELF.
 2121     chosen_method);
 2122   wr2: SIZEOF(QUERY ( rp <* USEDIN(SELF,
 2123     'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY.DEFINITION')
 2124      | ('DIMENSIONAL_INSPECTION_SCHEMA.DM_EXECUTION_RESULT_MEASUREMENT' 
 2125     IN TYPEOF(rp)) )) >= 1;
 2126   END_ENTITY; -- dm_execution_result
 2127 
 2128   ENTITY dm_execution_result_measurement
 2129     SUBTYPE OF (action_property);
 2130     WHERE
 2131   wr1: NOT (SIZEOF(QUERY ( apr <* USEDIN(SELF,
 2132     'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')
 2133      | (SIZEOF(QUERY ( it <* apr.representation.items | ((
 2134      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2135     IN TYPEOF(it)) AND (it.name = 'application name')) )) <= 1) )) 
 2136     = 0);
 2137   wr2: NOT (SIZEOF(QUERY ( apr <* USEDIN(SELF,
 2138   'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')
 2139      | (SIZEOF(QUERY ( it <* apr.representation.items | ((
 2140      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2141     IN TYPEOF(it)) AND (it.name = 'application version')) )) <= 
 2142     1) )) = 0);
 2143   wr3: NOT (SIZEOF(QUERY ( apr <* USEDIN(SELF,
 2144   'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')
 2145      | (SIZEOF(QUERY ( it <* apr.representation.items | ((
 2146      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2147     IN TYPEOF(it)) AND (it.name = 'vendor name')) )) <= 1) )) = 
 2148     0);
 2149   wr4: SIZEOF(QUERY ( apr <* USEDIN(SELF,
 2150   'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')
 2151      | ((apr.representation.name = 'measurement points') AND (
 2152     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT' IN TYPEOF(apr.
 2153     representation))) )) <= 1;
 2154   wr5: SIZEOF(QUERY ( apr <* USEDIN(SELF,
 2155   'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')
 2156      | ('DIMENSIONAL_INSPECTION_SCHEMA.DM_RESULT_PARAMETER' IN 
 2157     TYPEOF(apr.representation)) )) = 1;
 2158   END_ENTITY; -- dm_execution_result_measurement
 2159 
 2160   ENTITY dm_feature_analysis_mode_dml
 2161     SUBTYPE OF (dimensional_measurement_representation);
 2162     WHERE
 2163   wr1: SIZEOF(QUERY ( repi <* SELF.items | ((NOT ((
 2164   'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2165     IN TYPEOF(repi)) AND (repi.name = 'axis'))) AND (SELF.
 2166     description IN ['least square','minimum radius',
 2167     'cross section centers'])) )) <= 1;
 2168   wr2: SIZEOF(QUERY ( repi <* SELF.items | ((NOT ((
 2169   'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2170     IN TYPEOF(repi)) AND (repi.name = 'aelpr'))) AND (SELF.
 2171     description IN ['least square','minimum maximum'])) )) <= 1;
 2172   wr3: SIZEOF(QUERY ( repi <* SELF.items | ((NOT ((
 2173   'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2174     IN TYPEOF(repi)) AND (repi.name = 'cccpst'))) AND (SELF.
 2175     description IN ['least square','minimum maximum',
 2176     'circumscribed circle or cylinder',
 2177     'maximum inscribed circle or cylinder'])) )) <= 1;
 2178   wr4: SIZEOF(QUERY ( repi <* SELF.items | ((NOT ((
 2179   'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2180     IN TYPEOF(repi)) AND (repi.name = 'curve'))) AND (SELF.
 2181     description IN ['least square','minimum maximum','bspline'])) )) 
 2182     <= 1;
 2183   wr5: SIZEOF(QUERY ( repi <* SELF.items | ((NOT ((
 2184   'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2185     IN TYPEOF(repi)) AND (repi.name = 'limits'))) AND (SELF.
 2186     description IN ['functional','mrs average','two point'])) )) 
 2187     <= 1;
 2188   wr6: SIZEOF(QUERY ( repi <* SELF.items | ((NOT ((
 2189   'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2190     IN TYPEOF(repi)) AND (repi.name = 'surface'))) AND (SELF.
 2191     description IN ['least square','minimum maximum','nurbs',
 2192     'bezier'])) )) <= 1;
 2193   wr7: SIZEOF(QUERY ( repi <* SELF.items | ((NOT ((
 2194   'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2195     IN TYPEOF(repi)) AND (repi.name = 'axis extrapolate'))) AND 
 2196     (SELF.description IN ['TRUE','FALSE'])) )) <= 1;
 2197   END_ENTITY; -- dm_feature_analysis_mode_dml
 2198 
 2199   ENTITY dm_feature_definition
 2200     SUBTYPE OF (characterized_object);
 2201     WHERE
 2202   wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(
 2203     SELF) | ('DIMENSIONAL_INSPECTION_SCHEMA.'+
 2204     'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 2205     IN TYPEOF(pdr.used_representation)) )) >= 1;
 2206   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2207   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2208      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 2209     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2210     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 2211     'DIMENSIONAL_INSPECTION_SCHEMA.'+
 2212     'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 2213     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 2214     QUERY ( it <* impl_rep.used_representation.items | ((
 2215     'DIMENSIONAL_INSPECTION_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND
 2216      (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0;
 2217   wr3: SIZEOF(['DIMENSIONAL_INSPECTION_SCHEMA.DMF_ARC',
 2218     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_LINE_UNBOUNDED',
 2219     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_CIRCLE',
 2220     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_PATTERN',
 2221     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_CONE',
 2222     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_PLANE',
 2223     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_PLANE_CLOSED_PARALLEL',
 2224     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_CYLINDER',
 2225     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_ELLIPSE',
 2226     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_PLANE_SYMMETRIC',
 2227     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_GEOMETRIC_CURVE',
 2228     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_POINT',
 2229     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_GEOMETRIC_SURFACE',
 2230     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_EDGE_POINT',
 2231     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_SPHERE',
 2232     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_GENERIC_FEATURE',
 2233     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_LINE_BOUNDED',
 2234     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_TORUS',
 2235     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_LINE_CLOSED_PARALLEL',
 2236     'DIMENSIONAL_INSPECTION_SCHEMA.DMF_SURFACE_OF_REVOLUTION_DML'] 
 2237     * TYPEOF(SELF)) = 1;
 2238   END_ENTITY; -- dm_feature_definition
 2239 
 2240   ENTITY dm_feature_relationship
 2241     SUBTYPE OF (shape_aspect_relationship);
 2242   END_ENTITY; -- dm_feature_relationship
 2243 
 2244   ENTITY dm_instanced_feature
 2245     SUBTYPE OF (dm_feature_definition, shape_aspect);
 2246     WHERE
 2247   wr1: 'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION' IN TYPEOF(
 2248     SELF.of_shape.definition);
 2249   wr2: SELF.product_definitional;
 2250   END_ENTITY; -- dm_instanced_feature
 2251 
 2252   ENTITY dm_parameter_analysis_dml
 2253     SUBTYPE OF (action_property);
 2254     WHERE
 2255   wr1: SIZEOF(QUERY ( apr <* USEDIN(SELF,
 2256   'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')
 2257      | ('DIMENSIONAL_INSPECTION_SCHEMA.DM_FEATURE_ANALYSIS_MODE_DML' 
 2258     IN TYPEOF(apr.representation)) )) = 1;
 2259   wr2: SIZEOF(QUERY ( apr <* USEDIN(SELF,
 2260   'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')
 2261      | ('DIMENSIONAL_INSPECTION_SCHEMA.DM_TOLERANCE_ANALYSIS_MODE_DML' 
 2262     IN TYPEOF(apr.representation)) )) = 1;
 2263   wr3: SIZEOF(QUERY ( apr <* USEDIN(SELF,
 2264   'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')
 2265      | ('DIMENSIONAL_INSPECTION_SCHEMA.DM_ANALYSIS_DOFS_DML' IN 
 2266     TYPEOF(apr.representation)) )) = 1;
 2267   END_ENTITY; -- dm_parameter_analysis_dml
 2268 
 2269   ENTITY dm_parameter_value_limits
 2270     SUBTYPE OF (compound_representation_item);
 2271     WHERE
 2272     wr1: (SIZEOF(QUERY ( it <* SELF.item_element |        
 2273   (((SIZEOF([
 2274   'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 2275   'DIMENSIONAL_INSPECTION_SCHEMA.QUALIFIED_REPRESENTATION_ITEM'] *
 2276   TYPEOF(it)) = 2) AND (it.name = 'calculated limit')) AND 
 2277   ((SIZEOF(QUERY(qri <* it.qualifiers|
 2278          (('DIMENSIONAL_INSPECTION_SCHEMA.TYPE_QUALIFIER' IN TYPEOF(qri)) AND 
 2279          (qri.name='limits method')  )))>0)))))=1); 
 2280   END_ENTITY; -- dm_parameter_value_limits
 2281 
 2282   ENTITY dm_point
 2283     SUBTYPE OF (representation);
 2284     WHERE
 2285   wr1: SIZEOF(QUERY ( repi <* SELF.items | (NOT ((
 2286     'DIMENSIONAL_INSPECTION_SCHEMA.CARTESIAN_POINT' IN TYPEOF(
 2287     repi)) AND (repi.name = 'measured point'))) )) = 1;
 2288   wr2: SIZEOF(QUERY ( repi <* SELF.items | (NOT ((
 2289     'DIMENSIONAL_INSPECTION_SCHEMA.CARTESIAN_POINT' IN TYPEOF(
 2290     repi)) AND (repi.name = 'expected point'))) )) <= 1;
 2291   END_ENTITY; -- dm_point
 2292 
 2293   ENTITY dm_point_parameter
 2294     SUBTYPE OF (dm_result_parameter);
 2295     WHERE
 2296   wr1: SIZEOF(QUERY ( repi <* SELF.items | (
 2297     'DIMENSIONAL_INSPECTION_SCHEMA.CARTESIAN_POINT' IN TYPEOF(
 2298     repi)) )) = 1;
 2299   END_ENTITY; -- dm_point_parameter
 2300 
 2301   ENTITY dm_program_identification
 2302     SUBTYPE OF (action_resource_requirement);
 2303     WHERE
 2304   wr1: SIZEOF(QUERY ( rp <* USEDIN(SELF,
 2305     'DIMENSIONAL_INSPECTION_SCHEMA.RESOURCE_PROPERTY.RESOURCE')
 2306      | (rp.name = 'angular units dml') )) <= 1;
 2307   wr2: SIZEOF(QUERY ( rp <* USEDIN(SELF,
 2308     'DIMENSIONAL_INSPECTION_SCHEMA.RESOURCE_PROPERTY.RESOURCE')
 2309      | (rp.name = 'linear units dml') )) <= 1;
 2310   wr3: SIZEOF(QUERY ( rp <* USEDIN(SELF,
 2311     'DIMENSIONAL_INSPECTION_SCHEMA.RESOURCE_PROPERTY.RESOURCE')
 2312      | (rp.name = 'tolerance standard dml') )) <= 1;
 2313   wr4: (SIZEOF(QUERY ( adr <* USEDIN(SELF,
 2314   'DIMENSIONAL_INSPECTION_SCHEMA.APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS')
 2315      | ((adr.role.name = 'program custodian') AND (
 2316     'DIMENSIONAL_INSPECTION_SCHEMA.ORGANIZATION' IN TYPEOF(adr.
 2317     assigned_organization))) )) <= 1) OR (SIZEOF(QUERY ( adr <* 
 2318     USEDIN(SELF,
 2319     'DIMENSIONAL_INSPECTION_SCHEMA.'+
 2320     'APPLIED_PERSON_ORGANIZATION_ASSIGNMENT.ITEMS')
 2321      | ((adr.role.name = 'program custodian') AND (
 2322     'DIMENSIONAL_INSPECTION_SCHEMA.PERSON_AND_ORGANIZATION' IN 
 2323     TYPEOF(adr.assigned_person_and_organization))) )) <= 1);
 2324   END_ENTITY; -- dm_program_identification
 2325 
 2326   ENTITY dm_program_run
 2327     SUBTYPE OF (action_method);
 2328     WHERE
 2329   wr1 : SIZEOF(QUERY ( ap <* USEDIN(SELF,
 2330      'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY.DEFINITION')
 2331       | (NOT (SIZEOF(QUERY ( apr <* USEDIN(ap,
 2332       'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')
 2333       | (NOT (SIZEOF(QUERY ( it <* apr.representation.items | ((
 2334      SIZEOF(['DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 2335      'DIMENSIONAL_INSPECTION_SCHEMA.QUALIFIED_REPRESENTATION_ITEM'] 
 2336      * TYPEOF(it)) = 2) AND (it.name = 'measurement temperature')) )) 
 2337      >= 0)) )) = 0)) )) = 0;
 2338   wr2 : SIZEOF(QUERY ( ap <* USEDIN(SELF,
 2339      'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY.DEFINITION')
 2340       | (NOT (SIZEOF(QUERY ( apr <* USEDIN(ap,
 2341       'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')
 2342       | (NOT (SIZEOF(QUERY ( it <* apr.representation.items | ((
 2343      SIZEOF(['DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 2344      'DIMENSIONAL_INSPECTION_SCHEMA.QUALIFIED_REPRESENTATION_ITEM'] 
 2345      * TYPEOF(it)) = 2) AND (it.name = 'workpiece temperature')) )) 
 2346      >= 0)) )) = 0)) )) = 0;
 2347   wr3 : SIZEOF(QUERY ( ap <* USEDIN(SELF,
 2348      'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY.DEFINITION')
 2349       | (NOT (SIZEOF(QUERY ( apr <* USEDIN(ap,
 2350       'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY_REPRESENTATION.PROPERTY')
 2351       | (NOT (SIZEOF(QUERY ( it <* apr.representation.items | ((
 2352      SIZEOF(['DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 2353      'DIMENSIONAL_INSPECTION_SCHEMA.QUALIFIED_REPRESENTATION_ITEM'] 
 2354      * TYPEOF(it)) = 2) AND (it.name = 'measurement humidity')) )) 
 2355      >= 0)) )) = 0)) )) = 0;
 2356   wr4 : SIZEOF(QUERY ( ap <* USEDIN(SELF,
 2357      'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_RESOURCE.USAGE') | (
 2358      ap.name = 'part inspection status') )) <= 1;
 2359   wr5 : SIZEOF(QUERY ( ap <* USEDIN(SELF,
 2360      'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_RESOURCE.USAGE') | (
 2361      ap.name = 'url') )) <= 1;
 2362   wr6 : SIZEOF(QUERY ( arr <* USEDIN(SELF,
 2363     'DIMENSIONAL_INSPECTION_SCHEMA.'+
 2364     'ACTION_RESOURCE_REQUIREMENT.OPERATIONS')
 2365       | (
 2366      'DIMENSIONAL_INSPECTION_SCHEMA.DM_PROGRAM_IDENTIFICATION' 
 2367      IN TYPEOF(arr)) )) = 1;
 2368   wr7 : (SIZEOF(QUERY ( adr <* USEDIN(SELF,
 2369      'DIMENSIONAL_INSPECTION_SCHEMA.'+
 2370      'APPLIED_ORGANIZATION_ASSIGNMENT.ITEMS')
 2371       | ((adr.role.name = 'run administrator') AND (
 2372      'DIMENSIONAL_INSPECTION_SCHEMA.ORGANIZATION' IN TYPEOF(adr.
 2373      assigned_organization))) )) <= 1) OR (SIZEOF(
 2374      QUERY ( adr <* USEDIN(SELF,
 2375      'DIMENSIONAL_INSPECTION_SCHEMA.'+
 2376      'APPLIED_PERSON_ORGANIZATION_ASSIGNMENT.ITEMS')
 2377       | ((adr.role.name = 'run administrator') AND (
 2378      'DIMENSIONAL_INSPECTION_SCHEMA.PERSON_AND_ORGANIZATION' IN 
 2379      TYPEOF(adr.assigned_person_and_organization))) )) <= 1);
 2380   wr8 : SIZEOF(QUERY ( rp <* USEDIN(SELF,
 2381      'DIMENSIONAL_INSPECTION_SCHEMA.ACTION_PROPERTY.DEFINITION')
 2382       | ('DIMENSIONAL_INSPECTION_SCHEMA.MEASURMENT_LOCATION' IN 
 2383      TYPEOF(rp)) )) <= 1;
 2384   wr9 : (SIZEOF(QUERY ( adr <* USEDIN(SELF,
 2385     'DIMENSIONAL_INSPECTION_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS')
 2386       | ((adr.role.name = 'run end') AND (
 2387      'DIMENSIONAL_INSPECTION_SCHEMA.DATE' IN TYPEOF(adr.
 2388      assigned_date))) )) <= 1) OR (SIZEOF(QUERY ( adr <* USEDIN(
 2389      SELF,'DIMENSIONAL_INSPECTION_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS')
 2390       | ((adr.role.name = 'run end') AND (
 2391      'DIMENSIONAL_INSPECTION_SCHEMA.CALENDAR_DATE' IN TYPEOF(adr
 2392      .assigned_date))) )) <= 1);
 2393   wr10: (SIZEOF(QUERY ( adr <* USEDIN(SELF,
 2394     'DIMENSIONAL_INSPECTION_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS')
 2395       | ((adr.role.name = 'run start') AND (
 2396      'DIMENSIONAL_INSPECTION_SCHEMA.DATE' IN TYPEOF(adr.
 2397      assigned_date))) )) <= 1) OR (SIZEOF(QUERY ( adr <* USEDIN(
 2398      SELF,'DIMENSIONAL_INSPECTION_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS')
 2399       | ((adr.role.name = 'run start') AND (
 2400      'DIMENSIONAL_INSPECTION_SCHEMA.CALENDAR_DATE' IN TYPEOF(adr
 2401      .assigned_date))) )) <= 1);
 2402   wr11: (SIZEOF(QUERY ( adr <* USEDIN(SELF,
 2403      'DIMENSIONAL_INSPECTION_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS')
 2404       | ((adr.role.name = 'run date') AND (
 2405      'DIMENSIONAL_INSPECTION_SCHEMA.DATE' IN TYPEOF(adr.
 2406      assigned_date))) )) <= 1) OR (SIZEOF(QUERY ( adr <* USEDIN(
 2407      SELF,'DIMENSIONAL_INSPECTION_SCHEMA.APPLIED_DATE_ASSIGNMENT.ITEMS')
 2408       | ((adr.role.name = 'run date') AND (
 2409      'DIMENSIONAL_INSPECTION_SCHEMA.CALENDAR_DATE' IN TYPEOF(adr
 2410      .assigned_date))) )) <= 1);
 2411   END_ENTITY; -- dm_program_run
 2412 
 2413   ENTITY dm_result_parameter
 2414     SUBTYPE OF (representation);
 2415     WHERE
 2416   wr1: SIZEOF(QUERY ( sri <* SELF.items | (
 2417     'DIMENSIONAL_INSPECTION_SCHEMA.DM_PARAMETER_VALUE_LIMITS' IN
 2418      TYPEOF(sri)) )) = 1;
 2419   wr2: SIZEOF(QUERY ( sri <* SELF.items | ((
 2420   'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2421     IN TYPEOF(sri)) AND (sri.name = 'calculation method')) )) <=
 2422      1;
 2423   wr3: SIZEOF(QUERY ( apr <* USEDIN(SELF,
 2424     'DIMENSIONAL_INSPECTION_SCHEMA.'+
 2425     'ACTION_PROPERTY_REPRESENTATION.REPRESENTATION')
 2426      | (
 2427     'DIMENSIONAL_INSPECTION_SCHEMA.DM_PARAMETER_ANALYSIS_DML' IN
 2428      TYPEOF(apr.property)) )) <= 1;
 2429   END_ENTITY; -- dm_result_parameter
 2430 
 2431   ENTITY dm_shape_representation_with_parameters
 2432     SUBTYPE OF (shape_representation);
 2433     WHERE
 2434   wr1: SIZEOF(QUERY ( it <* SELF.items | (NOT (SIZEOF([
 2435     'DIMENSIONAL_INSPECTION_SCHEMA.PLACEMENT',
 2436     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 2437     'DIMENSIONAL_INSPECTION_SCHEMA.COMPOUND_REPRESENTATION_ITEM',
 2438     'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM'] 
 2439     * TYPEOF(it)) = 1)) )) = 0;
 2440   END_ENTITY; -- dm_shape_representation_with_parameters
 2441 
 2442   ENTITY dm_tolerance_analysis_mode_dml
 2443     SUBTYPE OF (dimensional_measurement_representation);
 2444     WHERE
 2445   wr1: SIZEOF(QUERY ( repi <* SELF.items | ((NOT ((
 2446   'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2447     IN TYPEOF(repi)) AND (repi.name = 'method'))) AND (SELF.
 2448     description IN ['least square 3d','least square normal',
 2449     'minimum deviation 3d','standard'])) )) <= 1;
 2450   wr2: SIZEOF(QUERY ( repi <* SELF.items | ((NOT ((
 2451   'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2452     IN TYPEOF(repi)) AND (repi.name = 'option'))) AND (SELF.
 2453     description IN ['high point','best fit'])) )) <= 1;
 2454   wr3: SIZEOF(QUERY ( repi <* SELF.items | ((NOT ((
 2455   'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2456     IN TYPEOF(repi)) AND (repi.name = 'setting'))) AND (SELF.
 2457     description IN ['inner','outer','standard'])) )) <= 1;
 2458   END_ENTITY; -- dm_tolerance_analysis_mode_dml
 2459 
 2460   ENTITY dm_vector_parameter
 2461     SUBTYPE OF (dm_result_parameter);
 2462     WHERE
 2463   wr1: SIZEOF(QUERY ( repi <* SELF.items | (
 2464     'DIMENSIONAL_INSPECTION_SCHEMA.VECTOR' IN TYPEOF(repi)) )) =
 2465      1;
 2466   END_ENTITY; -- dm_vector_parameter
 2467 
 2468   ENTITY dmf_arc
 2469     SUBTYPE OF (dm_feature_definition);
 2470     WHERE
 2471   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2472     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2473      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 2474     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2475     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 2476     'DIMENSIONAL_INSPECTION_SCHEMA.'+
 2477     'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 2478     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 2479     impl_rep.used_representation.items) = 2)) )) = 0)) )) = 0;
 2480   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2481   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2482      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2483     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2484     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2485     'DIMENSIONAL_INSPECTION_SCHEMA.'+
 2486     'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 2487     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 2488     QUERY ( srwp_i <* pdr.used_representation.items | ((srwp_i.
 2489     name = 'orientation') OR (srwp_i.name = 'inner outer')) )) =
 2490      SIZEOF(pdr.used_representation.items))) )) = 1) )) = 1;
 2491   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2492     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2493      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 2494     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2495     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 2496       'DIMENSIONAL_INSPECTION_SCHEMA.'+
 2497       'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 2498     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 2499     QUERY ( it <* impl_rep.used_representation.items | (((
 2500       'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2501     IN TYPEOF(it)) AND (it.name = 'inner outer')) AND ((it.
 2502     description = 'inner') OR (it.description = 'outer'))) )) = 
 2503     1)) )) = 0)) )) = 0;
 2504   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2505     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2506      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2507     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2508     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2509     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 2510     TYPEOF(pdr.used_representation)) AND (pdr.
 2511     used_representation.name = 'start vector')) )) = 1)) )) = 0;
 2512   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2513     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2514      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2515     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2516     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2517     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 2518     TYPEOF(pdr.used_representation)) AND (pdr.
 2519     used_representation.name = 'end vector')) )) = 1)) )) = 0;
 2520   wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2521     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2522      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2523     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2524     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2525     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 2526     TYPEOF(pdr.used_representation)) AND (pdr.
 2527     used_representation.name = 'axis direction vector')) )) = 1)) )) 
 2528     = 0;
 2529   wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF, 
 2530    'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2531      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2532     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2533     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2534     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 2535     TYPEOF(pdr.used_representation)) AND (pdr.
 2536     used_representation.name = 'center point')) )) = 1)) )) = 0;
 2537   wr8: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2538     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2539      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2540     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2541     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2542     'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 2543     TYPEOF(pdr.used_representation)) AND (pdr.
 2544     used_representation.name = 'radius')) )) = 1)) )) = 0;
 2545   END_ENTITY; -- dmf_arc
 2546 
 2547   ENTITY dmf_circle
 2548     SUBTYPE OF (dm_feature_definition);
 2549     WHERE
 2550   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2551    'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2552      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 2553     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2554     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 2555      'DIMENSIONAL_INSPECTION_SCHEMA.'+
 2556      'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 2557     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 2558     impl_rep.used_representation.items) = 2)) )) = 0)) )) = 0;
 2559   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2560   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2561      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2562     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2563     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2564     'DIMENSIONAL_INSPECTION_SCHEMA.'+
 2565     'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 2566     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 2567     QUERY ( srwp_i <* pdr.used_representation.items | ((srwp_i.
 2568     name = 'orientation') OR (srwp_i.name = 'inner outer')) )) =
 2569      SIZEOF(pdr.used_representation.items))) )) = 1) )) = 1;
 2570   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2571     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2572      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 2573     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2574     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 2575     'DIMENSIONAL_INSPECTION_SCHEMA.'+
 2576     'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 2577     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 2578     QUERY ( it <* impl_rep.used_representation.items | (((
 2579     'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2580     IN TYPEOF(it)) AND (it.name = 'inner outer')) AND ((it.
 2581     description = 'inner') OR (it.description = 'outer'))) )) = 
 2582     1)) )) = 0)) )) = 0;
 2583   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2584    'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2585      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2586     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2587     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2588     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 2589     TYPEOF(pdr.used_representation)) AND (pdr.
 2590     used_representation.name = 'axis direction vector')) )) = 1)) )) 
 2591     = 0;
 2592   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2593    'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2594      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2595     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2596     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2597     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 2598     TYPEOF(pdr.used_representation)) AND (pdr.
 2599     used_representation.name = 'center point')) )) = 1)) )) = 0;
 2600   wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2601    'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2602      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2603     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2604     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2605     'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 2606     TYPEOF(pdr.used_representation)) AND (pdr.
 2607     used_representation.name = 'diameter')) )) = 1)) )) = 0;
 2608   END_ENTITY; -- dmf_circle
 2609 
 2610   ENTITY dmf_cone
 2611     SUBTYPE OF (dm_feature_definition);
 2612     WHERE
 2613   wr1 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2614    'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2615       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 2616      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2617      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 2618      'DIMENSIONAL_INSPECTION_SCHEMA.'
 2619       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 2620      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 2621      impl_rep.used_representation.items) = 2)) )) = 0)) )) = 0;
 2622   wr2 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2623    'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2624       | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2625      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2626      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2627       'DIMENSIONAL_INSPECTION_SCHEMA.'
 2628       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 2629      IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 2630      QUERY ( srwp_i <* pdr.used_representation.items | ((srwp_i.
 2631      name = 'orientation') OR (srwp_i.name = 'inner outer')) )) 
 2632      = SIZEOF(pdr.used_representation.items))) )) = 1) )) = 1;
 2633   wr3 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2634     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2635       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 2636      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2637      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 2638       'DIMENSIONAL_INSPECTION_SCHEMA.'
 2639       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 2640      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 2641      QUERY ( it <* impl_rep.used_representation.items | (((
 2642       'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2643      IN TYPEOF(it)) AND (it.name = 'inner outer')) AND ((it.
 2644      description = 'inner') OR (it.description = 'outer'))) )) =
 2645       1)) )) = 0)) )) = 0;
 2646   wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2647    'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2648       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2649      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2650      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2651      'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 2652      TYPEOF(pdr.used_representation)) AND (pdr.
 2653      used_representation.name = 'start vector')) )) <= 1)) )) = 
 2654      0;
 2655   wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2656    'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2657       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2658      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2659      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2660      'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 2661      TYPEOF(pdr.used_representation)) AND (pdr.
 2662      used_representation.name = 'end vector')) )) <= 1)) )) = 0;
 2663   wr6 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2664   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2665       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2666      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2667      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2668      'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 2669      TYPEOF(pdr.used_representation)) AND (pdr.
 2670      used_representation.name = 'axis direction vector')) )) = 1)) )) 
 2671      = 0;
 2672   wr7 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2673   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2674       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2675      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2676      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2677      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 2678      TYPEOF(pdr.used_representation)) AND (pdr.
 2679      used_representation.name = 'diameter')) )) = 1)) )) = 0;
 2680   wr8 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2681   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2682       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2683      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2684      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2685      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 2686      TYPEOF(pdr.used_representation)) AND (pdr.
 2687      used_representation.name = 'start length dml')) )) <= 1)) )) 
 2688      = 0;
 2689   wr9 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2690   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2691       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2692      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2693      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2694      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 2695      TYPEOF(pdr.used_representation)) AND (pdr.
 2696      used_representation.name = 'end length dml')) )) <= 1)) )) 
 2697      = 0;
 2698   wr10: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2699   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2700       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2701      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2702      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2703      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 2704      TYPEOF(pdr.used_representation)) AND (pdr.
 2705      used_representation.name = 'include angle')) )) = 1)) )) = 
 2706      0;
 2707   wr11: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2708   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2709       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2710      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2711      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2712      'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 2713      TYPEOF(pdr.used_representation)) AND (pdr.
 2714      used_representation.name = 'start point')) )) <= 1)) )) = 0;
 2715   wr12: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2716   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2717       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2718      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2719      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2720      'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 2721      TYPEOF(pdr.used_representation)) AND (pdr.
 2722      used_representation.name = 'end point')) )) <= 1)) )) = 0;
 2723   wr13: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2724   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2725       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2726      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2727      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2728      'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 2729      TYPEOF(pdr.used_representation)) AND (pdr.
 2730      used_representation.name = 'apex point')) )) = 1)) )) = 0;
 2731   END_ENTITY; -- dmf_cone
 2732 
 2733   ENTITY dmf_cylinder
 2734     SUBTYPE OF (dm_feature_definition);
 2735     WHERE
 2736   wr1 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2737   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2738       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 2739      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2740      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 2741      'DIMENSIONAL_INSPECTION_SCHEMA.'
 2742       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 2743      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 2744      impl_rep.used_representation.items) = 2)) )) = 0)) )) = 0;
 2745   wr2 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2746   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2747       | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2748      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2749      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2750      'DIMENSIONAL_INSPECTION_SCHEMA.'
 2751       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 2752      IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 2753      QUERY ( srwp_i <* pdr.used_representation.items | ((srwp_i.
 2754      name = 'orientation') OR (srwp_i.name = 'inner outer')) )) 
 2755      = SIZEOF(pdr.used_representation.items))) )) = 1) )) = 1;
 2756   wr3 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2757   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2758       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 2759      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2760      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 2761      'DIMENSIONAL_INSPECTION_SCHEMA.'
 2762       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 2763      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 2764      QUERY ( it <* impl_rep.used_representation.items | (((
 2765      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2766      IN TYPEOF(it)) AND (it.name = 'inner outer')) AND ((it.
 2767      description = 'inner') OR (it.description = 'outer'))) )) =
 2768       1)) )) = 0)) )) = 0;
 2769   wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2770   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2771       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2772      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2773      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2774      'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 2775      TYPEOF(pdr.used_representation)) AND (pdr.
 2776      used_representation.name = 'axis direction vector')) )) = 1)) )) 
 2777      = 0;
 2778   wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2779   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2780       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2781      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2782      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2783      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 2784      TYPEOF(pdr.used_representation)) AND (pdr.
 2785      used_representation.name = 'diameter')) )) = 1)) )) = 0;
 2786   wr6 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2787   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2788       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2789      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2790      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2791      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 2792      TYPEOF(pdr.used_representation)) AND (pdr.
 2793      used_representation.name = 'length dml')) )) <= 1)) )) = 0;
 2794   wr7 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2795   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2796       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2797      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2798      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2799      'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 2800      TYPEOF(pdr.used_representation)) AND (pdr.
 2801      used_representation.name = 'start point')) )) = 1)) )) = 0;
 2802   wr8 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2803   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2804       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2805      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2806      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2807      'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 2808      TYPEOF(pdr.used_representation)) AND (pdr.
 2809      used_representation.name = 'end point')) )) = 1)) )) = 0;
 2810   wr9 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2811   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2812       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2813      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2814      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2815      'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 2816      TYPEOF(pdr.used_representation)) AND (pdr.
 2817      used_representation.name = 'center point')) )) = 1)) )) = 0;
 2818   wr10: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2819   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2820       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2821      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2822      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2823      'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 2824      TYPEOF(pdr.used_representation)) AND (pdr.
 2825      used_representation.name = 'boundary')) )) >= 2)) )) = 0;
 2826   END_ENTITY; -- dmf_cylinder
 2827 
 2828   ENTITY dmf_edge_point
 2829     SUBTYPE OF (dm_feature_definition);
 2830     WHERE
 2831   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2832   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2833      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 2834     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2835     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 2836     'DIMENSIONAL_INSPECTION_SCHEMA.'
 2837       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 2838     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 2839     impl_rep.used_representation.items) = 1)) )) = 0)) )) = 0;
 2840   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2841   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2842      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2843     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2844     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2845     'DIMENSIONAL_INSPECTION_SCHEMA.'
 2846       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 2847     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 2848     QUERY ( srwp_i <* pdr.used_representation.items | (srwp_i.
 2849     name = 'orientation') )) = SIZEOF(pdr.used_representation.
 2850     items))) )) = 1) )) = 1;
 2851   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2852   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2853      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2854     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2855     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2856     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 2857     TYPEOF(pdr.used_representation)) AND (pdr.
 2858     used_representation.name = 'edge normal vector')) )) = 1)) )) 
 2859     = 0;
 2860   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2861   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2862      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2863     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2864     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2865     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 2866     TYPEOF(pdr.used_representation)) AND (pdr.
 2867     used_representation.name = 'surface normal vector')) )) = 1)) )) 
 2868     = 0;
 2869   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2870   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2871      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2872     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2873     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2874     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 2875     TYPEOF(pdr.used_representation)) AND (pdr.
 2876     used_representation.name = 'location point')) )) = 1)) )) = 
 2877     0;
 2878   END_ENTITY; -- dmf_edge_point
 2879 
 2880   ENTITY dmf_ellipse
 2881     SUBTYPE OF (dm_feature_definition);
 2882     WHERE
 2883   wr1 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2884   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2885       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 2886      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2887      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 2888      'DIMENSIONAL_INSPECTION_SCHEMA.'
 2889       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 2890      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 2891      impl_rep.used_representation.items) = 2)) )) = 0)) )) = 0;
 2892   wr2 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2893   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2894       | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2895      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2896      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2897      'DIMENSIONAL_INSPECTION_SCHEMA.'
 2898       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 2899      IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 2900      QUERY ( srwp_i <* pdr.used_representation.items | ((srwp_i.
 2901      name = 'orientation') OR (srwp_i.name = 'inner outer')) )) 
 2902      = SIZEOF(pdr.used_representation.items))) )) = 1) )) = 1;
 2903   wr3 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2904   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2905       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 2906      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2907      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 2908      'DIMENSIONAL_INSPECTION_SCHEMA.'
 2909       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 2910      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 2911      QUERY ( it <* impl_rep.used_representation.items | (((
 2912      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 2913      IN TYPEOF(it)) AND (it.name = 'inner outer')) AND ((it.
 2914      description = 'inner') OR (it.description = 'outer'))) )) =
 2915       1)) )) = 0)) )) = 0;
 2916   wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2917   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2918       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2919      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2920      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2921      'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 2922      TYPEOF(pdr.used_representation)) AND (pdr.
 2923      used_representation.name = 'normal direction')) )) = 1)) )) 
 2924      = 0;
 2925   wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2926   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2927       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2928      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2929      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2930      'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 2931      TYPEOF(pdr.used_representation)) AND (pdr.
 2932      used_representation.name = 'major axis vector')) )) = 1)) )) 
 2933      = 0;
 2934   wr6 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2935   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2936       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2937      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2938      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2939      'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 2940      TYPEOF(pdr.used_representation)) AND (pdr.
 2941      used_representation.name = 'center point')) )) = 1)) )) = 0;
 2942   wr7 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2943   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2944       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2945      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2946      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2947      'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 2948      TYPEOF(pdr.used_representation)) AND (pdr.
 2949      used_representation.name = 'focus point one dml')) )) <= 1)) )) 
 2950      = 0;
 2951   wr8 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2952   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2953       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2954      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2955      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2956      'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 2957      TYPEOF(pdr.used_representation)) AND (pdr.
 2958      used_representation.name = 'focus point two dml')) )) <= 1)) )) 
 2959      = 0;
 2960   wr9 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2961   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2962       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2963      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2964      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2965      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 2966      TYPEOF(pdr.used_representation)) AND (pdr.
 2967      used_representation.name = 'minor diameter')) )) = 1)) )) =
 2968       0;
 2969   wr10: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2970   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2971       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2972      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2973      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2974      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 2975      TYPEOF(pdr.used_representation)) AND (pdr.
 2976      used_representation.name = 'major diameter')) )) = 1)) )) =
 2977       0;
 2978   END_ENTITY; -- dmf_ellipse
 2979 
 2980   ENTITY dmf_generic_feature
 2981     SUBTYPE OF (dm_feature_definition);
 2982     WHERE
 2983   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2984   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2985      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 2986     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2987     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 2988     'DIMENSIONAL_INSPECTION_SCHEMA.'
 2989       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 2990     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 2991     impl_rep.used_representation.items) = 1)) )) = 0)) )) = 0;
 2992   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 2993   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 2994      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 2995     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 2996     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 2997     'DIMENSIONAL_INSPECTION_SCHEMA.'
 2998       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 2999     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 3000     QUERY ( srwp_i <* pdr.used_representation.items | (srwp_i.
 3001     name = 'orientation') )) = SIZEOF(pdr.used_representation.
 3002     items))) )) = 1) )) = 1;
 3003   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3004   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3005      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3006     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3007     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3008     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3009     TYPEOF(pdr.used_representation)) AND (pdr.
 3010     used_representation.name = 'center point')) )) = 1)) )) = 0;
 3011   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3012   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3013      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3014     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3015     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3016     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3017     TYPEOF(pdr.used_representation)) AND (pdr.
 3018     used_representation.name = 'secondary vector')) )) <= 1)) )) 
 3019     = 0;
 3020   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3021   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3022      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3023     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3024     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3025     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3026     TYPEOF(pdr.used_representation)) AND (pdr.
 3027     used_representation.name = 'vector from center of object')) )) 
 3028     = 1)) )) = 0;
 3029   wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3030   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3031      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3032     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3033     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3034     'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3035     TYPEOF(pdr.used_representation)) AND (pdr.
 3036     used_representation.name = 'parameters')) )) <= 1)) )) = 0;
 3037   END_ENTITY; -- dmf_generic_feature
 3038 
 3039   ENTITY dmf_geometric_curve
 3040     SUBTYPE OF (dm_feature_definition);
 3041     WHERE
 3042   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3043   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3044      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3045     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3046     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3047     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3048       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3049     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3050     impl_rep.used_representation.items) = 1)) )) = 0)) )) = 0;
 3051   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3052   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3053      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3054     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3055     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3056     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3057       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3058     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 3059     QUERY ( srwp_i <* pdr.used_representation.items | (srwp_i.
 3060     name = 'orientation') )) = SIZEOF(pdr.used_representation.
 3061     items))) )) = 1) )) = 1;
 3062   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3063   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3064      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3065     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3066     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3067     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3068     TYPEOF(pdr.used_representation)) AND (pdr.
 3069     used_representation.name = 'curve plane direction')) )) = 1)) )) 
 3070     = 0;
 3071   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3072   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3073      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3074     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3075     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3076     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3077     TYPEOF(pdr.used_representation)) AND (pdr.
 3078     used_representation.name = 'point on plane or curve')) )) = 
 3079     1)) )) = 0;
 3080   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3081   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3082      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3083     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3084     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3085     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3086     TYPEOF(pdr.used_representation)) AND (pdr.
 3087     used_representation.name = 'data point')) )) >= 2)) )) = 0;
 3088   END_ENTITY; -- dmf_geometric_curve
 3089 
 3090   ENTITY dmf_geometric_surface
 3091     SUBTYPE OF (dm_feature_definition);
 3092     WHERE
 3093   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3094   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3095      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3096     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3097     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3098     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3099       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3100     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3101     impl_rep.used_representation.items) = 1)) )) = 0)) )) = 0;
 3102   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3103   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3104      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3105     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3106     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3107     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3108       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3109     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 3110     QUERY ( srwp_i <* pdr.used_representation.items | (srwp_i.
 3111     name = 'orientation') )) = SIZEOF(pdr.used_representation.
 3112     items))) )) = 1) )) = 1;
 3113   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3114   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3115      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3116     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3117     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3118     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3119     TYPEOF(pdr.used_representation)) AND (pdr.
 3120     used_representation.name = 'curve plane direction')) )) = 1)) )) 
 3121     = 0;
 3122   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3123   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3124      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3125     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3126     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3127     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3128     TYPEOF(pdr.used_representation)) AND (pdr.
 3129     used_representation.name = 'point on plane or curve')) )) = 
 3130     1)) )) = 0;
 3131   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3132   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3133      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3134     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3135     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3136     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3137     TYPEOF(pdr.used_representation)) AND (pdr.
 3138     used_representation.name = 'data point')) )) >= 2)) )) = 0;
 3139   END_ENTITY; -- dmf_geometric_surface
 3140 
 3141   ENTITY dmf_line_bounded
 3142     SUBTYPE OF (dm_feature_definition);
 3143     WHERE
 3144   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3145   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3146      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3147     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3148     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3149     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3150       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3151     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3152     impl_rep.used_representation.items) = 1)) )) = 0)) )) = 0;
 3153   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3154   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3155      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3156     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3157     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3158     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3159       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3160     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 3161     QUERY ( srwp_i <* pdr.used_representation.items | (srwp_i.
 3162     name = 'orientation') )) = SIZEOF(pdr.used_representation.
 3163     items))) )) = 1) )) = 1;
 3164   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3165   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3166      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3167     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3168     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3169     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3170     TYPEOF(pdr.used_representation)) AND (pdr.
 3171     used_representation.name = 'first end point')) )) = 1)) )) =
 3172      0;
 3173   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3174   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3175      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3176     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3177     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3178     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3179     TYPEOF(pdr.used_representation)) AND (pdr.
 3180     used_representation.name = 'second end point')) )) = 1)) )) 
 3181     = 0;
 3182   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3183   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3184      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3185     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3186     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3187     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3188     TYPEOF(pdr.used_representation)) AND (pdr.
 3189     used_representation.name = 'vector dml')) )) = 1)) )) = 0;
 3190   wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3191   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3192      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3193     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3194     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3195     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3196     TYPEOF(pdr.used_representation)) AND (pdr.
 3197     used_representation.name = 'surface approach vector')) )) = 
 3198     1)) )) = 0;
 3199   wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3200   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3201      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3202     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3203     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3204     'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3205     TYPEOF(pdr.used_representation)) AND (pdr.
 3206     used_representation.name = 'length dml')) )) = 1)) )) = 0;
 3207   END_ENTITY; -- dmf_line_bounded
 3208 
 3209   ENTITY dmf_line_closed_parallel
 3210     SUBTYPE OF (dm_feature_definition);
 3211     WHERE
 3212   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3213   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3214      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3215     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3216     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3217     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3218       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3219     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3220     impl_rep.used_representation.items) = 3)) )) = 0)) )) = 0;
 3221   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3222   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3223      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3224     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3225     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3226     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3227       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3228     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 3229     QUERY ( srwp_i <* pdr.used_representation.items | (((srwp_i.
 3230     name = 'orientation') OR (srwp_i.name = 'inner outer')) OR (
 3231     srwp_i.name = 'end kind')) )) = SIZEOF(pdr.
 3232     used_representation.items))) )) = 1) )) = 1;
 3233   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3234   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3235      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3236     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3237     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3238     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3239     TYPEOF(pdr.used_representation)) AND (pdr.
 3240     used_representation.name = 'center point')) )) = 1)) )) = 0;
 3241   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3242   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3243      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3244     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3245     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3246     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3247     TYPEOF(pdr.used_representation)) AND (pdr.
 3248     used_representation.name = 'axis direction vector')) )) = 1)) )) 
 3249     = 0;
 3250   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3251   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3252      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3253     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3254     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3255     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3256     TYPEOF(pdr.used_representation)) AND (pdr.
 3257     used_representation.name = 'longitude vector')) )) = 1)) )) 
 3258     = 0;
 3259   wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3260   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3261      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3262     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3263     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3264     'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3265     TYPEOF(pdr.used_representation)) AND (pdr.
 3266     used_representation.name = 'feature length')) )) = 1)) )) = 
 3267     0;
 3268   wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3269   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3270      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3271     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3272     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3273     'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3274     TYPEOF(pdr.used_representation)) AND (pdr.
 3275     used_representation.name = 'width')) )) = 1)) )) = 0;
 3276   wr8: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3277   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3278      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3279     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3280     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3281     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3282       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3283     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3284     QUERY ( it <* impl_rep.used_representation.items | (((
 3285     'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 3286     IN TYPEOF(it)) AND (it.name = 'inner outer')) AND ((it.
 3287     description = 'inner') OR (it.description = 'outer'))) )) = 
 3288     1)) )) = 0)) )) = 0;
 3289   wr9: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3290   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3291      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3292     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3293     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3294     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3295       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3296     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3297     QUERY ( it <* impl_rep.used_representation.items | (((
 3298     'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 3299     IN TYPEOF(it)) AND (it.name = 'end kind')) AND ((it.
 3300     description = 'round') OR (it.description = 'square'))) )) =
 3301      1)) )) = 0)) )) = 0;
 3302   END_ENTITY; -- dmf_line_closed_parallel
 3303 
 3304   ENTITY dmf_line_unbounded
 3305     SUBTYPE OF (dm_feature_definition);
 3306     WHERE
 3307   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3308   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3309      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3310     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3311     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3312     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3313       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3314     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3315     impl_rep.used_representation.items) = 1)) )) = 0)) )) = 0;
 3316   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3317   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3318      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3319     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3320     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3321     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3322       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3323     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 3324     QUERY ( srwp_i <* pdr.used_representation.items | (srwp_i.
 3325     name = 'orientation') )) = SIZEOF(pdr.used_representation.
 3326     items))) )) = 1) )) = 1;
 3327   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3328   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3329      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3330     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3331     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3332     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3333     TYPEOF(pdr.used_representation)) AND (pdr.
 3334     used_representation.name = 'point on line')) )) = 1)) )) = 0;
 3335   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3336   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3337      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3338     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3339     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3340     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3341     TYPEOF(pdr.used_representation)) AND (pdr.
 3342     used_representation.name = 'surface approach vector')) )) = 
 3343     1)) )) = 0;
 3344   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3345   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3346      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3347     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3348     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3349     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3350     TYPEOF(pdr.used_representation)) AND (pdr.
 3351     used_representation.name = 'direction vector')) )) = 1)) )) 
 3352     = 0;
 3353   END_ENTITY; -- dmf_line_unbounded
 3354 
 3355   ENTITY dmf_pattern
 3356     SUBTYPE OF (dm_feature_definition);
 3357     WHERE
 3358   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3359   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3360      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3361     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3362     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3363     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3364       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3365     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3366     impl_rep.used_representation.items) = 1)) )) = 0)) )) = 0;
 3367   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3368   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3369      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3370     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3371     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3372     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3373       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3374     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 3375     QUERY ( srwp_i <* pdr.used_representation.items | (srwp_i.
 3376     name = 'orientation') )) = SIZEOF(pdr.used_representation.
 3377     items))) )) = 1) )) = 1;
 3378   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3379   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3380      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3381     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3382     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3383     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3384     TYPEOF(pdr.used_representation)) AND (pdr.
 3385     used_representation.name = 'point')) )) <= 1)) )) = 0;
 3386   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3387   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3388      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3389     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3390     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3391     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3392     TYPEOF(pdr.used_representation)) AND (pdr.
 3393     used_representation.name = 'direction vector')) )) = 1)) )) 
 3394     = 0;
 3395   wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3396     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3397     'SHAPE_ASPECT_RELATIONSHIP.RELATING_SHAPE_ASPECT') | (
 3398     'DIMENSIONAL_INSPECTION_SCHEMA.DM_FEATURE_RELATIONSHIP' IN 
 3399     TYPEOF(pd)) )) >= 2;
 3400   END_ENTITY; -- dmf_pattern
 3401 
 3402   ENTITY dmf_plane
 3403     SUBTYPE OF (dm_feature_definition);
 3404     WHERE
 3405   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3406   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3407      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3408     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3409     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3410     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3411       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3412     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3413     impl_rep.used_representation.items) = 3)) )) = 0)) )) = 0;
 3414   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3415   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3416      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3417     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3418     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3419     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3420       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3421     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 3422     QUERY ( srwp_i <* pdr.used_representation.items | (((srwp_i.
 3423     name = 'orientation') OR (srwp_i.name = 'inner outer')) OR (
 3424     srwp_i.name = 'boundary')) )) = SIZEOF(pdr.
 3425     used_representation.items))) )) = 1) )) = 1;
 3426   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3427   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3428      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3429     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3430     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3431     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3432     TYPEOF(pdr.used_representation)) AND (pdr.
 3433     used_representation.name = 'point on plane')) )) = 1)) )) = 
 3434     0;
 3435   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3436   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3437      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3438     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3439     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3440     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3441     TYPEOF(pdr.used_representation)) AND (pdr.
 3442     used_representation.name = 'point dml')) )) = 1)) )) = 0;
 3443   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3444   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3445      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3446     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3447     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3448     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3449     TYPEOF(pdr.used_representation)) AND (pdr.
 3450     used_representation.name = 'direction vector')) )) = 1)) )) 
 3451     = 0;
 3452   wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3453   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3454      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3455     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3456     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3457     'DIMENSIONAL_INSPECTION_SCHEMA.CARTESIAN_POINT' IN TYPEOF(
 3458     pdr.used_representation)) AND (pdr.used_representation.name 
 3459     = 'boundary')) )) >= 2)) )) = 0;
 3460   END_ENTITY; -- dmf_plane
 3461 
 3462   ENTITY dmf_plane_closed_parallel
 3463     SUBTYPE OF (dm_feature_definition);
 3464     WHERE
 3465   wr1 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3466   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3467       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 3468      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3469      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3470      'DIMENSIONAL_INSPECTION_SCHEMA.'
 3471       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3472      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3473      impl_rep.used_representation.items) = 3)) )) = 0)) )) = 0;
 3474   wr2 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3475   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3476       | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3477      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3478      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3479      'DIMENSIONAL_INSPECTION_SCHEMA.'
 3480       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3481      IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 3482      QUERY ( srwp_i <* pdr.used_representation.items | (((srwp_i
 3483      .name = 'orientation') OR (srwp_i.name = 'inner outer')) OR
 3484       (srwp_i.name = 'end kind')) )) = SIZEOF(pdr.
 3485      used_representation.items))) )) = 1) )) = 1;
 3486   wr3 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3487   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3488       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3489      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3490      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3491      'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3492      TYPEOF(pdr.used_representation)) AND (pdr.
 3493      used_representation.name = 'center point')) )) = 1)) )) = 0;
 3494   wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3495   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3496       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3497      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3498      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3499      'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3500      TYPEOF(pdr.used_representation)) AND (pdr.
 3501      used_representation.name = 'axis direction vector')) )) = 1)) )) 
 3502      = 0;
 3503   wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3504   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3505       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3506      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3507      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3508      'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3509      TYPEOF(pdr.used_representation)) AND (pdr.
 3510      used_representation.name = 'longitude vector')) )) = 1)) )) 
 3511      = 0;
 3512   wr6 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3513   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3514       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3515      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3516      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3517      'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3518      TYPEOF(pdr.used_representation)) AND (pdr.
 3519      used_representation.name = 'normal dml')) )) = 1)) )) = 0;
 3520   wr7 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3521   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3522       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3523      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3524      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3525      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3526      TYPEOF(pdr.used_representation)) AND (pdr.
 3527      used_representation.name = 'feature length')) )) = 1)) )) =
 3528       0;
 3529   wr8 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3530   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3531       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3532      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3533      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3534      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3535      TYPEOF(pdr.used_representation)) AND (pdr.
 3536      used_representation.name = 'width')) )) = 1)) )) = 0;
 3537   wr9 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3538   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3539       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3540      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3541      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3542      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3543      TYPEOF(pdr.used_representation)) AND (pdr.
 3544      used_representation.name = 'height')) )) = 1)) )) = 0;
 3545   wr10: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3546   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3547       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 3548      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3549      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3550      'DIMENSIONAL_INSPECTION_SCHEMA.'
 3551       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3552      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3553      QUERY ( it <* impl_rep.used_representation.items | (((
 3554      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 3555      IN TYPEOF(it)) AND (it.name = 'inner outer')) AND ((it.
 3556      description = 'inner') OR (it.description = 'outer'))) )) =
 3557       1)) )) = 0)) )) = 0;
 3558   wr11: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3559   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3560       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 3561      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3562      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3563      'DIMENSIONAL_INSPECTION_SCHEMA.'
 3564       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3565      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3566      QUERY ( it <* impl_rep.used_representation.items | (((
 3567      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 3568      IN TYPEOF(it)) AND (it.name = 'end kind')) AND ((it.
 3569      description = 'round') OR (it.description = 'square'))) )) 
 3570      = 1)) )) = 0)) )) = 0;
 3571   END_ENTITY; -- dmf_plane_closed_parallel
 3572 
 3573   ENTITY dmf_plane_symmetric
 3574     SUBTYPE OF (dm_feature_definition);
 3575     WHERE
 3576   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3577   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3578      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3579     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3580     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3581     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3582       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3583     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3584     impl_rep.used_representation.items) = 2)) )) = 0)) )) = 0;
 3585   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3586   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3587      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3588     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3589     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3590     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3591       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3592     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 3593     QUERY ( srwp_i <* pdr.used_representation.items | ((srwp_i.
 3594     name = 'orientation') OR (srwp_i.name = 'inner outer')) )) =
 3595      SIZEOF(pdr.used_representation.items))) )) = 1) )) = 1;
 3596   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3597   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3598      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3599     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3600     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3601     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3602     TYPEOF(pdr.used_representation)) AND (pdr.
 3603     used_representation.name = 'point on one side')) )) = 1)) )) 
 3604     = 0;
 3605   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3606   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3607      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3608     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3609     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3610     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3611     TYPEOF(pdr.used_representation)) AND (pdr.
 3612     used_representation.name = 'point on other side')) )) = 1)) )) 
 3613     = 0;
 3614   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3615   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3616      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3617     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3618     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3619     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3620     TYPEOF(pdr.used_representation)) AND (pdr.
 3621     used_representation.name = 'point on mid side')) )) = 1)) )) 
 3622     = 0;
 3623   wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3624   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3625      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3626     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3627     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3628     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3629     TYPEOF(pdr.used_representation)) AND (pdr.
 3630     used_representation.name = 'direction vector side one')) )) 
 3631     = 1)) )) = 0;
 3632   wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3633   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3634      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3635     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3636     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3637     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3638     TYPEOF(pdr.used_representation)) AND (pdr.
 3639     used_representation.name = 'direction vector side two')) )) 
 3640     = 1)) )) = 0;
 3641   wr8: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3642   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3643      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3644     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3645     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3646     'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3647     TYPEOF(pdr.used_representation)) AND (pdr.
 3648     used_representation.name = 'width at mid point')) )) = 1)) )) 
 3649     = 0;
 3650   wr9: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3651   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3652      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3653     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3654     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3655     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3656       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3657     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3658     QUERY ( it <* impl_rep.used_representation.items | (((
 3659     'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 3660     IN TYPEOF(it)) AND (it.name = 'inner outer')) AND ((it.
 3661     description = 'inner') OR (it.description = 'outer'))) )) = 
 3662     1)) )) = 0)) )) = 0;
 3663   END_ENTITY; -- dmf_plane_symmetric
 3664 
 3665   ENTITY dmf_point
 3666     SUBTYPE OF (dm_feature_definition);
 3667     WHERE
 3668   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3669   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3670      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3671     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3672     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3673     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3674       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3675     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3676     impl_rep.used_representation.items) = 2)) )) = 0)) )) = 0;
 3677   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3678   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3679      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3680     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3681     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3682     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3683       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3684     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 3685     QUERY ( srwp_i <* pdr.used_representation.items | ((srwp_i.
 3686     name = 'orientation') OR (srwp_i.name = 'point type dml')) )) 
 3687     = SIZEOF(pdr.used_representation.items))) )) = 1) )) = 1;
 3688   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3689   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3690      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3691     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3692     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3693     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3694     TYPEOF(pdr.used_representation)) AND (pdr.
 3695     used_representation.name = 'point')) )) = 1)) )) = 0;
 3696   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3697   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3698      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3699     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3700     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3701     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3702     TYPEOF(pdr.used_representation)) AND (pdr.
 3703     used_representation.name = 'direction vector')) )) = 1)) )) 
 3704     = 0;
 3705   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3706   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3707      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3708     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3709     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3710     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3711       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3712     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3713     QUERY ( it <* impl_rep.used_representation.items | (((
 3714     'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 3715     IN TYPEOF(it)) AND (it.name = 'point type dml')) AND ((it.
 3716     description = 'h edge') OR (it.description = 't edge'))) )) 
 3717     = 1)) )) = 0)) )) = 0;
 3718   END_ENTITY; -- dmf_point
 3719 
 3720   ENTITY dmf_sphere
 3721     SUBTYPE OF (dm_feature_definition);
 3722     WHERE
 3723   wr1 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3724   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3725       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 3726      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3727      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3728      'DIMENSIONAL_INSPECTION_SCHEMA.'
 3729       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3730      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3731      impl_rep.used_representation.items) = 2)) )) = 0)) )) = 0;
 3732   wr2 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3733   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3734       | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3735      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3736      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3737      'DIMENSIONAL_INSPECTION_SCHEMA.'
 3738       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3739      IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 3740      QUERY ( srwp_i <* pdr.used_representation.items | ((srwp_i.
 3741      name = 'orientation') OR (srwp_i.name = 'boundary')) )) = 
 3742      SIZEOF(pdr.used_representation.items))) )) = 1) )) = 1;
 3743   wr3 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3744   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3745       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3746      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3747      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3748      'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3749      TYPEOF(pdr.used_representation)) AND (pdr.
 3750      used_representation.name = 'center point')) )) = 1)) )) = 0;
 3751   wr4 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3752   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3753       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3754      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3755      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3756      'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3757      TYPEOF(pdr.used_representation)) AND (pdr.
 3758      used_representation.name = 'north pole vector')) )) = 1)) )) 
 3759      = 0;
 3760   wr5 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3761   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3762       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3763      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3764      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3765      'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3766      TYPEOF(pdr.used_representation)) AND (pdr.
 3767      used_representation.name = 'prime meridian vector')) )) = 1)) )) 
 3768      = 0;
 3769   wr6 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3770   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3771       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3772      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3773      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3774      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3775      TYPEOF(pdr.used_representation)) AND (pdr.
 3776      used_representation.name = 'latitude start angle')) )) = 1)) )) 
 3777      = 0;
 3778   wr7 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3779   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3780       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3781      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3782      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3783      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3784      TYPEOF(pdr.used_representation)) AND (pdr.
 3785      used_representation.name = 'latitude stop point')) )) = 1)) )) 
 3786      = 0;
 3787   wr8 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3788   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3789       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3790      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3791      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3792      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3793      TYPEOF(pdr.used_representation)) AND (pdr.
 3794      used_representation.name = 'longitude start point')) )) = 1)) )) 
 3795      = 0;
 3796   wr9 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3797   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3798       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3799      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3800      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3801      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3802      TYPEOF(pdr.used_representation)) AND (pdr.
 3803      used_representation.name = 'longitude stop point')) )) = 1)) )) 
 3804      = 0;
 3805   wr10: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3806   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3807       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3808      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3809      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3810      'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3811      TYPEOF(pdr.used_representation)) AND (pdr.
 3812      used_representation.name = 'diameter')) )) = 1)) )) = 0;
 3813   wr11: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3814   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3815       | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3816      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3817      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3818      'DIMENSIONAL_INSPECTION_SCHEMA.CARTESIAN_POINT' IN TYPEOF(
 3819      pdr.used_representation)) AND (pdr.used_representation.name 
 3820      = 'boundary')) )) >= 2)) )) = 0;
 3821   END_ENTITY; -- dmf_sphere
 3822 
 3823   ENTITY dmf_surface_of_revolution_dml
 3824     SUBTYPE OF (dm_feature_definition);
 3825     WHERE
 3826   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3827   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3828      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3829     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3830     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3831     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3832       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3833     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3834     impl_rep.used_representation.items) = 1)) )) = 0)) )) = 0;
 3835   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3836   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3837      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3838     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3839     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3840     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3841       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3842     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 3843     QUERY ( srwp_i <* pdr.used_representation.items | (srwp_i.
 3844     name = 'orientation') )) = SIZEOF(pdr.used_representation.
 3845     items))) )) = 1) )) = 1;
 3846   END_ENTITY; -- dmf_surface_of_revolution_dml
 3847 
 3848   ENTITY dmf_torus
 3849     SUBTYPE OF (dm_feature_definition);
 3850     WHERE
 3851   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3852   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3853      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3854     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3855     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3856     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3857       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3858     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3859     impl_rep.used_representation.items) = 2)) )) = 0)) )) = 0;
 3860   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3861   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3862      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3863     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3864     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3865     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3866       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3867     IN TYPEOF(pdr.used_representation)) AND (SIZEOF(
 3868     QUERY ( srwp_i <* pdr.used_representation.items | ((srwp_i.
 3869     name = 'orientation') OR (srwp_i.name = 'inner outer')) )) =
 3870      SIZEOF(pdr.used_representation.items))) )) = 1) )) = 1;
 3871   wr3: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3872   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3873      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3874     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3875     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3876     'DIMENSIONAL_INSPECTION_SCHEMA.DM_POINT_PARAMETER' IN 
 3877     TYPEOF(pdr.used_representation)) AND (pdr.
 3878     used_representation.name = 'center point')) )) = 1)) )) = 0;
 3879   wr4: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3880   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3881      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3882     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3883     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3884     'DIMENSIONAL_INSPECTION_SCHEMA.DM_VECTOR_PARAMETER' IN 
 3885     TYPEOF(pdr.used_representation)) AND (pdr.
 3886     used_representation.name = 'vector or plane')) )) = 1)) )) =
 3887      0;
 3888   wr5: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3889   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3890      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3891     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3892     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3893     'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3894     TYPEOF(pdr.used_representation)) AND (pdr.
 3895     used_representation.name = 'major diameter')) )) = 1)) )) = 
 3896     0;
 3897   wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3898   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3899      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3900     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3901     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 3902     'DIMENSIONAL_INSPECTION_SCHEMA.DM_DIMENSION_PARAMETER' IN 
 3903     TYPEOF(pdr.used_representation)) AND (pdr.
 3904     used_representation.name = 'minor diameter')) )) = 1)) )) = 
 3905     0;
 3906   wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3907   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3908      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3909     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3910     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3911     'DIMENSIONAL_INSPECTION_SCHEMA.'
 3912       +'DM_SHAPE_REPRESENTATION_WITH_PARAMETERS'  
 3913     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 3914     QUERY ( it <* impl_rep.used_representation.items | (((
 3915     'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 3916     IN TYPEOF(it)) AND (it.name = 'inner outer')) AND ((it.
 3917     description = 'inner') OR (it.description = 'outer'))) )) = 
 3918     1)) )) = 0)) )) = 0;
 3919   END_ENTITY; -- dmf_torus
 3920 
 3921   ENTITY document;
 3922       id          : identifier;
 3923       name        : label;
 3924       description : OPTIONAL text;
 3925       kind        : document_type;
 3926     INVERSE
 3927       representation_types : SET [0:?] OF document_representation_type FOR 
 3928           represented_document;
 3929   END_ENTITY; -- document
 3930 
 3931   ENTITY document_reference
 3932     ABSTRACT SUPERTYPE;
 3933       assigned_document : document;
 3934       source : label;
 3935     DERIVE
 3936       role : object_role := get_role(SELF);
 3937     WHERE
 3938   wr1: SIZEOF(USEDIN(SELF,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3939     'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
 3940   END_ENTITY; -- document_reference
 3941 
 3942   ENTITY document_representation_type;
 3943       name      : label;
 3944       represented_document : document;
 3945   END_ENTITY; -- document_representation_type
 3946 
 3947   ENTITY document_type;
 3948       product_data_type : label;
 3949   END_ENTITY; -- document_type
 3950 
 3951   ENTITY document_usage_constraint;
 3952       source     : document;
 3953       subject_element       : label;
 3954       subject_element_value : text;
 3955   END_ENTITY; -- document_usage_constraint
 3956 
 3957   ENTITY document_with_class
 3958     SUBTYPE OF (document);
 3959       class : identifier;
 3960   END_ENTITY; -- document_with_class
 3961 
 3962   ENTITY edge
 3963     SUPERTYPE OF (ONEOF (edge_curve,oriented_edge))
 3964     SUBTYPE OF (topological_representation_item);
 3965       edge_start : vertex;
 3966       edge_end   : vertex;
 3967   END_ENTITY; -- edge
 3968 
 3969   ENTITY edge_curve
 3970     SUBTYPE OF (edge, geometric_representation_item);
 3971       edge_geometry : curve;
 3972       same_sense    : BOOLEAN;
 3973   END_ENTITY; -- edge_curve
 3974 
 3975   ENTITY edge_loop
 3976     SUBTYPE OF (loop, path);
 3977     DERIVE
 3978       ne : INTEGER := SIZEOF(SELF\path.edge_list);
 3979     WHERE
 3980   wr1: SELF\path.edge_list[1].edge_start :=: SELF\path.edge_list[ne].
 3981     edge_end;
 3982   END_ENTITY; -- edge_loop
 3983 
 3984   ENTITY edge_round
 3985     SUBTYPE OF (transition_feature);
 3986     WHERE
 3987   wr1: (NOT (SELF\shape_aspect.description = 'constant radius')) OR (
 3988     SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3989   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3990      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 3991     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 3992     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 3993     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 3994     IN TYPEOF(pdr.used_representation)) )) = 1)) )) = 0);
 3995   wr2: (NOT (SELF\shape_aspect.description = 'constant radius')) OR (
 3996     SIZEOF(QUERY ( pd <* USEDIN(SELF,
 3997   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 3998      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 3999     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4000     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 4001     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 4002     IN TYPEOF(pdr.used_representation)) ) | ((NOT (SIZEOF(
 4003     impl_rep.used_representation.items) >= 1)) AND (SIZEOF(
 4004     impl_rep.used_representation.items) <= 3)) )) = 0)) )) = 0);
 4005   wr3: (NOT (SELF.description = 'constant radius')) OR (SIZEOF(
 4006     QUERY ( pd <* USEDIN(SELF,
 4007   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4008      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4009     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4010     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 4011     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 4012     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 4013     QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF(
 4014     ['DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4015     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
 4016     TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) = 0)) )) 
 4017     = 0);
 4018   wr4: (NOT (SELF.description = 'constant radius')) OR (SIZEOF(
 4019     QUERY ( pd <* USEDIN(SELF,
 4020   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4021      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4022     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4023     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 4024     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 4025     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 4026     QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF(
 4027     ['DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4028     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
 4029     TYPEOF(it)) = 2) AND (it.name = 'first offset')) )) <= 1)) )) 
 4030     = 0)) )) = 0);
 4031   wr5: (NOT (SELF.description = 'constant radius')) OR (SIZEOF(
 4032     QUERY ( pd <* USEDIN(SELF,
 4033   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4034      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4035     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4036     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (
 4037     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 4038     IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 4039     QUERY ( it <* impl_rep.used_representation.items | ((SIZEOF(
 4040     ['DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4041     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
 4042     TYPEOF(it)) = 2) AND (it.name = 'second offset')) )) <= 1)) )) 
 4043     = 0)) )) = 0);
 4044   wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4045   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4046      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 4047     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4048     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4049     'DIMENSIONAL_INSPECTION_SCHEMA.FACE_SHAPE_REPRESENTATION' IN
 4050      TYPEOF(pdr.used_representation)) AND (pdr.
 4051     used_representation.name = 'edge round face')) )) <= 1)) )) 
 4052     = 0;
 4053   wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4054   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4055      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 4056     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4057     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4058     'DIMENSIONAL_INSPECTION_SCHEMA.FACE_SHAPE_REPRESENTATION' IN
 4059      TYPEOF(pdr.used_representation)) AND (pdr.
 4060     used_representation.name = 'first face shape')) )) <= 1)) )) 
 4061     = 0;
 4062   wr8: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4063   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4064      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 4065     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4066     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4067     'DIMENSIONAL_INSPECTION_SCHEMA.FACE_SHAPE_REPRESENTATION' IN
 4068      TYPEOF(pdr.used_representation)) AND (pdr.
 4069     used_representation.name = 'second face shape')) )) <= 1)) )) 
 4070     = 0;
 4071   END_ENTITY; -- edge_round
 4072 
 4073   ENTITY elementary_surface
 4074     SUPERTYPE OF (ONEOF (plane,cylindrical_surface,conical_surface,
 4075         spherical_surface,toroidal_surface))
 4076     SUBTYPE OF (surface);
 4077       position : axis2_placement_3d;
 4078   END_ENTITY; -- elementary_surface
 4079 
 4080   ENTITY ellipse
 4081     SUBTYPE OF (conic);
 4082       semi_axis_1 : positive_length_measure;
 4083       semi_axis_2 : positive_length_measure;
 4084   END_ENTITY; -- ellipse
 4085 
 4086   ENTITY executed_action
 4087     SUBTYPE OF (action);
 4088   END_ENTITY; -- executed_action
 4089 
 4090   ENTITY extension
 4091     SUBTYPE OF (derived_shape_aspect);
 4092     WHERE
 4093   wr1: SIZEOF(SELF\derived_shape_aspect.deriving_relationships) = 1;
 4094   END_ENTITY; -- extension
 4095 
 4096   ENTITY external_source;
 4097       source_id : source_item;
 4098     DERIVE
 4099       description : text := get_description_value(SELF);
 4100     WHERE
 4101   wr1: SIZEOF(USEDIN(SELF,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4102     'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
 4103   END_ENTITY; -- external_source
 4104 
 4105   ENTITY externally_defined_dimension_definition
 4106     SUBTYPE OF (externally_defined_item, dimensional_size);
 4107     WHERE
 4108   wr1: SELF.source.description = 'externally dimension specification';
 4109   wr2: SIZEOF(QUERY ( adr <* USEDIN(SELF,
 4110   'DIMENSIONAL_INSPECTION_SCHEMA.APPLIED_DOCUMENT_REFERENCE.ITEMS')
 4111      | (adr.assigned_document.description = 
 4112     'externally dimension specification') )) <= 1;
 4113   END_ENTITY; -- externally_defined_dimension_definition
 4114 
 4115   ENTITY externally_defined_feature_definition
 4116     SUBTYPE OF (feature_definition, externally_defined_item);
 4117     WHERE
 4118   wr1 : (((((SELF\characterized_object.description = 'thread') AND (
 4119      SELF\externally_defined_item.item_id = 'external thread')) 
 4120      AND (SELF\externally_defined_item.source.source_id = 
 4121      'external feature specification')) OR (((SELF\
 4122      characterized_object.description = 'gear') AND (SELF\
 4123      externally_defined_item.item_id = 'external gear')) AND (
 4124      SELF\externally_defined_item.source.source_id = 
 4125      'external feature specification'))) OR (((SELF\
 4126      characterized_object.description = 'marking') AND (SELF\
 4127      externally_defined_item.item_id = 'external marking')) AND 
 4128      (SELF\externally_defined_item.source.source_id = 
 4129      'external feature specification'))) OR (((SELF\
 4130      characterized_object.description = 'knurl') AND (SELF\
 4131      externally_defined_item.item_id = 'external knurl')) AND (
 4132      SELF\externally_defined_item.source.source_id = 
 4133      'external feature specification'));
 4134   wr2 : (NOT (SELF\characterized_object.description = 'thread')) OR (
 4135      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4136   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4137       | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 4138      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4139      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (((
 4140      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4141      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4142      used_representation)) AND ((5 <= SIZEOF(pdr.
 4143      used_representation.items)) AND (SIZEOF(pdr.
 4144      used_representation.items) <= 10))) )) = 1) )) = 1);
 4145   wr3 : (NOT (SELF\characterized_object.description = 'marking')) OR (
 4146      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4147   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4148       | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 4149      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4150      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (((
 4151      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4152      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4153      used_representation)) AND (SIZEOF(pdr.used_representation.
 4154      items) = 2)) )) = 1) )) = 1);
 4155   wr4 : (NOT (SELF\characterized_object.description = 'knurl')) OR (
 4156      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4157   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4158       | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 4159      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4160      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (((
 4161      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4162      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4163      used_representation)) AND (SIZEOF(pdr.used_representation.
 4164      items) = 1)) )) = 1) )) = 1);
 4165   wr5 : (NOT (SELF\characterized_object.description IN ['knurl',
 4166      'thread'])) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(
 4167      SELF,
 4168   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4169       | (
 4170      'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN
 4171       TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds,
 4172      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 4173      sa_occ.description = 'partial area occurrence') AND (
 4174      SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ,
 4175      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' 
 4176      + 'RELATED_SHAPE_ASPECT') | ((sar.description = 
 4177      'applied area usage') AND (
 4178      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' 
 4179      IN TYPEOF(sar))) ) | (
 4180      'DIMENSIONAL_INSPECTION_SCHEMA.APPLIED_AREA' IN TYPEOF(sdr.
 4181      relating_shape_aspect)) )) = 1)) )) <= 1)) )) = 0);
 4182   wr6 : (NOT (SELF\characterized_object.description = 'marking')) OR (
 4183      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4184   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4185       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4186      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4187      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4188      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4189      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4190      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4191      impl_rep.used_representation.items | ((
 4192      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 4193      IN TYPEOF(it)) AND (it.name = 'marking text')) )) = 1)) )) 
 4194      = 0)) )) = 0);
 4195   wr7 : (NOT (SELF\characterized_object.description = 'thread')) OR (
 4196      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4197   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4198       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4199      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4200      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4201      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4202      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4203      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4204      impl_rep.used_representation.items | (((
 4205      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 4206      IN TYPEOF(it)) AND (it.name = 'removal direction')) AND ((
 4207      it.description = 'internal') OR (it.description = 
 4208      'external'))) )) = 1)) )) = 0)) )) = 0);
 4209   wr8 : (NOT (SELF\characterized_object.description = 'thread')) OR (
 4210      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4211   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4212       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4213      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4214      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4215      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4216      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4217      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4218      impl_rep.used_representation.items | ((
 4219      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 4220      IN TYPEOF(it)) AND (it.name = 'qualifier')) )) <= 1)) )) = 
 4221      0)) )) = 0);
 4222   wr9 : (NOT (SELF\characterized_object.description = 'thread')) OR (
 4223      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4224   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4225       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4226      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4227      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4228      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4229      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4230      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4231      impl_rep.used_representation.items | ((
 4232      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 4233      IN TYPEOF(it)) AND (it.name = 'hand')) )) = 1)) )) = 0)) )) 
 4234      = 0);
 4235   wr10: (NOT (SELF\characterized_object.description = 'thread')) OR (
 4236      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4237   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4238       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4239      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4240      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4241      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4242      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4243      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4244      impl_rep.used_representation.items | ((
 4245      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 4246      IN TYPEOF(it)) AND (it.name = 'fit class')) )) = 1)) )) = 0)) )) 
 4247      = 0);
 4248   wr11: (NOT (SELF\characterized_object.description = 'thread')) OR (
 4249      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4250   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4251       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4252      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4253      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4254      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4255      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4256      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4257      impl_rep.used_representation.items | ((
 4258      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 4259      IN TYPEOF(it)) AND (it.name = 'form')) )) = 1)) )) = 0)) )) 
 4260      = 0);
 4261   wr12: (NOT (SELF\characterized_object.description = 'thread')) OR (
 4262      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4263   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4264       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4265      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4266      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4267      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4268      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4269      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4270      impl_rep.used_representation.items | ((SIZEOF([
 4271      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4272      'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] *
 4273       TYPEOF(it)) = 2) AND (it.name = 'major diameter')) )) <= 1)) )) 
 4274      = 0)) )) = 0);
 4275   wr13: (NOT (SELF\characterized_object.description = 'thread')) OR (
 4276      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4277   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4278       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4279      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4280      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4281      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4282      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4283      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4284      impl_rep.used_representation.items | ((SIZEOF([
 4285      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4286      'DIMENSIONAL_INSPECTION_SCHEMA.RATIO_MEASURE_WITH_UNIT'] * 
 4287      TYPEOF(it)) = 2) AND (it.name = 'number of threads')) )) = 
 4288      1)) )) = 0)) )) = 0);
 4289   wr14: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4290   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4291       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4292      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4293      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4294      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4295      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4296      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4297      impl_rep.used_representation.items | ((
 4298      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 4299      IN TYPEOF(it)) AND (it.name = 'fit class 2')) )) <= 1)) )) 
 4300      = 0)) )) = 0;
 4301   wr15: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4302   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4303       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4304      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4305      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4306      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4307      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4308      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4309      impl_rep.used_representation.items | ((SIZEOF([
 4310      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4311      'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] *
 4312       TYPEOF(it)) = 2) AND (it.name = 'nominal size')) )) <= 1)) )) 
 4313      = 0)) )) = 0;
 4314   wr16: (NOT (SELF\characterized_object.description IN ['knurl','gear',
 4315      'thread'])) OR (SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(
 4316      SELF,
 4317   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4318       | (
 4319      'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN
 4320       TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds,
 4321      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (
 4322      SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ,
 4323      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' 
 4324      + 'RELATED_SHAPE_ASPECT') | ((sar.description = 
 4325      'applied shape') AND (
 4326      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' 
 4327      IN TYPEOF(sar))) ) | (
 4328      'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT' IN TYPEOF(sdr.
 4329      relating_shape_aspect)) )) = 1) )) <= 1)) )) = 0);
 4330   wr17: (NOT (SELF\characterized_object.description IN ['gear'])) OR (
 4331      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4332   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4333       | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 4334      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4335      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((((
 4336      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4337      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4338      used_representation)) AND (10 <= SIZEOF(pdr.
 4339      used_representation.items))) AND (SIZEOF(pdr.
 4340      used_representation.items) >= 11)) )) = 1) )) = 1);
 4341   wr18: (NOT (SELF\characterized_object.description IN ['gear'])) OR (
 4342      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4343   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4344       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4345      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4346      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4347      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4348      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4349      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4350      impl_rep.used_representation.items | ((SIZEOF([
 4351      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4352      'DIMENSIONAL_INSPECTION_SCHEMA.RATIO_MEASURE_WITH_UNIT'] * 
 4353      TYPEOF(it)) = 2) AND (it.name = 'number of teeth')) )) = 1)) )) 
 4354      = 0)) )) = 0);
 4355   wr19: (NOT (SELF\characterized_object.description IN ['gear'])) OR (
 4356      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4357   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4358       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4359      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4360      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4361      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4362      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4363      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4364      impl_rep.used_representation.items | ((SIZEOF([
 4365      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4366      'DIMENSIONAL_INSPECTION_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] 
 4367      * TYPEOF(it)) = 2) AND (it.name = 'reference presure angle')) )) 
 4368      = 1)) )) = 0)) )) = 0);
 4369   wr20: (NOT (SELF\characterized_object.description IN ['gear'])) OR (
 4370      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4371   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4372       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4373      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4374      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4375      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4376      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4377      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4378      impl_rep.used_representation.items | ((SIZEOF([
 4379      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4380      'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] *
 4381       TYPEOF(it)) = 2) AND (it.name = 'rake shift factor')) )) =
 4382       1)) )) = 0)) )) = 0);
 4383   wr21: (NOT (SELF\characterized_object.description IN ['gear'])) OR (
 4384      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4385   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4386       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4387      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4388      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4389      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4390      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4391      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4392      impl_rep.used_representation.items | ((SIZEOF([
 4393      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4394      'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] *
 4395       TYPEOF(it)) = 2) AND (it.name = 'nominal tool depth')) )) 
 4396      = 1)) )) = 0)) )) = 0);
 4397   wr22: (NOT (SELF\characterized_object.description IN ['gear'])) OR (
 4398      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4399   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4400       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4401      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4402      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4403      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4404      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4405      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4406      impl_rep.used_representation.items | ((SIZEOF([
 4407      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4408      'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] *
 4409       TYPEOF(it)) = 2) AND (it.name = 'face width')) )) = 1)) )) 
 4410      = 0)) )) = 0);
 4411   wr23: (NOT (SELF\characterized_object.description IN ['gear'])) OR (
 4412      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4413   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4414       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4415      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4416      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4417      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4418      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4419      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4420      impl_rep.used_representation.items | ((SIZEOF([
 4421      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4422      'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] *
 4423       TYPEOF(it)) = 2) AND (it.name = 'tip diameter')) )) = 1)) )) 
 4424      = 0)) )) = 0);
 4425   wr24: (NOT (SELF\characterized_object.description IN ['gear'])) OR (
 4426      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4427   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4428       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4429      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4430      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4431      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4432      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4433      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4434      impl_rep.used_representation.items | (((
 4435      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 4436      IN TYPEOF(it)) AND (it.name = 'module or diametral pitch')) 
 4437      AND ((it.description = 'module') OR (it.description = 
 4438      'diameter pitch'))) )) = 1)) )) = 0)) )) = 0);
 4439   wr25: (NOT (SELF\characterized_object.description IN ['gear'])) OR (
 4440      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4441   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4442       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4443      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4444      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4445      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4446      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4447      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4448      impl_rep.used_representation.items | ((SIZEOF([
 4449      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4450      'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] *
 4451       TYPEOF(it)) = 2) AND (it.name = 'normal attribute')) )) = 
 4452      1)) )) = 0)) )) = 0);
 4453   wr26: (NOT (SELF\characterized_object.description IN ['gear'])) OR (
 4454      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4455   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4456       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4457      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4458      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4459      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4460      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4461      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4462      impl_rep.used_representation.items | (((
 4463      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 4464      IN TYPEOF(it)) AND (it.name = 'internal or external gear')) 
 4465      AND ((it.description = 'internal') OR (it.description = 
 4466      'external'))) )) = 1)) )) = 0)) )) = 0);
 4467   wr27: (NOT (SELF\characterized_object.description IN ['gear'])) OR (
 4468      SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4469   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4470       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4471      pd,'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4472      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4473      'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4474      'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4475      used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4476      impl_rep.used_representation.items | ((SIZEOF([
 4477      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4478      'DIMENSIONAL_INSPECTION_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] 
 4479      * TYPEOF(it)) = 2) AND (it.name = 'root fillet radius')) )) 
 4480      <= 1)) )) = 0)) )) = 0);
 4481   END_ENTITY; -- externally_defined_feature_definition
 4482 
 4483   ENTITY externally_defined_item;
 4484       item_id : source_item;
 4485       source  : external_source;
 4486   END_ENTITY; -- externally_defined_item
 4487 
 4488   ENTITY face
 4489     SUPERTYPE OF (ONEOF (face_surface,oriented_face))
 4490     SUBTYPE OF (topological_representation_item);
 4491       bounds : SET [1:?] OF face_bound;
 4492     WHERE
 4493   wr1: NOT mixed_loop_type_set(list_to_set(list_face_loops(SELF)));
 4494   wr2: SIZEOF(QUERY ( temp <* bounds | (
 4495     'DIMENSIONAL_INSPECTION_SCHEMA.FACE_OUTER_BOUND' IN TYPEOF(
 4496     temp)) )) <= 1;
 4497   END_ENTITY; -- face
 4498 
 4499   ENTITY face_bound
 4500     SUBTYPE OF (topological_representation_item);
 4501       bound       : loop;
 4502       orientation : BOOLEAN;
 4503   END_ENTITY; -- face_bound
 4504 
 4505   ENTITY face_outer_bound
 4506     SUBTYPE OF (face_bound);
 4507   END_ENTITY; -- face_outer_bound
 4508 
 4509   ENTITY face_shape_representation
 4510     SUBTYPE OF (shape_representation);
 4511     WHERE
 4512   wr1: SIZEOF(SELF.items) >= 1;
 4513   wr2: SIZEOF(QUERY ( it <* SELF.items | (NOT ((
 4514     'DIMENSIONAL_INSPECTION_SCHEMA.FACE_SURFACE' IN TYPEOF(it)) 
 4515     OR ('DIMENSIONAL_INSPECTION_SCHEMA.ORIENTED_FACE' IN TYPEOF(
 4516     it)))) )) = 0;
 4517   END_ENTITY; -- face_shape_representation
 4518 
 4519   ENTITY face_surface
 4520     SUBTYPE OF (face, geometric_representation_item);
 4521       face_geometry : surface;
 4522       same_sense    : BOOLEAN;
 4523     WHERE
 4524   wr1: NOT ('DIMENSIONAL_INSPECTION_SCHEMA.ORIENTED_SURFACE' IN 
 4525     TYPEOF(face_geometry));
 4526   END_ENTITY; -- face_surface
 4527 
 4528   ENTITY faceted_brep
 4529     SUBTYPE OF (manifold_solid_brep);
 4530   END_ENTITY; -- faceted_brep
 4531 
 4532   ENTITY feature_component_definition
 4533     SUBTYPE OF (characterized_object);
 4534     WHERE
 4535   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4536   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4537      | (NOT (SIZEOF(USEDIN(pd,
 4538     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE')) = 1)) )) 
 4539     = 0;
 4540   END_ENTITY; -- feature_component_definition
 4541 
 4542   ENTITY feature_component_relationship
 4543     SUPERTYPE OF (ONEOF (pattern_omit_membership,pattern_offset_membership))
 4544     SUBTYPE OF (shape_aspect_relationship);
 4545     WHERE
 4546   wr1: ((SIZEOF([
 4547     'DIMENSIONAL_INSPECTION_SCHEMA.COMPOSITE_SHAPE_ASPECT',
 4548     'DIMENSIONAL_INSPECTION_SCHEMA.REPLICATE_FEATURE',
 4549     'DIMENSIONAL_INSPECTION_SCHEMA.TRANSITION_FEATURE',
 4550     'DIMENSIONAL_INSPECTION_SCHEMA.MODIFIED_PATTERN'] * TYPEOF(
 4551     SELF.relating_shape_aspect)) = 1) OR (
 4552     'DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_DEFINITION' IN 
 4553     TYPEOF(SELF.relating_shape_aspect.of_shape.definition))) OR 
 4554     ('DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_DEFINITION' 
 4555     IN TYPEOF(SELF.relating_shape_aspect.of_shape.definition));
 4556   END_ENTITY; -- feature_component_relationship
 4557 
 4558   ENTITY feature_definition
 4559     SUBTYPE OF (characterized_object);
 4560     WHERE
 4561   wr1: SIZEOF(QUERY ( pdr <* get_property_definition_representations(
 4562     SELF) | (
 4563     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 4564     IN TYPEOF(pdr.used_representation)) )) <= 1;
 4565   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4566   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4567      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4568     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4569     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4570     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4571     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4572     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4573     impl_rep.used_representation.items | ((
 4574     'DIMENSIONAL_INSPECTION_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND
 4575      (it.name = 'orientation')) )) = 1)) )) = 0)) )) = 0;
 4576   wr3: SIZEOF(['DIMENSIONAL_INSPECTION_SCHEMA.BOSS',
 4577     'DIMENSIONAL_INSPECTION_SCHEMA.TURNED_KNURL',
 4578     'DIMENSIONAL_INSPECTION_SCHEMA.THREAD',
 4579     'DIMENSIONAL_INSPECTION_SCHEMA.GEAR',
 4580     'DIMENSIONAL_INSPECTION_SCHEMA.MARKING',
 4581     'DIMENSIONAL_INSPECTION_SCHEMA.RIB_TOP',
 4582     'DIMENSIONAL_INSPECTION_SCHEMA.ROUND_HOLE',
 4583     'DIMENSIONAL_INSPECTION_SCHEMA.OUTSIDE_PROFILE',
 4584     'DIMENSIONAL_INSPECTION_SCHEMA.POCKET',
 4585     'DIMENSIONAL_INSPECTION_SCHEMA.REMOVAL_VOLUME',
 4586     'DIMENSIONAL_INSPECTION_SCHEMA.REVOLVED_PROFILE',
 4587     'DIMENSIONAL_INSPECTION_SCHEMA.OUTER_ROUND',
 4588     'DIMENSIONAL_INSPECTION_SCHEMA.FLAT_FACE',
 4589     'DIMENSIONAL_INSPECTION_SCHEMA.PROTRUSION',
 4590     'DIMENSIONAL_INSPECTION_SCHEMA.ROUNDED_END',
 4591     'DIMENSIONAL_INSPECTION_SCHEMA.SLOT',
 4592     'DIMENSIONAL_INSPECTION_SCHEMA.SPHERICAL_CAP',
 4593     'DIMENSIONAL_INSPECTION_SCHEMA.STEP',
 4594     'DIMENSIONAL_INSPECTION_SCHEMA.COMPOUND_FEATURE',
 4595     'DIMENSIONAL_INSPECTION_SCHEMA.REPLICATE_FEATURE',
 4596     'DIMENSIONAL_INSPECTION_SCHEMA.EXTERNALLY_DEFINED_FEATURE_DEFINITION'] 
 4597     * TYPEOF(SELF)) = 1;
 4598   wr4: (NOT (SIZEOF(['DIMENSIONAL_INSPECTION_SCHEMA.ROUND_HOLE',
 4599     'DIMENSIONAL_INSPECTION_SCHEMA.BOSS',
 4600     'DIMENSIONAL_INSPECTION_SCHEMA.OUTSIDE_PROFILE',
 4601     'DIMENSIONAL_INSPECTION_SCHEMA.REMOVAL_VOLUME',
 4602     'DIMENSIONAL_INSPECTION_SCHEMA.FLAT_FACE',
 4603     'DIMENSIONAL_INSPECTION_SCHEMA.POCKET',
 4604     'DIMENSIONAL_INSPECTION_SCHEMA.PROTRUSION',
 4605     'DIMENSIONAL_INSPECTION_SCHEMA.RIB_TOP',
 4606     'DIMENSIONAL_INSPECTION_SCHEMA.ROUNDED_END',
 4607     'DIMENSIONAL_INSPECTION_SCHEMA.SLOT',
 4608     'DIMENSIONAL_INSPECTION_SCHEMA.STEP'] * TYPEOF(SELF)) = 1)) 
 4609     OR (SIZEOF(QUERY ( pdr <* 
 4610     get_property_definition_representations(SELF) | ((
 4611     'DIMENSIONAL_INSPECTION_SCHEMA.PLANAR_SHAPE_REPRESENTATION' 
 4612     IN TYPEOF(pdr.used_representation)) AND (pdr.
 4613     used_representation.name = 'maximum feature limit')) )) >= 0);
 4614   END_ENTITY; -- feature_definition
 4615 
 4616   ENTITY feature_pattern
 4617     SUBTYPE OF (replicate_feature);
 4618     WHERE
 4619   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4620   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4621      | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 4622     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4623     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | (((
 4624     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4625     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4626     used_representation)) AND (SIZEOF(QUERY ( srwp_i <* pdr.
 4627     used_representation.items | (NOT (
 4628     'DIMENSIONAL_INSPECTION_SCHEMA.PLACEMENT' IN TYPEOF(srwp_i))) )) 
 4629     > 0)) )) > 0) )) = 0;
 4630   wr2: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4631   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4632      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4633     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4634     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4635     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4636     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4637     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4638     impl_rep.used_representation.items | ((
 4639     'DIMENSIONAL_INSPECTION_SCHEMA.PLACEMENT' IN TYPEOF(it)) AND
 4640      (it.name = 'base feature placement')) )) > 1)) )) = 0)) )) 
 4641     = 0;
 4642   END_ENTITY; -- feature_pattern
 4643 
 4644   ENTITY fillet
 4645     SUBTYPE OF (transition_feature);
 4646     WHERE
 4647   wr1: (NOT (SELF\shape_aspect.description = 'constant radius')) OR (
 4648     SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4649   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4650      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 4651     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4652     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4653     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4654     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4655     used_representation)) )) = 1)) )) = 0);
 4656   wr2: (NOT (SELF\shape_aspect.description = 'constant radius')) OR (
 4657     SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4658   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4659      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4660     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4661     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4662     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4663     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4664     used_representation)) ) | ((NOT (SIZEOF(impl_rep.
 4665     used_representation.items) >= 1)) AND (SIZEOF(impl_rep.
 4666     used_representation.items) <= 3)) )) = 0)) )) = 0);
 4667   wr3: (NOT (SELF.description = 'constant radius')) OR (SIZEOF(
 4668     QUERY ( pd <* USEDIN(SELF,
 4669   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4670      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4671     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4672     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4673     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4674     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4675     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4676     impl_rep.used_representation.items | ((SIZEOF([
 4677     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4678     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
 4679     TYPEOF(it)) = 2) AND (it.name = 'radius')) )) = 1)) )) = 0)) )) 
 4680     = 0);
 4681   wr4: (NOT (SELF.description = 'constant radius')) OR (SIZEOF(
 4682     QUERY ( pd <* USEDIN(SELF,
 4683   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4684      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4685     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4686     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4687     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4688     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4689     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4690     impl_rep.used_representation.items | ((SIZEOF([
 4691     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4692     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
 4693     TYPEOF(it)) = 2) AND (it.name = 'first offset')) )) <= 1)) )) 
 4694     = 0)) )) = 0);
 4695   wr5: (NOT (SELF.description = 'constant radius')) OR (SIZEOF(
 4696     QUERY ( pd <* USEDIN(SELF,
 4697   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4698      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4699     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4700     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4701     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4702     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4703     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4704     impl_rep.used_representation.items | ((SIZEOF([
 4705     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4706     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
 4707     TYPEOF(it)) = 2) AND (it.name = 'second offset')) )) <= 1)) )) 
 4708     = 0)) )) = 0);
 4709   wr6: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4710     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.' + 
 4711     'DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 4712     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4713     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4714     'DIMENSIONAL_INSPECTION_SCHEMA.FACE_SHAPE_REPRESENTATION' IN
 4715      TYPEOF(pdr.used_representation)) AND (pdr.
 4716     used_representation.name = 'fillet face')) )) = 1)) )) = 0;
 4717   wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4718     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.' + 
 4719     'DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 4720     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4721     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4722     'DIMENSIONAL_INSPECTION_SCHEMA.FACE_SHAPE_REPRESENTATION' IN
 4723      TYPEOF(pdr.used_representation)) AND (pdr.
 4724     used_representation.name = 'first face shape')) )) = 1)) )) 
 4725     = 0;
 4726   wr8: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4727     'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.' + 
 4728     'DEFINITION') | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 4729     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4730     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4731     'DIMENSIONAL_INSPECTION_SCHEMA.FACE_SHAPE_REPRESENTATION' IN
 4732      TYPEOF(pdr.used_representation)) AND (pdr.
 4733     used_representation.name = 'second face shape')) )) = 1)) )) 
 4734     = 0;
 4735   END_ENTITY; -- fillet
 4736 
 4737   ENTITY flat_face
 4738     SUBTYPE OF (feature_definition);
 4739     WHERE
 4740   wr1: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4741   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4742      | (NOT (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 4743     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4744     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4745     'DIMENSIONAL_INSPECTION_SCHEMA.DIRECTION_SHAPE_REPRESENTATION' 
 4746     IN TYPEOF(pdr.used_representation)) AND (pdr.
 4747     used_representation.name = 'removal direction')) )) = 1)) )) 
 4748     = 0;
 4749   wr2: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF,
 4750   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4751      | ('DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' 
 4752     IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds,
 4753     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 4754     sa_occ.description = 'course of travel occurrence') AND (
 4755     SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ,
 4756     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' +
 4757      'RELATED_SHAPE_ASPECT') | ((sar.description = 
 4758     'path feature component usage') AND (
 4759     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' 
 4760     IN TYPEOF(sar))) ) | (((
 4761     'DIMENSIONAL_INSPECTION_SCHEMA.PATH_FEATURE_COMPONENT' IN 
 4762     TYPEOF(sdr.relating_shape_aspect)) AND (sdr.
 4763     relating_shape_aspect.description = 'linear')) AND (sdr.name 
 4764     = 'course of travel')) )) = 1)) )) = 1)) )) = 0;
 4765   wr3: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF,
 4766   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4767      | ('DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' 
 4768     IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds,
 4769     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 4770     sa_occ.description = 'removal boundary occurrence') AND (
 4771     SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ,
 4772     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' +
 4773      'RELATED_SHAPE_ASPECT') | ((sar.description = 
 4774     'profile usage') AND (
 4775     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' 
 4776     IN TYPEOF(sar))) ) | ((
 4777     'DIMENSIONAL_INSPECTION_SCHEMA.LINEAR_PROFILE' IN TYPEOF(sdr
 4778     .relating_shape_aspect)) AND (sdr.name = 'removal boundary')) )) 
 4779     = 1)) )) = 1)) )) = 0;
 4780   wr4: SIZEOF(QUERY ( pds <* QUERY ( pd <* USEDIN(SELF,
 4781   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4782      | ('DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' 
 4783     IN TYPEOF(pd)) ) | (NOT (SIZEOF(QUERY ( sa_occ <* USEDIN(pds,
 4784     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | ((
 4785     sa_occ.description = 'enclosed boundary occurrence') AND (
 4786     SIZEOF(QUERY ( sdr <* QUERY ( sar <* USEDIN(sa_occ,
 4787     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT_RELATIONSHIP.' +
 4788      'RELATED_SHAPE_ASPECT') | ((sar.description = 
 4789     'profile usage') AND (
 4790     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_DEFINING_RELATIONSHIP' 
 4791     IN TYPEOF(sar))) ) | ((SIZEOF([
 4792     'DIMENSIONAL_INSPECTION_SCHEMA.CIRCULAR_CLOSED_PROFILE',
 4793     'DIMENSIONAL_INSPECTION_SCHEMA.NGON_CLOSED_PROFILE',
 4794     'DIMENSIONAL_INSPECTION_SCHEMA.RECTANGULAR_CLOSED_PROFILE',
 4795     'DIMENSIONAL_INSPECTION_SCHEMA.CLOSED_PATH_PROFILE'] * 
 4796     TYPEOF(sdr.relating_shape_aspect)) = 1) AND (sdr.
 4797     relating_shape_aspect.description = 'boundary')) )) = 1)) )) 
 4798     <= 1)) )) = 0;
 4799   wr5: SIZEOF(QUERY ( pdr <* get_property_definition_representations(
 4800     SELF) | ((
 4801     'DIMENSIONAL_INSPECTION_SCHEMA.PLANAR_SHAPE_REPRESENTATION' 
 4802     IN TYPEOF(pdr.used_representation)) AND (pdr.
 4803     used_representation.name = 'maximum feature limit')) )) >= 0;
 4804   wr6: SIZEOF(QUERY ( pds <* USEDIN(SELF,
 4805   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4806      | ((
 4807     'DIMENSIONAL_INSPECTION_SCHEMA.PRODUCT_DEFINITION_SHAPE' IN 
 4808     TYPEOF(pds)) AND (SIZEOF(QUERY ( csa <* USEDIN(pds,
 4809     'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_ASPECT.OF_SHAPE') | (((
 4810     'DIMENSIONAL_INSPECTION_SCHEMA.COMPOSITE_SHAPE_ASPECT' IN 
 4811     TYPEOF(csa)) AND (csa.name = 'uncut area')) AND (SIZEOF(
 4812     QUERY ( sar <* csa.component_relationships | ((
 4813     'DIMENSIONAL_INSPECTION_SCHEMA.FEATURE_COMPONENT_RELATIONSHIP' 
 4814     IN TYPEOF(sar)) AND (SIZEOF([
 4815     'DIMENSIONAL_INSPECTION_SCHEMA.BOSS',
 4816     'DIMENSIONAL_INSPECTION_SCHEMA.PROTRUSION'] * TYPEOF(sar.
 4817     related_shape_aspect)) = 1)) )) = 1)) )) <= 1)) )) = 1;
 4818   wr7: SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4819   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4820      | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4821     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4822     'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | ((
 4823     'DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4824     'SHAPE_REPRESENTATION_WITH_PARAMETERS') IN TYPEOF(pdr.
 4825     used_representation)) ) | (NOT (SIZEOF(QUERY ( it <* 
 4826     impl_rep.used_representation.items | ((SIZEOF([
 4827     'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4828     'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] * 
 4829     TYPEOF(it)) = 2) AND (it.name = 'removal depth')) )) <= 1)) )) 
 4830     = 0)) )) = 0;
 4831   END_ENTITY; -- flat_face
 4832 
 4833   ENTITY flatness_tolerance
 4834     SUBTYPE OF (geometric_tolerance);
 4835     WHERE
 4836   wr1: NOT (('DIMENSIONAL_INSPECTION_SCHEMA.' + 
 4837     'GEOMETRIC_TOLERANCE_WITH_DATUM_REFERENCE') IN TYPEOF(SELF));
 4838   END_ENTITY; -- flatness_tolerance
 4839 
 4840   ENTITY founded_item;
 4841   END_ENTITY; -- founded_item
 4842 
 4843   ENTITY functionally_defined_transformation;
 4844       name        : label;
 4845       description : OPTIONAL text;
 4846   END_ENTITY; -- functionally_defined_transformation
 4847 
 4848   ENTITY gear
 4849     SUBTYPE OF (feature_definition);
 4850     WHERE
 4851   wr1 : SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4852   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4853       | (SIZEOF(QUERY ( pdr <* USEDIN(pd,
 4854       'DIMENSIONAL_INSPECTION_SCHEMA.'+
 4855       'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| (((
 4856       'DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 4857      IN TYPEOF(pdr.used_representation)) AND (10 <= SIZEOF(pdr.
 4858      used_representation.items))) AND (SIZEOF(pdr.
 4859      used_representation.items) >= 13)) )) = 1) )) = 1;
 4860   wr2 : (NOT (SELF\characterized_object.description IN [
 4861      'straight bevel gear','helical bevel gear','spur gear',
 4862      'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4863   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4864       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4865      'DIMENSIONAL_INSPECTION_SCHEMA.'+
 4866      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| 
 4867       ('DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 4868      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 4869      QUERY ( it <* impl_rep.used_representation.items | ((
 4870      SIZEOF(['DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4871      'DIMENSIONAL_INSPECTION_SCHEMA.RATIO_MEASURE_WITH_UNIT'] * 
 4872      TYPEOF(it)) = 2) AND (it.name = 'number of teeth')) )) = 1)) )) 
 4873      = 0)) )) = 0);
 4874   wr3 : (NOT (SELF\characterized_object.description IN [
 4875      'straight bevel gear','helical bevel gear','spur gear',
 4876      'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4877   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4878       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4879      'DIMENSIONAL_INSPECTION_SCHEMA.'+
 4880      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| 
 4881       ('DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 4882      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 4883      QUERY ( it <* impl_rep.used_representation.items | ((
 4884      SIZEOF(['DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4885      'DIMENSIONAL_INSPECTION_SCHEMA.PLANE_ANGLE_MEASURE_WITH_UNIT'] 
 4886      * TYPEOF(it)) = 2) AND (it.name = 
 4887      'reference pressure angle')) )) = 1)) )) = 0)) )) = 0);
 4888   wr4 : (NOT (SELF\characterized_object.description IN [
 4889      'straight bevel gear','helical bevel gear','spur gear',
 4890      'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4891   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4892       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4893      'DIMENSIONAL_INSPECTION_SCHEMA.'+
 4894      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION')| 
 4895       ('DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 4896      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 4897      QUERY ( it <* impl_rep.used_representation.items | ((
 4898      SIZEOF([
 4899      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4900      'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] *
 4901       TYPEOF(it)) = 2) AND (it.name = 'rake shift factor')) )) =
 4902       1)) )) = 0)) )) = 0);
 4903   wr5 : (NOT (SELF\characterized_object.description IN [
 4904      'straight bevel gear','helical bevel gear','spur gear',
 4905      'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4906   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4907       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4908      'DIMENSIONAL_INSPECTION_SCHEMA.'+
 4909      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 
 4910       ('DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 4911      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 4912      QUERY ( it <* impl_rep.used_representation.items | ((
 4913      SIZEOF([
 4914      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4915      'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] *
 4916       TYPEOF(it)) = 2) AND (it.name = 'nominal tooth depth')) )) 
 4917      = 1)) )) = 0)) )) = 0);
 4918   wr6 : (NOT (SELF\characterized_object.description IN [
 4919      'straight bevel gear','helical bevel gear','spur gear',
 4920      'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4921   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4922       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4923      'DIMENSIONAL_INSPECTION_SCHEMA.'+
 4924      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 
 4925       ('DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 4926      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 4927      QUERY ( it <* impl_rep.used_representation.items | ((
 4928      SIZEOF(['DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4929      'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] *
 4930       TYPEOF(it)) = 2) AND (it.name = 'face width')) )) = 1)) )) 
 4931      = 0)) )) = 0);
 4932   wr7 : (NOT (SELF\characterized_object.description IN [
 4933      'straight bevel gear','helical bevel gear','spur gear',
 4934      'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4935   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4936       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4937      'DIMENSIONAL_INSPECTION_SCHEMA.'+
 4938      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 
 4939       ('DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 4940      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 4941      QUERY ( it <* impl_rep.used_representation.items | ((
 4942      SIZEOF([
 4943      'DIMENSIONAL_INSPECTION_SCHEMA.MEASURE_REPRESENTATION_ITEM',
 4944      'DIMENSIONAL_INSPECTION_SCHEMA.LENGTH_MEASURE_WITH_UNIT'] *
 4945       TYPEOF(it)) = 2) AND (it.name = 'tip diameter')) )) = 1)) )) 
 4946      = 0)) )) = 0);
 4947   wr8 : (NOT (SELF\characterized_object.description IN [
 4948      'straight bevel gear','helical bevel gear','spur gear',
 4949      'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4950   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4951       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4952      'DIMENSIONAL_INSPECTION_SCHEMA.'+
 4953      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 
 4954       ('DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 4955      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 4956      QUERY ( it <* impl_rep.used_representation.items | (((
 4957      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 4958      IN TYPEOF(it)) AND (it.name = 'module or diametral pitch')) 
 4959      AND ((it.description = 'module') OR (it.description = 
 4960      'diametral pitch'))) )) = 1)) )) = 0)) )) = 0);
 4961   wr9 : (NOT (SELF\characterized_object.description IN [
 4962      'straight bevel gear','helical bevel gear','spur gear',
 4963      'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4964   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4965       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(pd,
 4966      'DIMENSIONAL_INSPECTION_SCHEMA.'+
 4967      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 
 4968       ('DIMENSIONAL_INSPECTION_SCHEMA.SHAPE_REPRESENTATION_WITH_PARAMETERS' 
 4969      IN TYPEOF(pdr.used_representation)) ) | (NOT (SIZEOF(
 4970      QUERY ( it <* impl_rep.used_representation.items | (((
 4971      'DIMENSIONAL_INSPECTION_SCHEMA.DESCRIPTIVE_REPRESENTATION_ITEM' 
 4972      IN TYPEOF(it)) AND (it.name = 'internal or external gear')) 
 4973      AND ((it.description = 'internal') OR (it.description = 
 4974      'external'))) )) = 1)) )) = 0)) )) = 0);
 4975   wr10: (NOT (SELF\characterized_object.description IN [
 4976      'straight bevel gear','helical bevel gear','spur gear',
 4977      'helical gear'])) OR (SIZEOF(QUERY ( pd <* USEDIN(SELF,
 4978   'DIMENSIONAL_INSPECTION_SCHEMA.PROPERTY_DEFINITION.DEFINITION')
 4979       | (NOT (SIZEOF(QUERY ( impl_rep <* QUERY ( pdr <* USEDIN(
 4980      pd,'DIMENSIONAL_INSPECTION_SCHEMA.'+
 4981      'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION') | 
 4982