Initial version
authorPhilipp Martis <philipp2100@web.de>
Fri, 12 Feb 2016 07:23:37 +0000 (08:23 +0100)
committerPhilipp Martis <philipp2100@web.de>
Sat, 13 Feb 2016 08:43:26 +0000 (09:43 +0100)
Contains only the specification of the OSL language.

OSL-Specification.pdf [new file with mode: 0644]
OSL-Specification.tex [new file with mode: 0644]
bibliography.bib [new file with mode: 0644]
osl.tex [new file with mode: 0644]

diff --git a/OSL-Specification.pdf b/OSL-Specification.pdf
new file mode 100644 (file)
index 0000000..5aa9507
Binary files /dev/null and b/OSL-Specification.pdf differ
diff --git a/OSL-Specification.tex b/OSL-Specification.tex
new file mode 100644 (file)
index 0000000..3d5654a
--- /dev/null
@@ -0,0 +1,189 @@
+%&latex
+% headsepline: Linie am oberen Blattrand unterhalb der Seitennummer
+% bibtotoc: Aufnahme des Literaturverzeichnisses ins Inhaltsverzeichnis
+%\documentclass[a4paper,headsepline,bibtotoc]{scrreprt}
+
+% Constants
+\newcommand{\mytitle}{OBDA Specification Language (OSL)\\Specification}
+\newcommand{\myfontsize}{12pt}
+\newcommand{\smallerfontsize}{11pt}
+\newcommand{\smallfontsize}{10pt}
+\newcommand{\oslbase}{\url{http://w3studi.informatik.uni-stuttgart.de/~martispp/ont\#}}
+\newcommand{\oslheader}{\url{http://w3studi.informatik.uni-stuttgart.de/~martispp/ont/db2osl.owl}}
+\newcommand{\spacebeforetable}{2em}
+
+% Documentclass etc.
+\documentclass[\myfontsize,a4paper,twoside=semi]{scrreprt}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage{color}
+
+% Einstellungen bez. des 'scrreprt'-Stils
+% Caption Schriftstil und -Groesse
+\renewcommand{\capfont}{\footnotesize}
+\renewcommand{\caplabelfont}{\footnotesize\bfseries}
+\typearea{15}  %Einstellung des Verh�ltnisses Gr��e des Textes zur Papiergr��e
+%\renewcommand{\familydefault}{\sfdefault}       % "moderne" Schrift
+%\renewcommand{\headfont}{\normalfont\sf}        % Kolumnentitel serifenlos
+%\renewcommand{\pnumfont}{\normalfont\sffamily}  % Seitennummern serifenlos
+
+% Sprache
+\usepackage[ngerman,english]{babel}
+\selectlanguage{english}
+\setlength{\parindent}{0pt}
+
+\addto\extrasgerman{\renewcommand{\figurename}{Abb.}}
+\addto\extrasgerman{\renewcommand{\tablename}{Tab.}}
+
+% Bilder
+\usepackage[rflt]{floatflt}
+\usepackage{epsfig,wrapfig}
+
+% Mathematische Symbole
+\usepackage{amsmath,amssymb}
+
+% Tabellen
+\usepackage{longtable,lscape}
+\usepackage{multirow}
+\usepackage{tabularx}
+
+% Kopfzeilen
+\usepackage[automark,headsepline]{scrlayer-scrpage}
+\pagestyle{plain}
+\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
+\renewcommand{\sectionmark}[1]{\markboth{\thesection\ #1}{}}
+\clearpairofpagestyles
+\cfoot[\pagemark]{\pagemark}
+\lehead{\headmark}
+\rohead{\headmark}
+\pagestyle{scrheadings}
+
+% Listenerscheinung
+\setlength{\itemsep}{0ex}
+\setlength{\parsep}{0ex}
+\setlength{\parskip}{2mm}
+
+% Biblatex
+\usepackage[style=alphabetic,maxnames=10,backref=true]{biblatex}
+\bibliography{bibliography}
+
+% Hyperref
+\usepackage[]{hyperref}
+\hypersetup{
+       unicode,
+       pdftitle={\mytitle},
+       pdfauthor={Logic and Intelligent Data research group, University of Oslo},
+       pdfsubject={Ontology-based data access (OBDA)},
+       pdfkeywords={Ontology, Database, Database access, Big data},
+       pdfpagelayout=TwoPageRight,
+       linktoc=all,
+       colorlinks=true,
+       breaklinks=true,
+       extension=pdf,
+%      destlabel=true,
+%      allcolors=blue,
+       linkcolor=blue,
+       citecolor=green,
+       filecolor=cyan,
+       urlcolor=magenta,
+       pdfstartview=FitH,
+       pdfpagemode=UseOutlines,
+       bookmarksnumbered=true,
+       bookmarksopen=true,
+       bookmarksopenlevel=1
+}
+\usepackage{caption}  % Always link to the top of a figure or table
+
+\begin{document}
+
+% Seitennumerierung bis zum Beginn der Einleitung auf kleine roemische Zahlen setzen
+\pagenumbering{roman}
+
+% new commands
+%\newcommand{\file}[1]{{\sffamily\slshape #1}}
+\newcommand{\file}[1]{\mdseries\textsl{\textsf{#1}}}
+\newcommand{\sbr}[1]{\texttt{#1}}
+\newcommand{\var}[1]{\mdseries\textsl{\texttt{#1}}}
+\newcommand{\cmd}[1]{\uppercase{\texttt{#1}}}
+
+% Title page
+\KOMAoption{fontsize}{\smallerfontsize}
+\title{\mytitle}
+
+\author{}
+
+\publishers{
+       Logic and Intelligent Data, \\
+       Department of Informatics, \\
+       University of Oslo \\[5ex]}
+
+\date{}
+\maketitle
+\KOMAoption{fontsize}{\myfontsize}
+
+%% Abstract
+%\clearpage
+%\include{abstract}
+%\addcontentsline{toc}{chapter}{Abstract}
+%\include{kurzfassung}
+%\addcontentsline{toc}{chapter}{Kurzfassung}
+
+%% Contents
+%\tableofcontents
+%\addcontentsline{toc}{chapter}{Contents}
+
+%% Nomenclature
+%\clearpage
+%\addcontentsline{toc}{chapter}{Nomenclature}
+%\include{nomenclature}
+
+%% List of figures
+%\listoffigures
+%\addcontentsline{toc}{chapter}{List of figures}
+
+% List of tables
+\listoftables
+\addcontentsline{toc}{chapter}{List of tables}
+
+\clearpage
+\pagestyle{plain}
+\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
+\renewcommand{\sectionmark}[1]{\markboth{\thesection\ #1}{}}
+
+% Seitennumerierung ab der folgenden Einleitung auf arabische Zahlen setzen
+\pagenumbering{arabic}
+
+%% Introduction
+%\clearpage
+%\include{introduction}
+
+%% Background
+%\clearpage
+%\include{background}
+
+% The OSL language
+\clearpage
+\include{osl}
+
+
+%% Summary
+%\clearpage
+%\include{summary}
+
+%% Appendix
+%\clearpage
+%\include{appendix}
+%\addcontentsline{toc}{chapter}{Appendix}
+
+% Bibliography bibtex (add pagebackref=true to hyperref options if desired)
+%\bibliographystyle{alpha}
+%\bibliography{bibliography}
+%\addcontentsline{toc}{chapter}{Bibliography}
+
+% Bibliography biblatex
+\printbibliography
+\addcontentsline{toc}{chapter}{Bibliography}
+
+
+\end{document}
diff --git a/bibliography.bib b/bibliography.bib
new file mode 100644 (file)
index 0000000..215ff88
--- /dev/null
@@ -0,0 +1,71 @@
+@COMMENTBook{schlichting67,\r
+       author         = {H.~Schlichting and E.~Truckenbrodt},\r
+       title          = {Aerodynamik des Flugzeugs, Band 1},\r
+       publisher      = {Springer Verlag},\r
+       address        = {Berlin/Heidelberg/New York},\r
+       year           = 1967\r
+}\r
+\r
+@COMMENTTechReport{hartwick71,\r
+       author         = {G.~Hartwick and S.~Sadler},\r
+       title          = {Program Documentation for Development and Application of a Method for Predicting Rotor Wake Geometries and Rotor Wake Geometries and Rotor Loads},\r
+       institution    = {NASA},\r
+       address        = {New York},\r
+       year           = 1971,\r
+       type           = {Report},\r
+       number         = {69-9}\r
+}\r
+\r
+@Article{eng,\r
+       shorthand      = {SGH\textsuperscript{+}15},\r
+       author         = {Martin G. Skjæveland and Martin Giese and Dag Hovland and Espen H. Lian and Arild Waaler},\r
+       title          = {Engineering ontology-based access to real-world data sources},\r
+       journal        = {Web Semantics: Science, Services and Agents on the World Wide Web},\r
+       year           = 2015,\r
+       volume         = 33,\r
+       pages          = {112--140}\r
+}\r
+\r
+@misc{owl,\r
+       shorthand      = {W3C12},\r
+       author         = {W3C OWL Working Group},\r
+       title          = {OWL 2 Web Ontology Language, Document Overview (Second Edition)},\r
+       year           = 2012,\r
+       howpublished   = {\url{https://www.w3.org/TR/owl2-overview/}},\r
+       note           = {[Accessed: 2016-04-02]}\r
+}\r
+\r
+@misc{xmlbase,\r
+       shorthand      = {W3C09},\r
+       author         = {W3C XML Core Working Group},\r
+       title          = {XML Base (Second Edition)},\r
+       year           = 2009,\r
+       howpublished   = {\url{https://www.w3.org/TR/xmlbase/}},\r
+       note           = {[Accessed: 2016-04-02]}\r
+}\r
+\r
+@article{deepweb,\r
+       author         = {He, Bin and Patel, Mitesh and Zhang, Zhen and Chang, Kevin Chen-Chuan},\r
+       title          = {Accessing the deep web.},\r
+       biburl         = {http://www.bibsonomy.org/bibtex/22ae2725a4c12053678f6bb34dd974286/dblp},\r
+       journal        = {Commun. ACM},\r
+       keywords       = {dblp},\r
+       number         = 5,\r
+       pages          = {94--101},\r
+       url            = {http://dblp.uni-trier.de/db/journals/cacm/cacm50.html#HePZC07},\r
+       volume         = 50,\r
+       year           = 2007\r
+}\r
+@article{thesemanticweb,\r
+       author         = {Berners-Lee, Tim and Hendler, James and Lassila, Ora},\r
+       title          = {The Semantic Web},\r
+       biburl         = {http://www.bibsonomy.org/bibtex/2222934145a71a9d6cfbbb375d4d62c1d/eakaluk},\r
+       journal        = {Scientific American},\r
+       month          = may,\r
+       number         = 5,\r
+       pages          = {34--43},\r
+       url            = {http://www.sciam.com/article.cfm?articleID=00048144-10D2-1C70-84A9809EC588EF21},\r
+       volume         = 284,\r
+       year           = 2001\r
+}\r
+\r
diff --git a/osl.tex b/osl.tex
new file mode 100644 (file)
index 0000000..e87c79e
--- /dev/null
+++ b/osl.tex
@@ -0,0 +1,184 @@
+\chapter{The OSL language}
+
+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 thing to represent contained data entries and object properties being
+the obvious thing 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.
+
+So an ideal base for the OBDA Specification Language is 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 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 a header ontology demanded to be imported by documents conforming
+to the OSL specification.
+Thus, they are not only specified precisely but also in a machine-readable form
+for which tools are widely available, enabling the user to check many aspects of
+an OSL document for conformance with minimum effort.
+
+\section{Specification}
+
+\newcounter{parcount}
+\newcommand{\parnum}{\textsuperscript{\arabic{parcount}}}
+\newcommand{\p}{\refstepcounter{parcount} \parnum \hspace{1em}}
+
+\p An OSL document is a valid OWL 2 document \cite{owl} containing individuals
+and data representing the OBDA Specification, as well as OWL properties connecting them.
+The individuals and OWL properties are recognized and mapped to their roles by their IRIs.
+
+\p\label{spec_ignored} An OSL document may contain more 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's recommended to use the \texttt{owl:AllDifferent} 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 (`\#').\\
+It's recommended to use that base IRI as \texttt{xml:base} XML attribute.\\
+IRIs prefixed with \texttt{osl:} are IRIs relative to the IRI\\
+\oslbase
+
+\newpage
+\p An OSL document has to import the following ontology
+(referred to as ``the OSL header'' in the following):\\
+\oslheader
+
+\p The 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\\
+to the \texttt{OWL class URI} field of the respective entity map for entity maps,\\
+to the \texttt{OWL class URI} field of the associated entity map for identifier maps,\\
+to the \texttt{OWL class URI} field of the associated entity map for subtype maps and\\
+%\newpage
+to the \texttt{OWL class URI} field of the entity map associated with the respective subtype map
+for translation tables of subtype maps.\\
+Similarly, \textit{$<$property URI$>$} refers\\
+to the \texttt{OWL property URI} field of the respective attribute map for attribute maps
+(or, if it is empty, the value that would have been generated for it if it wouldn't ought to be empty),\\
+to the \texttt{OWL property URI} field of the respective relation map for relation maps and\\
+to the \texttt{OWL property URI} field of the respective attribute map
+for translation tables of attribute maps (or, if it is empty, the value that would have
+been generated for it if it wouldn't ought to be empty).
+
+%\vspace{\spacebeforetable}
+\KOMAoption{fontsize}{\smallerfontsize}
+\begin{table}[]\begin{center}
+       \begin{tabular}{l|l}
+               \textbf{Map type} & \textbf{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} \\
+               Relation map & \textit{$<$property URI$>$}\texttt{\_\_RELATION\_MAP} \\
+               Subtype map & \textit{$<$class URI$>$}\texttt{\_\_SUBTYPE\_MAP} \\
+               Translation table of attribute map &
+                       \textit{$<$property URI$>$}\texttt{\_\_ATTRIBUTE\_MAP\_\_TRANSLATION\_TABLE} \\
+               Translation table of subtype map &
+                       \textit{$<$class URI$>$}\texttt{\_\_SUBTYPE\_MAP\_\_TRANSLATION\_TABLE} \\
+       \end{tabular}
+       \caption{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}
+(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
+                       Entity map & \texttt{osl:EntityMap} \\
+                       Attribute map & \texttt{osl:AttributeMap} \\
+                       Identifier map & \texttt{osl:IdentifierMap} \\
+                       Relation map & \texttt{osl:RelationMap} \\
+                       Subtype map & \texttt{osl:SubtypeMap} \\
+                       Translation table & \texttt{osl:TranslationTable} \\
+               \end{tabular}
+               \caption{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
+must have the IRIs specified in table \ref{spec_tbl_prop_iris}
+(for base IRIs, see paragraph \ref{spec_base}).
+
+%\vspace{\spacebeforetable}
+%\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
+                       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} \\
+                       Entity map & \texttt{E4} & \texttt{Attribute maps...} & \texttt{osl:em\_\_attributeMaps} \\
+                       Entity map & \texttt{E5} & \texttt{OWL class URI} & \texttt{osl:em\_\_owlClassURI} \\
+                       Entity map & \texttt{E6} & \texttt{Description} & \texttt{osl:em\_\_description} \\ \hline
+                       Attribute map & \texttt{A1} & \texttt{Column name} & \texttt{osl:am\_\_columnName} \\
+                       Attribute map & \texttt{A2} & \texttt{SQL datatype} & \texttt{osl:am\_\_sqlDatatype} \\
+                       Attribute map & \texttt{A3} & \texttt{Mandatory} & \texttt{osl:am\_\_mandatory} \\
+                       Attribute map & \texttt{A4} & \texttt{Label} & \texttt{osl:am\_\_label} \\
+                       Attribute map & \texttt{A5} & \texttt{OWL property URI} & \texttt{osl:am\_\_owlPropertyURI} \\
+                       Attribute map & \texttt{A6} & \texttt{Property type} & \texttt{osl:am\_\_propertyType} \\
+                       Attribute map & \texttt{A7} & \texttt{Translation} & \texttt{osl:am\_\_translation} \\
+                       Attribute map & \texttt{A8} & \texttt{URI pattern} & \texttt{osl:am\_\_uriPattern} \\
+                       Attribute map & \texttt{A9} & \texttt{RDF language} & \texttt{osl:am\_\_rdfLanguage} \\
+                       Attribute map & \texttt{A10} & \texttt{XSD datatype} & \texttt{osl:am\_\_xsdDatatype} \\
+                       Attribute map & \texttt{A11} & \texttt{Description} & \texttt{osl:am\_\_description} \\ \hline
+                       Identifier map & \texttt{I1} & \texttt{Entity map} & \texttt{osl:im\_\_entityMap} \\
+                       Identifier map & \texttt{I2} & \texttt{Attribute maps...} & \texttt{osl:im\_\_attributeMaps} \\
+                       Identifier map & \texttt{I3} & \texttt{URI pattern} & \texttt{osl:im\_\_uriPattern} \\ \hline
+                       Relation map & \texttt{R1} & \texttt{Source entity map} & \texttt{osl:rm\_\_sourceEntityMap} \\
+                       Relation map & \texttt{R2} & \texttt{Source column} &
+                               \texttt{osl:rm\_\_sourceColumn\textcolor{red}{\textbf{s}}} \\
+                       Relation map & \texttt{R3} & \texttt{Target entity map} & \texttt{osl:rm\_\_targetEntityMap} \\
+                       Relation map & \texttt{R4} & \texttt{Target column} &
+                               \texttt{osl:rm\_\_targetColumn\textcolor{red}{\textbf{s}}} \\
+                       Relation map & \texttt{R5} & \texttt{OWL property URI} & \texttt{osl:rm\_\_owlPropertyURI} \\ \hline
+                       Subtype map & \texttt{S1} & \texttt{Entity Map} & \texttt{osl:sm\_\_entityMap} \\
+                       Subtype map & \texttt{S2} & \texttt{Column Name} & \texttt{osl:sm\_\_columnName} \\
+                       Subtype map & \texttt{S3} & \texttt{OWL superclass URI} & \texttt{osl:sm\_\_owlSuperclassURI} \\
+                       Subtype map & \texttt{S4} & \texttt{Prefix} & \texttt{osl:sm\_\_prefix} \\
+                       Subtype map & \texttt{S5} & \texttt{Suffix} & \texttt{osl:sm\_\_suffix} \\
+                       Subtype map & \texttt{S6} & \texttt{Translation} & \texttt{osl:sm\_\_translation} \\ \hline
+                       Translation table & \texttt{T1} & \texttt{Source value...} &
+                               \texttt{osl:tt\_\_sourceValue\textcolor{red}{\textbf{s}}} \\
+                       Translation table & \texttt{T2} & \texttt{RDF ressource...} &
+                               \texttt{osl:tt\_\_rdfRessource\textcolor{red}{\textbf{s}}} \\
+               \end{tabular}
+               \caption{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:
+\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 range,
+as 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.\\
+If the represented list is not empty, the list elements are represented by other
+\texttt{osl:StringListNode} individuals connected seriatim by the property
+\texttt{osl:nextNode}, with the first individual being connected to the root node.
+The node representing the last list element must not have an
+\texttt{osl:nextNode} property.\\
+All nodes except the root node \emph{may} have an \texttt{osl:hasValue} property
+connecting them to their values.
+It's recommended to enumerate the node IRIs, using $0$ for the root node.