The Graph Data Platform - developed by the AI engineering team at the EPFL Center for Digital Education - is an open-source alternative to proprietary research information systems like Elsevier Pure. It federates educational and institutional data into a semantically interconnected knowledge graph of people, publications, labs, startups, courses, video lectures, and other educational resources. The GraphSearch application provides lightning-fast search and discovery of the knowledge graph, as well as LLM-powered chatbot interaction with the indexed resources.
List of Graph services:
Registry |
AI |
Ontology |
Search |
Chat |
Dash |
DB client |
ES client
Graph Registry is the first layer in the Graph Data Platform. It ingests data in JSON format through an ETL pipeline, and generates a knowledge graph that feeds the GraphSearch and GraphChat applications.
Data can be added to the registry through direct JSON file imports, or through a REST API. The actions steps in the knowledge graph construction are executed through a command line interface (CLI).
- (OPTIONAL) create a virtual environment with
python -m venv venvand activate withsource venv/bin/activate - install the requirements with
pip install -r requirements.txt - you will also need to install vlc with
sudo apt install vlc
Copy the example_config.yaml file to config.yaml and edit it to give your graphai, elasticsearch and mysql credentials.
You may also need to copy the certificates for connecting to elasticsearch (by default in resources/certificates/).
You may also need to create the graphai-client JSON configuration file and give its location in the
graphai.client_config_file section of your config.yaml file. It should look like this:
{
"host": "https://graphai.epfl.ch",
"port": 443,
"user": "YOUR_GRAPHAI_USERNAME",
"password": "YOUR_GRAPHAI_PASSWORD"
}From the package root directory run:
uvicorn graphregistry.entrypoints.api.main:create_app --reload --factory
Example queries are available in the resources/api_request_examples/ directory for testing the API.
Refer to the README.md file there for further information.