Screenshot of an example graph in neo4j

Graph Databases

The analysis of social networks, the management of knowledge networks, the study of protein interaction, the planning of transport networks, and the routing of network traffic are areas of application that query connected data in form of graphs.

Since graphs with millions or even billions of nodes and edges are not unusual today, many applications require sophisticated data management and processing techniques to handle these huge volumes of graph data. However, graph data applications are very diverse regarding the graph data instances they manage and how they process them. With Neo4j there exists a very capable graph database today. However, there are still many ideas from the field of Graph Algorithms that are not well integrated into such a specialized database management system.

Our goal is to find and develop appropriate graph algorithms, which solve problems for real world graph data use cases and which can be implemented in a graph database to speed up query processing or even enable it on larger graph instances than before.

This topic focuses on graph index structures and graph query optimization with the aim of developing an optimizer which can automatically select the optimal index for a given graph query and data set.