Research
The complete list of my publication can be found on DBLP or Google Scholar.
Interests
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. Currently, I’m excited about Roc and Zig.
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:
- Full Research Paper, The Web Conference 2024, ACM
- Prototype Implementation on GitHub
- Extended Version of the Paper on arXiv
- Talk at WebConf2024 on YouTube (slides)
- WebConf2024 Poster
- Abstract, DL Workshop 2024
@inproceedings{SHLS24, 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 = { } }
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.
- Full Research Paper, ISWC 2021, Springer
- Extended Version of the Paper on arXiv
- Validator Implementation on GitHub
@inproceedings{SLS21, 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 = { } }
Empirical Study on the Usage of Graph Query Languages in Open Source Java Projects
Empirical MSR study on usage of graph query languages such as SPARQL or Cypher in open source projects.
@inproceedings{SHLLS19, author = {Philipp Seifer and Johannes Härtel and Martin Leinberger and Ralf Lämmel and Steffen Staab}, title = {Empirical Study on the Usage of Graph Query Languages in Open Source Java Projects}, booktitle = {{SLE} 2019}, pages = {152--166}, publisher = {{ACM}}, year = {2019}, doi = { } }
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{SLLS19, 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 = { } }
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 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.