Sie sind hier

Integration von Semantic Web Anfragen in F#

Beschreibung

Anfragen an verschiedenste Datenquellen, wie beispielsweise Datenbanken, werden in .NET meistens durch sogenannte Language Integrated Queries realisiert. Diese erlauben es Anfragen direkt im Quelltext zu formulieren sowie die Ergebnisse direkt als Sequenzen bzw. Listen des gewählten Typen zu verarbeiten. Dadurch wird von den verschiedenen Datenquellen abstrahiert und es gibt einen gemeinsamen Mechanismus, mit dem auf Quellen wie Datenbanken, XML Dokumente oder auch einfache Listen zugegriffen werden kann.

Aufgabenstellung:

F# erlaubt es, mithilfe von sogenannten Computational Expressions, relativ einfach neue LINQ Query Builder für neue Datenquellen zu definieren [1]. Computational Expressions können sogar so weit gehen komplett neue Operationen zu definieren [2]. Weiterhin können Type Provider die benötigten Typen, die in der Anfrage benutzt werden automatisch erstellen.

Ziel der Arbeit ist es einen LINQ Query Builder sowie eventuell benötigte Type Provider zu entwickeln, der Anfragen an einen Triplestore sendet. Dabei soll evaluiert werden in wie weit die Autovervollständigung genutzt werden kann um die Formulierung der Anfrage zu vereinfachen sowie in wie weit sich Description Logic Anfragen in F# integrieren lassen.

Literatur- und Lehrveranstaltungsempfehlung:

[1] http://tomasp.net/blog/2015/query-translation/index.html
[2] https://github.com/dungpa/dsls-in-action- fsharp/blob/master/DSLCheatsheet.md#computation-expressions
[3] http/research.microsoft.com/pubs/173076/information-rich-themes-v4.pdf

Benötigte Kenntnisse/Fähigkeiten:

  • Kenntnisse von funktionaler Programmierung
  • Kenntnisse über Multi-Stage Programming (MSP)

  • Kenntnisse über das Semantic Web

  • SPARQL Kenntnisse

  • Description Logic (DL) Kenntnisse

Studienart: 
Bachelor
Ausschreibungsdatum: 
2015