Experience

 
 
 
 
 
April 2021 – Present
Renningen, Germany

Research Engineer

Bosch Corporate Research, Robert Bosch GmbH

Working on knowledge and data engineering in projects with various Bosch Business Units. Projects include:

  • A global search capable of searching artifacts across many different source systems.
  • Data Ingegration and managing change in labels (e.g., variable names) of evolving ECU software.
  • Data models and semantic data descriptions as part of Agri-Gaia.
 
 
 
 
 
November 2013 – April 2021
Koblenz, Germany

Scientific Employee, Akademischer Rat

Institute for Web Science and Technologies, University of Koblenz-Landau

Akademischer Rat since April 2020. Research focused on the integration of semantic web technologies and querying of data sources into programming languages. Teaching responsibilities included:

  • Algorithms and Datastructures
  • Artificial Intelligence
  • Big Data
 
 
 
 
 
August 2009 – October 2009
Mainz, Germany

Intern at TPC Development

IBM Deutschland Research & Development GmbH

I worked on setting up a virtual SoFS (Scale-out File Services) cluster which is a clustered NAS. Also did some bugfixing and extensions to an management software.

Research Interests

In general, I'm interested in querying data and programming with data in general. For example, the ideas of Language Integrated Queries or type providers that can generate types during programming fascinate me.

Semantic Data and Ontologies

My research is in the area of semantic data, in which conceptualizations are represented in the data and the data itself is described using entity-relation or graph-like descriptions, as well as graph data in general. Knowledge graphs, such as the ones by Google or Wikidata are good examples of this. Often, my research focuses on the RDF data format as a typical example of semantic data.

In the RDF data format, triples are used to make statements about entities. For example, the triple mleinberger worksFor uniko states that I work for uniko (the Univerisity of Koblenz-Landau) whereas uniko type University states that this is a university. Ontologies then add meaning to those terms and can, for example, define that a university is a special kind of scientific and educational organization. Subsequently, when asking “What educational organization does Martin work for?”, uniko can be derived as a valid answer.

Type Checking and Query Integration

I'm mostly concerned with programming with RDF data. In particular, my thesis is about type checking, which is a form of program verification. The type of a function consists of its domain, which defines the values it can work with and its co-domain, which is the set of values it can produce. For example, the function pow2, which computes the square value of a number and may have type int->int. If this function is applied to value, then this value must belong to the set of integers as the function is otherwise ill-defined. A static type checker checks this at compile time before the program is to avoid errors.

I take this approach and apply it to programs working with semantic data. I allow programmers to use concepts such as EducationalOrganization that are for example defined in ontologies as types for functions. If EducationalOrganization is the domain of a function and this function is applied to results of a query, such as “What educational organization does Martin work for?”, I try to find evidence that all results produced by this query are indeed instances of EducationalOrganization.

Other interests

Other research interests of mine include Data Integration and Ontology-based data access, which is a specific form of data integration. Furthermore, I'm interested in query languages in general, particularly graph query languages.

Selected Publications

All Publications »

The Shapes Constraint Language (SHACL) allows for formalizing constraints over RDF data graphs. A shape groups a set of constraints that may be fulfilled by nodes in the RDF graph. We investigate the problem of containment between SHACL shapes. One shape is contained in a second shape if every graph node meeting the constraints of the first shape also meets the constraints of the second. To decide shape containment, we map SHACL shape graphs into description logic axioms such that shape containment can be answered by description logic reasoning. We identify several, increasingly tight syntactic restrictions of SHACL for which this approach becomes sound and complete.

It is a strength of graph-based data formats, like RDF, that they are very flexible with representing data. To avoid run-time errors, program code that processes highly-flexible data representations exhibits the difficulty that it must always include the most general case, in which attributes might be set-valued or possibly not available. The Shapes Constraint Language (SHACL) has been devised to enforce constraints on otherwise random data structures. We present our approach, Type checking using SHACL (TyCuS), for type checking code that queries RDF data graphs validated by a SHACL shape graph. To this end, we derive SHACL shapes from queries and integrate data shapes and query shapes as types into a ${\lambda}$-calculus. We provide the formal underpinnings and a proof of type safety for TyCuS. A programmer can use our method in order to process RDF data with simplified, type checked code that will not encounter run-time errors (with usual exceptions as type checking cannot prevent accessing empty lists).

Semantic data fuels many different applications, but is still lacking proper integration into programming languages. Untyped access is error-prone. Mapping approaches cannot fully capture the conceptualization of semantic data. In this paper, we present ${\lambda_{DL}}$, a typed ${\lambda}$-calculus with constructs for operating on semantic data. This is achieved by the integration of description logics into the ${\lambda}$-calculus for both typing and data access or querying. The language is centered around several key design principles, in particular: (1) the usage of semantic conceptualizations as types, (2) subtype inference for these types, and (3) type-checked query access to the data by both ensuring the satisfiability of queries as well as typing query results precisely. The paper motivates the use of a designated type system for semantic data and it provides the theoretic foundation for the integration of description logics as well as the core formal definition of ${\lambda_{DL}}$ including a proof of type safety.

The Semantic Web is intended as a web of machine readable data where every data source can be the data provider for different kinds of applications. However, due to a lack of support it is still cumbersome to work with RDF data in modern, object-oriented programming languages, in particular if the data source is only available through a SPARQL endpoint without further documentation or published schema information. In this setting, it is desirable to have an integrated tool-chain that helps to understand the data source during development and supports the developer in the creation of persistent data objects. To tackle these issues, weintroduce LITEQ, a paradigm for integrating RDF data sources intoprogramming languages and strongly typing the data. Additionally, we report on two use cases and show that compared to existing approaches LITEQ performs competitively according to the Halstead metric.

Teaching

I am mainly responsible for the tutorials for Artificial Intelligence as well as the lectures for Algorithms and Data structures and Big Data.

Algorithms and Data structures

Algorithms and Data structures is an undergraduate course focusing on algorithm as well as datastructure design and analysis. Topics of the course include:

  • Searching and Sorting
  • Dynamic data structures (Lists, Trees, Hashing, Graphs)
  • Graph algorithms (Shortest Path, Minimal Spanning Trees, Max Flow)

Artificial Intelligence

Artificial Intelligence is an graduate course focusing on classical, symbolic AI. In particular, the course focuses on logics as well as planning and general problem solving through search. Topics of the course include:

  • Propositional and First-Order logic
  • Programming in Prolog
  • Planning and searching in state space
  • Non-monotonic logic (Default Logic, ASP, Abstract Argumentation)
  • Agent-based systems.

Big Data

As of 2020, I'm responsible for the graduate course Big Data. Topics of the course include:

  • Cloud Computing
  • Programming with Apache Spark
  • OLAP
  • NoSQL databases

Other teaching activities

Besides courses, I’m also sometimes involved in seminars or research practicals such as seminars on graph algorithms or recently a research practical on AIs in Starcraft .