- Every type expression Set-of T is mapped into SetType Π Vmember.ψ(T) .

- Every attribute A is mapped into an atomic role ψ(A), and every type expression

$${\underline{{\mathrm{InecoUd}}}}\ A_{1}\colon I_{1},$$

Record A 1 : T 1 , . . , A k : T k End is mapped into

$$\begin{array}{c}{{\mathrm{RecType}\sqcap\forall\psi(A_{1}).\psi(T_{1})\sqcap\exists^{=1}\psi(A_{1})\sqcap\cdot\cdot\cdot\sqcap}}\\ {{\forall\psi(A_{k}).\psi(T_{k})\sqcap\exists^{=1}\psi(A_{k}).}}\end{array}$$

Using ψ we define the ALUNI knowledge base corresponding to an object-oriented schema.

Definition 5.5 The ALUNI knowledge base ψ( S ) = ( A, P, T ) corresponding to the objectoriented schema S = ( Cs, As, Ds ) is obtained as follows:

- A = {AbstractClass, RecType, SetType} U {¥(C') | C' E Cs}.

$$\bullet\ {\mathcal{P}}=\left\{{\tt{value}},\,{\tt{member}}\,\right\}\cup\left\{\psi(A)\mid A\in{\mathcal{A}}_{S}\right\}.$$

- T consists of the following assertions:

$$\begin{array}{r l}{\texttt{AbstractClass}}&{{}\stackrel{\cdot}{\rightarrow}}&{\exists^{=1}\texttt{value}}\\ {\texttt{RecType}}&{{}\stackrel{\cdot}{\rightarrow}}&{\forall\texttt{value}.\bot}\\ {\texttt{SetType}}&{{}\stackrel{\cdot}{\rightarrow}}&{\forall\texttt{value}.\bot\sqcap\neg\texttt{RecType}}\end{array}$$
 $\circ)\;|\;C\in\mathcal{C}_{\mathcal{S}}\}$. 
and for each class declaration

  **Class $C$ is-a $C_{1}$, $\cdot\cdot\cdot$, $C_{n}$ type-is $T$**
in Ds, an inclusion assertion

$\psi(C)\stackrel{{\cdot}}{{\rightarrow}}$**AbstractClass $\sqcap\psi(C_{1})\sqcap\cdots\sqcap\psi(C_{n})\sqcap\forall\mbox{\bf value}.\psi(T)$.**
From the above translation we can observe that inverse roles are not necessary for the formalization of object-oriented data models. Indeed, the possibility of referring to the inverse of an attribute is generally ruled out in such models. However, this strongly limits the expressive power of the data model, as pointed out in recent papers (see for example Albano, Ghelli, & Orsini, 1991; Cattell, 1994). Note also that the use of number restrictions is limited to the value 1, which corresponds to existence constraints and functionality, whereas union is used in a more general form than for example in the KEE system.

Example 5.2 (cont.) We illustrate the translation on the fragment of object-oriented schema in Figure 7. The corresponding ALUNI knowledge base is shown in Figure 8.