Graviola CRUD EDB Framework

Schema-getriebenes Framework für Linked Data Management mit formularbasierten Benutzeroberflächen

📅 2022 - heute🔄 aktiv in Entwicklung📄 GPL-3.0

Über das Projekt

Das Graviola CRUD Framework ist eine umfassende Lösung für die Entwicklung von Anwendungen, die Linked Data über intuitive formularbasierte Oberflächen verwalten. Ursprünglich für Kulturerbe- Institutionen entwickelt, ist es heute ein generisches Datenmanagement-Framework für komplexe Anwendungen mit semantischen Webtechnologien.

Das Graviola Framework entstand als spezialisierte Lösung für die Verwaltung von Metadaten in Kulturerbe-Institutionen unter Verwendung semantischer Webtechnologien. Der Fokus lag auf Aufführungen, Ausstellungen und Sammlungen mit geo-räumlichen ereigniszentrierten Entitäten und Normdaten-Mappings. Inzwischen hat es sich zu einem ausgereiften, generischen Framework entwickelt, das für eine Vielzahl von Anwendungen geeignet ist. Das Framework folgt einem "Convention over Configuration"-Ansatz und bietet maximale Flexibilität für Webanwendungen mit komplexen Datenmodellen. Anwender können wahlweise nur die Form-Renderer mit eigener Storage-Schicht nutzen oder vollständige Frontend-Anwendungen mit SPARQL-Endpoints aufbauen. Backend-Entwickler haben die Wahl zwischen Triple Stores oder anderen Speicheroptionen wie Prisma mit JSON-Schema, wobei stets valides JSON-LD produziert wird.

Kernfunktionen

Schema-Driven Development

Define your data model once in JSON Schema and automatically generate forms, validation, queries, and more

Linked Data Management

Seamlessly work with RDF data using familiar JSON structures

Flexible Storage Options

Use in-memory stores for development or connect to any SPARQL 1.1 endpoint, Prisma-based relational databases, or custom REST backends

Composable UI Components

Build rich interfaces with specialized form renderers and components

Client-First Architecture

Run entirely in the browser or with optional server integration

Norm Data and Secondary Data Sources

Support for norm data and secondary data sources to enrich the data model and link to entities in public linked data repositories (Wikidata, GND, DBpedia, etc.)

Declarative Mapping

Support for declarative mapping to map data from secondary data sources to the current data model

Backend-Independent Form Generation

Automatic generation of forms independent of the backend system used

Technologien

frontend

ReactTypeScriptMaterial-UI (MUI)JSON FormsReact QueryZustandViteNext.js

semantic web

RDFSPARQL 1.1JSON-LDJSON SchemaTurtleN-TriplesRDFJS StackOxigraphclownface

backend storage

SPARQL Endpoints (Jena Fuseki, Virtuoso, Blazegraph, GraphDB)Oxigraph (WebWorker/Server)Prisma ORMPostgreSQLREST APIsIn-Memory Stores

build tools

BunMonorepo-ArchitekturStorybookJestCypressDockerHusky

Architektur

Modular monorepo structure with independently usable packages

core packages

  • core-types: TypeScript type definitions
  • core-utils: Common utility functions
  • sparql-schema: JSON Schema to SPARQL conversion
  • state-hooks: React state management hooks
  • json-schema-utils: JSON Schema utilities

form rendering

  • semantic-json-form: Main form component with JSON Schema support
  • basic-renderer: Core form field renderers
  • color-picker-renderer: Color picker components
  • layout-renderer: Advanced layout renderers
  • linked-data-renderer: Renderers for linked data
  • map-libre-gl-renderer: Map integration
  • markdown-renderer: Markdown editor and preview

components

  • basic-components: Fundamental UI components
  • advanced-components: Complex UI components
  • table-components: Data table components
  • virtualized-components: Performance-optimized list components

data management

  • data-mapping: Utilities for data transformation
  • entity-finder: Components for entity search and selection
  • sparql-db-impl: SPARQL database implementation
  • prisma-db-impl: Relational database implementation with Prisma ORM
  • simple-local-data-store: In-memory data store
  • rest-store-provider: REST interface for arbitrary backend implementations
  • local-oxigraph-store-provider: Client-side Oxigraph implementation in WebWorker

Kenntnisse & Fähigkeiten

Semantic Web Technologies (RDF, SPARQL, Linked Data)
Frontend Development with React and TypeScript
Schema-Driven Software Architecture
JSON Schema and JSON-LD
Form Framework Development
Triple Store and Graph Database Management
Relational Database Integration with ORM
API Design and REST Architecture
Monorepo Management and Package Architecture
Component Library Development
Client-Side and Server-Side Rendering
WebWorker-Based Architectures
Authority Data Integration (GND, Wikidata)
Cultural Heritage Metadata Management
Docker and Container Orchestration
Test-Driven Development (Jest, Cypress)
CI/CD Pipeline Development

Anwendungsfälle

  • Metadata management for cultural heritage institutions
  • Digital exhibition catalogs
  • Knowledge bases with complex data models
  • Geo-spatial event-centered applications
  • Authority data-supported data collection
  • SPARQL-based data management systems
  • Low-code platforms for semantic databases
  • Linked Open Data portals

Besonderheiten

Convention over Configuration

Minimal configuration effort through intelligent conventions

Multi-Backend Capability

Same code for different storage backends (SPARQL, SQL, REST)

Isomorphic Architecture

Same code runs in the browser and on the server

Schema-First Approach

JSON Schema as the single source of truth for the entire system

Semantic Web Standards

Full compatibility with W3C Semantic Web standards

Developer Experience

Comprehensive Storybook documentation, TypeScript type safety, Hot Module Replacement

Projektpartner

SLUB Dresden

Co-development and production deployment

2024-2025

Einsatz

  • Foundation for various knowledge base projects
  • Framework for semantic metadata management systems