Evaluación de calidad para metadatos DCAT-AP-ES
Aplicación web para validar catálogos RDF contra formas SHACL y analizar informes de validación.
- Perfiles de aplicación: formas SHACL preconfigurados para DCAT-AP-ES, NTI-RISP (2013) y DCAT-AP,
- SHACL personalizado: sube tus propios shapes SHACL para reglas de validación personalizadas
- Visor de informes: importa y analiza informes de validación SHACL existentes (formato Turtle)
- Panel de control: gráficos interactivos con desglose por severidad y shapes más problemáticos
- RDF Snapshot: estadísticas en tiempo real de recursos detectados (catálogos, datasets, distribuciones)
- Métricas avanzadas: desglose por propiedades, distribución de nodos focales y análisis de restricciones
- Entrada directa: editor Monaco con resaltado de sintaxis para formatos RDF
- Carga de archivos: arrastra y suelta o busca archivos TTL/JSON-LD con streaming por fragmentos
- Carga desde URL: obtén y valida catálogos remotos
- Informes TTL enriquecidos: exportaciones Turtle mejoradas con metadatos (creador, información del perfil, descripciones)
- Descargas CSV: exportaciones compatibles con hojas de cálculo para filtrar por severidad
- Exportación por Segmentos: descarga errores (violaciones), recomendaciones (advertencias) e informaciones por separado
Contenido educativo explicando los conceptos de RDF, SHACL y catálogos de datos.
Formas SHACL preconfiguradas para Perfiles de Aplicación {DCAT-AP-ES, NTI-RISP (2013), DCAT-AP}.

Sube tus propias formas SHACL para reglas de validación personalizadas.
Editor Monaco con resaltado de sintaxis y vista previa RDF en JSON-LD.
Informe de validación completo con hallazgos detallados y snapshot RDF.
Importa informes SHACL existentes y analízalos con gráficos interactivos.
Terminología con búsqueda para comprender informes de validación.
- Node.js 18+ y npm
# Clonar el repositorio
git clone https://github.com/mjanez/shacl-validator.git
cd shacl-validator
# Instalar dependencias
npm install# Iniciar servidor de desarrollo
npm run devAplicación disponible en http://localhost:3000
# Compilar para producción
npm run buildArchivos estáticos generados en el directorio dist/.
# Desplegar en rama gh-pages
npm run deploy| Categoría | Tecnologías |
|---|---|
| Framework | React 19 + TypeScript |
| Herramienta de Build | Vite 7.3 con SWC |
| Motor SHACL | shacl-engine 1.1 (carga diferida) |
| Parseo RDF | N3.js, rdfxml-streaming-parser, jsonld |
| Editor | Monaco Editor |
| Componentes UI | Primitivos Radix UI |
| Estilos | Tailwind CSS 3 |
| Gráficos | Recharts con D3 |
| i18n | i18next + react-i18next |
shacl-validator/
├── src/
│ ├── components/
│ │ ├── Validator/ # Interfaz de validación RDF
│ │ │ ├── ValidatorInput.tsx
│ │ │ └── ValidationResults.tsx
│ │ ├── Viewer/ # Interfaz de análisis de informes
│ │ │ └── ReportViewer.tsx
│ │ ├── Guide/ # Contenido educativo
│ │ │ └── EducationalContent.tsx
│ │ ├── Settings/ # Panel de configuración
│ │ │ └── SettingsPanel.tsx
│ │ ├── layout/ # Componentes de estructura
│ │ │ ├── Layout.tsx
│ │ │ ├── Sidebar.tsx
│ │ │ ├── FloatingRdfStats.tsx
│ │ │ └── CommandPalette.tsx
│ │ └── ui/ # Componentes UI reutilizables
│ ├── services/
│ │ ├── SHACLValidationService.ts # Lógica de validación SHACL
│ │ ├── RDFService.ts # Parseo y conversión RDF
│ │ └── DataDiscoveryService.ts # Detección de recursos
│ ├── config/
│ │ └── mqa-config.json # Definiciones de perfiles
│ ├── workers/
│ │ └── reportWorker.ts # Web Worker para procesamiento pesado
│ └── types/
│ ├── types.ts
│ └── dataQuality.ts
└── public/
└── locales/ # Traducciones i18n
├── en/
└── es/Edita src/config/mqa-config.json para añadir o modificar perfiles de validación:
{
"profiles": {
"dcat_ap_es": {
"name": "DCAT-AP-ES",
"defaultVersion": "1.0.0",
"defaultBranch": "main",
"versions": {
"1.0.0": {
"name": "DCAT-AP-ES 1.0.0",
"url": "https://datosgobes.github.io/DCAT-AP-ES/",
"shaclFiles": [
"https://raw.githubusercontent.com/datosgobes/DCAT-AP-ES/{branch}/shacl/1.0.0/dcat_ap_es.ttl"
]
}
}
}
}
}Tip
Si necesitas usar archivos SHACL locales para desarrollo, consulta la guía scripts/README-local-shacl.md.
Vite utiliza import.meta.env:
BASE_URL: Ruta base para despliegue (por defecto:/)MODE: Modo de desarrollo o producción
¡Las contribuciones son bienvenidas! Por favor, sigue estos pasos:
- Haz un fork del repositorio
- Crea una rama de característica (
git checkout -b feature/custom-feature) - Commitea tus cambios (
git commit -m 'feat: añade custom feature') - Haz push a la rama (
git push origin feature/custom-feature) - Abre un Pull Request
CC-BY-4.0 - Copyright (c) 2025 mjanez
- SHACL W3C Recommendation
- Perfil de Aplicación DCAT para portales de datos en Europa (DCAT-AP)
- Perfil de Aplicación DCAT-AP de España (DCAT-AP-ES)
- shacl-engine para validación SHACL
- Monaco Editor para edición de código





