Transform RDF graph data models to Property Graph (PG) data models using the S3PG algorithm.
Test with included sample data:
git clone https://github.com/dkw-aau/KG2PG.git
cd KG2PG
docker build -t kg2pg:dockerImage .
cd scripts
./test_runningExample.sh→ See REPRODUCIBILITY.md - Complete guide for reproducing paper results
This guide covers:
- Hardware requirements (what you can reproduce on 8GB/32GB/64GB RAM)
- Step-by-step instructions
- Validation commands
- Common issues and solutions
- How to write your reproducibility report
Note: Paper used 256GB RAM. Different datasets have different requirements.
| Your RAM | Datasets You Can Run |
|---|---|
| 8GB+ | Running Example |
| 32GB+ | Running Example + DBpedia 2020 + Bio2RDF ✅ |
| 64GB+ | All datasets including DBpedia 2022 |
-
Download data (datasets + SHACL shapes):
-
Place in
data/directory -
Run:
docker build -t kg2pg:dockerImage . cd scripts ./run_dbp2020.sh # 32GB RAM, ~10-15 min
-
Validate:
ls -lh output/DBpedia2020/ wc -l output/DBpedia2020/*/PG_NODES_WD_LABELS.csv
→ Full instructions: REPRODUCIBILITY.md
For Reviewers:
- REPRODUCIBILITY.md ⭐ Complete reproduction guide
For Users:
- Docker Usage - Docker setup and usage
- JAR Usage - Standalone JAR instructions
- Output Format - Generated files explained
- Neo4j Import - Load data into Neo4j
- Build Instructions - Build from source
Troubleshooting:
- Validation Guide - Verify results
- Hardware Requirements - Memory requirements
- Docker Testing - Debug issues
# Download and run
wget https://github.com/dkw-aau/KG2PG/releases/download/v1.0.4/kg2pg-v1.0.4.jar
java -jar kg2pg-v1.0.4.jar➡️ See JAR_USAGE.md for complete guide
# Build Docker image
./build-docker.sh
# Build JAR
./build-jar.sh➡️ See BUILD_INSTRUCTIONS.md for complete guide
Each run generates:
PG_NODES_WD_LABELS.csv- Node labelsPG_NODES_LITERALS.csv- Literal propertiesPG_RELATIONS.csv- Relationships/edgesPG_PREFIX_MAP.csv- Namespace mappingsPG_NODES_PROPS_JSON.json- Key-value propertiesPG_SCHEMA.txt- Schema definition*_RUNTIME_LOGS.csv- Performance metrics
➡️ See OUTPUT_FORMAT.md for detailed format specs
# Quick import
docker exec neo4j neo4j-admin database import full \
--delimiter="|" --array-delimiter=";" \
--nodes=import/runningExample/PG_NODES_LITERALS.csv \
--nodes=import/runningExample/PG_NODES_WD_LABELS.csv \
--relationships=import/runningExample/PG_RELATIONS.csv \
neo4j➡️ See NEO4J_IMPORT.md for complete setup
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: JAR_USAGE.md
If you use KG2PG in your research, please cite our work:
@article{kg2pg2024,
title={KG2PG: Knowledge Graph to Property Graph Transformation using S3PG},
author={Your Authors},
journal={Your Journal},
year={2024}
}Made with ❤️ for the Knowledge Graph community