%\cleardoublepage

%\addcontentsline{toc}{chapter}{A complete example}

%\thispagestyle{plain}

%\markboth{A complete example}{A complete example}

%\hspace{1cm} \\
%\hspace{1cm} \\
%\huge {\bf A complete example}

%\normalsize \vspace{2cm}


\chapter{The running example}
\label{A1:example}

\parindent 0pt
\begin{figure}[t]
\small
\begin{tabular}{|l|}
\multicolumn{1}{l}{{\bf Sorgente UNIVERSITY} $(UNI)$}\\ \hline
{\tt Research\_Staff(relation,name,dept\_code,section\_code,e\_mail)}\\
{\tt School\_Member(name,faculty,year)} \\ {\tt
Department(dept\_name,dept\_code,budget)} \\ {\tt
Section(section\_name,section\_code,length,room\_code)}\\ {\tt
Room(room\_code,seats\_number,notes)} \\
\texttt{Article(year,subject,author,title,journal,article\_code)}\\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}
\begin{tabular}{|l|}
\multicolumn{1}{l}{{\bf Sorgente COMPUTER\_SCIENCE} $(CS)$}\\
\hline
{\tt CS\_Person(first\_name,last\_name)}\\
{\tt Professor:CS\_Person(belongs\_to,rank,title)} \\
{\tt Student:CS\_Person(year,takes,rank)} \\
{\tt Office(description,address,code)}\\
{\tt Location(floor,number,building\_name)} \\
{\tt Course(course\_name,taught\_by,taught\_in)}\\
{\tt Essay:Publication(subject,journal)}\\
{\tt Publication(year,title,authors)}\\
{\tt ClassRoom(seats,code,address,notes)}\\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}
\caption{Reference example} \label{fi:esempio}
\end{figure}

In this appendix we present a complete reference example of the
MOMIS framework.

\vspace{0.2cm} We start introducing with a schematic model two
sources (Figure \ref{fi:esempio}). The sources derive from an
university scenario:
\begin{itemize}
    \item The first source, {\tt University} $(UNI)$, is a
    \emph{relational DataBase} that contains data about personnel and
    student of a specific university; it has the following tables:
    {\tt Research\_Staff}, {\tt School\_Member},
    {\tt Department}, {\tt Section}, {\tt Room} and {\tt Article}.
    For a given professor (in \texttt{Research\_Staff}) his
    department (\texttt{dept\_code}), his section
    (\texttt{section\_code}) and his e-mail address
    (\texttt{e-mail})are stored. In the relation
    \texttt{School\_Member} the information \texttt{name},
    \texttt{year} and \texttt{faculty}
    about students enrolled at the university are stored.
    \texttt{Department} has a code (\texttt{dept\_code}), a name
    (\texttt{dept\_name}) and a \texttt{budget}. We know that a
    \texttt{Section} has a code (\texttt{section\_code}), a name
    (\texttt{section\_name}), a \texttt{length} and it is related
    to a room (\texttt{room\_code}). With reference to \texttt{Room}
    we know its code (\texttt{room\_code}), the number of seats
    (\texttt{seats\_number}) and we have some \texttt{notes}.
    Finally we have articles, written by an \texttt{author}, with
    a \texttt{title}, a code (\texttt{article\_code}), the year of
    publication and the \texttt{subject}.

    \item The source {\tt Computer\_Science} ($CS$) represents
    information about people related to the Computer Science
    department. This source is a \emph{object DataBase}. There are
    nine classes: {\tt CS\_Person}, {\tt Professor}, {\tt Student},
    {\tt Office}, {\tt Location}, {\tt ClassRoom}, {\tt Essay},
    {\tt Publication} and {\tt Course}. Information is quite
    similar to the first source: it stores data on \emph{professors}
    (\texttt{Professor}) and \emph{students} (\texttt{Student}),
    also giving the possibility to retrieve the \texttt{Office} of
    a given professor. The class \texttt{Location} maintains the position
    inside the computer science department. With respect to
    students (\texttt{Student}), we may know the courses they
    take (\texttt{takes}), their \texttt{year} and their
    \texttt{rank}. Moreover we have information about the
    publications (\texttt{Publication}) or essays (\texttt{Essay})
    written by the computer science's members and of the
    classrooms (\texttt{ClassRoom}) where courses (\texttt{Course}) are taught.
\end{itemize}
Now we present the description of the two sources in \lang{}
language.

\clearpage \noindent Source {\tt University} $UNI$:

\scriptsize
\begin{verbatim}
 interface Research_Staff
 ( source relational University
   extent Research_Staff
   key (name)
   foreign_key (dept_code) references Department (dept_code)
   foreign_key (section_code) references Section (section_code) )
 { attribute string relation;
   attribute string name;
   attribute long section_code;
   attribute long dept_code;
   attribute string e_mail; };

 interface Room
 ( source relational University
   extent Room
   key (room_code) )
 { attribute long seats_number;
   attribute string notes;
   attribute long room_code; };

 interface Article
 ( source relational University
   extent Articles
   key (article_code)
   foreign_key (author) references Research_Staff (name) )
 { attribute long year;
   attribute string subject;
   attribute string author;
   attribute string title;
   attribute string journal;
   attribute long article_code; };

 interface School_Member
 ( source relational University
   extent School_Member
   key (name) )
 { attribute long year;
   attribute string name;
   attribute string faculty; };

 interface Section
 ( source relational University
   extent Section
   key (section_code)
   foreign_key (room_code) references Room (room_code) )
 { attribute long section_code;
   attribute long length;
   attribute string section_name;
   attribute long room_code; };

 interface Department ( source relational University
   extent Department
   key (dept_code) )
 { attribute long dept_code;
   attribute long budget;
   attribute string dept_name; };
\end{verbatim}

\clearpage \normalsize

\noindent Source {\tt Computer\_Science} $CS$:

\scriptsize
\begin{verbatim}
 interface Professor: CS_Person                 interface ClassRoom
 ( source object Computer_Science                ( source object Computer_Science
   extent Professors )                             extent ClassRooms )
 { attribute string rank;                        { attribute long seats;
   attribute string title;                         attribute long code;
   attribute Office belongs_to; };                 attribute Location address;
                                                   attribute string notes; };
 interface Essay: Publication
 ( source object Computer_Science
   extent Essays )
 { attribute string subject;
   attribute string journal; };

 interface Publication
 ( source object Computer_Science
   extent Publications )
 { attribute long year;
   attribute set<Professor> authors;
   attribute string title; };

 interface Office
 ( source object Computer_Science
   extent Offices
   key (description) )
 { attribute string code;
   attribute string description;
   attribute Location address; };

 interface Student: CS_Person
 ( source object Computer_Science
   extent Students )
 { attribute long year;
   attribute string rank;
   attribute set<Course> takes; };

 interface Course
 ( source object Computer_Science
   extent Courses )
 { attribute string course_name;
   attribute Professor taught_by;
   attribute ClassRoom taught_in; };

 interface Location
 ( source object Computer_Science
   extent Locations )
 { attribute long floor;
   attribute long number;
   attribute string building_name; };

 interface CS_Person
 ( source object Computer_Science
   extent CS_Persons
   key (first_name, last_name) )
 { attribute string first_name;
   attribute string last_name; };

\end{verbatim}

\normalsize

\clearpage \noindent The \emph{Common Thesaurus} at the end of the
sources analysis contains the following relations. The last two
column represent the module that has produced the relation and if
the relation is validated.\\

\noindent \textbf{Common Thesaurus relationships}

\vspace{0.5cm} \scriptsize
\begin{ttfamily}
\begin{center}
\begin{tabular}{lclcc}
Term & Rel. & Term & Module & Validated \\
Computer\_Science.Location & RT & Computer\_Science.ClassRoom & SIMA & YES \\
University.Department & RT & University.Research\_Staff & SIMA & YES \\
University.Section & RT & University.Research\_Staff & SIMA & YES \\
University.Research\_Staff.name & SYN & University.Article.author & SIMA & YES \\
University.Research\_Staff & RT & University.Article & SIMA & YES \\
University.Room & RT & University.Section & SIMA & YES \\
Computer\_Science.Professor & NT & Computer\_Science.CS\_Person & SIMA & YES \\
Computer\_Science.Essay & NT & Computer\_Science.Publication & SIMA & YES \\
Computer\_Science.Student & NT & Computer\_Science.CS\_Person & SIMA & YES \\
Computer\_Science.Office & RT & Computer\_Science.Professor & SIMA & YES \\
Computer\_Science.Professor & RT & Computer\_Science.Publication & SIMA & YES \\
Computer\_Science.Location & RT & Computer\_Science.Office & SIMA & YES \\
Computer\_Science.Course & RT & Computer\_Science.Student & SIMA & YES \\
Computer\_Science.Professor & RT & Computer\_Science.Course & SIMA & YES \\
Computer\_Science.ClassRoom & RT & Computer\_Science.Course & SIMA & YES \\
University.Section & RT & Computer\_Science.Professor & SIMB & YES \\
University.Article & RT & Computer\_Science.Professor & SIMB & YES \\
University.Department & RT & Computer\_Science.Professor & SIMB & YES \\
Computer\_Science.Office & RT & University.Research\_Staff & SIMB & YES \\
Computer\_Science.Course & RT & University.Research\_Staff & SIMB & YES \\
Computer\_Science.Publication & RT & University.Research\_Staff & SIMB & YES \\
University.Room & RT & Computer\_Science.Course & SIMB & YES \\
Computer\_Science.Course & RT & University.School\_Member & SIMB & YES \\
Computer\_Science.Student & RT & University.Section & SIMB & YES \\
Computer\_Science.ClassRoom & RT & University.Section & SIMB & YES \\
University.Article & NT & University.Research\_Staff.relation & SLIM & YES \\
University.Article.year & SYN & University.School\_Member.year & SLIM & YES \\
University.Article.year & SYN & Computer\_Science.Publication.year & SLIM & YES \\
University.Article.year & SYN & Computer\_Science.Student.year & SLIM & YES \\
University.School\_Member.year & SYN & Computer\_Science.Publication.year & SLIM & YES \\
University.School\_Member.year & SYN & Computer\_Science.Student.year & SLIM & YES \\
Computer\_Science.Publication.year & SYN & Computer\_Science.Student.year & SLIM & YES \\
University.Article.author & SYN & Computer\_Science.Publication.authors & SLIM & NO \\
Computer\_Science.CS\_Person & BT & University.Article.author & SLIM & YES \\
Computer\_Science.CS\_Person & BT & Computer\_Science.Publication.authors & SLIM & YES \\
University.Research\_Staff.name & SYN & University.School\_Member.name & SLIM & YES \\
University.Research\_Staff.name & NT & University.Research\_Staff.relation & SLIM & YES \\
University.School\_Member.name & NT & University.Research\_Staff.relation & SLIM & YES \\
Computer\_Science.Professor.title & NT & University.Research\_Staff.name & SLIM & YES \\
Computer\_Science.Professor.title & NT & University.School\_Member.name & SLIM & YES \\
Computer\_Science.Professor.title & NT & University.Research\_Staff.relation & SLIM & YES \\
University.Research\_Staff & SYN & Computer\_Science.Professor & SLIM & YES \\
University.Research\_Staff & NT & Computer\_Science.CS\_Person & SLIM & YES \\
Computer\_Science.Location.floor & RT & Computer\_Science.Location.building\_name & SLIM & NO \\
Computer\_Science.Essay & NT & University.Research\_Staff.relation & SLIM & YES \\
Computer\_Science.Office.code & NT & University.Research\_Staff.relation & SLIM & YES \\
University.Section & SYN & University.Section.section\_name & SLIM & YES \\
University.Section & SYN & Computer\_Science.Course & SLIM & YES \\
University.Section & SYN & Computer\_Science.Course.course\_name & SLIM & YES \\
Computer\_Science.Course & SYN & University.Section.section\_name & SLIM & YES \\
\end{tabular}
\end{center}

\clearpage
\begin{center}
\begin{tabular}{lclcc}
Term & Rel. & Term & Module & Validated \\
University.Section.section\_name & SYN & Computer\_Science.Course.course\_name & SLIM & YES \\
Computer\_Science.Course & SYN & Computer\_Science.Course.course\_name & SLIM & YES \\
University.Room & RT & Computer\_Science.Location.building\_name & SLIM & YES \\
University.Article.title & SYN & Computer\_Science.Publication.title & SLIM & YES \\
University.Article.title & NT & University.Research\_Staff.relation & SLIM & YES \\
Computer\_Science.Publication.title & NT & University.Research\_Staff.relation & SLIM & YES \\
Computer\_Science.Professor.rank & SYN & Computer\_Science.Student.rank & SLIM & YES \\
University.School\_Member & SYN & Computer\_Science.Student & SLIM & YES \\
University.School\_Member & NT & Computer\_Science.CS\_Person & SLIM & YES \\
Computer\_Science.Office.address & SYN & Computer\_Science.ClassRoom.address & SLIM & YES \\
Computer\_Science.Office.address & NT & University.Room.room\_code & SLIM & NO \\
Computer\_Science.ClassRoom.address & NT & University.Room.room\_code & SLIM & NO \\
Computer\_Science.ClassRoom & NT & University.Room & SLIM & YES \\
University.Room.notes & SYN & Computer\_Science.ClassRoom.notes & SLIM & YES \\
University.Room.notes & NT & University.Research\_Staff.relation & SLIM & YES \\
Computer\_Science.ClassRoom.notes & NT & University.Research\_Staff.relation & SLIM & YES \\
Computer\_Science.CS\_Person.first\_name & NT & University.Research\_Staff.name & SLIM & YES \\
Computer\_Science.CS\_Person.last\_name & NT & University.Research\_Staff.name & SLIM & YES \\
Computer\_Science.CS\_Person.first\_name & NT & University.School\_Member.name & SLIM & YES \\
Computer\_Science.CS\_Person.last\_name & NT & University.School\_Member.name & SLIM & YES \\
University.Article.title & NT & University.Research\_Staff.name & SLIM & YES \\
University.Article.title & NT & University.School\_Member.name & SLIM & YES \\
Computer\_Science.Publication.title & NT & University.Research\_Staff.name & SLIM & YES \\
Computer\_Science.Publication.title & NT & University.School\_Member.name & SLIM & YES \\
University.Room.seats\_number & SYN & Computer\_Science.ClassRoom.seats & SLIM & YES \\
University.Room.seats\_number & NT & University.Research\_Staff.relation & SLIM & NO \\
Computer\_Science.ClassRoom.seats & NT & University.Research\_Staff.relation & SLIM & NO \\
University.Department & SYN & University.School\_Member.faculty & SLIM & YES \\
University.School\_Member.faculty & SYN & University.Department.dept\_name & SLIM & YES \\
University.Department & SYN & University.Department.dept\_name & SLIM & YES \\
University.Article.journal & SYN & Computer\_Science.Essay.journal & SLIM & YES \\
Computer\_Science.Publication & BT & University.Article.journal & SLIM & YES \\
Computer\_Science.Publication & BT & Computer\_Science.Essay.journal & SLIM & YES \\
University.Article & NT & Computer\_Science.Publication & TRE$^*$ & YES \\
\end{tabular}
\end{center}
\end{ttfamily}

\noindent $^*$ = Thesaurus Relations Editor.\\

\normalsize \noindent We recall briefly the source of each type of
relations (see sec. \ref{c3:Cthes} for a complete description):
\begin{itemize}
    \item \textbf{SIMA} is the module that analyze the local sources
    schemas to find intra- and inter-schema relationships.
    \item \textbf{SIMB} is the module that checks (validates) the correctness
    of attribute relationships and infers new relationships using
    ODB-Tools.
    \item \textbf{SLIM} is the module that infers relationships
    exploiting the semantic annotation of the local terms against
    the lexical database WordNet.
    \item \textbf{TRE} is the Thesaurus Relations Editor that
    guide the user inserting specific relationships in the
    Thesaurus.
\end{itemize}

\vspace{0.2cm} \noindent With respect to the annotation of the
local terms, we show some examples.

\noindent Each term has a name and a meaning; each meaning is
composed of a word form (or lemma) and a counter that represents
the sense associated with those word form. Some terms can be
annotated with more than one meaning. Below each term there is the
complete WordNet sense.

\footnotesize
\begin{center}
\begin{ttfamily}
Source.Class.Attribute = <name, \{lemma\#sense\}>
\end{ttfamily}
\end{center}

\normalsize \noindent \textbf{Local terms annotation.}

\footnotesize
\begin{verbatim}
Computer_Science.CS_Person = <person,{person#1}>
    person#1 = a human being

Computer_Science.Professor = <professor,{professor#1}>
    professor#1 = someone who is a member of the faculty at a college or university

University.School_Member = <student,{student#1}>
    student#1 = a learner who is enrolled in an educational institution

Computer_Science.Essay = <essay,{essay#1}>
    essay#1 = an analytic or interpretive literary composition

Computer_Science.Publication = <publication,{publication#2}>
    publication#2 = a copy of a printed work offered for distribution

University.Article = <article,{article#1}>
    article#1 = nonfictional prose forming an independent part of a publication

Computer_Science.Course = <course,{course#1}>
    course#1 = education imparted in a series of lessons or class meetings

University.Section = <section,{course#1}>
    course#1 = education imparted in a series of lessons or class meetings

Computer_Science.Office = <office,{office#1}>
    office#1 = place of business where professional or clerical duties are performed

Computer_Science.Student.first_name = <first_name,{first name#1}>
    first name#1 = the name that precedes the surname

Computer_Science.Student.last_name = <last_name,{last name#1}>
    last name#1 = the name used to identify the members of a family

Computer_Science.Professor.name = <name,{name#1}>
    name#1 = a language unit by which a person or thing is known

Computer_Science.Professor.rank = <rank,{rank#2}>
    rank#2 = relative status

Computer_Science.Student.rank = <rank,{rank#4}>
    rank#4 = position in a social hierarchy

Computer_Science.Professor.title = <title,{title#6,tile#9}>
    title#6 = an identifying appellation signifying status or function
    title#9 = an appellation signifying nobility
\end{verbatim}
\normalsize

\vspace{0.3cm} \noindent The next step is the Clusters generation.
The integration process produces seven clusters.\\

\noindent \textbf{Clusters.}\\

\small
\begin{tabular}{|l|}
\hline
\multicolumn{1}{|l|}{{\bf Global$_0$ (Course)}} \\
\hspace{0.3cm} {\tt Computer\_Science.Course} \\
\hspace{0.3cm} {\tt University.Section} \\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}

\vspace{0.3cm}
\begin{tabular}{|l|}
\hline
\multicolumn{1}{|l|}{{\bf Global$_1$ (Department)}} \\
\hspace{0.3cm} {\tt University.Department} \\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}

\vspace{0.3cm}
\begin{tabular}{|l|}
\hline
\multicolumn{1}{|l|}{{\bf Global$_2$ (Location)}} \\
\hspace{0.3cm} {\tt Computer\_Science.Location} \\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}

\vspace{0.3cm}
\begin{tabular}{|l|}
\hline
\multicolumn{1}{|l|}{{\bf Global$_3$ (Office)}} \\
\hspace{0.3cm} {\tt Computer\_Science.Office} \\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}

\vspace{0.3cm}
\begin{tabular}{|l|}
\hline
\multicolumn{1}{|l|}{{\bf Global$_4$ (Person)}} \\
\hspace{0.3cm} {\tt Computer\_Science.CS\_Person} \\
\hspace{0.3cm} {\tt Computer\_Science.Professor} \\
\hspace{0.3cm} {\tt University.Research\_Staff} \\
\hspace{0.3cm} {\tt University.School\_Member} \\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}

\vspace{0.3cm}
\begin{tabular}{|l|}
\hline
\multicolumn{1}{|l|}{{\bf Global$_5$ (Publication)}} \\
\hspace{0.3cm} {\tt Computer\_Science.Essay} \\
\hspace{0.3cm} {\tt Computer\_Science.Publication} \\
\hspace{0.3cm} {\tt University.Article} \\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}

\vspace{0.3cm}
\begin{tabular}{|l|}
\hline
\multicolumn{1}{|l|}{{\bf Global$_5$ (Publication)}} \\
\hspace{0.3cm} {\tt Computer\_Science.ClassRoom} \\
\hspace{0.3cm} {\tt University.Room} \\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}

\normalsize \vspace{0.3cm} Figure \ref{clusters} is a screenshot
of the Clusters generation tab of the MOMIS system; the designer
can refine the automatic elaboration of the clusters.
\begin{figure}[h]
  \begin{center}
    \epsfig{figure=clusters.eps,totalheight=8cm,angle=0}
    \caption{Cluster generation tab.}\label{clusters}
  \end{center}
\end{figure}

After the creation of clusters there is the Global Class
generation; for each global class the system propose a mapping
table to the designer that can refine the proposed mapping
rules. We present here the \lang~ representation of the global classes.\\

\noindent \textbf{Global Classes.}\\

\small
\begin{verbatim}
interface Global0 (Course) {
   attribute string course_name;
      mapping_rules(
         Computer_Science.Course: course_name
         University.Section: section_name
                   )

   attribute integer length;
      mapping_rules(
         Computer_Science.Course: NULL
         University.Section: length
                   )
   attribute integer room_code;
      mapping_rules(
         Computer_Science.Course: NULL
         University.Section: room_code
                   )
   attribute integer section_code;
      mapping_rules(
         Computer_Science.Course: NULL
         University.Section: section_code
                   )
   attribute complex taught_by;
      mapping_rules(
         Computer_Science.Course: taught_by
         University.Section: NULL
                   )
   attribute complex taught_in;
      mapping_rules(
         Computer_Science.Course: taught_in
         University.Section: NULL
                   )
}

interface Global1 (Department) {
   attribute integer budget;
      mapping_rules(
         University.Department: budget
                   )
   attribute integer dept_code;
      mapping_rules(
         University.Department: dept_code
                   )
   attribute string dept_name;
      mapping_rules(
         University.Department: dept_name
                   )
}



interface Global2 (Location) {
   attribute string building_name;
      mapping_rules(
         Computer_Science.Location: building_name
                   )
   attribute integer floor;
      mapping_rules(
         Computer_Science.Location: floor
                   )
   attribute integer number;
      mapping_rules(
         Computer_Science.Location: number
                   )
}

interface Global3 (Office) {
   attribute complex address;
      mapping_rules(
         Computer_Science.Office: address
                   )
   attribute string code;
      mapping_rules(
         Computer_Science.Office: code
                   )
   attribute string description;
      mapping_rules(
         Computer_Science.Office: description
                   )
}

interface Global4 (Person) {
   attribute complex belongs_to;
      mapping_rules(
         Computer_Science.CS_Person: NULL
         Computer_Science.Professor: belongs_to
         Computer_Science.Student: NULL
         University.Research_Staff: NULL
         University.School_Member: NULL
                   )
   attribute integer dept_code;
      mapping_rules(
         Computer_Science.CS_Person: NULL
         Computer_Science.Professor: NULL
         Computer_Science.Student: NULL
         University.Research_Staff: dept_code
         University.School_Member: NULL
                   )
   attribute string e_mail;
      mapping_rules(
         Computer_Science.CS_Person: NULL
         Computer_Science.Professor: NULL
         Computer_Science.Student: NULL
         University.Research_Staff: e_mail
         University.School_Member: NULL
                   )
   attribute string faculty;
      mapping_rules(
         Computer_Science.CS_Person: NULL
         Computer_Science.Professor: NULL
         Computer_Science.Student: NULL
         University.Research_Staff: NULL
         University.School_Member: faculty
                   )
   attribute string name;
      mapping_rules(
         Computer_Science.CS_Person: first_name AND last_name
         Computer_Science.Professor: first_name AND last_name
         Computer_Science.Student: first_name AND last_name
         University.Research_Staff: name
         University.School_Member: name
                   )
   attribute string rank;
      mapping_rules(
         Computer_Science.CS_Person: NULL
         Computer_Science.Professor: rank
         Computer_Science.Student: rank
         University.Research_Staff: NULL
         University.School_Member: NULL
                   )
   attribute string relation;
      mapping_rules(
         Computer_Science.CS_Person: NULL
         Computer_Science.Professor: NULL
         Computer_Science.Student: NULL
         University.Research_Staff: relation
         University.School_Member: NULL
                   )
   attribute integer section_code;
      mapping_rules(
         Computer_Science.CS_Person: NULL
         Computer_Science.Professor: NULL
         Computer_Science.Student: NULL
         University.Research_Staff: section_code
         University.School_Member: NULL
                   )
   attribute array takes;
      mapping_rules(
         Computer_Science.CS_Person: NULL
         Computer_Science.Professor: NULL
         Computer_Science.Student: takes
         University.Research_Staff: NULL
         University.School_Member: NULL
                   )
   attribute string title;
      mapping_rules(
         Computer_Science.CS_Person: NULL
         Computer_Science.Professor: title
         Computer_Science.Student: NULL
         University.Research_Staff: NULL
         University.School_Member: NULL
                   )
   attribute integer year;
      mapping_rules(
         Computer_Science.CS_Person: NULL
         Computer_Science.Professor: NULL
         Computer_Science.Student: year
         University.Research_Staff: NULL
         University.School_Member: year
                   )
}

interface Global5 (Publication) {
   attribute integer article_code;
      mapping_rules(
         Computer_Science.Essay: NULL
         Computer_Science.Publication: NULL
         University.Article: article_code
                   )
   attribute array authors;
      mapping_rules(
         Computer_Science.Essay: authors
         Computer_Science.Publication: authors
         University.Article: author
                   )
   attribute string journal;
      mapping_rules(
         Computer_Science.Essay: journal
         Computer_Science.Publication: NULL
         University.Article: journal
                   )
   attribute string subject;
      mapping_rules(
         Computer_Science.Essay: subject
         Computer_Science.Publication: NULL
         University.Article: subject
                   )
   attribute string title;
      mapping_rules(
         Computer_Science.Essay: title
         Computer_Science.Publication: title
         University.Article: title
                   )
   attribute integer year;
      mapping_rules(
         Computer_Science.Essay: year
         Computer_Science.Publication: year
         University.Article: year
                   )
}

interface Global6 (Room) {
   attribute complex address;
      mapping_rules(
         Computer_Science.ClassRoom: address
         University.Room: NULL
                   )
   attribute integer code;
      mapping_rules(
         Computer_Science.ClassRoom: code
         University.Room: room_code
                   )
   attribute string notes;
      mapping_rules(
         Computer_Science.ClassRoom: notes
         University.Room: notes
                   )
   attribute integer seats;
      mapping_rules(
         Computer_Science.ClassRoom: seats
         University.Room: seats_number
                   )
}
\end{verbatim}

\normalsize

Each Global Class can be shown as a table where each row of the
first column represents the global attributes while the others
columns represent the local classes that belong to the global
class. Each element of the table represent the local attributes
mapped by the corresponding global attribute (see sec.  for
details). We show also a screenshot of the MOMIS tab that help the
designer in the refinement of the mapping tables.\\ \\

Global Class \textbf{Global$_4$} (\textbf{Person})
\scriptsize
\begin{center}
\begin{ttfamily}
\begin{tabular}{|l|c|c|c|c|c|}
\hline
 & CS & CS & CS & UNI & UNI \\
\hline
 & CS\_Person & Professor & Student & Research\_Staff & School\_Member \\
\hline
belongs\_to & null & belongs\_to & null & null & null \\
\hline
dept\_code & null & null & null & dept\_code & null \\
\hline
e\_mail & null & null & null & e\_mail & null \\
\hline
faculty & null & null & null & null & faculty \\
\hline
name & first\_name and & first\_name and & first\_name and & name & name \\
  & last\_name & last\_name & last\_name & & \\
\hline
rank  & null & rank & rank & null & null \\
\hline
relation  & null & null & null & relation & null \\
\hline
section\_code  & null & null & null & section\_code & null \\
\hline
title  & null & title & null & null & null \\
\hline
year  & null & null & year & null & year \\
\hline
\end{tabular}
\end{ttfamily}
\end{center}
\normalsize

\vspace{0.6cm}Figure \ref{mappingtable} shows the SI-Designer's
tab where the mapping tables of the global attributes are refined
by the designer.\\ \\
\begin{figure}[h]
  \begin{center}
    \epsfig{figure=mappingtable.eps,totalheight=8cm,angle=0}
    \caption{Global Attributes refinement.}\label{mappingtable}
  \end{center}
\end{figure}

\vspace{0.6cm} Following the proposal that we have formulated for
the integration of new sources, we have first to annotate the
terms (classes and attributes) of the Global Schema (GVV). Doing
this we respect the rules presented in section
\ref{s4:gsannotation}; some results are provided.\\


\noindent \textbf{Global terms annotation.}

\footnotesize
\begin{verbatim}
Global0 = <course,{course#1}>
        course#1 = education imparted in a series of lessons or class meetings

Global3 = <office,{office#1}>
    office#1 = place of business where professional or clerical duties are performed


Global4 = <person,{person#1,professor#1,student#1}>
    person#1 = a human being
    professor#1 = someone who is a member of the faculty at a college or university
    student#1 = a learner who is enrolled in an educational institution

Global5 = <publication,{essay#1,publication#2,article#1}>
    essay#1= an analytic or interpretive literary composition
    publication#2 = a copy of a printed work offered for distribution
    article#1 =nonfictional prose forming an independent part of a publication

Global4.title = <title,{title#6,tile#9}>
    title#6 = an identifying appellation signifying status or function
    title#9 = an appellation signifying nobility

Global4.rank = <rank,{rank#2,rank#4}>
    rank#2 = relative status
    rank#4 = position in a social hierarchy

Global4.name = <name,{first name#1,last name#1,name#1}>
    first name#1 = the name that precedes the surname
    last name#1 = the name used to identify the members of a family
    name#1 = a language unit by which a person or thing is known
\end{verbatim}
\normalsize


\vspace{0.5cm} Now we present the XML schema of the new source
\textbf{MATH} that we try to integrate into the previous schema
(the GVV).\\

The new source describes the information related to persons,
students, courses, examinations, and papers of a math department.\\

Source \textbf{Math}
\small
\begin{verbatim}
<Source name="Math" type="xml">
        <Interface name="Teacher" persistent="false">
           <extends name="Person"/>
           <extent name="Teachers"/>
           <Attribute name="rank" type="string"/>
           <Attribute name="teach" type="set" collectionOf="Course"/>
           <Attribute name="write" type="set" collectionOf="Paper"/>
           <Attribute name="work_in" type="Office"/>
        </Interface>

        <Interface name="Office" persistent="false">
           <extent name="Offices"/>
           <Key name="PrimaryKey">
             <KeyAttribute name="code"/>
           </Key>
           <Attribute name="code" type="string"/>
           <Attribute name="section" type="string"/>
           <Attribute name="floor" type="long"/>
        </Interface>

        <Interface name="Student" persistent="false">
           <extends name="Person"/>
           <extent name="Students"/>
           <Attribute name="year" type="long"/>
           <Attribute name="attend" type="set" collectionOf="Course"/>
        </Interface>

        <Interface name="Course" persistent="false">
           <extent name="Courses"/>
           <Attribute name="course_name" type="string"/>
           <Attribute name="taught_in" type="ClassRoom"/>
           <Attribute name="period" type="string"/>
        </Interface>

        <Interface name="ClassRoom" persistent="false">
           <extent name="ClassRooms"/>
           <Attribute name="code" type="string"/>
           <Attribute name="seats" type="long"/>
           <Attribute name="description" type="string"/>
        </Interface>

        <Interface name="Person" persistent="false">
           <extent name="Persons"/>
           <Key name="PrimaryKey">
             <KeyAttribute name="first_name"/>
             <KeyAttribute name="last_name"/>
           </Key>
           <Attribute name="first_name" type="string"/>
           <Attribute name="last_name" type="string"/>
           <Attribute name="birth_date" type="string"/>
        </Interface>

        <Interface name="Researcher" persistent="false">
           <extends name="Person"/>
           <extent name="Researcher"/>
           <Attribute name="write" type="set" collectionOf="Paper"/>
           <Attribute name="work_in" type="Office"/>
           <Attribute name="subject" type="string"/>
        </Interface>

      <Interface name="Examination" persistent="false">
           <extent name="Examinations"/>
           <Key name="PrimaryKey">
             <KeyAttribute name="candidate"/>
             <KeyAttribute name="course"/>
           </Key>
           <Attribute name="candidate" type="Student"/>
           <Attribute name="course" type="Course"/>
           <Attribute name="result" type="long"/>
        </Interface>

      <Interface name="Paper" persistent="false">
           <extent name="Papers"/>
           <Key name="PrimaryKey">
             <KeyAttribute name="title"/>
           </Key>
           <Attribute name="title" type="string"/>
           <Attribute name="year" type="long"/>
           <Attribute name="journal" type="string"/>
           <Attribute name="subject" type="string"/>
        </Interface>
</Source>
\end{verbatim}
\normalsize

\vspace{0.5cm} The integration process with the previous GVV
produces the following clusters.\\

\textbf{Clusters.}\\

\small
\vspace{0.3cm}
\begin{tabular}{|l|}
\hline
\multicolumn{1}{|l|}{{\bf NewGlobal$_0$ (Location)}} \\
\hspace{0.3cm} {\tt GVV.Location} \\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}

\vspace{0.3cm}
\begin{tabular}{|l|}
\hline
\multicolumn{1}{|l|}{{\bf NewGlobal$_1$ (Department)}} \\
\hspace{0.3cm} {\tt GVV.Department} \\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}

\vspace{0.3cm}
\begin{tabular}{|l|}
\hline
\multicolumn{1}{|l|}{{\bf NewGlobal$_2$ (Room)}} \\
\hspace{0.3cm} {\tt GVV.Room} \\
\hspace{0.3cm} {\tt Math.ClassRoom} \\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}

\vspace{0.3cm}
\begin{tabular}{|l|}
\hline
\multicolumn{1}{|l|}{{\bf NewGlobal$_3$ (Office)}} \\
\hspace{0.3cm} {\tt GVV.Office} \\
\hspace{0.3cm} {\tt Math.Office} \\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}

\vspace{0.3cm}
\begin{tabular}{|l|}
\hline
\multicolumn{1}{|l|}{{\bf NewGlobal$_4$ (Examination)}} \\
\hspace{0.3cm} {\tt Math.Examination} \\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}

\vspace{0.3cm}
\begin{tabular}{|l|}
\hline
\multicolumn{1}{|l|}{{\bf NewGlobal$_5$ (Person)}} \\
\hspace{0.3cm} {\tt GVV.Person} \\
\hspace{0.3cm} {\tt Math.Person} \\
\hspace{0.3cm} {\tt Math.Researcher} \\
\hspace{0.3cm} {\tt Math.Student} \\
\hspace{0.3cm} {\tt Math.Teacher} \\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}

\vspace{0.3cm}
\begin{tabular}{|l|}
\hline
\multicolumn{1}{|l|}{{\bf NewGlobal$_6$ (Publication)}} \\
\hspace{0.3cm} {\tt GVV.Publication} \\
\hspace{0.3cm} {\tt Math.Paper} \\
\hline
\multicolumn{1}{l}{}\\
\end{tabular}

\normalsize


%%% Local Variables:
%%% mode: latex
%%% TeX-master: "tesi"
%%% End:
