A Spring Boot microservice that analyzes GitHub repositories containing ontology files, extracts their change history, and transforms it into WebProtégé-compatible revision documents stored in cloud storage.
The WebProtégé GitHub Ontology Clone Service is a specialized microservice designed to bridge the gap between Git-based ontology development and WebProtégé collaborative editing. It analyzes the evolution of ontology files (OWL, RDF, TTL) within GitHub repositories by tracking axiom-level changes across commit history, then converts this information into WebProtégé's internal revision format for seamless integration.
This service enables teams to import existing ontology projects from GitHub into WebProtégé while preserving the complete development history, making it valuable for collaborative ontology editing, research projects, and ontology maintenance workflows.
- Git Repository Analysis: Traverses GitHub repository commit history using the github-commit-navigator library
- Ontology File Processing: Loads and parses ontology files using the OWL API
- Axiom-Level Change Tracking: Identifies individual axiom additions and removals between consecutive commits
- WebProtégé Integration: Converts change history into WebProtégé-compatible revision documents
- Cloud Storage: Stores generated revision documents in MinIO-compatible object storage
- Message-Driven Architecture: Processes requests via RabbitMQ for scalable async operations
- Request Processing: Receives GitHub repository analysis requests via RabbitMQ
- Repository Navigation: Traverses Git commit history backwards from HEAD
- Change Detection: Compares consecutive ontology versions to identify axiom-level differences
- Revision Generation: Converts changes into WebProtégé revision document format
- Storage: Stores the generated revision document in MinIO cloud storage
- Response: Returns storage location and metadata via RabbitMQ response queue
- Java 17 or higher: Required for modern language features and Spring Boot 3.x
- Docker: For containerized deployment (optional but recommended)
- RabbitMQ: Message broker for request/response handling
- MinIO or S3-compatible storage: For storing generated revision documents
- Maven 3.6 or higher: For building and dependency management
- Docker (optional): For building container images
# Clean and compile
mvn clean compile
# Run tests
mvn test
# Build the application
mvn clean package
# Skip tests during build
mvn clean package -DskipTests
# Auto-format code with Google Java Style
mvn spotless:apply
# Check code formatting
mvn spotless:check
# Run static analysis with SpotBugs
mvn spotbugs:check
# Run with Maven
mvn spring-boot:run
# Build Docker image (automatically done during package phase)
mvn clean package
# Manual Docker build
docker build -f Dockerfile --build-arg JAR_FILE=webprotege-gh-ontology-clone-service-1.0.0.jar -t protegeproject/webprotege-gh-ontology-clone-service:1.0.0 .