RDFArchitect is a web-based tool for visualizing, editing, and sharing RDFS schemas with CIM extensions - as used in CGMES and the ENTSO-e network code profiles — along with their SHACL constraints.
It is an open source alternative to proprietary CIM/RDF modeling tools.
RDFArchitect combines a Java/Spring backend and a Svelte frontend to provide a practical modeling workflow for CIM-based RDF schemas. The application supports importing, editing, sharing, comparing, validating, and exporting schemas with an interactive UI.
Diagrams can be easily shared as a complete, browsable reference of classes, relations, attributes, enumerations, notes, and SHACL shapes - no modeling tool or download required.
The main editor combines schema navigation, package-focused diagram rendering, and context-sensitive actions for importing, versioning, and validation.
Class editing stays close to the model: labels, packages, inheritance, attributes, associations, enum entries, comments, and class-specific SHACL constraints are all available from the same workspace.
RDFArchitect also supports release workflows such as schema comparison, change review, and SHACL inspection without leaving the application.
For the complete documentation, see the docs site.
- Import and export RDF schemas and CIM extensions
- Visualize class structures via UML diagrams
- Edit classes, attributes, associations, enum entries, and notes
- Share diagrams as a complete, read-friendly reference of classes, relations, notes, and constraints
- Schema migration between CIM versions and extensions
- Compare schemas and inspect change history
- Comprehensive SHACL support:
- Generate SHACL rules covering everything in the schema
- Import and manage custom SHACL shapes
- Inspect shapes in context - directly on their target classes and properties
- Backend: Spring Boot service in
backend/(default runtime port8080) - Frontend: SvelteKit app in
frontend/(dev server on1407) - Gateway (local Docker): Nginx proxy in
docker/docker-compose.yamlexposed on3000/routes to frontend/apiroutes to backend
- Java 25 or higher
- Maven 3.9.9 or higher
- Node.js 24 or higher
- npm 11 or higher
- Docker and Docker Compose (optional, for containerized local setup)
- Start backend:
cd backend
mvn spring-boot:run- Start frontend in a separate terminal:
cd frontend
npm install
npm run dev- Open the frontend at
http://localhost:1407.
cd docker
docker compose up --buildOpen http://localhost:3000.
Backend config (backend/src/main/resources):
frontend.url(default:http://localhost:1407)frontend.accessRoute(default:/api)database.http.endpoint(default:http://localhost:3030)database.defaultDataset(default:default)
Frontend runtime config:
PUBLIC_BACKEND_URLcontrols API base URL (Docker default:/api)- In container deployments, this is injected via
frontend/docker-entrypoint.sh
When the backend is running, Swagger UI is available at:
http://localhost:8080/swagger-ui.html
cd backend
mvn -B spotless:apply
mvn -B -Plint -DskipTests verify
mvn -B test
mvn -B verifycd frontend
npm run clean-install
npm run test
npm run lint
npm run buildAfter installing pre-commit, enable the repo-local hooks with:
pre-commit installBackend hooks run for staged backend changes. Frontend hooks run for staged frontend changes.
Hooks call mvn and npm directly. Make sure mvn, npm, and pre-commit are available on PATH.
Please see CONTRIBUTING.md for development and pull request guidelines.
Please see SECURITY.md for responsible vulnerability reporting.
Please see SUPPORT.md for usage help, issue routing, and support options.
See CHANGELOG.md for release history.
This project is licensed under the Apache License 2.0. See LICENSE.
