Research
This is a brief overview of my research work. The complete list of my publications can be found on DBLP or Google Scholar. I'm interested in knowledge graphs and software languages. Currently, I focus on graph query languages (such as SPARQL, G-CORE or GQL) that are, or can be, composable (i.e., returning graphs), their validation against constraints such as specified by SHACL shapes, and the interaction of queries, compositions, and shape validation. More generally, I deal with knowledge graphs, the Semantic Web, as well as description logics.
Beyond that, I love functional programming and strong, static type systems, and I am interested in effective developer tooling. Besides Scala, I’m currently excited about Roc and Zig.
1 From Shapes to Shapes
An approach for inferring SHACL shapes that validate result graphs of SPARQL CONSTRUCT queries, independently of any concrete input (or output) graphs. Essentially, this is inference of the result type of the query considered as a graph-transforming function, taking the argument type (shapes that hold over the input graphs) into account.
2 Property Graph Shapes Language
A shape-based validation language inspired by SHACL, defined for the property graph data model as used by Neo4j (openCypher) or G-CORE. A prototype implementation for validating property graphs (including exports from Neo4j), implemented using answer-set programming, is available on GitHub.
3 Usage of Graph Query Languages
An empirical mining software repositories (MSR) study on the practical usage of graph query languages such as SPARQL or Cypher in open-source (Java) projects on GitHub. Analyses various aspects of language usage over time, including conceptualizations (ontologies) for concrete SPARQL projects, in particular.
4 Semantic Query Integration with Reason
Extension of Scala 2 and its type system integrating SPARQL queries and inference of types for their results (encoded in description logics). Implementation as a compiler plugin that utilizes the HermiT reasoner to decide subtyping based on concept subsumption. Based on theoretical work by Martin Leinberger.
5 Teaching Activity
The following table lists my involvement in teaching, where I am mainly responsible for the corresponding tutorials. I'm also involved in seminars as well as supervision of bachelor and master theses.
Year | Term | Subject |
---|---|---|
2024 | Winter | Fundamentals of Operating Systems (Grundlagen der Betriebssysteme) |
2024 | Summer | Programming Language Theory (Theorie der Programmiersprachen) |
2023 | Winter | Fundamentals of Operating Systems (Grundlagen der Betriebssysteme) |
2023 | Summer | Programming Language Theory (Theorie der Programmiersprachen) |
2022 | Winter | Software Language Engineering |
2022 | Winter | Fundamentals of Operating Systems (Grundlagen der Betriebssysteme) |
2022 | Summer | Programming Language Theory (Theorie der Programmiersprachen) |
2021 | Winter | Mining Software Repositories |
2021 | Summer | Programming Language Theory (Theorie der Programmiersprachen) |
2020 | Winter | Mining Software Repositories |
2020 | Summer | Programming Language Theory (Theorie der Programmiersprachen) |
2019 | Winter | Fundamentals of Data Bases (Grundlagen der Datenbanken) |
2018 | Winter | Fundamentals of Data Bases (Grundlagen der Datenbanken) |
- Programming Language Theory is a bachelor course teaching foundations of abstract syntax and semantics, type systems, and formalisms such as the lambda calculus and it’s various extensions. The course focuses on both theoretical concepts and practical implementations thereof using Haskell.
- Mining Software Repositories is an elective master course on empirical research in the context of software repository mining, with a practical focus (e.g., replication of experiments).
- Software Language Engineering is an elective, research-oriented master course about software languages, covering topics such as DSLs, parsing, program analysis and transformation.
- Fundamentals of Operating Systems is a bachelor introductory course.
- Fundamentals of Data Bases is a bachelor introductory course.