802371268b96f5658cf89f24a88bd8be60132f7c
[u/philim/db2osl_thesis.git] / introduction.tex
1 \chapter{Introduction}
2 \label{intro}
3
4 \section{Motivation}
5 \label{motivation}
6 As estimated in 2007 \cite{deepweb}, publicly available databases contained
7 up to 500 times more data than the static web and roughly 70 \% of all
8 websites were backed by relational databases back then.
9 As hardware has become cheaper yet more powerful, open source tools have
10 become more and more widespread and the web has gotten more and more dynamic
11 and interactive, it's likely that these numbers have even increased since then.
12 This makes the publication of available data in a structured, machine-processable
13 form and its retrieval with eligible software an interesting topic.
14 The most important formalism to represent structured data without the need of
15 a fixed (database) schema is ontologies, and thus this approach is known
16 under the term ``Ontology based data access'' (``OBDA'').
17 The vision of a machine-processable web emerged as early as 1989 \cite{web}
18 and was entitled with the term ``semantic web''
19 by Tim Berners-Lee in 1999 \cite{weavingweb}.
20 Definitely, the automatic translation of relational databases to \name{RDF}
21 \cite{rdf} or similar representations of structured information is
22 an integral part of the success of the semantic web \cite{deepweb}.
23 This automatic translation process is commonly called ``bootstrapping''.
24
25 Today, the pure bootstrapping process is a relatively well understood topic,
26 ranging from the rather simple direct mapping approach \cite{dirm} to TODO.
27 On the other hand, the handling of the complexity introduced by these approaches
28 and the use of sophisticated tools to perform various related tasks
29 meanwhile has become a significant challenge in its own right \cite{eng}.
30 Besides the parametrization of the tools in use, this includes the management of
31 the several kinds of artifacts accruing during the process, possibly needed in
32 different versions and formats for the use of different tools and output formats,
33 while also taking changing input data into account \cite{eng}.
34 Skj√¶veland and others therefore suggested an approach using a
35 declarative description of the data to be mapped, concentrating in one place
36 all the information needed to coordinate the bootstrapping process
37 and to drive the entire tool chain \cite{eng}.
38
39 \section{Approach}
40 \label{approach}
41 This thesis describes the development of a specification language to serialize
42 the declarative specification of the bootstrapping process
43 (see section \fullref{motivation}) and of a
44 software to in turn bootstrap it from a relational database schema.
45 After the tasks they accomplish,
46 the specification language was called ``OBDA Specification Language'' (``OSL'')
47 and the software bootstrapping the specification was called ``db2osl''.
48
49 Using a declarative specification makes the entire bootstrapping process a
50 two-step-procedure, illustrated in figure \ref{intro_fig_bootstrapping}:
51 First, the OBDA specification is derived from the
52 database schema using \myprog{}.
53 It specifies the actual bootstrapping process in a very general way,
54 so it only has to be recreated when the database schema changes.
55 The second step is to use the OBDA specification to coordinate and drive the
56 actual bootstrapping process.
57 The development of a software that uses the OBDA specification
58 to perform this second step currently is subject to ongoing work.
59 It will be able to be parameterized accordingly to support different output
60 formats, tools, tool versions and application ranges.
61
62 \begin{figure}[H]\begin{center}
63                 \includegraphics[scale=0.9]{Images/bootstrapping_illustration.pdf}
64                 \caption[Illustration of the overall
65                         bootstrapping process]{Illustration of the overall
66                         bootstrapping process using a declarative OBDA specification}
67                 \label{intro_fig_bootstrapping}
68         \end{center}\end{figure}
69
70 \section{Requirements and goals}
71 The final system shall be able to cleanly fit into existing bootstrapping systems
72 while being easy to use, taking the burden of dealing with \osl{} specifications
73 manually from its users instead of adding even more complexity to the process.
74 To achieve these goals, use of existing tools, languages and conventions was
75 made wherever possible.
76 To fit into the environment used in the OPTIQUE project\cite{optique2} it is ultimately
77 part of, \name{Java} was used for the bootstrapping software.
78 Care was taken to design it to be modular and flexible, making it
79 usable not only as a whole but also as a collection of independent components,
80 possibly serving as the basis for a program library in the future.
81 To achieve this aim and to make the software more easily
82 understandable and extensible, it was documented carefully and thoroughly.
83
84 As the software will be maintained by diverse people after its development and will
85 likely be subject to changes, general code quality was also an issue to consider.
86 Following good object-oriented software development practice \cite{str3},
87 real world artifacts like database schemata, database tables, columns, keys,
88 and OBDA specifications were modeled as software objects, provided with a
89 carefully chosen set of operations to manipulate them and make them collaborate.
90 This approach and other actions aiming at yielding clean code are described more
91 thoroughly in section \fullref{code}, while
92 the resulting structure of the software is discussed in section \fullref{arch}.