Thesis Type |
|
Status |
Running |
Presentation room |
Seminar room I5 6202 |
Supervisor(s) |
Stefan Decker |
Advisor(s) |
Maximilian Kißgen |
Contact |
kissgen@dbis.rwth-aachen.de |
For applications please send both a CV and a transcript of records to Maximilian Kißgen.
With a high number of web services worldwide, API integration is a highly important topic. Common data formats and APIs connect services that execute similar or related tasks, reduce maintenance and programming problems. For instance, services often offer standard REST APIs for communication and for querying and editing graph data, the query language GraphQL was developed. For graph analysis in particular, this allows to deposit tools and algorithms on servers needed for computation and use them from the outside. This would then also lay the groundwork to federate different services under one common view and allow for easier comparison and evaluation of data.
But the reality for many researchers and developers is different: Often, a small executable in a specific programming language is developed to show the functionality of an algorithm. Integration therefore not only requires to find a common standard, but to even develop communication capability in the first place. This is often not done and leads to different analysis services being detached from each other and harder to evaluate. However, as these programs are generally simple, a small adapter service that creates REST endpoints for input and output with parameters could be achieved with specific machine learning models for code generation and a manual option to configure this could be easily provided, too. Both allow for both reachability on a network or the web and give them a unified API that facilitates integration.
In this thesis you will build an API adapter for different graph algorithm libraries. The adapter should provide a small webserver and automatically set up standard REST endpoints for a given library and should be easily configurable to manually add and tweak them. The adapter should allow for running an algorithm, therefore inputting and outputting (graph) data and allowing to tweak the algorithms parameters.
Goals & Objectives:
Writing a lightweight-as-possible framework that:
- Automatically derives REST-endpoints from methods of a given graph analysis/algorithm library in Python and at least one other programming language
- Provides a webserver that allows to run the algorithm on graphs given in common graph formats and outputs its results via the endpoints
- Provides configurability to add/tweak (additional) endpoints based on the library
Evaluating the Framework based on:
- The Flexibility of the automatic generation with different libraries/formats
- Its Usability for developers/researchers in the graph algorithm field
- Its added computation overhead
Challenges:
While most algorithm libraries will be similar in structure, they will all have differences that need to be addressed. There may be different input formats for graphs, different output formats depending on graph algorithm type. Some will have a main method to run the algorithm, some will have a different method and they will be written differently. The automatic endpoint generation will therefore not be straight-forward to implement.
Since one aim of the tool is for it to be adopted, getting it to be as intuitive as possible is important. A developer should have to do as little as possible to get it running, but should be able to configure the webserver as much as possible.
Related Literature/Libraries:
- https://arxiv.org/abs/2206.01335
- https://lutpub.lut.fi/handle/10024/165672
- https://ceur-ws.org/Vol-2825/paper3.pdf
- https://github.com/taynaud/python-louvain
- https://github.com/GraphBLAS/HPEC21-TriangleCentrality
- https://github.com/shchur/overlapping-community-detection
- Knowledge of : Code generation and Machine Learning concepts
- Programming Skills: Python, web development (e.g. REST APIs), webservers
- Nice to Have: Deeper knowledge of LLM/ML concepts, grasp of graph representation types, algorithm types