\documentclass[pdf,slideColor,plainsem]{prosper}

\usepackage{xspace}
\usepackage{latexsym}
\usepackage{amssymb}
\usepackage{pst-uml-prosper}
\usepackage{dl-macros}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\MiniPage#1#2{\begin{minipage}[t]{.49\hsize}#1\end{minipage}%
    \hspace{1ex}\begin{minipage}[t]{.49\hsize}#2\end{minipage}}

\newlength{\ParLen}
\def\Parbox#1#2{\settowidth{\ParLen}{#1}\parbox[t]{\ParLen}{#2}}

\newcommand {\minitab}  {\hspace*{1ex}}
\newcommand {\smalltab} {\hspace*{5mm}}
\newcommand {\tab}      {\hspace*{10mm}}
\newcommand {\bigtab}   {\hspace*{15mm}}
\newcommand {\hugetab}  {\hspace*{20mm}}

\newcommand{\per}{\mathpunct{\mbox{\bf .}}}
\newcommand{\skiplines}[1]{\vspace{#1\baselineskip}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% symbols for UML package
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newlength{\umlunitbox}
\def\umlcard#1%
  {\umlcsize #1\hspace*{-.5ex}}
\def\umlclass#1#2%
  {\rnode{#1}{\umlClass{\makebox[\umlunitbox]{#2}}{\hline\hline}}}
\def\umlclassa#1#2#3%
  {\rnode{#1}{\umlClass{\makebox[\umlunitbox]{#2}}%
  {#3\\\hline\hline}}}
\def\umldefclass#1#2%
  {\rnode{#1}{\umlClass{\makebox[\umlunitbox]%
      {{\large\bf /}#2{\large\bf /}}}{\hline\hline}}}
\renewcommand{\ncputicon}[2][]{%
   \setkeys{psset}{npos=0,nrot=:D}%
   \setkeys{psset}{#1}%
   \ncput{#2}}
\def\umlIsa{%
   \pstriangle[gangle=-90,%
              linestyle=solid,%
              fillstyle=solid,%
              fillcolor=white]%
          (-0.1,0)(0.12,0.15)} % (centre)(Width,Length)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def\topsepspace{\vspace{\topsep}}

\newcommand{\HR}{\ensuremath{\mathcal{H}}}
\newcommand{\ifunc}{%                           ^I (caligraphic)
        \ensuremath{^\mathcal{I}}\xspace}
\newcommand{\deltai}{%                          Delta^I
        \ensuremath{\Delta\ifunc}\xspace}
\newcommand{\role}[1]{%                 a role
        \ensuremath{\textsf{\textsl{#1}}}}

\def\icom{\mbox{\bf\sf i\hspace{-.05ex}{\bf\ensuremath{\bullet}}com}\xspace}
\newcommand{\SHIQ}{\ALlang{SHIQ}{}}
\newcommand{\TDLR}{\ALlang{TDLR}{}}
\newcommand{\DLRUS}{\ALlang{DLR_{\cal US}}{}}
\newcommand{\TDLRm}{\ALlang{TDLR}{^-}}
\newcommand{\ALCM}{\ALlang{ALC_{M}}{}}
\newcommand{\ALCUS}{\ALlang{ALC_{US}}{}}
\newcommand{\CIQUS}{\ALlang{CIQ_{US}}{}}
\newcommand{\EXISTR}[3]{\exists^{{\scriptscriptstyle\lessgtr} #1} [#2]#3}
\newcommand{\SOMER}[2]{\exists[#1]#2}
\newcommand{\ATMOSTR}[3]{\exists^{\leq #1} [#2]#3}
\newcommand{\ATLEASTR}[3]{\exists^{\geq #1} [#2]#3}
\newcommand{\EXACTLYR}[3]{\exists^{= #1} [#2]#3}
\newcommand{\PROJ}[3]{#1|_{#2,#3}}

\newcommand{\Cthree}{\mbox{$\ddot{\mathcal{C}}^{3}$}}
\newcommand{\Ctwo}{\mbox{$\ddot{\mathcal{C}}^{2}$}}
\newcommand{\Cn}{\mbox{$\ddot{\mathcal{C}}^{n}$}}

\newcommand{\AutoK}{\mbox{\fontfamily{phv}\fontseries{b}\selectfont K}}
\newcommand{\reljoin}[1]{\mathbin{\mathop\Join\limits_{#1}}}
\newcommand{\Inds}{\mbox{${\cal J}$}}
\newcommand{\Clext}[1]{\overline{#1}^{~{\cal I}\/}\/} 

\newcommand{\TLALCFI}  {\mbox{${\cal T\!L\mbox{-}ALCFI}$}}
\newcommand{\ALCQIT}  {\mbox{${\cal ALCQIT}$}}
\def\NOW{\mbox{$\sharp$}}
\def\Parm{\mbox{$\star$}}
\def\SOMETIME{\Diamond}
\def\ST#1#2{\SOMETIME #1 \per #2}
\def\SST#1#2#3{\SOMETIME #1\ #2\per #3}
\def\ALLTIME{\Box}
\def\ALLT#1#2{\ALLTIME #1 \per #2}
\def\ALLT#1#2{\ALLTIME #1 \per #2}
\def\ALLTP{\ALLTIME^+}
\def\ALLTM{\ALLTIME^-}
\def\STP{\SOMETIME^+}
\def\STM{\SOMETIME^-}

\def\DLR{\ensuremath{\mathcal{DLR}}\xspace}
\def\TDLR{\ensuremath{\mathcal{TDLR}}\xspace}
\newcommand{\DLRkey}{\mathcal{DLR}_{\mathit{key}}}

\def\TS {\mbox{${\cal T}$}}
\def\P  {\mbox{${\cal P}$}} 
\def\Sc {\mbox{${\cal D}$}} 

\def\erfigure
{\footnotesize\psset{unit=1.1cm}%
     \begin{pspicture}(0.5,2)(12,6)
        \rput(2,5){\rnode{employee}{\psframebox{Employee}}}
     \rput(2,5.8){\rnode{pslip}{\underline{\scriptsize%
     Name(String)}}}
     \rput(3.25,5.5){\rnode{salary}{\scriptsize Salary(Integer)}}
        \rput(5.25,3.75){\rnode{project}{\psframebox{Project}}}
     \rput(7,4.5){\rnode{projectcode}{\underline{\scriptsize%
     ProjectCode(String)}}}
        \rput(2,4){\rnode{manager}{\psframebox{Manager}}}
        \rput(2.9,2.5){\rnode{tmanager}{\psframebox{TopManager}}}
        \rput(1.1,2.5){\rnode{amanager}{\psframebox{AreaManager}}}
        \rput(9,2.25){\rnode{dept}{\psframebox{Department}}}
        \rput(11,2.25){\rnode{sig}{\psframebox{InterestGroup}}}
        \rput(10,3.75){\rnode{orgunit}{\psframebox{OrganisationalUnit}}}
        \rput(2,3.25){\rnode{xmanager}{X}}
        \rput(10,3){\rnode{xdept}{X}}
        \pscircle(2,3.25){1.2ex}
        \pscircle(10,3){1.2ex}
     \rput(2,5.55){\rnode{apslip}{\ }}
     \rput(3,5.25){\rnode{asalary}{\ }}
     \rput(6.25,4.25){\rnode{aprojcode}{\ }}
        \rput(5.25,5){\dianode{works}{Works\mbox{-}for}}
        \rput(5.25,2.5){\dianode{manages}{Manages}}
        \rput(7.25,3.75){\dianode{responsible2}{Resp\mbox{-}for}}
%         \rput(3.85,5.2){(0,n)}
        \rput(5.55,4.5){(1,n)}
        \rput(4.1,2.2){(1,1)}
        \rput(5.55,3){(1,1)}
        \ncline{employee}{works}
        \ncline{works}{project}
        \ncline{tmanager}{manages}
        \ncline{manages}{project}
        \ncline{project}{responsible1}
        \ncline{responsible1}{dept}
        \ncline{project}{responsible2}
        \ncline{responsible2}{orgunit}
        \ncline{tmanager}{manages}
        \ncline{manages}{project}
        \ncline{amanager}{xmanager}
        \ncline{tmanager}{xmanager}
        \ncline{->}{xmanager}{manager}
        \ncline[doubleline=true]{xmanager}{manager}
        \ncline{dept}{xdept}
        \ncline{sig}{xdept}
        \ncline{->}{xdept}{orgunit}
        \ncline[doubleline=true]{xdept}{orgunit}
        \ncline{->}{manager}{employee}
       \ncline{employee}{apslip}
       \ncline{employee}{asalary}
       \ncline{project}{aprojcode}
       \pscircle[fillstyle=solid,fillcolor=white](2,5.55){.7ex}
       \pscircle[fillstyle=solid,fillcolor=white](3,5.25){.7ex}
       \pscircle[fillstyle=solid,fillcolor=white](6.25,4.25){.7ex}
    \end{pspicture}}

\def\snap{\mbox{\Large\color{red}$\bullet$}}
\def\temp{\mbox{\Large\color{blue}$\bullet$}}

\def\centerpar#1{\renewcommand{\arraystretch}{0.7}%
\begin{tabular}{c}#1\end{tabular}\renewcommand{\arraystretch}{1}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\semtitle{\parbox[t]{\semslidewidth}%
{(Description) Logics \\ for Information Modelling and Access}}
\semsubject{}
\semauthor{Enrico Franconi}
\sememail{franconi@cs.man.ac.uk}
\semwebpage{http://www.cs.man.ac.uk/\~{}franconi}
\seminstitution{Department of Computer Science, University of Manchester}
\semothertitle{Univ. of Liverpool -- 22 January 2002}

\begin{document}
    
\makesemtitle

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{Summary}    

\begin{itemize}
\item Description Logics
\item The role of logics in Information Systems
\item Conceptual Modelling and Query Management
\end{itemize}

\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{Description Logics -- the standard view}    

\begin{itemize}
\item Expressive decidable fragments of (first-order) classical logic
\item Close correspondence with modal logics (e.g., \ALC vs. \KM)
\item Sound and complete algorithms implemented in efficient reasoners
\item Knowledge representation formalism derived by semantic networks
  and frames in Artificial Intelligence
\item Close correspondence with well known database conceptual data
  models
\end{itemize}

\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{Knowledge representation is about objects}    
  
  Description logics describe classes of objects (concepts) and their
  inter-relationships (roles).

\topsepspace

The \ALC concept expression 

{\color{blue}
${\tt Professor}\And\some{\tt TEACHES}{\tt UG\mbox{-}Course}
\And\all{\tt TEACHES}{\tt CS\mbox{-}Course}$}

corresponds to the \KM formula

{\color{blue}
${\it Professor}\land\Diamond{\it UG\mbox{-}Course}
\land\Box{\it CS\mbox{-}Course}$}

where the accessibility relation is interpreted as the {\it TEACHES}
relation

\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{Description Logics are multi-modal}    

The \ALC concept expression 

{\color{blue}
${\tt Professor}\And\some{\tt TEACHES}{\tt UG\mbox{-}Course}
\And\some{\tt DEGREE}{\tt Bs}$}

corresponds to the \Km formula (over the same object domain)

{\color{blue}
${\it Professor}\land\Diamond_{\it TEACHES}{\it UG\mbox{-}Course}
\land\Diamond_{\it DEGREE}{\it Bs}$}

\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{Modalities (as roles) may have different properties}    

The \ALC concept expression 

{\color{blue}
${\tt Professor}\And\some{\tt TEACHES}{\tt UG\mbox{-}Course}\And$\\
$\some{\tt IS\mbox{-}PART}%
{({\tt Staff}\And\some{\tt IS\mbox{-}LOCATED}{\tt Department})}$}

corresponds to the $\Km\cup\Kfourm$ formula (over the same object
domain)

{\color{blue}
${\it Professor}\land\Diamond_{\it TEACHES}{\it UG\mbox{-}Course}\land$\\
$\Diamond_{\it IS\mbox{-}PART}
{({\it Staff}\land\Diamond_{\it IS\mbox{-}LOCATED}{\it Department})}$}

where {\it TEACHES} is a \Km modality and {\it IS\mbox{-}PART}, {\it
  IS\mbox{-}LOCATED} are \Kfourm modalities

\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\overlays{3}{
\begin{slide}{Relational structures}

\begin{itemize}
  
\item ``Modal logics are not appropriate as a representational tool
  since they do not always capture the details of the models''
 
\item Do we care?

\fromSlide{2}{
\item No: this is not a bug, it is a feature! \\ Why?
}

\fromSlide{3}{
\item If a formula is satisfiable in a model, it is also satisfiable
  in a model with the indistinguishable property. Hence, reasoning is
  not affected.}

\end{itemize}

\end{slide}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{Additional genuine modalities}    

\begin{itemize}
  
\item Time, space, belief, etc: combination of modal logics over
  \emph{distinct} domains (i.e., the object and the modal domains)

\item Example of $\ALC\cup{\sf LTL}$ concept expression:

{\color{blue}
${\tt Professor}\And\Diamond(\some{\tt TEACHES}{\tt UG\mbox{-}Course})
\And\all{\Box{\tt TEACHES}}{\tt CS\mbox{-}Course}$}

\item Asymmetric extension

\end{itemize}

\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{Global axioms}    

{\color{blue}$
\begin{array}{rcl}
{\tt \some{TEACHES}{Course}} & \IsSubs & 
  {\tt (Student\And\some{DEGREE}{Bs})\Or Prof} \\
{\tt Prof} & \IsSubs & {\tt \some{DEGREE}{Ms}} \\
{\tt \some{DEGREE}{Ms}} & \IsSubs & {\tt \some{DEGREE}{Bs}} \\
{\tt Ms\And Bs} & \IsSubs & {\tt \bot}
\end{array}
$}

\begin{itemize}
\item Axioms should be satisfied by each object in the domain
\item Satisfiability and logical implication in \ALC (\Km) become
  EXPTIME-complete
\end{itemize}

\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{Global axioms, II}    

\begin{itemize}
\item $\Km^\HR$ extends \Km with statements on inclusions
  between modalities
\item Decision problems for $\Km^\HR$ and \Kfourm are in PSPACE
\item The \emph{universal modality} can be encoded in
  $\Km^\HR\cup\Kfourm$, and axioms can be internalised:
  \begin{itemize}
  \item Define new \emph{transitive} modality $U$ that \emph{includes}
    all other modalities
  \item Satisfiability of {\color{blue}$\phi$} w.r.t.
    {\color{blue}$\psi_1 \rightarrow
      \varphi_1, \ldots, \psi_n \rightarrow \varphi_n$} \\
    is equivalent to satisfiability of \\
    {\color{blue}$\phi \land \Box_U((\psi_1 \rightarrow \varphi_1)
      \land \ldots \land (\psi_n \rightarrow \varphi_n))$}
  \end{itemize}
\item Satisfiability and logical implication in $\Km^\HR\cup\Kfourm$
  are EXPTIME-complete
\item \Fact implements $\Km^\HR\cup\Kfourm$
\end{itemize}

\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{$n$-ary Relations}    

\begin{itemize}
\item Relations between objects in the world may necessarily involve
  more than just two objects
\item Full fledged relational structures are needed, beyond Kripke
  structures
\item We want to maintain the modal logic flavour
\item \DLR properly extends \ALC with $n$-ary relations
\end{itemize}

\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{\DLR}
  
{\color{blue}
\begin{center}
$\begin{array}{rcl}
    R & \to & \top_{n}\ \mid\  R\!N
    \ \mid\ \Not R\ \mid\ R_{1}\And R_{2}\mid\ R_{1}\Or R_{2}\mid\
    {\color{blue}\selects {U_i/n} C}  \\
    %
    C & \to & \top\ \mid\  C\!N\ \mid\ \Not C\ \mid\  C_{1}\And
    C_{2}\  \mid\  C_{1}\Or
    C_{2}\  \mid\  {\color{blue}\SOMER{U_i} R} \mid\  \EXISTR{k}{U_i} R
\end{array}$
\end{center}}

\vspace{1em}

{\color{blue}
    ${\tt Works\mbox{-}for \IsSubs
    \selects{subj/2}{Employee}\And\selects{obj/2}{Project} 
    }$

${\tt Manager \IsSubs Employee \And \Not \SOMER{subj} {Works\mbox{-}for}}$
}

\vspace{2em}

\DLR includes \ALCQI: if $R$ is a binary relation (i.e., a
\textit{role}) with named attributes \textit{first} and
\textit{second} then

${\color{blue}\some R C} \equiv {\color{blue}\SOMER{\textit{first}}{(R
    \And (\selects{\textit{second}/2} C))}}$

\vspace{2em}

Reasoning in \DLR is EXPTIME-complete

\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{}    

\vspace{-3em}
{\small
\setlength{\arraycolsep}{0em}
\begin{tabular}{|l|l|l|}
\hline
\DLR\ syntax & \DLR\ semantics & {\color{red}RD encoding}\\
\hline
%
$\top_n$ &
$\top_n\ifunc \subseteq (\deltai)^n$ &
$\top_n \quad $ \\
%
$R\!N$ &
$R\!N \ifunc \subseteq \top_n\ifunc$ &
$C_{R\!N} \quad $ \\
%
$\neg{R}$ &
$\top_n\ifunc \setminus {R}\ifunc$ &
$\neg C_R$ \\
%
${R_1} \sqcap {R_2}$ &
${R_1}\ifunc \cap {R_2}\ifunc$ &
$C_{R_1} \sqcap C_{R_2}$ \\
%
{\color{blue}
$\selects{U_i/n}{C}$} & {\color{blue}
$\{\langle d_1,\ldots,d_n\rangle \in \top_n\ifunc \mid d_i \in C\ifunc\}$} &
{\color{blue}$\top_n \sqcap \all{U_i}{C}$ }\\
%
\hline
%
$\top$ &
$\top\ifunc = \deltai$ &
$\top \quad $ \\
%
$C\!N$ &
$C\!N\ifunc \subseteq \top\ifunc$ &
$C\!N \quad $ \\
%
$\neg C$ &
$\top\ifunc \setminus C\ifunc$ &
$\neg C$ \\
%
$C_1 \sqcap C_2$ &
$C_1\ifunc \cap C_2\ifunc$ &
$C_1 \sqcap C_2$ \\
%
{\color{blue}
$\exists[U_i]{R}$} & {\color{blue}
$\{d \in \top\ifunc \mid \exists\langle d_1,\ldots,d_n\rangle 
\in {R} \per\ d_i = d\} $} &
{\color{blue}$\some{U_i^-}{C_R}$} \\
%
$\EXISTR k {U_i}{R}$ &
$\{d \in \top\ifunc \mid \sharp\{\langle d_1,\ldots,d_n\rangle 
\in {R} \mid d_i = d\} \lessgtr k\}$ &
$\lessgtr{k} {U_i^-}\per{C_R}$ \\
%
\hline
\end{tabular}
}

\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\overlays{2}{%
\begin{slide}{Encoding conceptual data models in \DLR}
   
\begin{itemize}
\item Object-oriented data models (e.g., UML and ODMG)
\item Semantic data models (e.g., EER and ORM)
\item Frame-based ontology languages (e.g., OIL)

\vspace{2em}

\fromSlide{2}{\item Theorems {\bf prove} that a conceptual schema and
its encoding as \DLR inclusion dependencies constrain every database
state in the same way -- i.e., the models of the \DLR theory
correspond to the legal database states of the conceptual schema, and
vice-versa.}

\end{itemize}

\end{slide}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{Classical Integrity Constraints in \DLR}

\begin{itemize}
\item arbitrary \emph{boolean constructs}
\item \emph{unary inclusion} dependencies (e.g., referential integrity)

\item special forms of \emph{typed inclusion} dependencies

\item \emph{existence} and \emph{exclusion} dependencies 
\item \emph{unary functional} dependencies
\item \emph{view definitions}
\end{itemize}
\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{Extensions of \DLR}

\skiplines{1}
\emph{$\DLRreg$}: regular expressions and recursive views (beyond 
FOL)

\skiplines{1} \emph{$\DLRUS$}: combination with temporal
constructs to model temporal databases

\skiplines{1}
\emph{$\DLRkey$}: general key constraints
\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{Queries under \DLR constraints}
  
\begin{itemize}
  
\item A query is an open FOL formula, whose predicates may be
  constrained by a \DLR theory
  
\item We consider only the conjunctive existential fragment (the
  conjunctive queries, or non-recursive datalog queries)

\vspace{1em}

\item Example:

${\tt Q_{1}(x,y) \ \mbox{:-}\ \parbox[t]{\textwidth}%
{$\tt  (\Not Professor)(x)
\land TEACHES(x,y)\land \\
{\Large(}UG\mbox{-}Course\Or CS\mbox{-}Course{\Large)}(x) $}}$

\end{itemize}

\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\overlays{6}{
\begin{slide}{Semantics of Evaluation and Containment}
  
  The \textit{\color{blue} evaluation} of a query $\mathcal{Q}$ of
  arity $n$
  given a \DLR theory $\Sigma$ \\
  over a  model $\I$ satisfying $\Sigma$


%\vspace{1em}

\fromSlide{2}{
is the set {\sc ans}$(\mathcal{Q},\I)$ 
composed by  $n$-tuples $\overrightarrow{o}$
such that}

\fromSlide{3}{\tab
{\sc ans}$(\mathcal{Q},\I) =
\{
  \overrightarrow{o}\mid %\\
  {\I}\models
  \bigvee_{j}\exists\overrightarrow{y_{j}}\per \mathcal{Q}_{j}
  (\overrightarrow{o},\overrightarrow{y_{j}},\overrightarrow{c_{j}})
\}
$
}

\vspace{1em}

\fromSlide{4}{$\mathcal{Q}_1$ \textit{\color{blue} is contained} in
  $\mathcal{Q}_2$ with respect to a \DLR theory $\Sigma$

  \fromSlide{5}{%
    if and only if  for every model $\I$ satisfying $\Sigma$

\tab
{\sc ans}$(\mathcal{Q}_1,\I)\subseteq\ ${\sc ans}$(\mathcal{Q}_2,\I)$%
} }


\vspace{1em}

  \fromSlide{6}{%
 Containment of disjunctions of conjunctive queries
  under \DLR (\DLRUS) constraints is decidable in 2EXPTIME}

\end{slide}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{slide}{The \icom tool for Intelligent Conceptual Modelling}

\begin{itemize}
  
\item \icom is an advanced CASE tool which allows the user to design
  \textit{multiple} extended Entity-Relationship schemas or UML class
  diagrams with inter- and intra-schema \textit{constraints}.
  
\item Complete logical reasoning is employed by the tool to:

\begin{itemize}
  \item verify the specification, 
  \item infer implicit facts, 
  \item devise stricter constraints, 
  \item and manifest any local inconsistency.
  \end{itemize}

\end{itemize}

\vspace{3em}

\centerline{\large\texttt{http://www.cs.man.ac.uk/$\sim$franconi/icom/}}

\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\overlays{11}{%
\begin{slide}{The role of logics in Information Systems}

\begin{center}
{\footnotesize
\psset{unit=.9cm}
\begin{pspicture}(0,1)(12.5,9)
    \fromSlide*{3}{\psline{->}(7,4)(8,4)\fromSlide*{9}{\psline{->,linecolor=white}(7,4)(8,4)}}%
    \fromSlide*{10}{%
    \psframe[fillstyle=solid,fillcolor=red](-0.2,3.3)(7.2,8.5)%
    \rput(5.3,8.25){\it Mediator}%    
    }%
    %
    \fromSlide*{9}{%
    \psline{<-,linestyle=dashed,linecolor=blue}(6,4.5)(6,5.5)%
    \psline{->}(6.5,4.5)(6.5,5.5)%
    }%
    %
    \fromSlide*{8}{%
    \psframe[fillstyle=solid,fillcolor=green](0,5.5)(7,8)%
    \rput(3.5,7.75){\it Deduction}%
    }%
    %
    \fromSlide*{7}{%
    \psframe[framearc=.3,fillstyle=solid,fillcolor=white](5,5.5)(7,6.5)
    %
    \psellipse[fillstyle=solid,fillcolor=white](9,5.5)(1,0.3)
    \psframe[fillstyle=solid,fillcolor=white](8,5.5)(10,6.5)
    \psline[linewidth=0.1cm,linecolor=white](8.05,5.5)(9.95,5.5)
    \psellipse[fillstyle=solid,fillcolor=white](9,6.5)(1,0.3)
    %
    \psline{<->}(4,6)(5,6)
    \psline{->}(7,6)(8,6)
    %
    \rput(6,6){\it Query}
    \rput(9,5.8){\it Result}
    }
    %
    \fromSlide*{4}{%
    \psframe[fillstyle=solid,fillcolor=yellow](0,5.5)(4,7.5)%
    \rput(2,7.25){\it Deduction}%
    }%
    %
    \fromSlide*{2}{%
    \psframe[fillstyle=solid,fillcolor=white](1,5.5)(4,7)%
    \rput(2.5,6.75){\it Integrity Constraints}
    }%
    %
    \fromSlide*{3}{%
    \psframe[framearc=.3,fillstyle=solid,fillcolor=white](5,3.5)(7,4.5)%
    %
    \psellipse[fillstyle=solid,fillcolor=white](9,3.5)(1,0.3)\fromSlide*{9}{\psellipse[fillstyle=solid,fillcolor=white,linecolor=white](9,3.5)(1,0.3)}%
    \psframe[fillstyle=solid,fillcolor=white](8,3.5)(10,4.5)\fromSlide*{9}{\psframe[fillstyle=solid,fillcolor=white,linecolor=white](8,3.5)(10,4.5)}%    
    \psline[linewidth=0.1cm,linecolor=white](8.05,3.5)(9.95,3.5)\fromSlide*{9}{\psline[linewidth=0.1cm,linecolor=white,linecolor=white](9.05,3.5)(9.95,3.5)}%
    \psellipse[fillstyle=solid,fillcolor=white](9,4.5)(1,0.3)\fromSlide*{9}{\psellipse[fillstyle=solid,fillcolor=white,linecolor=white](9,4.5)(1,0.3)}%
    %
    \psline{<->}(3,4)(5,4)%
    %
    \rput(6,4){Query}
    \rput(9,3.8){\it Result}\fromSlide*{9}{\psline[linewidth=1cm,linecolor=white](8.5,3.8)(13,5)}
    }
    %
    \psframe[framearc=.3,fillstyle=solid,fillcolor=white](1,3.5)(3,4.5)
    \psframe[fillstyle=solid,fillcolor=white](1,5.5)(3,6.5)
    %
    \psellipse[fillstyle=solid,fillcolor=white](2,1.5)(1,0.3)
    \psframe[fillstyle=solid,fillcolor=white](1,1.5)(3,2.5)
    \psline[linewidth=0.1cm,linecolor=white](1.05,1.5)(2.95,1.5)
    \psellipse[fillstyle=solid,fillcolor=white](2,2.5)(1,0.3)
    %
    \psline{->}(2,2.8)(2,3.5)
    \psline{<->}(2,4.5)(2,5.5)%
    \fromSlide*{5}{\psline{->,linecolor=red}(2,4.5)(2,5.5)}%
    \fromSlide*{6}{\psline{<->,linecolor=black}(2,4.5)(2,5.5)%
    \psline{<-,linecolor=red}(2,4.5)(2,5.5)}%
    \fromSlide*{7}{\psline{<->,linecolor=black}(2,4.5)(2,5.5)}%
    %
    \rput(2,1.8){Database}
    \rput(2,4){\centerpar{Logical\\Schema}}
    \rput(2,6){\centerpar{Conceptual\\Schema}}%
    %
\fromSlide*{11}{%
\rput(12.5,1.8){\parbox[t]{12em}{$\longleftarrow$ Data Level}}%
\rput(12.5,4){\parbox[t]{12em}{$\longleftarrow$ Information Level}}%
\rput(12.5,6){\parbox[t]{12em}{$\longleftarrow$ Knowledge Level}}}
\end{pspicture}
}
\end{center}

\fromSlide*{10}{\rput(8,8.9){\color{black}\rule[2pt]{15em}{2pt}}%
                \rput(8,8.3){\fontTitle{\color{blue}a Mediator}}}

\end{slide}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
\begin{slide}{A Relational Database}    

{\footnotesize$\tt CompanyEmployee/2; CompanyProject/3$}

\vspace{1ex}

\MiniPage
{\footnotesize\begin{tabular}{|l|l|}
    \hline
    \multicolumn{2}{|c|}{\bf\tt CompanyEmployee} \\
    \hline
    {\tt name} & {\bf\tt project} \\
    \hline
    john & esprit-dwq \\
    \hline
    $\cdots$ &  $\cdots$ \\
    \hline
\end{tabular}}
{\footnotesize\begin{tabular}{|l|l|l|}
    \hline
    \multicolumn{3}{|c|}{\bf\tt CompanyProject} \\
    \hline
    {\bf\tt project} & {\bf\tt manager} & {\bf\tt department}\\
    \hline
    esprit-dwq & enrico & cs-uman \\
    \hline
    $\cdots$ &  $\cdots$ &  $\cdots$ \\
    \hline
\end{tabular}}

\vspace{1em}

\footnotesize
Query = ``Tell me the projects in which John works, and their managers and 
departments.''

\vspace{1em}

$\tt Query\equiv$\\ \hspace{1em}
{\Large$\pi$}$_{\tt project,manager,dept.}${\Large$\sigma$}%
$\tt_{name=john}~(CompanyEmployee$%
{\Large$~\bowtie$}%
$\tt_{project}~CompanyProject)$

\vspace{1em}

$\tt Query(x,y,z)\Leftrightarrow$
$\tt CompanyEmployee(john,x)\land CompanyProject(x,y,z)$

\end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
\overlays{2}{
\begin{slide}{Constraints from the Conceptual Schema}
  
\vspace{-1.5em}
\erfigure

    \fromSlide*{2}{\tiny
    
    ${\tt Works\mbox{-}for \IsSubs
    \selects{emp/2}{Employee}\And\selects{act/2}{Project} 
    }$

${\tt Manages \IsSubs
    \selects{man/2}{TopManager}\And\selects{prj/2}{Project} 
    }$

${\tt Employee \IsSubs
\parbox[t]{\textwidth}{
${\tt 
\EXACTLYR{1}{worker}{(Name\And\selects{thename/2}{String})}\And}$
${\tt \EXACTLYR{1}{payee}{(Salary\And\selects{amount/2}{Integer})}}$}}$

${\tt \top \IsSubs 
\ATMOSTR{1}{thename}{(Name\And\selects{worker/2}{Employee})}}$

${\tt Manager \IsSubs Employee\And (AreaManager\Or TopManager)}$

${\tt AreaManager \IsSubs Manager\And\Not TopManager}$

${\tt TopManager \IsSubs Manager \And \EXACTLYR{1}{man} {Manages}}$

${\tt Project \IsSubs
    \ATLEASTR{1}{act} {Works\mbox{-}for} \And
    \EXACTLYR{1}{prj} {Manages}}$
\\
    \vspace{-1ex}$\cdots$}

\end{slide}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\overlays{2}{
\begin{slide}{Integrity Constraints and Logical Implication}

\vspace{-1.5em}
\erfigure

\footnotesize
Managers are employees who do not work for a project
  (she/he just manages it):
  
${\tt Employee \And\Not (\ATLEASTR{1} {emp} {Works\mbox{-}for}) \IsSubs 
Manager}$

${\tt Manager \IsSubs \Not (\ATLEASTR{1} {emp} {Works\mbox{-}for})}$

\vspace{1ex}

\fromSlide*{2}{
$\leadsto~$
For every project, there is at least one employee who is not a
    manager:
  
${\tt \Sigma\models Project\IsSubs \ATLEASTR{1} {act}
      {(Works\mbox{-}for \And \selects{emp} {\Not Manager})}}$
      }
  
\end{slide}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\overlays{2}{
\begin{slide}{Querying the Virtual Database (local-as-view)}

\vspace{-1.5em}
\footnotesize

  ${\tt Q(x,y,z) \Leftarrow \parbox[t]{\textwidth}%
  {$\tt Project(x)\land Works\mbox{-}for(john,x)\land
  TopManager(y)\land Manages(y,x)\land \\ \neg InterestGroup(z)\land
  Resp\mbox{-}for(z,x).$}}$

\erfigure

{\scriptsize
${\tt CompanyEmployee(x,y)\Leftarrow \parbox[t]{\textwidth} {$\tt 
Employee(x)\land Project(y)\land  Works\mbox{-}for(x,y).$}}$
\\
${\tt CompanyProject(x,y,z)\Leftarrow \parbox[t]{\textwidth} {$\tt 
Project(x)\land Manager(y)\land Department(z)\land\\
Manages(y,x)\land Resp\mbox{-}for(z,x).$}}$
}

\vspace{.5ex}

\fromSlide*{2}{\footnotesize$\leadsto~\tt 
Q(x,y,z) \Leftarrow CompanyEmployee(john,x)\land CompanyProject(x,y,z)$}

\end{slide}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\overlays{2}{
\begin{slide}{Querying the Virtual Database (global-as-view)}

\vspace{-1.5em}
\footnotesize

  ${\tt Q(x,y,z) \Leftarrow \parbox[t]{\textwidth}%
  {$\tt Project(x)\land Works\mbox{-}for(john,x)\land
  TopManager(y)\land Manages(y,x)\land \\ \neg InterestGroup(z)\land
  Resp\mbox{-}for(z,x).$}}$

\erfigure

{\scriptsize
${\tt Project({\bf x}) \Leftarrow CompanyEmployee(y,{\bf x})
   \cup CompanyProject({\bf x},y,z)}$\\
${\tt Works\mbox{-}for({\bf x},{\bf y}) \Leftarrow 
    CompanyEmployee({\bf x},{\bf y})}$\\
${\tt TopManager({\bf x}) \Leftarrow CompanyProject(y,{\bf x},z)}$\\
${\tt Manages({\bf x},{\bf y}) \Leftarrow 
    CompanyProject({\bf y},{\bf x},z)}$\\
\vspace{-1ex}$\cdots$
}

\fromSlide*{2}{\footnotesize$\leadsto~\tt 
Q(x,y,z) \Leftarrow CompanyEmployee(john,x)\land CompanyProject(x,y,z)$}

\end{slide}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\overlays{2}{
\begin{slide}{Reasoning on Queries}

\vspace{-1em}

  ${\tt Q(x,y) \Leftarrow \parbox[t]{\textwidth}%
  {$\tt Employee(x)\land Works\mbox{-}for(x,y)\land
   Manages(x,y).$}}$

\vspace{1em}

\erfigure

\vspace{1em}

\fromSlide*{2}{$\leadsto~${\color{blue}INCONSISTENT QUERY!}}

\end{slide}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \begin{slide}{Information Integration}

   
% \begin{center}
% {\footnotesize
% \psset{unit=.9cm}
% \begin{pspicture}(0.5,1)(15,9.5)
%     \psframe[fillstyle=solid,fillcolor=yellow](0.8,3.3)(11.2,8.75)%
%     \rput(8,8.5){\it Mediator}%    
%     %
%     \psframe[framearc=.3,fillstyle=solid,fillcolor=white](5,5.5)(7,6.5)
%     %
%     \psellipse[fillstyle=solid,fillcolor=white](14,5.5)(1,0.3)
%     \psframe[fillstyle=solid,fillcolor=white](13,5.5)(15,6.5)
%     \psline[linewidth=0.1cm,linecolor=white](13.05,5.5)(14.95,5.5)
%     \psellipse[fillstyle=solid,fillcolor=white](14,6.5)(1,0.3)
%     %
%     \psline{->}(11,6)(13,6)
%     %
%     \rput(14,5.8){\it Result}
%     %
%     \psframe[fillstyle=solid,fillcolor=white](1,5.5)(7,8.25)%
%     \rput(5,8){\it Inter-schema Constraints}
%     %
%     \psframe[framearc=.3,fillstyle=solid,fillcolor=white](9,5.5)(11,6.5)
%     \psframe[framearc=.3,fillstyle=solid,fillcolor=white](9,3.5)(11,4.5)
%     %
%     \psline{<-,linestyle=dashed,linecolor=blue}(10,4.5)(10,5.5)%
%     \psline{->}(10.5,4.5)(10.5,5.5)
%     \psline{<->}(7,6)(9,6)
%     \psline{<->}(7,4)(9,4)
%     %
%     \rput(10,6){\it Query}
%     \rput(10,4){\it Query}
%     %
%     \psframe[linestyle=dashed,fillstyle=solid,fillcolor=green](2.8,6.65)(5.2,7.65)
%     \rput(4,7.15){\centerpar{Conceptual\\Global Schema}}
%     %
%     \psframe[framearc=.3,fillstyle=solid,fillcolor=white](1,3.5)(3,4.5)
%     \psframe[fillstyle=solid,fillcolor=white](1,5.5)(3,6.5)
%     %
%     \psellipse[fillstyle=solid,fillcolor=white](2,1.5)(1,0.3)
%     \psframe[fillstyle=solid,fillcolor=white](1,1.5)(3,2.5)
%     \psline[linewidth=0.1cm,linecolor=white](1.05,1.5)(2.95,1.5)
%     \psellipse[fillstyle=solid,fillcolor=white](2,2.5)(1,0.3)
%     %
%     \psline{->}(2,2.8)(2,3.5)
%     \psline{<->}(2,4.5)(2,5.5)
%     %
%     \rput(2,1.8){Database$_{1}$}
%     \rput(2,4){\centerpar{Logical\\Schema$_{1}$}}
%     \rput(2,6){\centerpar{Conceptual\\Schema$_{1}$}}
%     %%%
%     \psframe[framearc=.3,fillstyle=solid,fillcolor=white](5,3.5)(7,4.5)
%     \psframe[fillstyle=solid,fillcolor=white](5,5.5)(7,6.5)
%     %
%     \psellipse[fillstyle=solid,fillcolor=white](6,1.5)(1,0.3)
%     \psframe[fillstyle=solid,fillcolor=white](5,1.5)(7,2.5)
%     \psline[linewidth=0.1cm,linecolor=white](5.05,1.5)(6.95,1.5)
%     \psellipse[fillstyle=solid,fillcolor=white](6,2.5)(1,0.3)
%     %
%     \psline{->}(6,2.8)(6,3.5)
%     \psline{<->}(6,4.5)(6,5.5)
%     %
%     \rput(6,1.8){Database$_{n}$}
%     \rput(6,4){\centerpar{Logical\\Schema$_{n}$}}
%     \rput(6,6){\centerpar{Conceptual\\Schema$_{n}$}}
%     %
%     \rput(4,4){\Huge\bf$\cdots$}
% \end{pspicture}
% }
% \end{center}

% \end{slide}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{document}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 
