Major change
[u/philim/db2osl_thesis.git] / bootstrapping_dirm.tex
1 \section{Ontology bootstrapping using direct mapping}
2 \label{dirm}
3 TODO: more, individuals <- data
4 TODO: no alternative approach
5
6 As its name suggests, the direct mapping approach is a relatively simple
7 and straight forward approach.
8 Direct mapping is currently a \name{W3C} recommendation, which defines the
9 production of an \name{RDF} graph TODO -- which is called the
10 \emph{direct graph} -- from a relational schema \cite{dirm}.
11 As a matter of fact, the main definition of the direct graph, excluding
12 definitions of rather trivial subcomponents, fits on one computer screen.
13
14 The direct graph contains all data held in the source database but it
15 does not contain additional schema information like uniqueness of or
16 non-null constraints on columns \cite{dirm}.
17
18 \subsection{Overview on the direct graph}
19 \label{dirm_overview}
20 The constitution of the direct graph is illustrated in
21 Figure~\ref{dirm_fig_direct_graph}.
22 Its basic components are, for each row, the \emph{row type triple},
23 its \emph{literal triple}s and its \emph{reference triple}s.
24 Here, the row type triple encodes which table the respective row
25 belongs to, the literal triples encode the data in non-foreign-key
26 columns and the reference triples encode the data in foreign key
27 columns.
28 These triples are then by degrees united to the direct graph:
29 the row triples of each row form the row graph, the row graphs of
30 each table form the table graph and all table graphs united
31 constitute the final direct graph.
32
33 \begin{figure}[H]\begin{center}
34                 \includegraphics[scale=0.86]{Images/direct_graph.pdf}
35                 \caption[Constitution of the \emph{direct graph}]{
36                         Constitution of the \emph{direct graph}.
37                         ``$\rightarrow$'' means ``is part of''.}
38                 \label{dirm_fig_direct_graph}
39 \end{center}\end{figure}
40
41 Carefully assigning IRIs to the \name{RDF} entities is an essential
42 part of the approach, since otherwise, name clashes can occur.
43 Indeed, there seems to be a corner case which was not considered.
44 For details on IRI generation in direct mapping, see
45 Section~\ref{dirm_iris}.
46
47 \subsection{Data representation in direct mapping}
48 Since the result of a direct mapping is an \name{RDF} graph, the
49 means to represent data are limited to valid \name{RDF} vocabulary.
50 This is no problem for IRIs and expressions that only involve IRIs
51 (row type triples and reference triples).
52
53 To encode the non-foreign-key data content of the source database,
54 thus literal triples, the \name{R2RML} mapping language is used,
55 a language providing a mapping from the relational data model to
56 the \name{RDF} data model \cite{r2rml}.
57 \name{R2RML} expressions thereby are by themselves \name{RDF} statements.
58 The data value contained in a direct mapping literal triple is
59 defined to be the \emph{R2RML natural RDF literal} representation of
60 the value \cite{dirm}, which, as the name suggests, is a single
61 \name{RDF} literal \cite{r2rml}.
62
63 \subsection{IRI generation in direct mapping}
64 \label{dirm_iris}
65 As all \name{RDF} triples generated by the direct mapping are simply
66 united to constitute the final \emph{direct graph}
67 (see Section~\fullref{dirm_overview} for details),
68 a senseful IRI assigning is vital to the functioning of the approach.
69 By design, IRIs for different kinds of entities have a different
70 structure, which prevents name clashes on the one hand, but on the other
71 hand induces that, in case of a clash, all entities with the conflicting
72 IRI are of the same kind, which means a high risk of producing ambiguous
73 information and thus losing data.
74
75 The relatively simple way IRIs are assigned in direct mapping is
76 described in the following \cite{dirm}:
77 \begin{itemize}
78         \item Table IRIs correspond to the table name.
79         \item Literal property IRIs consist of the table name and the
80         column name, separated by a hash character (`\#').
81         \item Reference property IRIs consist of the child table name, the
82         string ``\#ref-'' and the child table column names of the
83         respective foreign key, separated by a semicolon (`;').
84         \item All contained names are included in their percent-encoded
85         form TODO.
86 \end{itemize}
87
88 The encoding of reference property IRIs can lead to name clashes in
89 cases multiple foreign keys exist which contain exactly the
90 same columns -- which is allowed for example in \name{SQL} TODO.
91 To remove this flaw, the parent table name and the parent table column
92 names of the respective foreign key must also be included in the IRI.