Matching structures Index Data conversion Formal compositional relationships, a subsumption relationship over sorts, and a behavioral specification for sorts, allow sortal structures to be compared and related with respect to scope and coverage, and data loss to be assessed when converting data from one sortal structure to another. When converting data between similar sorts, exact translation, that is, no data loss except for a loss of semantic identity, applies. When the source sort is subsumed by the destination sort, exact translation applies. When the source sort subsumes the destination sort, any data loss is dependent on the actual data, that is, whether data belongs to any component sort of the source that is not a component of the destination sort. When both sorts are neither similar, nor one subsumes the other, exact translation may still apply, however, possibly dependent on the sort's behavioral category. Consider an attribute sort consisting of two primitive sorts (its base and weight), and another attribute sort consisting of the same two primitive sorts in opposite order (its weight and base, respectively). If both sorts specify a discrete behavior, reversing the object-attribute relationships will incur no data loss occurs, except for the identity of the relationship. However, if one of the sorts specifies an ordinal behavior, data loss may occur. For example, a form of line segments with various weights assigned as attributes, upon conversion, will yield a single weight (the maximum value of all attribute weights) with the entire form of line segments as its attribute form. Reconverting the data will result in each line segment sharing the same weight.   Four comparative dimensions Comparing sortal structures requires a comparison of their simple components, of their structural similarity, of any subsumption relationship and of the relative completeness of their structures. Simple sorts (primitive sorts or the aspects of aspect sorts) can be compared semantically (by name) and syntactically (by characteristic individual and its arguments, if any). Simple sorts are deemed identical if they are both semantically and syntactically identical. Simple sorts are deemed equivalent if they are semantically derived from one another or from a common sort. A sort a is semantically derived from another sort b, if it is defined as a (re)naming of the other sort, a : b. Simple sorts that are not equivalent, are deemed redefined if they are both defined from the same characteristic individual, with the same arguments, if any. Simple sorts are deemed constrained if they are defined from the same characteristic individual but with different arguments. Simple sorts are deemed incongruent if their characteristic individuals differ. Data conversion between redefined sorts incurs no data loss, except semantically. In the case of constrained sorts, this is dependent on the actual constraints (i.e., argument values). It is assumed that no data conversion is possible between incongruent sorts, though data conversion may still be possible between specific characteristic individuals. However, such cases are left to the user to be defined, for instance through conversion rules. The structural similarity of sorts can be distinguished as identical, similar, transposable or transformable (or incongruent). Sortal structures are deemed similar if they share the same compositional structure but substructures are named differently, or one substructure has been named while the other one hasn't. Compositional structures are also deemed similar if one can be derived from the other through expansion and/or contraction. For example, a disjunctive composition of attribute sorts that all share the same base sort can be contracted into an attribute sort with a disjunctive weight sort; expansion is the reverse operation. For a simple sort a, and any sorts b and c: a ^ b + a ^ c is similar to a ^ (b + c). Also, a + b + c is similar to a + (b + c), or a + d, where d : b + c. Compositional structures are deemed transposable if one can be derived from the other through the rearrangement of attribute components, e.g., the reversal of the object-attribute relationship between two simple sorts. For two simple sorts a and b, and any sort c: a ^ b is transposable to b ^ a, and a ^ b ^ c is to b ^ a ^ c. This also applies if a and/or b is itself an attribute sort. Compositional structures are also deemed transposable if one can be derived from the other through unchaining. For example, an attribute sort of which the weight sort is itself an attribute sort can be unchained into a disjunctive composition of two attribute sorts where one equals the weight sort and the other is a composition under the attribute operation of the base sort and the weight's base sort. For two simple sorts a and b, and any sort c: a ^ b ^ c is transposable to a ^ b + b ^ c. Compositional structures are deemed transformable if one can be derived from the other through chaining. Chaining is the reverse operation of unchaining. For two simple sorts a and b, and any sort c: a ^ b + b ^ c is transformable to a ^ b ^ c. Compositional structures are also deemed transformable if one can be derived from the other through attribution and/or disjunction. For example, any disjunctive composition of two sorts can be transformed through attribution, either into an attribute sort or into another disjunctive sort. If the first component is a simple sort, it may become the base of an attribute sort, the weight of which is the second component sort. If the first component is an attribute sort, its base may become the base of a new attribute sort, the weight of which is the result of attribution of the first component sort's weight and the second component. If the first component is itself a disjunctive sort, then, the result is a new disjunctive sort of which each component is the result of attribution of the respective component of the first component sort with the second component sort. Data conversion between similar sortal structures, as long as they are relatively complete and composed of identical, equivalent or redefined simple sorts, incurs no data loss, except semantically. In the case of transposable sortal structures, this is dependent on the sorts' behavioral categories (see the section "Data conversion" above). The same applies for transformable sortal structures, though the potential for data loss is higher ... With respect to the subsumption relationship, matches can be deemed concordant, a part-of, a subsumption and partial (and incongruent). The matching of two sortal structures is deemed concordant if, considering structural similarity, matching of simple sorts and possible incompleteness, either subsumes the other. The matching of two sortal structures is deemed a part-of if, considering structural similarity, matching of simple sorts and possible incompleteness, the first one is subsumed by the second, but not the other way around. The matching of two sortal structures is deemed a subsumption if, considering structural similarity, matching of simple sorts and possible incompleteness, the first one is subsumed by the second, but not the other way around. The matching of two sortal structures is deemed partial if, considering structural similarity, matching of simple sorts and possible incompleteness, neither subsumes the other but there exists a common part. Purely with respect to the subsumption relationship, exact translation applies in the case of a concordant or part-of match (when converting data from the subsumed to the subsuming sortal structure). Data loss is dependent on the actual data in the case of a subsumption or partial match; if data only belongs to that part of the first sortal structure that matches the subsumed structure (or part thereof), exact translation applies, again, purely with respect to the subsumption relationship. In terms of completeness of the match, the categories considered are complete, (monotonically) increasing, (monotonically) decreasing and antitonic (and incongruent). Incomplete matches are a consequence of discarding the base sort of an attribute sort. For a simple sort a and any sort b, the matching of b with a ^ b, in that order, is deemed increasing. For a simple sort a and any sort b, the matching of a ^ b with b, in that order, is deemed decreasing. For two simple, incongruent sorts a and c, and any sort b, the matching of a ^ b with c ^ b, in any order, is deemed antitonic. Data loss always occurs in case of a decreasing or antitonic match between sortal structures. In the case of an increasing match, data must be added. This could be an individual with default value, though this default value may not be considered a nil value for this characteristic individual. Alternatively, this value might be user-specified through a conversion rule. An incongruent match necessarily requires incongruence to occur on all four dimensions. Alternative matches are prioritized with respect to these four dimensions. Their specific ordering might need further fine-tuning but, in principle, structural dissimilarity is preferred over equivalent simple sorts, which in turn are preferred over part-of or subsumption matches, which in turn are preferred over monotonically incomplete matches. Redefined or constrained simple sorts are to be avoided as much as possible as these are purely syntactic matches without any semantic relationship. Last update: 9 June 2012, webmaster @ sortal.org