Tecnología

La tecnología de datos.gob.es se basa en una arquitectura Open Source que combina diferentes componentes para cubrir las necesidades funcionales del proyecto.

La plataforma datos.gob.es integra principalmente una herramienta de gestión de contenidos, un módulo multidioma que permite una navegación simétrica para cada uno de los idiomas, un gestor del catálogo de datos, un motor de federación para integrar los catálogos de datos de los organismos publicadores, una solución de Linked Data API y un punto de consulta SPARQL.

Diagrama de arquitectura

A continuación se puede observar un diagrama de arquitectura de alto nivel y una breve descripción de cada una de las capas.

Diagrama de arquitectura

  1. Proxy inverso: a través de Varnish se gestiona el enrutamiento a los cuatro servicios del proyecto: portal de contenidos, catálogo de datos, punto de consulta SPARQL y Linked Data API.
  2. Portal de contenidos: desarrollado sobre el gestor de contenidos Drupal; gestiona el contenido editorial del proyecto.
  3. Catálogo de datos: implementado sobre CKAN; contiene el repositorio único de metadatos; integra el federador que permite sincronizar con los catálogos de todos los organismos publicadores.
  4. Capa de persistencia: repositorio de datos para el portal de contenidos y el catálogo de datos; implementado en MySQL y PostgreSQL.
  5. Motor de indexación: implementado sobre Apache Solr; provee de capacidades de búsqueda tanto para el portal de contenidos como para el catálogo de datos.
  6. Punto de consulta SPARQL: implementado sobre Virtuoso de OpenLink Software como almacén de tripletas RDF; carga el grafo completo del catálogo de datos y provee de un punto de consulta SPARQL sobre el mismo. 
  7. Linked Data API: desarrollado sobre ELDA de Epimorphics; provee un RESTful API, actuando como Gateway sobre el punto de consulta SPARQL.

Código fuente

Se destacan las soluciones implementadas para los dos requisitos tecnológicos de mayor complejidad:

  • Federador: desarrollado como extensión de CKAN, a su vez tomando como referencia el motor de federación ckanext-harvest.
  • Multidioma: solución para Drupal que replica la arquitectura de navegación en todos los idiomas y permite una navegación simétrica por todos ellos, asegurando también el cumplimiento de accesibilidad de nivel AA.

GitHub LogoEl código fuente del proyecto está disponible en GitHub. Se han publicado todas las extensiones desarrolladas para CKAN, así como los módulos contrib, features y theme de Drupal.

Para cualquier consulta acerca de la tecnología de la plataforma, puede ponerse en contacto con nosotros a través del punto de consulta.