Data Unification:
To optimize the UPR data structures, during design we study the semantics of each data type of the supported CAD systems and identify data types that are of similar semantics. Initial semantics assumptions are made according to the CAD system's user guide, and are modified after extensive empirical usage of the CAD system by experienced users. Data types that are finally considered similar share data structures.
Data unification is only an optimization. When data types are incompatible, they are not unified and are handled through rewrites (see below). This stands in sharp contrast to previous methods, in which each and every data type is 'unified' by adopting a 'standard' definition.
As a simple example, take the very common case of CAD systems using different terms to denote semantically identical operations (e.g., 2-D Sketch and 2-D Section, Round and Fillet). In this particular case, unification simply amounts to selecting one of these terms and storing the data under its title. Another simple example is given by a 'triangle' object represented by three vertices: one system may use a clockwise orientation while another may use a counter-clockwise one. The UPR would arbitrarily select one of these options; import procedures would employ the appropriate orientation. In practice, data unification requires unifying data structures that are not formally mathematically equivalent. For example, as mentioned above, almost all of the design features provided by CAD systems are not formally specified. While their 'ordinary' semantics may possibly be understood and expressed formally, their behaviour under various configurations is in many cases hard to define. Nonetheless, we may allow their unification provided that their 'in ordinary' behaviour occurs in a small number of cases, and relying on the rewrite mechanism (see below) to handle these cases. Data unification serves to reduce the number of disparate data types in the UPR. The exact magnitude of this reduction depends on the functional similarities between the CAD systems and on the degree of practical compromising exhibited by the UPR designer. Since almost all modern CAD systems are based on the same fundamental paradigm and generally provide similar functionality to their users, data unification can be expected to produce effective results.