This project is a web application built using React and Vite that allows users to validate RDF data against SHACL shapes. The app provides an easy-to-use interface where you can upload .ttl
(Turtle) files for both RDF data and SHACL shapes, either by selecting files or using the drag-and-drop functionality. Users can also input RDF and SHACL data manually. After validation, a report is generated displaying any validation errors if they exist.
- RDF and SHACL File Uploads: Select or drag-and-drop
.ttl
files for RDF data and SHACL shapes. - Manual Input: Type RDF and SHACL data directly into the input fields.
- Validation Report: Upon validation, the application generates a detailed report highlighting any errors found.
- Architecture: FSD (Feature-Sliced Design) approach for clean, maintainable, and scalable project architecture. For more information, visit Feature-Sliced Design.
- Styling: The app uses
sass
and thescss modules
approach to ensure style encapsulation and avoid global CSS conflicts. - UI Components: All user interface elements are built using MUI (Material-UI) for a polished and responsive design. Learn more about MUI at MUI Official Website.
- State Management: The application uses
react-redux
and@reduxjs/toolkit
for efficient and scalable state management. - Report Processing: Validation reports are processed using the
jsonld
andn3
libraries for handling JSON-LD data and working with RDF triples.
-
Clone the Repository:
git clone https://github.com/Anastasia520/RDF-SHACL-Validator.git cd RDF-SHACL-Validator
-
Install Dependencies:
npm install
-
Run the Application:
npm run dev
-
Open the app in your browser by visiting:
http://localhost:8000
docker build -t anastasia520/rdf-shacl-validator:latest .
You can use the provided docker-compose.yml
to run the API and frontend together.
Please note that you need to build the caviri/shaclapi:latest
Docker image following the instructions in this repository beforehand. It has the CORS headers enabling the origin http://localhost:8000
added.
Once you have built both containers, you can verify that they are available with:
docker images
The output should be something like:
REPOSITORY TAG IMAGE ID CREATED SIZE
caviri/shaclapi latest 9507107b572f 5 minutes ago 1.03GB
anastasia520/rdf-shacl-validator latest a2507d6ccf3a 7 minutes ago 309MB
Finally, to run the validator with frontend, you can use:
docker compose up
NOTE: Some older versions of Docker require using docker-compose up
instead.