OpenRiC is a complete GLAM (Galleries, Libraries, Archives, Museums) and DAM (Digital Asset Management) platform that stores every piece of description as linked data using the international RiC-O standard. Archivists, librarians, and curators work with familiar forms (ISAD(G), ISAAR-CPF, Spectrum). Behind the scenes, everything is stored as a knowledge graph — connected, queryable, and exportable in any format.
OpenRiC covers the full lifecycle: description, access control, workflow approval, condition assessment, digital asset management, provenance tracking, discovery, export, and publication.
Traditional archival systems store descriptions in rigid database tables designed around hierarchical standards from the 1990s. When the international archival community developed Records in Contexts (RiC) — a modern, graph-based standard — existing systems treated it as an export format, not a storage layer.
OpenRiC is the first platform built from the ground up with RiC as its native data model. This means:
Create and manage descriptions for 10 types of archival entities:
| Entity | What It Represents |
|---|---|
| Record Set | A fonds, series, sub-series, or file |
| Record | An individual item |
| Record Part | A fragment or component of an item |
| Person | An individual (creator, subject, custodian) |
| Corporate Body | An organisation |
| Family | A family unit |
| Activity | An event, process, or transaction |
| Place | A geographic location |
| Mandate | A law, regulation, or source of authority |
| Function | A functional classification |
| Instantiation | A physical or digital carrier (the actual document, photo, file) |
Each entity supports full create, read, update, and delete operations. Entities are connected to each other through named relationships — "this record was created by this person," "this series is held by this repository," "this item is part of this file."
Every record can be viewed three ways:
Toggle between them with a single click. The data is the same — only the presentation changes.
Export individual records or entire hierarchies in:
Bulk export is supported — select multiple entities and export them all at once.
The built-in OAI-PMH 2.0 endpoint allows aggregators and union catalogues to harvest your descriptions automatically. Records are served as Dublin Core, mapped from the underlying RiC-O triples.
Every change to every piece of data is tracked at two levels:
You can view the full history of any entity — a combined timeline showing both the RDF-Star annotations and the PostgreSQL audit log.
Activities (creation, accumulation, transfer, management, digitisation, preservation) are modelled as first-class entities linked to the records they affected, the agents who participated, and the dates they occurred.
Multi-level security classification from Unclassified to Top Secret:
Multi-step workflows for description approval:
Connect your agents to international authority files:
Links are stored as owl:sameAs triples in the graph, making your data part of the global linked data web.
Track the physical condition of archival material following the Spectrum 5.0 standard:
Using local AI models (Ollama), OpenRiC can:
OpenRiC is a Laravel 12 application (PHP 8.3) with a plugin architecture. The core system works standalone. Every feature is an independent package that can be enabled or disabled.
18 packages:
| Category | Packages |
|---|---|
| Core | core, triplestore, theme, auth, audit |
| Entities | record-manage, agent-manage, place-manage, activity-manage, instantiation-manage |
| Features | search, ai, authority, condition, workflow, provenance, export, graph |
Infrastructure:
The triplestore is abstracted behind an interface — institutions can substitute GraphDB, Oxigraph, or Virtuoso without changing application code.
OpenRiC is not just an archival description tool — it is a full GLAM platform with digital asset management:
| GLAM Function | How OpenRiC Delivers It |
|---|---|
| Archival Description | 10 RiC-O entity types with ISAD(G) and ISAAR-CPF forms |
| Authority Control | Agent management (Person, CorporateBody, Family) with Wikidata/VIAF/LCNAF linking |
| Digital Asset Management | Instantiation entity for physical and digital carriers, IIIF manifests, condition tracking |
| Access Control | 5-level security classification, compartments, access requests, clearance management |
| Workflow | Multi-step approval workflows, pool-based assignment, publish readiness gates |
| Condition Management | Spectrum 5.0 condition assessments with conservation priority and scheduled reassessment |
| Discovery | Full-text search (Elasticsearch), semantic search (Qdrant/AI), faceted browse, SPARQL |
| Interoperability | EAD3, EAC-CPF, JSON-LD, Turtle, RDF/XML, Dublin Core, OAI-PMH, IIIF |
| Provenance | RDF-Star triple-level annotations, Activity model, custody chain, description history |
| Audit | Complete change tracking with old/new values, statistics, user activity, export |
| AI | Ollama embeddings, semantic similarity, AI-assisted description suggestions |
| Standard | How OpenRiC Uses It |
|---|---|
| RiC-O 1.1 | Native storage layer — all data stored as RiC-O triples |
| RiC-CM 1.0 | Conceptual model — entities and relationships follow RiC-CM |
| ISAD(G) | Input form and view lens — all 26 elements mapped to RiC-O |
| ISAAR-CPF | Input form and view lens for authority records |
| EAD3 | Export format — generated from SPARQL |
| EAC-CPF | Export format for authority records |
| OAI-PMH 2.0 | Harvesting endpoint — Dublin Core from RiC-O |
| Dublin Core | Metadata export and OAI-PMH output |
| IIIF 3.0 | Presentation API manifests for digital objects |
| RDF-Star | Provenance annotations on every triple |
| PROV-O | Description provenance mapping |
| Spectrum 5.0 | Condition assessment framework |
| WCAG 2.1 AA | Accessibility compliance on all UI |
| Metric | Count |
|---|---|
| Packages | 18 |
| Source files | 264 |
| Service code | 9,297 lines |
| Routes | 143 |
| Database tables | 24 |
| Permissions | 71 |
| Entity types | 10 + relationships |
| Export formats | 7 |
| Search backends | 3 (Elasticsearch, Qdrant, SPARQL) |
| Phase | Version | What Was Delivered |
|---|---|---|
| Phase 1 — Foundation | v0.1.0 | Laravel 12 skeleton, PostgreSQL, Fuseki triplestore, 18-package plugin architecture, Bootstrap 5 theme (WCAG AA), authentication + ACL + security clearance, audit trail, 10 RiC-O entity types with full CRUD (91 routes), view switch (RiC/Traditional) |
| Phase 2 — Traditional Lenses | v0.2.0 | ISAD(G) views for all record entities (26 elements), ISAAR-CPF views for all agent entities, Standards mapping service + admin UI, hierarchical browse (fonds→item tree), traditional finding aid print view, relationship CRUD UI |
| Phase 3 — Graph View | v0.3.0 | Cytoscape.js force-directed graph visualisation, entity-centred graph with colour-coded types, agent network view (who created what), timeline view (date-based traversal), three-way toggle (RiC/Traditional/Graph), JSON API for graph data |
| Phase 4 — Provenance + Audit | v0.4.0 | All 6 core services rewritten from production codebase: SecurityClearanceService (407 lines), WorkflowService (898), SearchService (913), AuthorityService (790), ProvenanceService (423), AuditService (301). RDF-Star provenance, description-as-Record per RiC-CM Section 6, certainty annotations, PROV-O mapping, description history view |
| Phase 5 — Discovery | v0.5.0 | Public SPARQL endpoint with query UI, OAI-PMH 2.0 harvesting (all 6 verbs, Dublin Core from RiC-O), faceted browse with entity type + creator facets, full-text search (Elasticsearch), semantic search (Qdrant) |
| Phase 6 — Export | v0.6.0 | openric-export package (2,078 lines): EAD3 (recursive hierarchy), EAC-CPF, JSON-LD, Turtle, RDF/XML, Dublin Core, IIIF Presentation API 3.0 manifests + collections, bulk export |
| Phase 7 — Workflow + Publication | v0.7.0 | Workflow UI (2,087 lines, 9 views): dashboard, task management (claim/release/approve/reject), workflow admin (create/edit/delete + steps), publish readiness gate evaluation, overdue monitoring, pool-based assignment |
OpenRiC — open source, RiC-O native, GLAM/DAM platform for the international archival community. AGPL-3.0 | Developed by The Archive and Heritage Group — theahg.co.za