\documentclass[a0,portrait]{a0poster}
\usepackage{url}
\usepackage{moreverb}
\usepackage{latexsym,pstricks,pst-node,pst-coil,color,dbicons}
%\usepackage[dvips,bookmarks,bookmarksnumbered,pagebackref]{hyperref}

\renewcommand{\familydefault}{phv}

\newif\ifblackwhite 
\blackwhitefalse
%\blackwhitetrue
\ifblackwhite
  \newhsbcolor{lightblue}{0.45 0.2 0.95}
  \newhsbcolor{lightgreen}{0.19 0.6 0.60}
  \newhsbcolor{lightred}{0.63 0.71 0.76}
\else
  \newrgbcolor{lightyellow}{1 1 0.8}
  \newrgbcolor{lightblue}{0.68 0.85 0.95}
  \newrgbcolor{lightgreen}{0.80 1 0.80}
  \newrgbcolor{headlinebackgrd}{0.80 1 0.80}
  \newrgbcolor{lightred}{1.00 0.71 0.76}
  \newrgbcolor{lightmagenta}{0.90 0.8 0.86}
  \newrgbcolor{powderblue}{0.69 0.88 0.90}
  \newrgbcolor{lightpowderblue}{0.82 0.85 1}
  \newrgbcolor{itembackgrd}{0.82 0.85 1}
  \newrgbcolor{theorembackgrd}{0.82 0.85 1}
  \newrgbcolor{lightskyblue}{0.53 0.81 0.98}
  \newrgbcolor{headerbackgrd}{1.00 0.71 0.76}
  \newrgbcolor{headerframecolor}{1.00 0 0}
\fi


\newgray{normalgray}{0.45}
\newgray{lightgray}{0.55}
\newgray{verylightgray}{0.65}
\newgray{superlightgray}{0.85}

\renewcommand{\nodeconnections}[1]{\hbox to 0cm{\vbox to 0cm {#1}}}

\newcommand{\AnnotatedResults}{\mbox{AnnotatedResults}}
\newcommand{\Bindings}{\mbox{Var\_Bindings}}
\newcommand{\BindingsLists}{\mbox{Var\_BindingsLists}}
\newcommand{\Res}[1]{{\rm Res}(#1)}
\newcommand{\Bdgs}[1]{{\rm Bdgs}(#1)}
\newcommand{\Mondial}{\textsc{Mondial}}
\newcommand{\Florid}{\textsc{Florid}}
\newcommand{\LoPiX}{\textsc{LoP}\textup{iX}}
\newcommand{\fd}{\mbox{$\rightarrow$}}                      % scalar
\newcommand{\Fd}{\mbox{$\Rightarrow$}}                      % scalar
\newcommand{\bfd}{\mbox{$\bullet\!\!\!\fd$}}                % " + inheritable
\newcommand{\mvd}{\mbox{$\rightarrow\!\!\!\!\rightarrow$}}  % multivalued
\newcommand{\Mvd}{\mbox{$\Rightarrow\!\!\!\!\Rightarrow$}}  % multivalued
\newcommand{\bmvd}{\mbox{$\bullet\!\!\!\mvd$}}              % " + inheritable
\newcommand{\isa}{\ensuremath{\;\textsf{isa}\;}}
\newcommand{\subcl}{\ensuremath{\;\textsf{subcl}\;}}
\newcommand{\la}{\ensuremath{\gets}}
\newcommand{\sem}[1]{\ensuremath{[\![#1]\!]}}         % eckige Doppelklammer
\newcommand{\pl}[1]{\ensuremath{\mathcal{#1}}}
\newcommand{\closure}{\ensuremath{\mathcal{C\!\ell}}}
\newcommand{\join}{\bowtie}
\newcommand{\free}{{\sf free}}
\newcommand{\atomize}{\textsf{atomize}}
\newcommand{\smallvdots}{:}
\newcommand{\TX}{T\!\!X}

\newcommand{\flrule}[1]{\textsf{#1}}
\newcommand{\rem}[1]{\hfill \quad\textrm{\textit{\% #1}}\ignorespaces}

\newcommand{\Var}{\mbox{\sf Var}}
\newcommand{\DefIff}{~:\Leftrightarrow~}
\newcommand{\Iff}{~\Leftrightarrow~}
\newcommand{\Imp}{~\Rightarrow~}
\newcommand{\imp}{\rightarrow}
\renewcommand{\iff}{\leftrightarrow}

\def\N{\ensuremath{\mathrm{I\! N}}} % Def. von \N "uberschrieben
\newcommand{\st}{\ensuremath{\ |\ }} % Trennzeichen f"ur Mengen 'such that'
\newcommand{\bel}{\beta}

\newcommand{\headline}[1]{%
 \psframebox[linecolor=headlinebackgrd,fillcolor=headlinebackgrd,fillstyle=solid]{%
  \begin{minipage}{\linewidth}
  \trivlist \item\strut#1\endtrivlist
  \end{minipage}}\vskip-0.5cm\leavevmode}

\newcommand{\emptynoheadline}{%
 \psframebox[linecolor=white]{%
  \begin{minipage}{\linewidth}
  \trivlist \item\strut\endtrivlist
  \end{minipage}}\vskip-0.5cm\leavevmode}

\newcommand{\redheadline}[1]{%
  \psframebox[linecolor=headerframecolor,fillcolor=headerbackgrd,fillstyle=solid]{%
  \begin{minipage}{\textwidth}
  \vskip0.2cm
  \begin{center}
  \large\bf\textsc{ \strut#1 }\vskip0.1cm
  \end{center}
  \end{minipage}}\vskip0.3cm\vskip0.5cm minus0.5cm}

\newcommand{\blueheadline}[1]{\hskip-1mm%
  \psframebox[linecolor=blue,fillcolor=lightblue,fillstyle=solid]{%
  \begin{minipage}{\textwidth}
  \vskip0.2cm
  \begin{center}
  \large\bf\textsc{ \strut#1 }\vskip0.1cm
  \end{center}
  \end{minipage}}\vskip0.3cm\vskip0.5cm minus0.5cm}


\newcommand{\frameditemize}[1]{%
 \psframebox[linecolor=itembackgrd,fillcolor=itembackgrd,fillstyle=solid]{%
  \begin{minipage}{\textwidth}
  \begin{itemize} #1\end{itemize}%
  \end{minipage}}\vskip-0.5cm\leavevmode}



%% aus german.sty
\makeatletter
\def\save@sf@q#1{{\ifhmode
  \edef\@SF{\spacefactor\the\spacefactor}\else
  \let\@SF\empty \fi \leavevmode #1\@SF}}
\def\@flq{\relax\ifmmode <\else \save@sf@q{\penalty\@M
    \raise .27ex\hbox{$\m@th\scriptscriptstyle <$}}\fi}
\def\flq{\protect\@flq}
\def\@frq{\relax\ifmmode >\else \save@sf@q{\penalty\@M
    \raise .27ex\hbox{$\m@th\scriptscriptstyle >$}}\fi}
\def\frq{\protect\@frq}


\def\boxedverbatim#1{%
  \def\verbatim@processline{%
    {\the\verbatim@line\par}}%
  \@minipagetrue%%%DPC%%%
  \@tempswatrue%%%DPC%%%
  \setbox0=\vtop\bgroup\verbatim
  \gdef\wm@tmp{\begin{tabular}[t]{@{}r@{}}#1\end{tabular}}%
}
\def\endboxedverbatim{%
  \vskip2pt\endverbatim
  \unskip\setbox0=\lastbox %%%DPC%%%
  \egroup
  \vskip2pt\par\noindent
  \hfill~\fbox{\hbox to 0cm{\vtop to 0cm{\hbox to .98\textwidth{~\hfill
          \small\textsc{\wm@tmp}}}}%
        \hbox to .98\textwidth{\vtop{\box0}}}\hfill~
  \vskip-1em\par\noindent}

\def\htmlpage{\@ifnextchar[{\htmlpage@i}{\htmlpage@i[c]}}
\def\htmlpage@i[#1]#2#3{%
 \@ifnextchar[{\htmlpage@ii{#1}{#2}{#3}}%
              {\htmlpage@ii{#1}{#2}{#3}[fillstyle=none]}}
\def\htmlpage@ii#1#2#3[#4]#5{%
 \@ifnextchar[{\htmlpage@iii{#1}{#2}{#3}{#4}{#5}}%
              {\htmlpage@iii{#1}{#2}{#3}{#4}{#5}[#5]}}
\def\htmlpage@iii#1#2#3#4#5[#6]{%
 \psset{nodesep=0pt}%
 \rnode{#6}{%
 \begin{tabular}[1]{c}%
 \rnode{lu#6}{}\hspace{#2}\rnode{ru#6}{}\\[#3]
 \rnode{ll#6}{}\hspace{#2}\rnode{rl#6}{}%
 \end{tabular}}%
 \nodeconnections{%
 \ncline[linestyle=none]{lu#6}{ru#6}
   \ncput[npos=0.5]{\rnode{mu#6}{}}
   \ncput[npos=0.7]{\rnode{xx#6}{}}
 \ncline[linestyle=none]{ll#6}{rl#6}
   \ncput[npos=0.5]{\rnode{ml#6}{}}
 \ncline[linestyle=none]{ru#6}{rl#6}
   \ncput[npos=0.3]{\rnode{yy#6}{}}
 \ncbar[linestyle=none,#4,angleA=180,angleB=180,armB=0]{yy#6}{ll#6}
 \ncbar[linestyle=none,#4,angleA=-90,angleB=90,armB=0]{xx#6}{ll#6}
 \ncbar[#4,angleA=180,angleB=180,armB=0]{xx#6}{ll#6}
 \ncbar[#4,angleA=-90,angleB=-90,armB=0]{yy#6}{ll#6}
 \ncbar[angleA=-90,angleB=-90,armB=0]{xx#6}{yy#6}
 \ncline{xx#6}{yy#6}
 \ncline[linestyle=none]{mu#6}{ml#6}\ncput[npos=0.6]{#5}
 }}

\newenvironment{expl}{\begin{tabular}[t]{l@{}l@{}l@{}l@{}l}}{\end{tabular}}

\renewenvironment{thebibliography}[1]
     {\list{\@biblabel{\@arabic\c@enumiv}}%
           {\settowidth\labelwidth{\@biblabel{#1}}%
            \leftmargin\labelwidth
            \advance\leftmargin\labelsep
            \@openbib@code
            \usecounter{enumiv}%
            \let\p@enumiv\@empty
            \renewcommand\theenumiv{\@arabic\c@enumiv}}%
      \sloppy
      \clubpenalty4000
      \@clubpenalty \clubpenalty
      \widowpenalty4000%
      \sfcode`\.\@m}
     {\def\@noitemerr
       {\@latex@warning{Empty `thebibliography' environment}}%
      \endlist}

\def\colorednode#1#2#3#4{%
  \rnode{#1}{%
    \psframebox[linecolor=#2,fillstyle=solid,fillcolor=#3]
     {\begin{minipage}[t]{.96\textwidth}%
       #4%
     \end{minipage}%
   }}}

\def\mypsframebox{\psframebox[linecolor=white]}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\footnotesize%small

%%% poster size
%\rule[-100cm]{.5cm}{100cm} %% Draft Version
\psframebox{\begin{minipage}[t]{70cm} %% begin of poster
\vskip1cm
\redheadline{\Huge \rule[-1ex]{0cm}{4ex}\LoPiX: Logic Programming in XML} 
\bigskip

\begin{center}
\Large Databases \& Information Systems Group \quad $\cdot$ \quad
          Institut f\"ur Informatik  \quad $\cdot$ \quad
          Universit\"at Freiburg  \quad $\cdot$ \quad
          Germany \\

\url{http://www.informatik.uni-freiburg.de/~may/lopix}
     \quad $\cdot$ \quad
    contact: \texttt{may@informatik.uni-freiburg.de}
\end{center}
\bigskip

%%%%%%%%%%%%% Overview %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\hspace*{0.5cm}
\mypsframebox{\begin{minipage}[t]{.22\textwidth}

\blueheadline{Project Overview}

\begin{itemize}
\item Experiences with F-Logic/Florid in integration of semistructured
  data   \cite{ludaescher-himmeroeder-IS-98,
    may-himmeroeder-lausen-ludaescher-WWWCM-99}
\end{itemize}

\headline{Goals}
\begin{itemize}
\item design \& implement a programming language for XML:
      querying, manipulation, \emph{integration}
\end{itemize}
\bigskip

\headline{Results}

\begin{itemize}
\item analysis of XML, its languages, and data model(s)
\item design own framework ...
\item ... end up with a non-W3C data model and using
  basic W3C language elements:
\item[\red$\bullet$] \leavevmode\red
      extend XPath
\item[\red$\bullet$] \leavevmode\red
      XPathLog: \\
      declarative rule-based language with bottom-up semantics
\item[\red$\bullet$] \leavevmode\red
      XTreeGraph: \\
      graph model, overlapping trees, multiple parents, \\
      tailored to XML Data Integration
\item[\blue$\bullet$] \leavevmode\blue
  Implementation: \LoPiX
\item[\blue$\bullet$] \leavevmode\blue
  Case Study: \Mondial \cite{lopix-mondial-01}
\item The complete report: \cite{lopix-whitepaper-01}
\end{itemize}

\end{minipage}}
\hfill
%%%%%%%%%%%%% System Architecture %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mypsframebox{\begin{minipage}[t]{.27\textwidth}
\psset{linewidth=.8pt}
\psset{dash=12pt 6pt}

\blueheadline{System Architecture}

\begin{itemize}
\item object-oriented modular design
\item exchangeable storage components
\end{itemize}
\medskip

\hspace*{1.5cm}\scalebox{1.5 1.5}%
{\setlength{\unitlength}{0.1mm}%
\tiny%
\begin{picture}(1300,1220)

\put(-60,0){\framebox(780,1220){}}
\put(160,160){\database[t]{3cm}{1cm}%
[fillstyle=solid,fillcolor=lightgray]{\begin{tabular}{c}Object\\Manager
                                      \end{tabular}}[OM]}

\thicklines
\put(-30,250){\rput{90}(0,0){Storage}}
\put(0,15){\framebox(680,505){}}
\put(10,370){\framebox(420,140)
     {\rnode{OMAccess}{\rnode{OMAccessLeft}{\strut}\bf OM Access}}}
\put(440,370){\framebox(230,140){\rnode{WebAccess}
  {\bf \begin{tabular}{c}WebAccess\\[-0.2cm] ~~\\ ~~\end{tabular}}}}
%
\thinlines
\put(450,380){\framebox(100,80){\rnode{DTDParser}
  {\begin{tabular}{c}DTD\\[-0.2cm] Parser\end{tabular}}}}
\put(560,380){\framebox(100,80){\rnode{XMLParser}
  {\begin{tabular}{c}XML\\[-0.2cm] Parser\end{tabular}}}}
%
\thicklines
\put(-30,700){\rput{90}(0,0){Evaluation}}
\put(0,550){\framebox(680,290){}}
\put(10,560){\framebox(340,130){\rnode{AlgEval}
  {\bf \begin{tabular}{c}Algebraic\\ Evaluation ($\pl S$)\end{tabular}}}}
\put(360,560){\framebox(310,130){\rnode{AlgIns}
  {\bf \begin{tabular}{c}Algebraic\\ Insertion\end{tabular}}}}
\put(10,700){\framebox(660,130){\rnode{LogEval}
  {\bf \begin{tabular}{c}Logic Evaluation\\ (Bottom-up) $\TX_P$\end{tabular}}}}
%
\thicklines
\put(-30,930){\rput{90}(0,0){Execution}}
\put(0,880){\rnode{SysComm}{\framebox(230,100)
  {\begin{tabular}{c}System\\[-0.1cm]Commands\end{tabular}}}}
\put(240,880){\rnode{XPathLogParser}{\framebox(440,100)
  {\begin{tabular}{c}\bf XPathLog Parser\\[-0.1cm] 
                     (Programs and Queries)\end{tabular}}}}

\put(0,1060){\framebox(680,140){\rnode{UI}{\bf User Interface~~~~~~~~~~~~~~}}}
\thinlines
\put(400,1070){\framebox(270,90){\rnode{PP}
  {\begin{tabular}{c}Pretty Printer\\[-0.1cm] Bindings/XML\end{tabular}}}}
%
\put(870,240){\rnode{Internet}
  {\framebox(50,400){\rput{90}(0,0){Internet}}}}
%
\put(1020,540){\htmlpage{1.2cm}{0.9cm}[fillstyle=solid,fillcolor=lightgray]
    {\begin{tabular}{c}XML\\[-0.1cm]url$_1$\end{tabular}}[XMLDoc]}
\put(1020,340){\htmlpage{1.2cm}{0.9cm}[fillstyle=solid,fillcolor=lightgray]
    {\begin{tabular}{c}DTD\\[-0.1cm]url$_2$\end{tabular}}[DTDDoc]}
%
\put(800,1100){\rnode{OutputScreen}
  {\psframebox{\psframebox[framearc=.3]{
      \begin{tabular}{c}
       ~\\[-0.2cm]interactive\\Output\\[-0.2cm]~\\
      \end{tabular}}}}}
%
\put(810,850){\htmlpage{1.2cm}{0.9cm}[fillstyle=solid,fillcolor=lightgray]
    {\begin{tabular}{c}XML\\[-0.1cm]output\end{tabular}}[OutputFile]}
%
\end{picture}
%
\nodeconnections{%
\ncline[linecolor=magenta,linestyle=dashed,
        offset=.1cm,nodesepA=.1cm]{<->}{OMAccess}{OM}
%
\ncline[doubleline=true,linecolor=blue]{->}{WebAccess}{OM}
\ncline[doubleline=true,linecolor=blue,linestyle=dashed]
     {->}{Internet}{WebAccess}
  \SpecialCoor
  \pcline[doubleline=true]{<->}([angle=180]XMLDoc)%
  ([angle=180,nodesep=.9cm]XMLDoc)
  \pcline[doubleline=true]{<->}([angle=180,nodesep=-1pt]DTDDoc)%
  ([angle=180,nodesep=.9cm]DTDDoc)
  \NormalCoor
\ncline[doubleline=true,nodesep=-1pt]{<->}{Internet}{OutputFile}
%
\ncline[doubleline=true,linecolor=blue,nodesepB=.1cm]{->}{AlgIns}{OMAccess}
\ncline[linecolor=red,offsetA=.1cm, offsetB=-.15cm,nodesepB=.2cm]
   {<->}{AlgEval}{OMAccess}
\ncline[linecolor=red]{->}{AlgIns}{WebAccess}
\ncline[doubleline=true,linecolor=blue,nodesepA=.1cm,offset=-.1cm]
   {->}{OMAccess}{OM}
%
\ncline[linecolor=red]{->}{LogEval}{AlgIns}
\ncline[linecolor=red]{<->}{LogEval}{AlgEval}
%
\ncline[linecolor=red,offsetA=.2cm,nodesepA=-0.1cm]{->}{SysComm}{PP}
\ncarc[arcangleA=-35,arcangleB=-45,linecolor=red]{->}{LogEval}{PP}
\ncline[linecolor=red]{->}{XPathLogParser}{LogEval}
%
\ncline[linecolor=red,nodesepA=0.1cm,nodesepB=-.2cm,offsetB=-.3cm]
   {->}{UI}{SysComm}
\ncline[linecolor=red,nodesepA=0.1cm]{->}{UI}{XPathLogParser}
%
\ncline[linecolor=red,nodesepA=0.1cm,offsetA=.05cm,nodesepB=0.1cm]
   {<->}{SysComm}{OMAccessLeft}
%
\ncline[linecolor=blue,linestyle=dashed]{->}{PP}{OutputScreen}
\ncline[doubleline=true,linecolor=blue,linestyle=dashed]
        {->}{PP}{OutputFile}
}
}
\smallskip

\begin{tabular}{ll@{\quad}ll}
    \rnode{l1}{\strut}\qquad~~\rnode{r1}{\strut}
    \ncline[doubleline=true,linecolor=blue,linestyle=dashed,linewidth=1.2pt]
         {->}{l1}{r1}
    & Internet in- and output &
    \rnode{l2}{\strut}\qquad~~\rnode{r2}{\strut}
    \ncline[doubleline=true,linecolor=blue]{->}{l2}{r2}
    & inserts to internal storage\\
    \rnode{l3}{\strut}\qquad~~\rnode{r3}{\strut}
    \ncline[linecolor=red]{->}{l3}{r3}
    & internal information flow &
    \rnode{l4}{\strut}\qquad~~\rnode{r4}{\strut}
    \ncline[linecolor=magenta,linestyle=dashed,linewidth=1.2pt]{->}{l4}{r4}
    & querying internal storage
  \end{tabular}
\end{minipage}}
\hfill
%%%%%%%%%%%%% History %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mypsframebox{\begin{minipage}[t]{.18\textwidth}

\blueheadline{History}

\begin{itemize}
\item since 1988: F-Logic, an early ``semistructured'' data model with
  a declarative rule-based language (Kifer, Lausen SIGMOD'89 and
  Kifer, Lausen, Wu JACM'95)
\item 1992-1996: Design and implementation of the research prototype
  \Florid\ 1.0; language extensions and optimizations.
\item 1997-1999: research on mapping HTML data to F-Logic,\\
  \Florid 2.0 as a Web-enabled version; Data integration from the Web
  \cite{ludaescher-himmeroeder-IS-98,
    may-himmeroeder-lausen-ludaescher-WWWCM-99}
\item 1999/2000: application to XML data (\Florid\ 3.0/FloXML)
\item 2000/2001: migration to ``native'' XML, design of {\red
    XPathLog},
  implementation of {\red \LoPiX} based on \Florid 3.0. \\
  \LoPiX\ still provides features known from F-Logic such as class
  hierarchy, signatures, and non-monotonic inheritance as extensions
  to XML data.

\bigskip
\bigskip

Thanks to E.\ Behrends, J.\ Frohn, R.\ Himmer\"oder, P.-Th.\ Kandzia,
G.\ Lausen, B.\ Lud\"ascher, D.\ Malheiro, P.\ J.\ Marr\'on, T.\ 
Pferdek\"amper, C.\ Schlepphorst, M.\ Seilnacht, H.\ Uphoff, and T.\ 
Westmann.
\end{itemize}

\end{minipage}}
\hfill
%
\mypsframebox{\begin{minipage}[t]{.25\textwidth}

\blueheadline{Publications}
%\bibliographystyle{alpha-initials-big}
%\bibliography{lst.string,lst.conf,ssdb,lst}
\newcommand{\etalchar}[1]{$^{#1}$}
\begin{thebibliography}{AA}

\bibitem[Lop01a]{lopix-whitepaper-01}
W.~May.
\newblock XPath-Logic and XPathLog: A Logic-Based Approach for Declarative XML
  Data Manipulation, 2001.
\newblock Available from
  \url{http://www.informatik.uni-freiburg.de/~may/lopix/}.

\bibitem[Mon01]{lopix-mondial-01}
W.~May.
\newblock Information Integration in XML: The \textsc{Mondial} Case Study, 
  2001.
  \url{http://www.informatik.uni-freiburg.de/~may/lopix/lopix-mondial.html}.

\bibitem[XPL01a]{may-DBPL-01}
W.~May.
\newblock A Rule-based Querying and Updating Language for XML.
\newblock {\em Workshop on Databases and Programming Languages (DBPL 2001)}.

\bibitem[XPL01b]{may-behrends-FMLDO-01}
W.~May and E.~Behrends.
\newblock On an XML Data Model for Data Integration.
\newblock {\em Workshop on Foundations of Models and Languages for
  Data and Objects (FMLDO 2001)}.

\bibitem[XPL01c]{may-DIWeb-01}
W.~May.
\newblock Integration of XML Data in XPathLog.
\newblock {\em CAiSE Workshop Data Integration over the Web (DIWeb'01)},
  2001.

\bibitem[XPL01d]{may-KRDB-01}
W.~May.
\newblock A Framework for Generic Integration of XML Sources.
\newblock {\em Workshop on Knowledge Representation meets Databases
  (KRDB 2001)}.

\bibitem[Flo98]{ludaescher-himmeroeder-IS-98}
B.~Lud\"ascher, R.~Himmer\"oder, G.~Lausen, W.~May, and C.~Schlepp\-horst.
\newblock Managing Semistructured Data with \textsc{Florid}: A Deductive
  Object-Oriented Perspective.
\newblock {\em Information Systems}, 23(8):589--612, 1998.

\bibitem[Flo99]{may-himmeroeder-lausen-ludaescher-WWWCM-99}
W.~May, R.~Himmer\"oder, G.~Lausen, and B.~Lud\"ascher.
\newblock A Unified Framework for Wrapping, Mediating and Restructuring
  Information from the Web.
\newblock {\em Workshop on the WWW and Conceptual
  Modeling (WWWCM)}, Springer LNCS 1727, 1999.

\end{thebibliography}


\end{minipage}}
\hspace*{0.5cm}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 2nd line
\bigskip

%%%%%%%%%%%%% Language %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\hspace*{0.5cm}
\mypsframebox{\begin{minipage}[t]{.3\textwidth}

\blueheadline{Language: XPathLog}

for details see \cite{may-DBPL-01}

\begin{itemize}
\item Extends the XPath syntax with \emph{variable Bindings}
\item Declarative, rule-based language with bottom-up semantics \\
\hspace*{2.5cm}
    head(V$_1$,\ldots,V$_n$) :-  body(V$_1$,\ldots,V$_n$)
\item Queries: extends the semantics for XPath given by
  P.Wadler (1999)
\item Constructive semantics for XPathLog atoms in rule heads
\end{itemize}

\headline{XPath-Logic \emph{reference expressions} are XPath
  \emph{location paths}}
{\tt\begin{tabbing}
[0]~~ \=ReferenceExpr ::= \=AbsLocPath $|$ \blue ConstLocPath \\\relax
\blue[2b]\>\blue ConstLocPath ::= \>\blue constant "/" RelLocPath \\
    \>                  \>\blue $|$ variable "/" RelLocPath
 \end{tabbing}}
\headline{Extend \emph{LocationSteps}}
{\tt\begin{tabbing}
[4] Step ::= \=AxisSpec NodeTest Pred*  \\
             \>$|$ AxisSpec NodeTest Pred* {\blue "->" Var} Pred*  \\
             \>$|$ AxisSpec {\blue Var} Pred* \\
             \>$|$ AxisSpec {\blue Var} Pred* {\blue "->" Var} Pred*        
\end{tabbing}}

\begin{itemize}
\item navigation by dereferencing \texttt{IDREF} attributes
\item Predicates over reference expressions
\end{itemize}
\bigskip

\headline{Rule Heads: definite XPathLog atoms}

\begin{itemize}
\item use only the child and sibling axes
\item no negation, disjunction, function applications, \\
   and \emph{proximity position predicates}
\end{itemize}

\end{minipage}}
\hfill
%
%%%%%%%%%%%%% Information Integration %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mypsframebox{\begin{minipage}[t]{.3\textwidth}

\blueheadline{XPathLog: Examples}

\headline{Pure XPath expressions}

  \begin{expl}
    ?- //country[name/text() = ``Belgium'']//city/name/text(). \\
    true
  \end{expl}
\headline{Output Result Set}

  \begin{expl}
    ?- //country[name/text() = ``Belgium'']//city/name/text(){\blue \fd N}. \\
    N/``Brussels''\\
  \smallvdots
  \end{expl}
\headline{Additional Variables}

  \begin{expl}
  ?- //country[&name/text(){\blue\fd N1} and
               @car\_code{\blue\fd C}]//city/name/text(){\blue\fd N2}. \\
  \multicolumn{2}{l}{N2/``Brussels'' ~  C/``B'' ~  N1/``Belgium''}\\
  \smallvdots
  \end{expl}
\headline{Local Variables}

\begin{expl}
  ?- //country[name/text(){\blue\fd N1}]%
              //city&[population/text(){\blue\fd\_P}]
               /name/text(){\blue\fd N2}, \\
  \hspace*{0.5cm} 
   {\blue\_P} $>$ 100000.
\end{expl}

\headline{Dereferencing}

\begin{expl}
  ?- //organization&[{\blue @seat} = members/{\blue @country/@capital}]\\
                   &/{\blue @seat/name}/text()\fd N.
\end{expl}

\headline{Navigation Variables}

  \begin{expl}
  ?- //{\blue Type}\fd X[name/text()\fd``Monaco''].\\
  ~~~ \begin{tabular}{ll}
      Type/country \ & X/\textsl{country-monaco} \\
      Type/city \ & X/\textsl{city-monaco} 
    \end{tabular}
  \end{expl}

\headline{Schema Querying}

  \begin{expl}
    ?- //city/{\blue N}. \\
    N/name \\
    N/population \\
    \smallvdots
  \end{expl}
\end{minipage}}
\hfill
%
%%%%%%%%%%%%% Information Integration %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mypsframebox{\begin{minipage}[t]{.3\textwidth}

\blueheadline{XML Information Integration}

for details see \cite{may-DIWeb-01, may-KRDB-01}

\begin{itemize}
\item integration of databases: semantics-driven integration process
\item objects of different sources represent the same real-world
   object
\item[$\Rightarrow$] Fusing objects, merging their properties 
\item synonyms, ontologies
\item not compatible with XML Data Models (DOM, XML Query Data Model)
\end{itemize}

\blueheadline{Data Model: XTreeGraph}

for details see \cite{may-behrends-FMLDO-01}

\begin{itemize}
  \item Graph data model, \leavevmode\blue extends DOM/XML Query Data Model
  \item Supports {\red updates}
  \item Tailored to {\red data integration}
  \item[\red$\Rightarrow$] 
        {\leavevmode\red multiple, overlapping trees}
\end{itemize}

\blueheadline{Three-Level Integration}

\begin{itemize}
\item multiple sources which provide tree structures
  (basic layer)
\item merge data from different sources; 
  ``internal'' layer: {\blue XTreeGraph}
  \begin{itemize}
  \item fuse elements/merge subtrees $\leadsto$ overlapping trees
  \item add subelement links $\leadsto$ overlapping trees
  \item define synonyms for properties
  \end{itemize}
\item ``export'' layer: define {\blue result tree views} by projections
\end{itemize}
\end{minipage}}
\hspace*{0.5cm}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 3rd line
\bigskip

%%%%%%%%%%%%% Case Study %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\hspace*{0.5cm}
\mypsframebox{\begin{minipage}[t]{.98\textwidth}
\blueheadline{Case-Study in Data Integration: \Mondial}

\begin{minipage}[t]{10cm}
\headline{CIA World Factbook Organizations}
\begin{itemize}
\item organizations
\item memberships
\end{itemize}
\bigskip

\flq!ELEMENT orgs (organization*)\frq
\smallskip

\colorednode{org}{yellow}{lightyellow}{%
\flq!ELEMENT organization \\
\hspace*{0.5cm}
    (member\_names*)\frq\\
\flq!ATTLIST organization  \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
     abbrev CDATA \#REQUIRED \\
     name CDATA \#REQUIRED \\
     established CDATA \#IMPLIED \\
     \rnode{seattocountry}{\red seatcountry CDATA \#IMPLIED}\\
     \rnode{seattocity}{\magenta seatcity CDATA \#IMPLIED}\frq
\end{tabular}}
\smallskip

\flq!ELEMENT member\_names\\
\hspace*{0.5cm}
  (\rnode{memtocountry}{\red \#PCDATA})\frq \\
\flq!ATTLIST member\_names\\
\hspace*{0.5cm}
  type CDATA \#REQUIRED\frq
\bigskip

\end{minipage}
\hfill
%
\begin{minipage}[t]{10cm}
\headline{CIA World Factbook Countries}
\begin{itemize}
\item continents
\item countries
\end{itemize}
\bigskip

\flq!ELEMENT cia \\
\hspace*{0.5cm}
 (continent*, country*)\frq 
\smallskip

\colorednode{ciacont}{green}{lightgreen}{%
\flq!ELEMENT continent EMPTY\frq \\
\flq!ATTLIST continent \\
\hspace*{0.5cm}
  {\green name CDATA \#REQUIRED}\frq
}
\smallskip

\colorednode{ciacountry}{red}{lightred}{%
\flq!ELEMENT country \\
\hspace*{0.5cm} 
 (\begin{tabular}[t]{@{}l@{}} 
   ethnicgroups*, religions*, \\
   languages*, borders*)\frq 
 \end{tabular}
\smallskip\\
\flq!ATTLIST country  \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
  name CDATA \#REQUIRED \\
  \rnode{ciacountrytocontinent}{\strut}{\green continent CDATA \#IMPLIED} \\
  total\_area CDATA \#IMPLIED \\
  population CDATA \#IMPLIED \\
  \hspace*{1cm} : \\
  \rnode{capitaltocity}{\magenta capital CDATA \#IMPLIED}\frq
\end{tabular}%
}
\smallskip

\flq!ELEMENT religions (\#PCDATA)\frq \\
\flq!ATTLIST religions \\
\hspace*{0.5cm}
 name CDATA \#REQUIRED\frq
\smallskip

(\begin{tabular}[t]{@{}l@{}}
  analogous ethnicgroups and \\
  languages) 
\end{tabular}
\smallskip

\flq!ELEMENT borders (\#PCDATA)\frq \\
\flq!ATTLIST borders \\
\hspace*{0.5cm}
 \rnode{bordertocountry}{\strut}{\red country IDREF \#REQUIRED}\frq
\end{minipage}
\hfill
%
\begin{minipage}[t]{10.5cm}
\headline{Global Statistics}
\begin{itemize}
\item countries, continents
\item administrative divisions, cities
\end{itemize}
\bigskip

\flq!ELEMENT gs (continent*, country*, \\
\hspace*{0.5cm}
  city*, province*)\frq
\smallskip

\colorednode{gscont}{green}{lightgreen}{%
\flq!ELEMENT continent EMPTY\frq \\
\flq!ATTLIST continent \\
\hspace*{0.5cm}
  {\green name CDATA \#REQUIRED}\frq
}
\smallskip

\colorednode{gscountry}{red}{lightred}{%
\flq!ELEMENT country ({\red name}+)\frq\rnode{gscountryname}{} \\
\flq!ATTLIST country \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
 id ID \#REQUIRED \\
 \rnode{gscapitaltocity}{\strut}capital IDREF \#IMPLIED \\
 population CDATA \#IMPLIED \\
 \rnode{gscountrytocontinent}{\strut}{\green continent IDREF \#IMPLIED} \\
 \rnode{maincitiestocity}{\strut}{\magenta main\_cities IDREFS \#IMPLIED} \\
 \rnode{admdivstoprovince}{\strut}{\blue adm\_divs IDREFS \#IMPLIED}\frq 
\end{tabular}}
\smallskip

\colorednode{gsprovince}{blue}{lightblue}{%
\flq!ELEMENT province EMPTY\frq \\
\flq!ATTLIST province\\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
 id ID \#REQUIRED \\
 {\blue name CDATA \#REQUIRED} \\
 {\red country IDREF \#REQUIRED} \\
 \rnode{gsprovtocapital}{\strut}{\magenta capital IDREF \#IMPLIED} \\
 population CDATA \#IMPLIED \\
 area CDATA \#IMPLIED\frq 
\end{tabular}}
\smallskip

\colorednode{gscity}{magenta}{lightmagenta}{%
\flq!ELEMENT city \\
\hspace*{0.5cm}
 (population*, {\magenta name}+)\frq \\
\flq!ATTLIST city \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
  id ID \#REQUIRED \\
  {\red country IDREF \#REQUIRED}\rnode{gscitytocountry}{\strut} \\
  {\blue province IDREF \#IMPLIED}\rnode{gscitytoprovince}{\strut}\frq
\end{tabular}}
\smallskip

\flq!ELEMENT population (\#PCDATA)\frq \\
\flq!ATTLIST population \\
\hspace*{0.5cm}
 year CDATA \#REQUIRED\frq \\
\end{minipage}
\hfill
%
\begin{minipage}[t]{10cm}
\headline{Auxiliary}
\begin{itemize}
\item country codes
\item german and english names
\end{itemize}
\bigskip
\flq!ELEMENT codes (country*)\frq 
\smallskip

\colorednode{auxcountry}{red}{lightred}{%
\flq!ELEMENT country \\
 \hspace*{0.5cm}
  \rnode{auxcountryname1}{(}%
    {\red name,name,name}%
   \rnode{auxcountryname2}{)}\frq \\
\flq!ATTLIST country \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
 id CDATA \#REQUIRED \\
 {\red car\_code CDATA \#REQUIRED}\frq
\end{tabular}}
\smallskip

\flq!ELEMENT name (\#PCDATA)\frq \\
\flq!ATTLIST name  \\
\hspace*{0.5cm}
 language CDATA \#REQUIRED\frq
\end{minipage}
\hfill
%
\begin{minipage}[t]{21cm}
\headline{TERRA}

\begin{itemize}
\item uses German names
\item countries, administrative divisions, cities
\item mountains, islands, waters
\end{itemize}
\bigskip

\begin{minipage}[t]{9.5cm}
\flq!ELEMENT terra \\
\hspace*{0.5cm} 
(\begin{tabular}[t]{@{}l@{}}
 country*, province*, city*,  \\
 (mountain, desert, island, \\
 ~~river, lake, sea)*)\frq 
\end{tabular}
\smallskip

\colorednode{terracountry}{red}{lightred}{%
\flq!ELEMENT country \\
  (encompassed*)\frq \\
\flq!ATTLIST country \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
 {\red id ID \#REQUIRED} \\
 \rnode{terracountryname}{}{\red name CDATA \#REQUIRED} \\
 code CDATA \#REQUIRED \\
 area CDATA \#REQUIRED \\
 population CDATA \\
 \hspace*{0.5cm} \#REQUIRED \\
 {\magenta capital CDATA \#REQUIRED\rnode{terracountrytocapital}{\strut}}\frq
 \end{tabular}}
\smallskip

\flq!ELEMENT encompassed \\
\hspace*{0.5cm}
 (\#PCDATA)\frq \\
\flq!ATTLIST encompassed \\
\hspace*{0.5cm}
  \rnode{terratocontinent}{\green continent CDATA} \\
  \hspace*{1cm}{\green\#REQUIRED}\frq 
\end{minipage}\hfill
\begin{minipage}[t]{10cm}
\colorednode{terraprovince}{blue}{lightblue}{%
\flq!ELEMENT province (\#PCDATA)\frq \\
\flq!ATTLIST province \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
 id ID \#IMPLIED \\
 {\blue name CDATA \#IMPLIED} \\
 abbrev CDATA \#IMPLIED \\
 \rnode{terraprovincetocountry}{\strut}{\red country CDATA \#IMPLIED} \\
 pop CDATA \#IMPLIED \\
 \rnode{terraprovincetocapital}{\magenta capital CDATA \#IMPLIED\frq}
 \end{tabular}}
\vskip0.5cm

\colorednode{terracity}{magenta}{lightmagenta}{%
\flq!ELEMENT city
  (\rnode{terracitytoprovince}{\blue province}*)\frq \\
\flq!ATTLIST city \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
 {\magenta name CDATA \#REQUIRED} \\
 \rnode{terracitytocountry}{\strut}{\red country CDATA \#REQUIRED} \\
 population CDATA \#IMPLIED \\
 longitude CDATA \#IMPLIED \\
 latitude CDATA \#IMPLIED\frq
\end{tabular}}
\smallskip

\flq!ELEMENT river
 (located*)\frq
\smallskip

(\begin{tabular}[t]{@{}l@{}}
 similar: lake, river, sea, \\
 desert, island, mountain)
\end{tabular}
\smallskip

\flq!ELEMENT located
  EMPTY\frq \\
\flq!ATTLIST located\\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
 \rnode{locatedtocountry}{\strut}{\red country\_code CDATA \#REQUIRED} \\
 \rnode{locatedtoprovince}{\strut}{\blue province\_id CDATA \#REQUIRED}\frq
 \end{tabular}
\end{minipage}
\bigskip

\hspace*{-6cm}
\begin{minipage}[t]{25cm}
\begin{itemize}
\item The CIA World Factbook XML database is derived from the data
  provided by the CIA at
  \url{http://www.odci.gov/cia/publications/pubs.html}.
\item The GlobalStatistics XML database is derived from the
  \emph{Global Statistics} Data at \url{http://www.stats.demon.nl}
  collected by Johan van der Heijden.
\item The TERRA XML database is derived from the TERRA database of the
  \emph{Institut f\"ur Programmstrukturen und Datenorganisation der
    Universit\"at Karlsruhe}.
\end{itemize}
\end{minipage}
\end{minipage}
\hfill
%
\end{minipage}}
\nodeconnections{%
\psset{arrowsize=0.3cm 2}
\ncline[doubleline=true,linecolor=green,linewidth=4pt]{gscont}{ciacont}
\ncline[linecolor=red,arrowsize=0.3cm 2]{->}{memtocountry}{ciacountry}
\ncline[linecolor=red]{->}{seattocountry}{ciacountry}
\ncline[doubleline=true,linecolor=red,linewidth=4pt]{ciacountry}{gscountry}
\ncline[doubleline=true,linecolor=red,linewidth=4pt]{gscountry}{auxcountry}
\ncline[doubleline=true,linecolor=red,linewidth=4pt]{auxcountry}{terracountry}
\ncarc[linecolor=red,arcangleA=80,arcangleB=40]
       {->}{bordertocountry}{ciacountry}
\ncarc[linecolor=green,arcangleA=110,arcangleB=50]
       {->}{ciacountrytocontinent}{ciacont}
\ncarc[linecolor=magenta,angleA=80,arcangleA=-40,arcangleB=-40]
       {->}{seattocity}{gscity}
\ncarc[linecolor=magenta,arcangleA=-40,arcangleB=-40]
       {->}{capitaltocity}{gscity}
\ncarc[linecolor=magenta,arcangleA=-140,arcangleB=-40]
       {->}{gsprovtocapital}{gscity}
\ncarc[linecolor=magenta,arcangleA=-110,arcangleB=-70,angleB=-30]
       {->}{gscapitaltocity}{gscity}
\ncarc[linecolor=magenta,arcangleA=-110,arcangleB=-65,angleB=-20]
       {->}{maincitiestocity}{gscity}
\ncarc[linecolor=blue,arcangleA=-150,arcangleB=-40]
       {->}{admdivstoprovince}{gsprovince}
\ncarc[linecolor=green,arcangleA=110,arcangleB=50,offsetB=-0.5cm]
       {->}{gscountrytocontinent}{gscont}
\ncarc[linecolor=red,arcangleA=-110,arcangleB=-60]
       {->}{gscitytocountry}{gscountry}
\ncarc[linecolor=blue,arcangleA=-120,arcangleB=-50]
       {->}{gscitytoprovince}{gsprovince}
\ncline[doubleline=true,linecolor=blue,linewidth=4pt]{gsprovince}{terraprovince}
\ncline[doubleline=true,linecolor=magenta,linewidth=4pt]{gscity}{terracity}
\ncarc[linecolor=green,arcangleA=25,arcangleB=0]
       {->}{terratocontinent}{gscont}
\ncarc[linecolor=red,arcangleA=-45,arcangleB=40]
       {->}{gscountryname}{auxcountryname1}
\ncarc[linecolor=red,arcangleA=45,arcangleB=-40]
       {->}{terracountryname}{auxcountryname2}
\ncline[linecolor=magenta,offsetB=0.5cm]{->}{terracountrytocapital}{terracity}
\ncline[linecolor=magenta]{->}{terraprovincetocapital}{terracity}
\ncline[linecolor=red]{->}{terracitytocountry}{terracountry}
\ncline[linecolor=blue]{->}{terracitytoprovince}{terraprovince}
\ncline[linecolor=red,offsetB=-0.8cm,nodesepB=0.5cm]{->}{terraprovincetocountry}{terracountry}
\ncline[linecolor=red]{->}{locatedtocountry}{terracountry}
\ncarc[linecolor=blue,arcangleA=80,arcangleB=40]
       {->}{locatedtoprovince}{terraprovince}
}
\hfill
%
\vskip1cm

\begin{center}
\redheadline{\Huge \rule[-1ex]{0cm}{4ex}
   VLDB 2001 Demonstration Track, Rome, 11.-15.9.2001} 
\end{center}
%%%% end of poster
\end{minipage}} %% 70cm width

\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%% Case Study Poster

%%% poster size
%\rule[-100cm]{.5cm}{100cm} %% Draft Version
\psframebox{\begin{minipage}[t]{70cm} %% begin of poster
\vskip1cm
\redheadline{\Huge  \rule[-1ex]{0cm}{4ex}
  \begin{tabular}{c}
     \strut \LoPiX: Logic Programming in XML \\
     \strut Case-Study in Data Integration: \Mondial
  \end{tabular}}
\medskip

%\begin{center}
%\Large Databases \& Information Systems Group \quad $\cdot$ \quad
%          Institut f\"ur Informatik  \quad $\cdot$ \quad
%          Universit\"at Freiburg  \quad $\cdot$ \quad
%          Germany \\

%\url{http://www.informatik.uni-freiburg.de/~may/lopix}
%     \quad $\cdot$ \quad
%    contact: \texttt{may@informatik.uni-freiburg.de}
%\end{center}
%\bigskip

\hspace*{0.5cm}
\mypsframebox{\begin{minipage}[t]{.98\textwidth}
\blueheadline{The Source DTDs}

\begin{minipage}[t]{10cm}
\headline{CIA World Factbook Organizations}
\begin{itemize}
\item organizations
\item memberships
\end{itemize}
\bigskip

\flq!ELEMENT orgs (organization*)\frq
\smallskip

\colorednode{org}{yellow}{lightyellow}{%
\flq!ELEMENT organization \\
\hspace*{0.5cm}
    (member\_names*)\frq\\
\flq!ATTLIST organization  \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
     abbrev CDATA \#REQUIRED \\
     name CDATA \#REQUIRED \\
     established CDATA \#IMPLIED \\
     \rnode{seattocountry}{\red seatcountry CDATA \#IMPLIED}\\
     \rnode{seattocity}{\magenta seatcity CDATA \#IMPLIED}\frq
\end{tabular}}
\smallskip

\flq!ELEMENT member\_names\\
\hspace*{0.5cm}
  (\rnode{memtocountry}{\red \#PCDATA})\frq \\
\flq!ATTLIST member\_names\\
\hspace*{0.5cm}
  type CDATA \#REQUIRED\frq
\bigskip

\end{minipage}
\hfill
%
\begin{minipage}[t]{10cm}
\headline{CIA World Factbook Countries}
\begin{itemize}
\item continents
\item countries
\end{itemize}
\bigskip

\flq!ELEMENT cia \\
\hspace*{0.5cm}
 (continent*, country*)\frq 
\smallskip

\colorednode{ciacont}{green}{lightgreen}{%
\flq!ELEMENT continent EMPTY\frq \\
\flq!ATTLIST continent \\
\hspace*{0.5cm}
  {\green name CDATA \#REQUIRED}\frq
}
\smallskip

\colorednode{ciacountry}{red}{lightred}{%
\flq!ELEMENT country \\
\hspace*{0.5cm} 
 (\begin{tabular}[t]{@{}l@{}} 
   ethnicgroups*, religions*, \\
   languages*, borders*)\frq 
 \end{tabular}
\smallskip\\
\flq!ATTLIST country  \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
  name CDATA \#REQUIRED \\
  \rnode{ciacountrytocontinent}{\strut}{\green continent CDATA \#IMPLIED} \\
  total\_area CDATA \#IMPLIED \\
  population CDATA \#IMPLIED \\
  \hspace*{1cm} : \\
  \rnode{capitaltocity}{\magenta capital CDATA \#IMPLIED}\frq
\end{tabular}%
}
\smallskip

\flq!ELEMENT religions (\#PCDATA)\frq \\
\flq!ATTLIST religions \\
\hspace*{0.5cm}
 name CDATA \#REQUIRED\frq
\smallskip

(\begin{tabular}[t]{@{}l@{}}
  analogous ethnicgroups and \\
  languages) 
\end{tabular}
\smallskip

\flq!ELEMENT borders (\#PCDATA)\frq \\
\flq!ATTLIST borders \\
\hspace*{0.5cm}
 \rnode{bordertocountry}{\strut}{\red country IDREF \#REQUIRED}\frq
\end{minipage}
\hfill
%
\begin{minipage}[t]{10.5cm}
\headline{Global Statistics}
\begin{itemize}
\item countries, continents
\item administrative divisions, cities
\end{itemize}
\bigskip

\flq!ELEMENT gs (continent*, country*, \\
\hspace*{0.5cm}
  city*, province*)\frq
\smallskip

\colorednode{gscont}{green}{lightgreen}{%
\flq!ELEMENT continent EMPTY\frq \\
\flq!ATTLIST continent \\
\hspace*{0.5cm}
  {\green name CDATA \#REQUIRED}\frq
}
\smallskip

\colorednode{gscountry}{red}{lightred}{%
\flq!ELEMENT country ({\red name}+)\frq\rnode{gscountryname}{} \\
\flq!ATTLIST country \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
 id ID \#REQUIRED \\
 \rnode{gscapitaltocity}{\strut}capital IDREF \#IMPLIED \\
 population CDATA \#IMPLIED \\
 \rnode{gscountrytocontinent}{\strut}{\green continent IDREF \#IMPLIED} \\
 \rnode{maincitiestocity}{\strut}{\magenta main\_cities IDREFS \#IMPLIED} \\
 \rnode{admdivstoprovince}{\strut}{\blue adm\_divs IDREFS \#IMPLIED}\frq 
\end{tabular}}
\smallskip

\colorednode{gsprovince}{blue}{lightblue}{%
\flq!ELEMENT province EMPTY\frq \\
\flq!ATTLIST province\\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
 id ID \#REQUIRED \\
 {\blue name CDATA \#REQUIRED} \\
 {\red country IDREF \#REQUIRED} \\
 \rnode{gsprovtocapital}{\strut}{\magenta capital IDREF \#IMPLIED} \\
 population CDATA \#IMPLIED \\
 area CDATA \#IMPLIED\frq 
\end{tabular}}
\smallskip

\colorednode{gscity}{magenta}{lightmagenta}{%
\flq!ELEMENT city \\
\hspace*{0.5cm}
 (population*, {\magenta name}+)\frq \\
\flq!ATTLIST city \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
  id ID \#REQUIRED \\
  {\red country IDREF \#REQUIRED}\rnode{gscitytocountry}{\strut} \\
  {\blue province IDREF \#IMPLIED}\rnode{gscitytoprovince}{\strut}\frq
\end{tabular}}
\smallskip

\flq!ELEMENT population (\#PCDATA)\frq \\
\flq!ATTLIST population \\
\hspace*{0.5cm}
 year CDATA \#REQUIRED\frq \\
\end{minipage}
\hfill
%
\begin{minipage}[t]{10cm}
\headline{Auxiliary}
\begin{itemize}
\item country codes
\item german and english names
\end{itemize}
\bigskip
\flq!ELEMENT codes (country*)\frq 
\smallskip

\colorednode{auxcountry}{red}{lightred}{%
\flq!ELEMENT country \\
 \hspace*{0.5cm}
  \rnode{auxcountryname1}{(}%
    {\red name,name,name}%
   \rnode{auxcountryname2}{)}\frq \\
\flq!ATTLIST country \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
 id CDATA \#REQUIRED \\
 {\red car\_code CDATA \#REQUIRED}\frq
\end{tabular}}
\smallskip

\flq!ELEMENT name (\#PCDATA)\frq \\
\flq!ATTLIST name  \\
\hspace*{0.5cm}
 language CDATA \#REQUIRED\frq
\end{minipage}
\hfill
%
\begin{minipage}[t]{21cm}
\headline{TERRA}

\begin{itemize}
\item uses German names
\item countries, administrative divisions, cities
\item mountains, islands, waters
\end{itemize}
\bigskip

\begin{minipage}[t]{9.5cm}
\flq!ELEMENT terra \\
\hspace*{0.5cm} 
(\begin{tabular}[t]{@{}l@{}}
 country*, province*, city*,  \\
 (mountain, desert, island, \\
 ~~river, lake, sea)*)\frq 
\end{tabular}
\smallskip

\colorednode{terracountry}{red}{lightred}{%
\flq!ELEMENT country \\
  (encompassed*)\frq \\
\flq!ATTLIST country \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
 {\red id ID \#REQUIRED} \\
 \rnode{terracountryname}{}{\red name CDATA \#REQUIRED} \\
 code CDATA \#REQUIRED \\
 area CDATA \#REQUIRED \\
 population CDATA \\
 \hspace*{0.5cm} \#REQUIRED \\
 {\magenta capital CDATA \#REQUIRED\rnode{terracountrytocapital}{\strut}}\frq
 \end{tabular}}
\smallskip

\flq!ELEMENT encompassed \\
\hspace*{0.5cm}
 (\#PCDATA)\frq \\
\flq!ATTLIST encompassed \\
\hspace*{0.5cm}
  \rnode{terratocontinent}{\green continent CDATA} \\
  \hspace*{1cm}{\green\#REQUIRED}\frq 
\end{minipage}\hfill
\begin{minipage}[t]{10cm}
\colorednode{terraprovince}{blue}{lightblue}{%
\flq!ELEMENT province (\#PCDATA)\frq \\
\flq!ATTLIST province \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
 id ID \#IMPLIED \\
 {\blue name CDATA \#IMPLIED} \\
 abbrev CDATA \#IMPLIED \\
 \rnode{terraprovincetocountry}{\strut}{\red country CDATA \#IMPLIED} \\
 pop CDATA \#IMPLIED \\
 \rnode{terraprovincetocapital}{\magenta capital CDATA \#IMPLIED\frq}
 \end{tabular}}
\vskip0.5cm

\colorednode{terracity}{magenta}{lightmagenta}{%
\flq!ELEMENT city
  (\rnode{terracitytoprovince}{\blue province}*)\frq \\
\flq!ATTLIST city \\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
 {\magenta name CDATA \#REQUIRED} \\
 \rnode{terracitytocountry}{\strut}{\red country CDATA \#REQUIRED} \\
 population CDATA \#IMPLIED \\
 longitude CDATA \#IMPLIED \\
 latitude CDATA \#IMPLIED\frq
\end{tabular}}
\smallskip

\flq!ELEMENT river
 (located*)\frq
\smallskip

(\begin{tabular}[t]{@{}l@{}}
 similar: lake, river, sea, \\
 desert, island, mountain)
\end{tabular}
\smallskip

\flq!ELEMENT located
  EMPTY\frq \\
\flq!ATTLIST located\\
\hspace*{0.5cm}
 \begin{tabular}[t]{@{}l@{}}
 \rnode{locatedtocountry}{\strut}{\red country\_code CDATA \#REQUIRED} \\
 \rnode{locatedtoprovince}{\strut}{\blue province\_id CDATA \#REQUIRED}\frq
 \end{tabular}
\end{minipage}
\bigskip

\hspace*{-6cm}
\begin{minipage}[t]{25cm}
\begin{itemize}
\item The CIA World Factbook XML database is derived from the data
  provided by the CIA at
  \url{http://www.odci.gov/cia/publications/pubs.html}.
\item The GlobalStatistics XML database is derived from the
  \emph{Global Statistics} Data at \url{http://www.stats.demon.nl}
  collected by Johan van der Heijden.
\item The TERRA XML database is derived from the TERRA database of the
  \emph{Institut f\"ur Programmstrukturen und Datenorganisation der
    Universit\"at Karlsruhe}.
\end{itemize}
\end{minipage}
\end{minipage}
\hfill
%
\end{minipage}}
\nodeconnections{%
\psset{arrowsize=0.3cm 2}
\ncline[doubleline=true,linecolor=green,linewidth=4pt]{gscont}{ciacont}
\ncline[linecolor=red,arrowsize=0.3cm 2]{->}{memtocountry}{ciacountry}
\ncline[linecolor=red]{->}{seattocountry}{ciacountry}
\ncline[doubleline=true,linecolor=red,linewidth=4pt]{ciacountry}{gscountry}
\ncline[doubleline=true,linecolor=red,linewidth=4pt]{gscountry}{auxcountry}
\ncline[doubleline=true,linecolor=red,linewidth=4pt]{auxcountry}{terracountry}
\ncarc[linecolor=red,arcangleA=80,arcangleB=40]
       {->}{bordertocountry}{ciacountry}
\ncarc[linecolor=green,arcangleA=110,arcangleB=50]
       {->}{ciacountrytocontinent}{ciacont}
\ncarc[linecolor=magenta,angleA=80,arcangleA=-40,arcangleB=-40]
       {->}{seattocity}{gscity}
\ncarc[linecolor=magenta,arcangleA=-40,arcangleB=-40]
       {->}{capitaltocity}{gscity}
\ncarc[linecolor=magenta,arcangleA=-140,arcangleB=-40]
       {->}{gsprovtocapital}{gscity}
\ncarc[linecolor=magenta,arcangleA=-110,arcangleB=-70,angleB=-30]
       {->}{gscapitaltocity}{gscity}
\ncarc[linecolor=magenta,arcangleA=-110,arcangleB=-65,angleB=-20]
       {->}{maincitiestocity}{gscity}
\ncarc[linecolor=blue,arcangleA=-150,arcangleB=-40]
       {->}{admdivstoprovince}{gsprovince}
\ncarc[linecolor=green,arcangleA=110,arcangleB=50,offsetB=-0.5cm]
       {->}{gscountrytocontinent}{gscont}
\ncarc[linecolor=red,arcangleA=-110,arcangleB=-60]
       {->}{gscitytocountry}{gscountry}
\ncarc[linecolor=blue,arcangleA=-120,arcangleB=-50]
       {->}{gscitytoprovince}{gsprovince}
\ncline[doubleline=true,linecolor=blue,linewidth=4pt]{gsprovince}{terraprovince}
\ncline[doubleline=true,linecolor=magenta,linewidth=4pt]{gscity}{terracity}
\ncarc[linecolor=green,arcangleA=25,arcangleB=0]
       {->}{terratocontinent}{gscont}
\ncarc[linecolor=red,arcangleA=-45,arcangleB=40]
       {->}{gscountryname}{auxcountryname1}
\ncarc[linecolor=red,arcangleA=45,arcangleB=-40]
       {->}{terracountryname}{auxcountryname2}
\ncline[linecolor=magenta,offsetB=0.5cm]{->}{terracountrytocapital}{terracity}
\ncline[linecolor=magenta]{->}{terraprovincetocapital}{terracity}
\ncline[linecolor=red]{->}{terracitytocountry}{terracountry}
\ncline[linecolor=blue]{->}{terracitytoprovince}{terraprovince}
\ncline[linecolor=red,offsetB=-0.8cm,nodesepB=0.5cm]{->}{terraprovincetocountry}{terracountry}
\ncline[linecolor=red]{->}{locatedtocountry}{terracountry}
\ncarc[linecolor=blue,arcangleA=80,arcangleB=40]
       {->}{locatedtoprovince}{terraprovince}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\hspace*{0.5cm}
\mypsframebox{\begin{minipage}[t]{.97\textwidth}
\blueheadline{Excerpts of the Sources}

\headline{Part I: CIA Organizations, CIA Countries and GlobalStatistics}

\begin{minipage}[t]{30cm}
\headline{CIA World Factbook}

\begin{minipage}[t]{14cm}
\headline{Organizations}
\bigskip

\colorednode{eu}{yellow}{lightyellow}{%
\flq o\begin{tabular}[t]{@{}l@{}}rganization \\
  abbrev=``EU'' \\
  name=``European Union'' \\
  established=``07 02 1992'' \\
  \rnode{euseat}{\magenta seatcity=``Brussels''} \\
  seatcountry=``Belgium''\frq \\
  \flq member\_names type='member'\frq Belgium\flq /\frq  \\
  \flq member\_names type='member'\frq
      \rnode{eutobelgium}{\red Belgium}\flq /\frq  \\
  \flq member\_names type='member'\frq 
      \rnode{eutogermany}{\red Germany}\flq /\frq \\
  \hspace*{1cm}: \\
\end{tabular}
\flq /organization\frq}
\vskip5cm

{\red\large Explanation:}
\begin{itemize}
\item double lines: to be fused
\item lines: to be linked
\item dashed lines: existing IDREFs
\end{itemize}

\end{minipage} % CIA WFB Orgs
\hfill
%
\begin{minipage}[t]{14.5cm}
\headline{Countries}
\bigskip

\colorednode{ciaeurope}{green}{lightgreen}{%
\flq continent id='europe' \\
\hspace*{0.5cm}
  name='Europe'/\frq}
\bigskip

\colorednode{ciagermany}{red}{lightred}{%
\flq co\begin{tabular}[t]{@{}l}untry id='cia-country-Germany' \\
  continent='\rnode{ciagermanytoeurope}{\green Europe}' \\
  name='Germany' \\
  total\_area='356910' \\
  population='83536115' \\
  capital='Berlin'\frq\\
  \flq ethnicgroups name='German'\flq 95.1\flq/\frq\\
  \flq ethnicgroups name='Italians'\flq 0.7\flq/\frq\\
  \hspace*{1cm}: \\
  \flq religions name='Roman Catholic'\flq 37\flq/\frq\\
  \flq religions name='Protestant'\flq 45\flq/\frq\\
  \flq languages name='German'\flq 100\flq/\frq\\
  \flq borders country='cia-country-Austria'\frq 784\flq/\frq\\
  \flq borders 
       country='\rnode{germanytobelgium}{\red cia-country-Belgium}'\frq 
       167\flq/\frq\\
  \hspace*{1cm}:
\end{tabular}\\
\flq /country\frq}
\bigskip

\colorednode{ciabelgium}{red}{lightred}{%
\flq co\begin{tabular}[t]{@{}l}untry id='cia-country-Belgium' \\ 
  continent='\rnode{ciabelgiumtoeurope}{\green Europe}' \\
  name='Belgium' \\
  total\_area='30510' \\
  population='10170241' \\
  capital='Brussels'\frq\\
  \flq ethnicgroups name='Fleming'\frq 55\flq /\frq \\
  \flq ethnicgroups name='Walloon'\frq 33\flq /\frq \\
  \flq borders country='cia-country-France'\frq 620\flq/\frq\\
  \flq borders 
       country='\rnode{belgiumtogermany}{\red cia-country-Germany}'\frq 
        167\flq/\frq\\
  \hspace*{1cm}: 
\end{tabular}\\
\flq /country\frq}
\end{minipage}% CIA Countries
\end{minipage}% CIA WFB
\hfill
%
\begin{minipage}[t]{35.5cm}
\headline{Global Statistics}

\emptynoheadline
\bigskip

\begin{minipage}[t]{10cm}
\colorednode{gseurope}{green}{lightgreen}{%
\flq continent id='europe' \\
\hspace*{0.5cm}
  name='Europe'/\frq}
\end{minipage}
\bigskip

\begin{tabular}[t]{l@{\qquad}l@{\qquad}l}
\begin{minipage}[t]{11cm}
\colorednode{gsgermany}{red}{lightred}{%
\flq co\begin{tabular}[t]{@{}l@{}}untry id='gs-country-ger'\\
  {\magenta capital='cty-gs-country-ger-1'}\rnode{germanytocapital}{\strut} \\
  population='83536115' \\
  continent='\rnode{gsgermanytoeurope}{\green europe}' \\
  main\_cities='\begin{tabular}[t]{@{}l@{}}
    {\magenta cty-gs-country-ger-1}\rnode{germanytocity1}{\strut}\\ 
    \hspace*{1cm}: \\
    {\magenta cty-gs-country-ger-50}\rnode{germanytoprov50}{\strut}\\
    \hspace*{1cm}: \\
    {\magenta cty-gs-country-ger-85}'
  \end{tabular} \\
  adm\_divs='\begin{tabular}[t]{@{}l@{}}
    {\blue prov-gs-country-ger-1}\rnode{germanytoprov1}{\strut}\\
    \hspace*{1cm}: \\
    {\blue prov-gs-country-ger-10}\rnode{germanytoprov10}{\strut}\\
    \hspace*{1cm}: \\
    {\blue prov-gs-country-ger-16}'
  \end{tabular} \\
  \flq name\frq Germany\flq /name\frq
\end{tabular}\\
\flq /country\frq}
\end{minipage}
&
\begin{minipage}[t]{11.5cm}
\colorednode{cityberlin}{magenta}{lightmagenta}{%
\flq city  \begin{tabular}[t]{@{}l@{}}
  id='city-gs-country-ger-1' \\
  \rnode{cityberlintogermany}{\strut}{\red country='gs-country-ger'} \\
  {\blue province='prov-gs-country-ger-1'}\frq\rnode{berlintoprov}{\strut} \\
  \flq population year='95'\frq 3472009\flq/\frq \\
  \flq name\frq Berlin\flq /name\frq
\end{tabular} \\
\flq /city\frq}
\medskip

\hspace*{1cm}\vdots
\medskip

\colorednode{stuttgart}{magenta}{lightmagenta}{%
\flq city \begin{tabular}[t]{@{}l@{}}
  id='city-gs-country-ger-50' \\
  \rnode{stuttgarttogermany}{\strut}{\red country='gs-country-ger'} \\
  {\blue province='prov-gs-country-ger-10'}\frq\rnode{stuttgarttoprov}{\strut} \\
  \flq population year='95'\frq 588482\flq/\frq \\
  \flq name\frq Stuttgart\flq /name\frq
  \end{tabular} \\
\flq /city\frq}
\medskip

\hspace*{1cm}\vdots

\end{minipage}
&
\begin{minipage}[t]{10.5cm}
\colorednode{landberlin}{blue}{lightblue}{%
\flq prov\begin{tabular}[t]{@{}l@{}}ince \\
  id='prov-gs-country-ger-1' \\
  name='Berlin' \\
  \rnode{landberlintogermany}{\strut}{\red country='gs-country-ger'} \\
  \rnode{berlintocapital}{\strut}{\magenta capital='cty-gs-country-ger-50'} \\
  population='3472009' \\
  area='889'/\frq
\end{tabular}}
\medskip

\hspace*{1cm}\vdots
\medskip

\colorednode{bawue}{blue}{lightblue}{%
\flq prov\begin{tabular}[t]{@{}l@{}}ince \\
  id='prov-gs-country-ger-10' \\
  name='Baden Wurttemberg' \\
  \rnode{bawuetogermany}{\strut}{\red country='gs-country-ger'} \\
  \rnode{bawuetocapital}{\strut}{\magenta capital='cty-gs-country-ger-2'} \\
  population='10272069' \\
  area='35742'/\frq 
\end{tabular}}
\end{minipage}
\medskip\\
%
\begin{minipage}[t]{11cm}
\colorednode{gsbelgium}{red}{lightred}{%
\flq co\begin{tabular}[t]{@{}l@{}}untry id='gs-country-bel'\\
  {\magenta capital='cty-gs-country-bel-1'}\rnode{belgiumtocapital}{\strut} \\
  population='10170241' \\
  continent='\rnode{gsbelgiumtoeurope}{\green europe}' \\
  main\_cities='\begin{tabular}[t]{@{}l@{}}
    {\magenta cty-gs-country-bel-1}\rnode{belgiumtocity1}{\strut}\\ 
    {\magenta cty-gs-country-bel-2}\rnode{belgiumtocity2}{\strut}\\
    \hspace*{1cm}: \\
    {\magenta cty-gs-country-bel-11}'
  \end{tabular} \\
  adm\_divs='\begin{tabular}[t]{@{}l@{}}
    {\blue prov-gs-country-bel-1}\rnode{belgiumtoprov1}{\strut}\\
    {\blue prov-gs-country-bel-2}\rnode{belgiumtoprov2}{\strut}\\
    \hspace*{1cm}: \\
    {\blue cty-gs-country-bel-9'}
  \end{tabular} \\
  \flq name\frq Belgium\flq /name\frq
\end{tabular}
\flq /country\frq} 
\end{minipage}
&
\begin{minipage}[t]{11.5cm}
\colorednode{brussels}{magenta}{lightmagenta}{%
\flq city \begin{tabular}[t]{@{}l@{}}
  id='cty-gs-country-bel-1' \\
  \rnode{brusselstobelgium}{\strut}{\red country='gs-country-bel'} \\
  {\blue province='prov-gs-country-bel-1'}\frq\rnode{brusselstoprov}{\strut} \\
  \flq population year='95'\frq 951580\flq/\frq \\
  \flq name\frq Brussels\flq /name\frq
  \end{tabular} \\
\flq /city\frq}
\medskip

\colorednode{cityantwerp}{magenta}{lightmagenta}{%
\flq city \begin{tabular}[t]{@{}l@{}}
  id='cty-gs-country-bel-2' \\
  \rnode{cityantwerptobelgium}{\strut}{\red country='gs-country-bel'} \\
  {\blue province='prov-gs-country-bel-2'}\frq\rnode{cityantwerptoprov}{\strut} \\
  \flq population year='95'\frq 459072\flq/\frq \\
  \flq name\frq Antwerp\flq /name\frq
\end{tabular}\\
\flq /city\frq} 
\medskip

\hspace*{1cm}\vdots

\end{minipage}
&
\begin{minipage}[t]{10.5cm}
\colorednode{brabant}{blue}{lightblue}{%
\flq prov\begin{tabular}[t]{@{}l@{}}ince \\
  id='prov-gs-country-bel-1' \\
  \rnode{brabanttobelgium}{\strut}{\red name='Brabant'} \\
  country='gs-country-bel' \\
  \rnode{brabanttocapital}{\strut}{\magenta capital='cty-gs-country-bel-1'} \\
  population='2253794' \\
  area='3358'/\frq
  \end{tabular}}
\medskip

\colorednode{provantwerp}{blue}{lightblue}{%
\flq prov\begin{tabular}[t]{@{}l@{}}ince \\
  id='prov-gs-country-bel-2' \\
  name='Antwerp' \\
  \rnode{provantwerptobelgium}{\strut}{\red country='gs-country-bel'} \\
  \rnode{provantwerptocapital}{\strut}{\magenta capital='cty-gs-country-bel-2'} \\
  population='1610695' \\
  area='2867'/\frq
  \end{tabular}}
\hspace*{1cm}\vdots
\medskip

\end{minipage}
\end{tabular}
\end{minipage}% Global Statistics
\nodeconnections{%
\psset{arrowsize=0.3cm 2}
\ncline[doubleline=true,linecolor=green,linewidth=4pt]{gseurope}{ciaeurope}
\ncline[doubleline=true,linecolor=red,linewidth=4pt]{ciabelgium}{gsbelgium}
\ncline[doubleline=true,linecolor=red,linewidth=4pt]{ciagermany}{gsgermany}
\ncline[linecolor=magenta]{->}{euseat}{ciabrussels}
\ncline[linecolor=red]{->}{eutobelgium}{ciabelgium}
\ncline[linecolor=red]{->}{eutogermany}{ciagermany}
\ncline[linecolor=green]{->}{ciagermanytoeurope}{ciaeurope}
\ncline[linecolor=green]{->}{ciabelgiumtoeurope}{ciaeurope}
\psset{dash=12pt 6pt}
\psset{linewidth=1.2pt}
\psset{linestyle=dashed}
\ncline[linecolor=green]{->}{gsgermanytoeurope}{gseurope}
\ncline[linecolor=green]{->}{gsbelgiumtoeurope}{gseurope}
\ncline[linecolor=red,offset=0.5cm]{->}{germanytobelgium}{ciabelgium}
\ncline[linecolor=red]{->}{belgiumtogermany}{ciagermany}
\ncline[linecolor=magenta]{->}{belgiumtocity1}{brussels}
\ncline[linecolor=magenta]{->}{belgiumtocapital}{brussels}
\ncline[linecolor=magenta]{->}{belgiumtocity2}{cityantwerp}
\ncline[linecolor=magenta]{->}{brabanttocapital}{brussels}
\ncline[linecolor=magenta]{->}{provantwerptocapital}{cityantwerp}
\ncline[linecolor=magenta]{->}{germanytocity1}{cityberlin}
\ncline[linecolor=magenta]{->}{germanytocapital}{cityberlin}
\ncline[linecolor=magenta]{->}{germanytocity50}{stuttgart}
\ncline[linecolor=magenta]{->}{berlintocapital}{cityberlin}
\ncline[linecolor=magenta]{->}{bawuetocapital}{stuttgart}
\ncline[linecolor=blue]{->}{belgiumtoprov1}{brabant}
\ncline[linecolor=blue]{->}{belgiumtoprov2}{provantwerp}
\ncline[linecolor=blue]{->}{germanytoprov1}{landberlin}
\ncline[linecolor=blue]{->}{germanytoprov10}{bawue}
\ncline[linecolor=red]{->}{stuttgarttogermany}{gsgermany}
\ncline[linecolor=red]{->}{cityberlintogermany}{gsgermany}
\ncline[linecolor=red]{->}{bawuetogermany}{gsgermany}
\ncline[linecolor=red]{->}{landberlintogermany}{gsgermany}
\ncline[linecolor=red]{->}{brusselstobelgium}{gsbelgium}
\ncline[linecolor=red]{->}{cityantwerptobelgium}{gsbelgium}
\ncline[linecolor=red]{->}{brabanttobelgium}{gsbelgium}
\ncline[linecolor=red]{->}{provantwerptobelgium}{gsbelgium}
\ncline[linecolor=blue]{->}{brusselstoprov}{brabant}
\ncline[linecolor=blue]{->}{cityantwerptoprov}{provantwerp}
\ncline[linecolor=blue]{->}{berlintoprov}{landberlin}
\ncline[linecolor=blue]{->}{stuttgarttoprov}{bawue}
}%

\end{minipage}} % excerpts of Sources
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\hspace*{0.5cm}
\mypsframebox{\begin{minipage}[t]{.97\textwidth}
\blueheadline{First Integration Step}

\mypsframebox{\begin{minipage}[t]{15cm}
\blueheadline{The Program}

%\scriptsize

\headline{Synonyms}

gs:population = population. \\
gs:country = country.  \\
gs:province = province.  \\
gs:capital = capital.  \\
gs:area = area. \\
gs:year = year. \\
gs:name = name. \\
%
cia:name = name. \\
cia:borders = border. \\
cia:ethnicgroups = ethnicgroups. \\
cia:religions = religions. \\
cia:languages = languages. \\
cia.population = population. \\
cia:total\_area = total\_area. \\
%
orgs:abbrev = abbrev. \\
orgs:name = name. \\
orgs:established = established. \\
%
\headline{Continents from GS}

result[continent \fd C] :- gs/gs:continent\fd C.

\headline{Organizations from CIA}

result[organization \fd O] :- orgs/orgs:organization\fd O.

\headline{Fusing CIA and GS Countries}

result[country\fd C1], C1 = C2 :- \\
\hspace*{1cm}
   cia/cia:country\fd C1[@cia:name\fd N], \\
\hspace*{1cm}
   gs/gs:country\fd C2[gs:name/gs:text()\fd N]. \\
C[@name\fd N] :- result/country\fd C/@cia:name\fd N.

\headline{Organization seats}

O[@seat\fd Cty] :- \\
\hspace*{0.5cm}
   result/organization\fd O[\begin{tabular}[t]{@{}l@{}}
   @orgs:seatcity\fd N and \\
   @orgs:seatcountry\fd CN],
 \end{tabular}\\
\hspace*{0.5cm}
   result/city\fd Cty[\begin{tabular}[t]{@{}l@{}}
   @name\fd N and \\
   @country/@name\fd CN]. 
 \end{tabular}

\headline{Organization Memberships}

O/members[@type\fd T and @country\fd C] :- \\
\hspace*{0.5cm}
   result/organization\fd O\\
\hspace*{0.7cm}
   /orgs:member\_names[@orgs:type\fd T] \\
\hspace*{0.9cm}
     /orgs:text()\fd CN, \\
\hspace*{0.5cm}
   result/country\fd C[@name\fd CN].
\end{minipage}
} % end program box
\hfill
\mypsframebox{\begin{minipage}[t]{52cm}
\blueheadline{Resulting XTreeGraph}

\begin{minipage}[t]{4cm} %% Left: CIA
~\\
\vskip5cm
\ovalnode{orgs}{\begin{tabular}{c}
   ~~CIA~~~~~~ \\
    \hidewidth Organizations \hidewidth.
  \end{tabular}}
\vskip 12cm
\ovalnode{cia}{\begin{tabular}{c}
    CIA \\
    Countries
  \end{tabular}}
\end{minipage} %% Left: CIA
\hfill
%
\begin{minipage}[t]{38cm} %% Middle
\hspace*{10cm}\hfill 
  \ovalnode[doubleline=true,fillstyle=solid,fillcolor=red]
       {result}{~~result~~} \hfill
\begin{minipage}[t]{12cm}
{\red\large Explanation:}
\begin{itemize}
\item black lines: subelement relationships \\
   (order omitted)
\item double black lines: result tree
\item dashed lines: attribute references
\end{itemize}
\end{minipage}\hspace*{-7cm}
\vskip -4cm

\begin{minipage}[t]{15cm} % Continent and Organization
\begin{minipage}[t]{11cm}
\colorednode{Xeu}{yellow}{lightyellow}{%
  abbrev=``EU'' \\
  name=``European Union'' \\
  established=``07 02 1992'' \\
  orgs:seatcity=``Brussels'' \\
  orgs:seatcountry=``Belgium'' \\
  seat=\rnode{Xeuseat}{$\magenta\bullet$} \\
  \flq orgs:member\_names \\
  \hspace*{0.5cm}
     orgs:type='member'\frq Belgium\flq /\frq \\
  \flq orgs:member\_names \\
  \hspace*{0.5cm}
     orgs:type='member'\frq Germany\flq /\frq \\
  \flq members type='member' country=\rnode{Xeutobelgium}{$\red\bullet$}/\frq \\
  \flq members type='member' country=\rnode{Xeutogermany}{$\red\bullet$}/\frq
  }
\end{minipage}% EU
\\
\\
\\
\\
\\
\\
~\hfill\begin{minipage}[t]{8cm}
\colorednode{Xeurope}{green}{lightgreen}{%
  name='Europe'}
\end{minipage}
\hfill~
\end{minipage}% continent and organization
\hskip-5cm
\begin{minipage}[t]{15cm} % Germany Tree
\vskip1cm

~\hfill
\begin{minipage}[c]{8cm}% Germany
\vspace*{3cm}
\colorednode{Xgermany}{red}{lightred}{%
  continent=\rnode{Xgermanytoeurope}{$\green\bullet$} \\
  name='Germany' \\
  total\_area='356910' \\
  population='83536115' \\
  capital=\rnode{Xgermanytocapital}{$\magenta\bullet$} \\
  \hspace*{1cm}:\\
  \flq borders 
       country=\rnode{Xgermanytobelgium}{$\red\bullet$}\frq 167\flq /\frq\\
  \hspace*{1cm}: \\
  main\_cities=\{\rnode{Xgermanytocity1}{$\magenta\bullet$} \ldots 
    \rnode{Xgermanytocity50}{$\magenta\bullet$} \ldots\}\\
  adm\_divs=\{\rnode{Xgermanytoprov1}{$\blue\bullet$} \ldots 
    \rnode{Xgermanytoprov10}{$\blue\bullet$} \ldots\}
}
\end{minipage}% Germany
\hfill~
\\
\\
\\
\\
\begin{tabular}{cc}
\begin{minipage}[c]{7cm} % Land Berlin
\colorednode{Xlandberlin}{blue}{lightblue}{%
  name='Berlin' \\
  country=\rnode{Xlandberlintogermany}{$\red\bullet$} \\
  capital=\rnode{Xberlintocapital}{$\magenta\bullet$}\\
  population='3472009' \\
  area='889'}
\end{minipage} % Land Berlin
&
\begin{minipage}[c]{7cm} % Land BW
\colorednode{Xbawue}{blue}{lightblue}{%
  name='Baden Wurtt.' \\
  country=\rnode{Xbawuetogermany}{$\red\bullet$}\\
  capital=\rnode{Xbawuetocapital}{$\magenta\bullet$}\\
  population='10272069' \\
  area='35742'}
\end{minipage} % Land BW
\\
\\
\\
\\
\begin{minipage}[c]{7cm} % Stadt Berlin
\colorednode{Xcityberlin}{magenta}{lightmagenta}{%
  \flq name\frq Berlin\flq /name\frq \\
  country=\rnode{Xcityberlintogermany}{$\red\bullet$}\\
  province=\rnode{Xberlintoprov}{$\blue\bullet$} \\
  \flq population year='95'\frq \\
    \hspace*{1cm} 
      3472009\flq/\frq}
\end{minipage}% Stadt Berlin
&
\begin{minipage}[c]{7cm} % Stuttgart
\colorednode{Xstuttgart}{magenta}{lightmagenta}{%
  \flq name\frq Stuttgart\flq /name\frq \\
  country=\rnode{Xstuttgarttogermany}{$\red\bullet$}\\
  province=\rnode{Xstuttgarttoprov}{$\blue\bullet$} \\
  \flq population year='95'\frq \\
    \hspace*{1cm} 
       588482\flq/\frq}
\end{minipage} % Stuttgart
\end{tabular}
\end{minipage} % Germany Tree
~~
\begin{minipage}[t]{15cm} % Belgium Tree
\vskip2cm

~\hfill
\begin{minipage}[c]{8cm}% Belgium
\vspace*{3cm}
\colorednode{Xbelgium}{red}{lightred}{%
  continent=\rnode{Xbelgiumtoeurope}{$\green\bullet$} \\
  name='Belgium' \\
  total\_area='30510' \\
  population='10170241' \\
  capital=\rnode{Xbelgiumtocapital}{$\magenta\bullet$} \\
  \hspace*{1cm}:\\
  \flq borders 
       country=\rnode{Xbelgiumtogermany}{$\red\bullet$}\frq 167\flq /\frq\\
  \hspace*{1cm}: \\
  main\_cities=\{\rnode{Xbelgiumtocity1}{$\magenta\bullet$} \ldots 
    \rnode{Xbelgiumtocity2}{$\magenta\bullet$} \ldots\}\\
  adm\_divs=\{\rnode{Xbelgiumtoprov1}{$\blue\bullet$} \ldots 
    \rnode{Xbelgiumtoprov2}{$\blue\bullet$} \ldots\}
}
\end{minipage}% Belgium
\hfill~
\\
\\
\\
\\
\begin{tabular}{cc}
\begin{minipage}[c]{7cm} % Brabant
\colorednode{Xbrabant}{blue}{lightblue}{%
  name='Brabant' \\
  country=\rnode{Xbrabanttobelgium}{$\red\bullet$} \\
  capital=\rnode{Xbrabanttocapital}{$\magenta\bullet$}\\
  population='2253794' \\
  area='3358'}
\end{minipage} % Prov Antwerp
&
\begin{minipage}[c]{7cm} % Prov. Antwerp
\colorednode{Xprovantwerp}{blue}{lightblue}{%
  name='Antwerp' \\
  country=\rnode{Xprovantwerptobelgium}{$\red\bullet$} \\
  capital=\rnode{Xprovantwerptocapital}{$\magenta\bullet$}\\
  population='1610695' \\
  area='1867'}
\end{minipage} % Prov Antwerp
\\
\\
\\
\\
\begin{minipage}[c]{7cm} % Brussels
\colorednode{Xbrussels}{magenta}{lightmagenta}{%
  \flq name\frq Brussels\flq /name\frq \\
  country=\rnode{Xbrusselstobelgium}{$\red\bullet$}\\
  province=\rnode{Xbrusselstoprov}{$\blue\bullet$} \\
  \flq population year='95'\frq \\
    \hspace*{1cm} 
      951580\flq/\frq}
\end{minipage}% Brussels
&
\begin{minipage}[c]{7cm} % Antwerp
\colorednode{Xcityantwerp}{magenta}{lightmagenta}{%
  \flq name\frq Antwerp\flq /name\frq \\
  country=\rnode{Xcityantwerptobelgium}{$\red\bullet$}\\
  province=\rnode{Xcityantwerptoprov}{$\blue\bullet$} \\
  \flq population year='95'\frq \\
    \hspace*{1cm} 
       459072\flq/\frq}
\end{minipage} % Antwerp
\end{tabular}
\end{minipage} % Belgium Tree

\end{minipage} % Middle
\hfill
%
\begin{minipage}[t]{4cm} %% Right: GS
\vskip10cm
\ovalnode{gs}{%
  \begin{tabular}{c}
   Global~ \\
   Statistics \hidewidth
  \end{tabular}}
\end{minipage} %% Right: GS
\nodeconnections{%
\psset{arrowsize=0.3cm 2}
%%%%%%%%%%%%%%%%%%%%%%%%% Subelements
\ncline{->}{orgs}{Xeu}\naput[nrot=:U]{orgs:org.}
\ncline{->}{cia}{Xeurope}\naput[nrot=:U,npos=0.3]{cia:continent}
\ncline{->}{cia}{Xgermany}\nbput[nrot=:U,npos=0.4]{cia:country}
\ncline{->}{cia}{Xbelgium}\nbput[nrot=:U,npos=0.2]{cia:country}
\ncline{->}{gs}{Xeurope}\naput[nrot=:D,npos=0.9]{gs:continent}
\ncline{->}{gs}{Xgermany}\nbput[nrot=:D,npos=0.75]{gs:country}
\ncline{->}{gs}{Xbelgium}\nbput[nrot=:D,npos=0.6]{gs:country}
\ncline{->}{gs}{Xlandberlin}\nbput[nrot=:D,npos=0.7]{gs:province}
\ncline{->}{gs}{Xbawue}\nbput[nrot=:D,npos=0.85]{gs:province}
\ncline{->}{gs}{Xcityberlin}\naput[nrot=:D,npos=0.75]{gs:city}
\ncline{->}{gs}{Xstuttgart}\naput[nrot=:D,npos=0.9]{gs:city}
\ncline{->}{gs}{Xbrabant}\nbput[nrot=:D,npos=0.9]{gs:province}
\ncline{->}{gs}{Xprovantwerp}\naput[nrot=:D,npos=0.6]{gs:province}
\ncline{->}{gs}{Xbrussels}\naput[nrot=:D,npos=0.88]{gs:city}
\ncline{->}{gs}{Xcityantwerp}\naput[nrot=:D,npos=0.88]{gs:city}
\psset{doubleline=true}
\ncline{->}{result}{Xeurope}\nbput[npos=0.3]{continent}
\ncline{->}{result}{Xeu}\nbput[npos=0.5]{organization}
\ncline{->}{result}{Xgermany}\naput[npos=0.5]{country}
\ncline{->}{result}{Xbelgium}\naput[npos=0.5]{country}
\ncline{->}{Xgermany}{Xlandberlin}\nbput[npos=0.8]{province}
\ncline{->}{Xgermany}{Xbawue}\naput[npos=0.5]{province}
\ncline[offset=-1cm]{->}{Xlandberlin}{Xcityberlin}\nbput[npos=0.5]{city}
\ncline{->}{Xbawue}{Xstuttgart}\naput[npos=0.5]{city}
\ncline{->}{Xbelgium}{Xbrabant}\nbput[npos=0.65]{province}
\ncline{->}{Xbelgium}{Xprovantwerp}\naput[npos=0.65]{province}
\ncline[offset=-1cm]{->}{Xbrabant}{Xbrussels}\nbput[npos=0.5]{city}
\ncline{->}{Xprovantwerp}{Xcityantwerp}\naput[npos=0.5]{city}
\psset{doubleline=false}
%%%%%%%%%%%%%%%%%%%%%%%%% References
\psset{linestyle=dashed}
\psset{linewidth=1.2pt}
\psset{dash=12pt 6pt}
\ncline[linecolor=magenta]{->}{Xeuseat}{Xbrussels}
\ncline[linecolor=red,offsetB=1cm]{->}{Xeutobelgium}{Xbelgium}
\ncline[linecolor=red]{->}{Xeutogermany}{Xgermany}
\ncline[linecolor=green]{->}{Xgermanytoeurope}{Xeurope}
\ncline[linecolor=green]{->}{Xbelgiumtoeurope}{Xeurope}
\ncline[linecolor=red]{->}{Xgermanytobelgium}{Xbelgium}
\ncline[linecolor=red]{->}{Xbelgiumtogermany}{Xgermany}
\ncline[linecolor=magenta]{->}{Xbelgiumtocity1}{Xbrussels}
\ncline[linecolor=magenta]{->}{Xbelgiumtocapital}{Xbrussels}
\ncline[linecolor=magenta]{->}{Xbelgiumtocity2}{Xcityantwerp}
\ncline[linecolor=magenta]{->}{Xbrabanttocapital}{Xbrussels}
\ncline[linecolor=magenta]{->}{Xprovantwerptocapital}{Xcityantwerp}
\ncline[linecolor=magenta]{->}{Xgermanytocity1}{Xcityberlin}
\ncline[linecolor=magenta]{->}{Xgermanytocapital}{Xcityberlin}
\ncline[linecolor=magenta]{->}{Xgermanytocity50}{Xstuttgart}
\ncline[linecolor=magenta]{->}{Xberlintocapital}{Xcityberlin}
\ncline[linecolor=magenta]{->}{Xbawuetocapital}{Xstuttgart}
\ncline[linecolor=blue]{->}{Xbelgiumtoprov1}{Xbrabant}
\ncline[linecolor=blue]{->}{Xbelgiumtoprov2}{Xprovantwerp}
\ncline[linecolor=blue]{->}{Xgermanytoprov1}{Xlandberlin}
\ncline[linecolor=blue]{->}{Xgermanytoprov10}{Xbawue}
\ncline[linecolor=red]{->}{Xstuttgarttogermany}{Xgermany}
\ncline[linecolor=red]{->}{Xcityberlintogermany}{Xgermany}
\ncline[linecolor=red]{->}{Xbawuetogermany}{Xgermany}
\ncline[linecolor=red]{->}{Xlandberlintogermany}{Xgermany}
\ncline[linecolor=red]{->}{Xbrusselstobelgium}{Xbelgium}
\ncline[linecolor=red]{->}{Xcityantwerptobelgium}{Xbelgium}
\ncline[linecolor=red]{->}{Xbrabanttobelgium}{Xbelgium}
\ncline[linecolor=red]{->}{Xprovantwerptobelgium}{Xbelgium}
\ncline[linecolor=blue]{->}{Xbrusselstoprov}{Xbrabant}
\ncline[linecolor=blue]{->}{Xcityantwerptoprov}{Xprovantwerp}
\ncline[linecolor=blue]{->}{Xberlintoprov}{Xlandberlin}
\ncline[linecolor=blue]{->}{Xstuttgarttoprov}{Xbawue}
}%

\vskip1cm
%%%%%% Text below XTreeGraph

\hspace*{5cm}
\begin{minipage}[t]{44cm}
 \blueheadline{Continuing the Integration}
  Subsequent steps integrate the auxiliary country information, adding
  the car code and german names of the countries. Both are then used
  for integrating the TERRA data source which uses german names. The
  full program and the resulting XML file can be found at \ {\red
    \url{http://www.informatik.uni-freiburg.de/~may/lopix}}.
\end{minipage}
\end{minipage} % end XTreeGraph 
} % end psframebox of XTreeGraph

\end{minipage} % end integration step
} % end psframebox

\end{minipage}% poster
}
\end{document}

