A visualization-based tool for evaluating and comparing multiple dimensions of metadata quality in semantic data, with a focus on Digital Cultural Heritage collections. The tool supports query-based selection of collections, quality dimensions, and visualizes results to enable analysis and comparison within and across collections.
The application is divided into two independent services:
- Dash Frontend
- FastAPI Backend
Implemented using:
- Dash
- Plotly
- Dash Bootstrap Components
Responsibilities:
- Dataset configuration
- Metric selection
- Ontology scope filtering
- Interactive visualization
- Analysis and comparison views
Implemented using:
- FastAPI
- RDFLib
- pySHACL
Responsibilities:
- Datasorce processing through
- RDF parsing
- SPARQL querying
- Metric execution
- Ontology extraction
- Result aggregation
- Python 3.11+ recommended
- pip
- virtualenv
- Clone the repository
- Setup Backend and Frontend
- Open the
backend/andfrontend/folders - For each of them create a virtual environment
- For each of them install dependencies Windows
- Open the
cd backend python -m venv venv venv\Scripts\activateLinux / macOS
cd backend python -m venv venv source venv/bin/activatepip install -r requirements.txt- Start the Backend
Open the terminal inside
backend/and run
uvicorn main:app --reload The API will be available at: http://127.0.0.1:8000
- Start the Frontend
Open a second terminal inside
frontend/and activate the frontend virtual environment. Run:
python app.pyThe Dash frontend will be available at: http://127.0.0.1:8050
The backend can be tested separately from the Frontend
http://127.0.0.1:8000/docs exposes all available requests.
An example request body for evaluate
{
"datasets": [
{
"dataset_id": "local_file_test",
"label": "Local Turtle Test",
"source_config": {
"type": "rdf_file",
"file_path": "tests/resources/valid.ttl",
"format": "turtle"
}
},
{
"dataset_id": "dbpedia_artworks",
"label": "DBpedia Artworks",
"source_config": {
"type": "sparql_endpoint",
"endpoint_url": "https://dbpedia.org/sparql",
"query": "CONSTRUCT { ?s ?p ?o } WHERE { { SELECT DISTINCT ?s WHERE { ?s a <http://dbpedia.org/ontology/Artwork> . } LIMIT 10 } ?s ?p ?o . }"
}
}
],
"metrics": [
{
"metric_id": "structural_completeness"
},
{
"metric_id": "property_completeness"
}
]
}