(Union T 1 , . . , T k End) T = TT U … U TT {{| v 1 , . . , v k |} | k ≥ 0 , v i ∈ T T , for i ∈ {1 , . . , k }} (Set-of T) 3 (Record A 1 : T 1 , . . , A k : T k End) T {[[A 1 : v 1 , . . . , A h : v h ]] | h ≥ k , vi E T, for i E {1, . . , k}, v j E V OI , for j E {k + 1, . . . , h}}.
 $\blacksquare$
Notice that the instances of type record may have more components than those specified in the type of the class. Thus we are using an open semantics for records, which is typical of object-oriented data models (Abiteboul & Kanellakis, 1989).

In order to characterize object-oriented data models we consider the instances that are admissible for the schema. Definition 5.4 Let S = ( Cs, As, Ds ) be an object-oriented schema. A database instance J of S is said to be legal (with respect to S ) if for each declaration

$${\underline{{\mathrm{Class~}}}}\ C{\mathrm{~is-a~}}C_{1},\ldots,C_{n}{\mathrm{~{\underline{{\mathrm{type-is~}}}}~}}T$$
in $\mathcal{D}_S$, it holds that $C^{\mathcal{J}}\subseteq C^{\mathcal{J}}_i$ for each $i\in\{1,\ldots,n\}$, and that $\rho^{\mathcal{J}}(C^{\mathcal{J}}\,)\subseteq T^{\mathcal{J}}\,$. 
Therefore, for a legal database instance, the type expressions that are present in the schema determine the (finite) set of active values that must be considered.  The construction of such values is limited by the depth of type expressions.

## 5.3 Relationship Between Object-Oriented Schemata And Aluni

We establish now a relationship between ALUNI and the object-oriented language presented above. This is done by providing a mapping from object-oriented schemata into ALUNI
knowledge bases.  Since the interpretation domain for ALUNI knowledge bases consists of atomic objects, whereas each instance of an object-oriented schema is assigned a possibly structured value (see the definition of V O ), we need to explicitly represent some of the notions that underlie the object-oriented language. In particular, while there is a correspondence between concepts and classes, one must explicitly account for the type structure of each class. This can be accomplished by introducing in ALUNI concepts AbstractClass, to represent the classes, and RecType and SetType to represent the corresponding types.

The associations between classes and types induced by the class declarations, as well as the basic characteristics of types, are modeled by means of roles: the (functional) role value models the association between classes and types, and the role member is used for specifying the type of the elements of a set. Moreover, the concepts representing types are assumed to be mutually disjoint, and disjoint from the concepts representing classes. These constraints are expressed by adequate inclusion assertions that will be part of the knowledge base we are going to define.

We first define the function ψ that maps each type expression into an ALUNI concept expression as follows:
- Every class C is mapped into an atomic concept ψ( C ).

* Every type expression $\underline{\text{Union}}\,T_{1},\ldots,T_{k}$ End is mapped into $\psi(T_{1})\,\sqcup\,\cdots\,\sqcup\,\psi(T_{k})$.  