Back to projects

Imperial final-year project

Semantic Web Schema and Data Visualiser

A tool to visualize RDF schema and databases, built with React, Python, Flask, and MongoDB.

Technology

  • React
  • Python
  • Flask
  • MongoDB
  • RDF
  • Semantic Web
View project

Overview

Developed as part of my academic curriculum, the Semantic Web Schema and Data Visualiser is a powerful tool designed to help users understand and interact with RDF (Resource Description Framework) data. The application provides an intuitive interface for visualizing complex semantic web schemas and their underlying data relationships.

Key Features

  • Interactive Visualization: Renders RDF schemas as interactive graphs for better comprehension
  • Multi-Format Support: Imports and processes RDF data in various formats (Turtle, RDF/XML, JSON-LD)
  • Query Interface: Allows users to execute SPARQL queries directly within the application
  • Schema Exploration: Enables exploration of class hierarchies and property relationships
  • Data Preview: Displays instance data in a tabular format for easy inspection

Technical Implementation

  • Frontend: Built with React for a responsive and interactive user interface
  • Visualization: Utilizes D3.js for rendering complex graph structures
  • Backend: Python with Flask for handling RDF processing and query execution
  • Database: MongoDB for storing and retrieving RDF data efficiently
  • RDF Processing: Uses RDFlib for parsing and manipulating RDF data

Impact

  • Simplifies the understanding of complex semantic web schemas
  • Enhances productivity for developers working with RDF data
  • Provides educational value for students learning about semantic web technologies
  • Facilitates better data modeling and ontology design

Challenges & Solutions

  • Challenge: Rendering large RDF graphs efficiently Solution: Implemented graph simplification algorithms and level-of-detail rendering

  • Challenge: Supporting multiple RDF serialization formats Solution: Integrated RDFlib's comprehensive parser support

Future Enhancements

  • Add collaborative features for team-based schema design
  • Implement version control integration for tracking schema evolution
  • Develop plugins for popular IDEs to bring visualization capabilities into development workflows
  • Add support for additional semantic web standards like SHACL and SHACL-SPARQL