\chapter{The OBDA Specification Language (OSL)}
\label{osl}
+TODO: aims, proceeding, structure
As described in \cite{eng}, an OBDA specification consists of several types of maps,
all containing data entries and links to other maps.
-This fits perfectly into the environment of ontologies and OWL, with data properties
-being the obvious choice to represent contained data entries and object properties being
-the obvious choice to represent links between maps.
+This fits perfectly into the environment of ontologies and \name{OWL}, with data
+properties being the obvious choice to represent contained data entries
+and object properties being the obvious choice to represent links between maps.
Also, a potential user probably to some degree is familiar with this environment,
since this is what the bootstrapping process at the end amounts to.
-Therefore, an ideal base for the OBDA Specification Language is OWL,
+Therefore, an ideal base for the OBDA Specification Language is \name{OWL},
being a solid framework for data and constraint representation
with a high degree of software support,
while imposing only a minimum of introductory preparation to the user.
Another advantage of this approach is that the specification is kept
compact and focused on the entities that the language has to represent rather than
primarily dealing with technical details.
-In particular, many of those details can be formulated as OWL restrictions
+In particular, many of those details can be formulated as \name{OWL} restrictions
in a header ontology demanded to be imported by documents conforming
to the \osl{} specification.
Thus, they are not only specified precisely but they are also stipulated in a
\newcommand{\parnum}{\textsuperscript{\arabic{parcount}}}
\newcommand{\p}{\refstepcounter{parcount} \parnum \hspace{1em}}
-\p An \osl{} document is a valid OWL 2 document (as described in \cite{owl})
+\p An \osl{} document is a valid \name{OWL} 2 document (as described in \cite{owl})
containing individuals and data that represent the OBDA Specification,
-as well as OWL properties that connect them.
-The individuals and OWL properties are recognized and mapped to their roles by their IRIs.
+as well as \name{OWL} properties that connect them.
+The individuals and \name{OWL} properties are recognized and mapped to their roles
+by their IRIs.
-\p\label{spec_ignored} An \osl{} document may contain more OWL entities
+\p \label{spec_ignored} An \osl{} document may contain more \name{OWL} entities
(with IRIs not defined in this specification), which are ignored.
\p An \osl{} document has to declare all individuals having different IRIs as different
from each other (except those which are ignored, see paragraph \ref{spec_ignored}).\\
-It is recommended to use the \texttt{owl:AllDifferent} OWL statement for this purpose.
+It is recommended to use the \texttt{owl:AllDifferent} \name{OWL}
+statement for this purpose.
-\p\label{spec_base} Unless stated otherwise, IRIs mentioned in the following are IRIs relative
-to a base IRI chosen by the user being empty (which makes the IRIs absolute \cite{xmlbase})
-or ending with a hash character (`\#').\\
+\p \label{spec_base} Unless stated otherwise, IRIs mentioned in the following are
+IRIs relative to a base IRI chosen by the user being empty (which makes the IRIs
+absolute \cite{xmlbase}) or ending with a hash character (`\#').\\
\newpage
It is recommended to use that base IRI as \texttt{xml:base} XML attribute.\\
IRIs prefixed with \texttt{osl:} are IRIs relative to the IRI\\
(referred to as ``the \osl{} header'' in the following):\\
\oslheaderurl{}
-\p The OWL individuals described by the \osl{} document representing the certain types of OBDA maps
+\p The \name{OWL} individuals described by the \osl{} document representing
+the certain types of OBDA maps
must have the IRIs specified in table \ref{spec_tbl_indv_iris}
(for base IRIs, see paragraph \ref{spec_base}).
Here, \textit{$<$class URI$>$} refers\\
\KOMAoption{fontsize}{\smallerfontsize{}}
\begin{table}[]\begin{center}
\begin{tabular}{l|l}
- \textbf{Map type} & \textbf{OWL IRI} \\ \hline
+ \textbf{Map type} & \textbf{\name{OWL} IRI} \\ \hline
Entity map & \textit{$<$class URI$>$}\texttt{\_\_ENTITY\_MAP} \\
Attribute map & \textit{$<$property URI$>$}\texttt{\_\_ATTRIBUTE\_MAP} \\
Identifier map & \textit{$<$class URI$>$}\texttt{\_\_IDENTIFIER\_MAP} \\
Translation table of subtype map &
\textit{$<$class URI$>$}\texttt{\_\_SUBTYPE\_MAP\_\_TRANSLATION\_TABLE} \\
\end{tabular}
- \caption{OWL individual IRIs in \osl{}}
+ \caption{\name{OWL} individual IRIs in \osl{}}
\label{spec_tbl_indv_iris}
\end{center}\end{table}
\KOMAoption{fontsize}{\myfontsize{}}
-\p The OWL individuals described by the \osl{} document representing the certain types of OBDA maps
-must be of the OWL types specified in table \ref{spec_tbl_types}
+\p The \name{OWL} individuals described by the \osl{} document representing
+the certain types of OBDA maps
+must be of the \name{OWL} types specified in table \ref{spec_tbl_types}
(for base IRIs, see paragraph \ref{spec_base}).
%\vspace{\spacebeforetable{}}
\begin{table}[]\begin{center}
\begin{tabular}{l|l}
- \textbf{Map type} & \textbf{OWL class IRI} \\ \hline
+ \textbf{Map type} & \textbf{\name{OWL} class IRI} \\ \hline
Entity map & \texttt{osl:EntityMap} \\
Attribute map & \texttt{osl:AttributeMap} \\
Identifier map & \texttt{osl:IdentifierMap} \\
Subtype map & \texttt{osl:SubtypeMap} \\
Translation table & \texttt{osl:TranslationTable} \\
\end{tabular}
- \caption{Class membership of map representations in \osl{}}
+ \caption{\name{OWL} class membership of map representations in \osl{}}
\label{spec_tbl_types}
\end{center}\end{table}
-\p The OWL properties described by the \osl{} document representing the fields of the certain OBDA maps
+\p The \name{OWL} properties described by the \osl{} document representing
+the fields of the certain OBDA maps
must have the IRIs specified in table \ref{spec_tbl_prop_iris}
(for base IRIs, see paragraph \ref{spec_base}).
%\KOMAoption{fontsize}{\smallerfontsize{}}
\begin{table}[]\begin{center}
\begin{tabular}{l|l|l|l}
- \textbf{Map type} & \textbf{Field label} & \textbf{Field name} & \textbf{OWL IRI} \\ \hline
+ \textbf{Map type} & \textbf{Field label} & \textbf{Field name} & \textbf{\name{OWL} IRI} \\ \hline
Entity map & \texttt{E1} & \texttt{Table name} & \texttt{osl:em\_\_tableName} \\
Entity map & \texttt{E2} & \texttt{Label} & \texttt{osl:em\_\_label} \\
Entity map & \texttt{E3} & \texttt{Identifier map} & \texttt{osl:em\_\_identifierMap} \\
Translation table & \texttt{T2} & \texttt{RDF ressource...} &
\texttt{osl:tt\_\_rdfRessource\textcolor{red}{\textbf{s}}} \\
\end{tabular}
- \caption{OWL property IRIs in \osl{}}
+ \caption{\name{OWL} property IRIs in \osl{}}
\label{spec_tbl_prop_iris}
\end{center}\end{table}
%\KOMAoption{fontsize}{\myfontsize{}}
%\newpage
-\p The following OWL properties in the \osl{} document refer to lists of elements:
+\p The following \name{OWL} properties in the \osl{} document refer
+to lists of elements:
\begin{itemize}
\item[] \texttt{osl:rm\_\_sourceColumns}
\item[] \texttt{osl:rm\_\_targetColumns}
\item[] \texttt{osl:tt\_\_sourceValues}
\item[] \texttt{osl:tt\_\_rdfRessources}
\end{itemize}
-Therefore, they have the OWL class \texttt{osl:StringListNode} as their range,
-as is required by the \osl{} header.
+Therefore, they have the \name{OWL} class \texttt{osl:StringListNode}
+as their range, as is required by the \osl{} header.
They must connect the respective individual to an
\texttt{osl:StringListNode} individual in every case.
This ``root node'' must \emph{not} have an \texttt{osl:hasValue} property.\\