OpenRiC Package Architecture

Last updated: 2026-03-28 15:16:39

OpenRiC Package Architecture

OpenRiC is built as a standalone Laravel 12 platform with a monorepo package architecture. All Heratio functionality has been adapted into independent OpenRiC packages under the OpenRiC\ namespace.

Core Packages

Package Namespace Purpose
openric-core OpenRiC\Core\ Settings, shared traits, base services
openric-triplestore OpenRiC\Triplestore\ TriplestoreService interface + Fuseki implementation
openric-theme OpenRiC\Theme\ Bootstrap 5 layouts, WCAG AA, view switch
openric-auth OpenRiC\Auth\ Authentication, ACL, roles, security clearance
openric-audit OpenRiC\Audit\ Audit trail and change logging
openric-provenance OpenRiC\Provenance\ RDF-Star provenance, Activity model

Entity Packages

Package Namespace RiC-O Entities
openric-record-manage OpenRiC\RecordManage\ Record, RecordSet, RecordPart
openric-agent-manage OpenRiC\AgentManage\ Person, CorporateBody, Family
openric-place-manage OpenRiC\PlaceManage\ Place
openric-activity-manage OpenRiC\ActivityManage\ Activity, Date, Mandate, Function
openric-instantiation-manage OpenRiC\InstantiationManage\ Instantiation

Feature Packages

Package Namespace Purpose
openric-search OpenRiC\Search\ Elasticsearch + Qdrant + SPARQL search
openric-ai OpenRiC\AI\ Ollama embeddings, AI-assisted description
openric-authority OpenRiC\Authority\ Wikidata/VIAF/LCNAF linking
openric-condition OpenRiC\Condition\ Spectrum condition assessments
openric-workflow OpenRiC\Workflow\ Multi-step approval workflows

Plugin Architecture

OpenRiC works fully as a standalone platform with all plugins disabled. Each package:

  • Has its own composer.json with Laravel auto-discovery
  • Implements OpenRiC\Contracts\* interfaces
  • Is symlinked via composer path repositories
  • Can be enabled/disabled independently

Relationship to Heratio

All packages are adapted from Heratio's battle-tested code but rewritten under the OpenRiC\ namespace with:

  • PostgreSQL instead of MySQL
  • TriplestoreService instead of direct Fuseki calls
  • Clean Laravel 12 patterns (no Symfony/AtoM dependencies)
  • Interface + implementation for every service

Technology Stack

  • PHP 8.3 / Laravel 12
  • PostgreSQL 16 (operational data)
  • Apache Jena Fuseki (RiC-O triplestore)
  • Elasticsearch (full-text search)
  • Qdrant (vector/semantic search)
  • Ollama (AI embeddings)
  • Bootstrap 5 (WCAG 2.1 Level AA)
  • Vite (frontend build)

License

AGPL-3.0-or-later


Comments (0)

Log in or register to leave a comment.
On this page