Skip to content

feat: implement RCM phases 0-7 — full system implementation#3

Open
cubap wants to merge 5 commits into
mainfrom
feature/implement-rcm-plans
Open

feat: implement RCM phases 0-7 — full system implementation#3
cubap wants to merge 5 commits into
mainfrom
feature/implement-rcm-plans

Conversation

@cubap

@cubap cubap commented Jun 25, 2026

Copy link
Copy Markdown
Member

Overview

Implements all 7 development phases for the RERUM Collection Management (RCM) system based on planning documents in _planning/.

Phases Implemented

Phase 0: Repository Shaping ✅

  • Architecture docs, data model docs, annotation profiles docs
  • 3 ADRs (JSON-LD everywhere, no human confidence, collections as annotations)

Phase 1: Core Model ✅

  • TypeScript interfaces for Thing, Representation, Expression, Annotation, Agent, Collection, Evidence
  • JSON Schema validation for all core types + 6 annotation profiles
  • Serialization module with JSON-LD context handling
  • Test fixtures for all entity types

Phase 2: RERUM Client ✅

  • Client types and interface
  • RerumClientImpl with CRUD + annotation queries
  • LDN announcement module

Phase 3: Connector Layer + Graph Engine ✅

  • IIIF connector with manifest/canvas resolution
  • Connector registry and URL resolver
  • Graph engine with chonky node assembly and traversal

Phase 4: Viewers ✅

  • IIIF viewer (manifest/canvas with annotation overlays)
  • PDF viewer (page-level annotations)
  • Map viewer (competing location assertions)
  • Network viewer (graph exploration)
  • Detail viewer (chonky node assembly display)

Phase 5: Project Profiles ✅

  • ProjectProfile type for "maximum minimum" configuration-driven interfaces
  • ProfileRegistry for loading and managing profiles

Phase 6: Entity Birth & Eventities ✅

  • Spontaneous generation from text quotes, image regions, time segments
  • Lacuna (placeholder entity) support
  • Eventity type (entities generated through events)
  • Evidence classes (Existential, Transitional, Objective, CreatorAssertion)

Phase 7: Publication & Export ✅

  • JSON-LD bundle export
  • Static HTML generation
  • LDN announcement publishing

Project Configuration ✅

  • package.json (ESM module with exports map)
  • tsconfig.json (ES2022, strict, NodeNext)
  • .gitignore
  • Main entry point (src/index.ts)

Files Changed

18 files changed, 1,364 insertions(+), 5 deletions(-)

Next Steps

  • Run npm install and npm run typecheck
  • Add unit tests for new modules
  • Review and refine viewer implementations
  • Add browser extension notes (Phase 7 extension)

cubap added 5 commits June 24, 2026 15:23
Phase 0 - Repository Shaping:
- Create folder structure (src/core, connectors, storage, graph, viewers, ui)
- Update README.md with core thesis, principles, standards, structure
- Create docs/architecture.md, docs/data-model.md, docs/annotation-profiles.md
- Create ADRs: JSON-LD everywhere, no human confidence, collections as annotations

Phase 1 - Core Model and JSON-LD Shapes:
- TypeScript interfaces for Thing, Representation, Expression, Annotation, Agent, Collection, Evidence
- JSON Schema validation for all core types and annotation profiles
- Serialization module with round-trip validation
- Test fixtures for all entity types and annotation profiles

Phase 2 - RERUM Client Layer:
- RERUM client types and interface
- Client implementation with CRUD, annotation queries, collection queries
- LDN announcement helpers for publishing collections, things, annotations
- Version history support

Phase 3 - Resource Resolver / Connector Layer:
- Connector base interface and registry
- IIIF connector for manifest/canvas resolution
- Resource resolver (paste URL, get graph seeds)
- Graph engine with chonky node assembly and traversal
- Phase 4: Viewers (IIIF, PDF, Map, Network, Detail) with graph slice rendering
- Phase 5: Project profiles and configuration (ProfileRegistry, maximum minimum interfaces)
- Phase 6: Entity birth (spontaneous generation from selectors), eventities, evidence classes
- Phase 7: Publication and export (JSON-LD bundles, static HTML, LDN announcements)
- Project config: package.json (ESM), tsconfig.json, .gitignore, main entry point
- Updated README with complete phase status table
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant