Home  ◦  Research  ◦  Projects  ◦  Blog Privacy


Research

The complete list of my publication can be found on DBLP or Google Scholar.

Interests

I’m interested in 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. Currently, I’m excited about: Roc and Doomemacs.

From Shapes to Shapes: Inferring SHACL Shapes for Results of SPARQL CONSTRUCT Queries

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. Further reading:

@inproceedings{s2sSHLS,
  author       = {Philipp Seifer and Daniel Hernández and Ralf Lämmel and Steffen Staab},
  title        = {From Shapes to Shapes: Inferring {SHACL} Shapes for Results of
                 {SPARQL CONSTRUCT} Queries},
  booktitle    = {Proceedings of the Web Conference 2024},
  publisher    = {{ACM}},
  year         = {2024},
  doi          = {10.1145/3589334.3645550}
}

ProGS: 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.

@inproceedings{progsSLS,
  author       = {Philipp Seifer and Ralf Lämmel and Steffen Staab},
  title        = {{ProGS}: Property Graph Shapes Language},
  booktitle    = {Proceedings of the International Semantic Web Conference},
  series       = {Lecture Notes in Computer Science},
  volume       = {12922},
  pages        = {392--409},
  publisher    = {Springer},
  year         = {2021},
  doi          = {10.1007/978-3-030-88361-4\_23}
}

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) into Scala. Implementation as a compiler plugin that utilizes the HermiT reasoner to decide subtyping based on concept subsumption. Based on theoretical work by Martin Leinbeger.

@article{sqiSLLS
  author       = {Philipp Seifer and Martin Leinberger and Ralf Lämmel and Steffen Staab},
  title        = {Semantic Query Integration With Reason},
  journal      = {Art Sci. Eng. Program.},
  volume       = {3},
  number       = {3},
  pages        = {13},
  year         = {2019},
  doi          = {10.22152/PROGRAMMING-JOURNAL.ORG/2019/3/13}
}

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 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 the lambda calculus and it’s various extensions. The course focuses on both theoretical concepts as well as 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.