kgcompass

Knowledge Graph Enhanced Software Repair Framework

https://github.com/gleam-lab/kgcompass

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.2%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Knowledge Graph Enhanced Software Repair Framework

Basic Info
  • Host: GitHub
  • Owner: GLEAM-Lab
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 475 KB
Statistics
  • Stars: 2
  • Watchers: 0
  • Forks: 0
  • Open Issues: 2
  • Releases: 0
Created 9 months ago · Last pushed 8 months ago
Metadata Files
Readme License Citation

README.md

KGCompass

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://www.python.org/) [![arXiv](https://img.shields.io/badge/arXiv-2503.21710-b31b1b.svg)](https://arxiv.org/abs/2503.21710) [![Docker](https://img.shields.io/badge/docker-ready-blue.svg)](https://www.docker.com/)

KGCompass is a novel approach for repository-level software repair that accurately links code structure with repository metadata using a knowledge graph, enabling more precise bug localization and patch generation.

Paper link: https://arxiv.org/abs/2503.21710

KGCompass Trajectory Visualization

Fully Containerized Workflow with GPU Support

This project uses Docker and Docker Compose to provide a fully reproducible environment. The setup includes: - A base image with CUDA and Python pre-installed. - A service for the Neo4j database with necessary plugins. - An application service with all Python dependencies and access to the host's GPU.

Prerequisites

  1. NVIDIA GPU & Drivers: A compatible NVIDIA GPU with recent drivers installed on your host machine.
  2. NVIDIA Container Toolkit: You must install this on your host to allow Docker to use the GPU. For Debian/Ubuntu-based systems, you can do so by running the following command block in your terminal: bash curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list \ && sudo apt-get update \ && sudo apt-get install -y nvidia-container-toolkit \ && sudo nvidia-ctk runtime configure --runtime=docker \ && sudo systemctl restart docker
  3. Docker & Docker Compose: This project uses Docker Compose V1.
    • Ensure Docker is installed on your system.
    • Install Docker Compose V1 (if not already present) by running: bash LATEST_COMPOSE_V1="1.29.2" sudo curl -L "https://github.com/docker/compose/releases/download/${LATEST_COMPOSE_V1}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
  4. API Keys: Create a .env file in the project root by copying the example: bash cp .env.example .env Then, edit the .env file and fill in your GITHUB_TOKEN, and BAILIAN_API_KEY.

Step 1: Build and Start All Services

This single command will build the base CUDA image, the Neo4j image, and the final application image, then start all services in the background.

bash docker-compose up -d --build

Step 2: Run the Repair Pipeline

Execute the repair script inside the application container. The container will have access to the GPU.

```bash docker-compose exec app bash runrepair.sh <instanceid>

Example:

docker-compose exec app bash runrepair.sh astropy_astropy-12907 ```

Step 3: Stopping the Environment bash docker-compose down -v

Citation

If you use KGCompass in your research, please cite the following paper:

bibtex @article{yang2025enhancing, title={Enhancing Repository-Level Software Repair via Repository-Aware Knowledge Graphs}, author={Yang, Boyang and Tian, Haoye and Ren, Jiadong and Jin, Shunfu and Liu, Yang and Liu, Feng and Le, Bach}, journal={arXiv preprint arXiv:2503.21710}, year={2025} }

Owner

  • Name: GLEAM Lab
  • Login: GLEAM-Lab
  • Kind: organization
  • Email: yby@ieee.org

Generative Llm-based software Engineering & Automated Maintenance Laboratory

Citation (CITATION.cff)

cff-version: "1.2.0"
message: "如果您在研究中使用 KGCompass,请引用下面的文章。"
authors:
  - family-names: Yang
    given-names: Boyang
  - family-names: Tian
    given-names: Haoye
  - family-names: Ren
    given-names: Jiadong
  - family-names: Jin
    given-names: Shunfu
  - family-names: Liu
    given-names: Yang
  - family-names: Liu
    given-names: Feng
  - family-names: Le
    given-names: Bach
title: "KGCompass"
version: "0.1.0"
license: "MIT"
preferred-citation:
  type: article
  authors:
    - family-names: Yang
      given-names: Boyang
    - family-names: Tian
      given-names: Haoye
    - family-names: Ren
      given-names: Jiadong
    - family-names: Jin
      given-names: Shunfu
    - family-names: Liu
      given-names: Yang
    - family-names: Liu
      given-names: Feng
    - family-names: Le
      given-names: Bach
  title: "Enhancing Repository-Level Software Repair via Repository-Aware Knowledge Graphs"
  year: "2025"
  journal: "arXiv preprint arXiv:2503.21710" 

GitHub Events

Total
  • Issues event: 1
  • Watch event: 4
  • Push event: 4
  • Pull request event: 1
  • Create event: 3
Last Year
  • Issues event: 1
  • Watch event: 4
  • Push event: 4
  • Pull request event: 1
  • Create event: 3