Relationaler Datenbank Store für eine SPARQL-Datenbank

- Bachelor-/Masterarbeit -


Beschreibung:

Das Semantic Web erhält eine immer größer werdende Bedeutung, welches sich unter anderem an der steigenden Anzahl von entwickelten und im Einsatz befindlichen Semantic Web Tools und Applikationen fest machen läßt. Die Kernidee des Semantic Webs ist es, durch Einbeziehung der Bedeutung von Symbolen die maschinelle Verarbeitung zu präzisieren.

Im BigSIot-Projekt entwickeln wir die Semantic-Web-Datenbank Luposdate3000. Zur effizienten Auswertung von Anfragen werden Spalteniteratoren verwendet. Um den benötigten Speicherplatz zu verringern werden Dictionaries eingesetzt. Die Datenbank ist komplett in Kotlin geschrieben. Diese Programmiersprache ermöglicht es den gleichen Quellcode für unterschiedliche Plattformen wie Java, JS, Windows, Linux, Android, IOS, ... zu kompilieren. Zusätzlich bietet Kotlin einige Sprachfeatures wie z.B. "inline", wodurch zur Compilezeit wesentliche Optimierungen durchgeführt werden können.

Luposdate3000 ist bisher eine reine SPARQL-Datenbank. Unser Ziel ist es, diese Datenbank im Internet-of-Things Kontext einzusetzen. In diesem Kontext gibt es viele Sensoren, welche gleichmäßig stukturierte Daten (basierend auf einer festen Ontologie) generieren.

Diese gleichmäßigen Daten möchten wir nicht in einem völlig flexiblen Triple-Store sondern in einem separaten Store abspeichern.

In diesem Store sollen Tabellen (ähnlich wie in relationalen Datenbanken) mit festen Spalten (und ggf. auch feste Datentypen) gespeichert werden.

Dies hat verschiedene Vorteile:

  • verbesserte Datenkompression, da Triple-Stores redundant die Spaltennamen erwähnen müssen, und da die Datentypen bekannt sind - und daher nicht wiederholt werden müssen.
  • beschleunigte Abfragen, da nicht erst mehrere Tripel gejoint werden müssen, sondern diese direkt 1 zu 1 aus dem Store gelesen werden können. Dies ist gleichzeitig auch speichereffizienter, da die Zwischenergebnisse nicht gespeichert werden müssen. Desweiteren sind die einzelnen Spalten sind völlig unabhängig voneinander, wovon die Datenbank ebenfalls profitiert.

In dieser Arbeit wird ein Store für diese Tabellen implementiert, sowie der Query-Optimizer angepasst, sodass diese Tabellen auch genutzt werden.

Anforderungen/Kenntnisse:
Kotlin, Datenbank-Grundkenntnisse

Betreuung:

Prof. Dr. rer.nat. habil. Sven Groppe
Institut für Informationssysteme
Ratzeburger Allee 160 ( Gebäude 64 - 2. OG)
23562 Lübeck
Telefon: 0451 / 3101 5706