AtoM Heratio Roadmap¶
Last Updated: 2026-03-11 Framework Version: 2.8.2 Plugins: 80 SDKs: Python (atom-ahg-python) + TypeScript (atom-client-js) Heratio Migration: Phase 2 complete (12 WriteServices, Propel coupling 223→223)
Executive Summary¶
The AtoM AHG Framework+ scores 100/100 in comprehensive feature comparison against the 5 major players in the GLAM/DAM (Galleries, Libraries, Archives, Museums / Digital Asset Management) industry. This positions the framework as the undisputed market leader across all categories.
| Platform | Score | Position |
|---|---|---|
| AtoM AHG Framework+ | 100/100 | #1 Leader |
| Preservica | 69/100 | #2 |
| Axiell Collections | 62/100 | #3 |
| CollectiveAccess | 61/100 | #4 |
| ArchivesSpace | 54/100 | #5 |
| ResourceSpace | 43/100 | #6 |
Visual Comparison¶
AtoM AHG Framework+ ██████████████████████████████████████████████████ 100
Preservica ██████████████████████████████████████ 69
Axiell Collections ███████████████████████████████████ 62
CollectiveAccess ███████████████████████████████ 61
ArchivesSpace ███████████████████████████ 54
ResourceSpace ██████████████████████ 43
Repository Structure¶
| Repository | Purpose | Status |
|---|---|---|
| atom-framework | Core Laravel foundation, CLI, services | v2.8.2 |
| atom-ahg-plugins | 78 AHG plugins | v1.7.30 |
| atom-extensions-catalog | Documentation & registry | v2.1.12 |
| atom-ahg-python | Python SDK | v1.0.0 |
| atom-client-js | TypeScript SDK | v1.0.0 |
Progress Tracker (Gap Analysis)¶
Current Score: 100/100 | Target: 100/100 | Gap: 0 points
| # | Gap | Status | Points | Category |
|---|---|---|---|---|
| 1 | Speech-to-Text (Whisper) | Complete | +1 | AI & ML |
| 2 | Published SDK (Python/JS) | Complete | +1 | API & Integrations |
| 3 | PII Detection (AI) | Complete | +1 | AI & ML |
| 4 | Semantic Search | Complete | +1 | Search & Discovery |
| 5 | Format Migration Pathways | Complete | +1 | Digital Preservation |
| 6 | JSON-LD Export | Complete | +1 | Linked Data |
| 7 | IIIF Auth API | Complete | +1 | IIIF & Media |
All gaps closed. 100/100 achieved on 2026-03-11.
Completed Features (2026)¶
GAP 1: Speech-to-Text (Whisper) - COMPLETE¶
Completed: 2026-01-20 | Category: AI & ML
- Whisper API integration via OpenAI
- Generate Transcript button on video player
- View Transcript panel with clickable timestamps
- Download VTT/SRT subtitle formats
- Language detection
- Works across all GLAM/DAM sectors
Files: ahgThemeB5Plugin/modules/digitalobject/templates/_showVideo.php
GAP 2: Published SDKs - COMPLETE¶
Completed: 2026-01-22 | Category: API & Integrations
Python SDK (atom-ahg-python):
- Authentication (API key, session) - Descriptions CRUD - Authorities CRUD - Search operations - Batch operations - File upload - Async support with httpxTypeScript SDK (atom-client-js):
- Full TypeScript types - Browser and Node.js support - Async/await patterns - Same operations as PythonRepositories:
- github.com/ArchiveHeritageGroup/atom-ahg-python
- github.com/ArchiveHeritageGroup/atom-client-js
GAP 3: PII Detection (AI-Powered) - COMPLETE¶
Completed: 2026-01-21 | Category: AI & ML + Compliance
Features: - PiiDetectionService with regex patterns - NER integration (PERSON, ORG, GPE, DATE) - South African ID validation (Luhn) - Risk level classification - PII Scanner admin dashboard - Review queue workflow - ISAD Access Points scanning - PDF Redaction with viewer integration - Visual Redaction Editor
PII Types Detected: | Type | Risk Level | Method | |------|-----------|--------| | CREDIT_CARD | Critical | Regex + Luhn | | SA_ID | High | Regex + SA Luhn | | NG_NIN | High | Regex | | PASSPORT | High | Regex | | BANK_ACCOUNT | High | Regex | | PERSON | Medium | NER (spaCy) | | EMAIL | Medium | Regex | | PHONE | Medium | Regex |
Files: ahgPrivacyPlugin/lib/Service/PiiDetectionService.php
GAP 4: Semantic Search - COMPLETE¶
Completed: 2026-01-22 | Category: Search & Discovery
Plugin: ahgSemanticSearchPlugin
Features: - Thesaurus management with domain-specific synonyms - WordNet sync via Datamuse API - Wikidata SPARQL integration - Local JSON synonym import - Elasticsearch synonym export - Query expansion for enhanced search - Vector embeddings via Ollama - Scheduled sync via cron jobs
Tables:
- semantic_synonym - Term/synonym relationships
- semantic_embedding - Vector embeddings
- ahg_semantic_search_settings - Configuration
- semantic_query_log - Analytics
CLI:
php bin/semantic-search-cron.php all # Full sync
php bin/semantic-search-cron.php sync-wordnet # WordNet only
php bin/semantic-search-cron.php sync-wikidata # Wikidata only
php bin/semantic-search-cron.php update-embeddings # Embeddings
php bin/semantic-search-cron.php export-es # ES export
GAP 5: Format Migration Pathways - COMPLETE¶
Completed: 2026-03-11 | Category: Digital Preservation
Plugin: ahgPreservationPlugin
Implementation:
- MigrationPathwayService (507 lines) — pathway CRUD, recommendation engine, format assessment
- MigrationPlanService (743 lines) — plan lifecycle (draft → approved → in_progress → completed), batch processing
- 47 seed migration pathways across 5 tool families (ImageMagick, FFmpeg, Ghostscript, LibreOffice, Pandoc)
- 32 PRONOM-registered format entries with risk levels
- Format obsolescence tracking with urgency levels (critical, high, medium, low)
- 5 database tables: preservation_migration_pathway, preservation_format_obsolescence, preservation_migration_plan, preservation_migration_plan_object, preservation_format
- Admin UI at /admin/preservation/conversion
- CLI: php bin/atom preservation:migration --pathways|--obsolescence|--assess|--tools|--stats
Migration Pathway Coverage: | Category | Pathways | Tools | |----------|----------|-------| | Image → TIFF | 7 routes | ImageMagick | | PDF → PDF/A | 7 routes | Ghostscript | | Office → PDF/A | 5 routes | LibreOffice | | Audio → FLAC/WAV | 5 routes | FFmpeg | | Video → MP4/MKV | 5 routes | FFmpeg |
GAP 6: JSON-LD Export - COMPLETE¶
Completed: 2026-03-11 | Category: Linked Data
Plugin: ahgMetadataExportPlugin
Implementation:
- SchemaOrgExporter (636 lines) — maps ISAD(G) to Schema.org types (ArchiveComponent, Collection, Photograph, etc.)
- AbstractRdfExporter — base class supporting JSON-LD, Turtle, RDF/XML, N-Triples output
- RicoExporter — Records in Contexts (RIC-O) JSON-LD
- BibframeExporter — BIBFRAME JSON-LD for library data
- LinkedDataContentNegotiationFilter — Accept: application/ld+json → automatic 303 redirect
- CORS headers, Vary: Accept, Link: rel="alternate" on HTML pages
- EasyRDF integration for parsing and serialization
Endpoints:
| Route | Format |
|-------|--------|
| /{slug}.jsonld | Information object (Schema.org) |
| /repository/{slug}.jsonld | Repository (Schema.org) |
| /actor/{slug}.jsonld | Actor (Schema.org) |
| /sitemap-ld.xml | Linked data sitemap |
SEO Integration: SchemaOrgService in ahgThemeB5Plugin (680 lines) generates <script type="application/ld+json"> tags with CSP nonce on every public page.
GAP 7: IIIF Auth API - COMPLETE¶
Completed: 2026-03-11 | Category: IIIF & Media
Plugin: ahgIiifPlugin
Standard: IIIF Authentication API 1.0
Implementation:
- IiifAuthService (478 lines) — token management, access checks, 3-tier hierarchy
- 4 auth profiles: login, clickthrough, kiosk (IP-based), external (SSO)
- SHA-256 hashed token storage with HttpOnly/Secure/SameSite cookies
- 3-level access hierarchy: object → repository → ancestor inheritance (MPTT, up to 20 levels)
- Degraded access support (thumbnail-only with configurable width)
- Manifest-level integration — auth service blocks injected into IIIF manifests
- Comprehensive audit logging (iiif_auth_access_log)
- Token cleanup for expired sessions
Endpoints:
| Route | Purpose |
|-------|---------|
| /iiif/auth/login/:service | Login flow |
| /iiif/auth/token/:service | Token issuance |
| /iiif/auth/logout/:service | Logout + token revocation |
| /iiif/auth/confirm/:service | Clickthrough confirmation |
| /iiif/auth/check/:id | Access check API |
| /admin/iiif-auth | Admin dashboard |
| /admin/iiif-auth/protect | Protect resource |
| /admin/iiif-auth/unprotect | Remove protection |
Database Tables: iiif_auth_service, iiif_auth_token, iiif_auth_resource, iiif_auth_repository, iiif_auth_access_log
Overall Ratings by Category¶
| Category | AtoM AHG | ArchivesSpace | Preservica | CollectiveAccess | ResourceSpace | Axiell |
|---|---|---|---|---|---|---|
| Core Archives | 10 | 9 | 6 | 7 | 2 | 9 |
| Digital Preservation | 10 | 5 | 10 | 4 | 3 | 2 |
| API & Integrations | 10 | 8 | 9 | 6 | 6 | 7 |
| AI & ML | 10 | 2 | 9 | 2 | 6 | 2 |
| IIIF & Media | 10 | 4 | 8 | 6 | 4 | 7 |
| Compliance & Security | 10 | 5 | 8 | 4 | 5 | 6 |
| Museum Standards | 10 | 2 | 1 | 9 | 1 | 10 |
| Data Migration | 10 | 8 | 8 | 8 | 6 | 8 |
| Public Access | 10 | 7 | 7 | 7 | 8 | 7 |
| Linked Data | 10 | 4 | 3 | 8 | 2 | 4 |
| TOTAL | 100/100 | 54/100 | 69/100 | 61/100 | 43/100 | 62/100 |
Unique Advantages (No Competitor Has)¶
| Feature | Plugin | Description |
|---|---|---|
| Self-Healing Preservation | ahgPreservationPlugin | Automatic fixity repair from backup |
| RiC with Fuseki | ahgRicExplorerPlugin | Full Records in Contexts with SPARQL |
| 3D IIIF Manifests | ahg3DModelPlugin | IIIF 3.0 for 3D models with AR |
| Multi-Jurisdiction Privacy | ahgPrivacyPlugin | 7 privacy frameworks in one plugin |
| Traditional Knowledge Labels | ahgExtendedRightsPlugin | Local Contexts integration |
| Getty Auto-Linking | ahgMuseumPlugin | Confidence-scored vocabulary matching |
| SHACL Validation | ahgRicExplorerPlugin | RiC shape validation |
| Mobile Condition Capture | ahgConditionPlugin | Field assessments with photo upload |
| Integrated E-Commerce | ahgCartPlugin | PayFast/Stripe in archives |
| Heritage Accounting | ahgHeritageAccountingPlugin | GRAP 103, IPSAS 45, FRS 102, GASB 34 |
Plugin Inventory (80 Plugins)¶
Core Required (Locked)¶
| Plugin | Purpose |
|---|---|
| ahgThemeB5Plugin | Bootstrap 5 theme |
| ahgSecurityClearancePlugin | Security classification |
Sector-Specific¶
| Plugin | Purpose |
|---|---|
| ahgLibraryPlugin | MARC-inspired cataloging |
| ahgMuseumPlugin | CCO/SPECTRUM/CIDOC-CRM |
| ahgGalleryPlugin | Gallery/exhibition management |
| ahgDAMPlugin | Digital Asset Management |
AI & Advanced¶
| Plugin | Purpose |
|---|---|
| ahgNerPlugin | Named Entity Recognition |
| ahgSemanticSearchPlugin | Semantic search, thesaurus, embeddings |
| ahgMetadataExtractionPlugin | EXIF/IPTC/XMP extraction |
| ahg3DModelPlugin | 3D viewer with AR |
| ahgRicExplorerPlugin | Records in Contexts |
Preservation & Conservation¶
| Plugin | Purpose |
|---|---|
| ahgPreservationPlugin | Fixity, PRONOM, SIP/AIP/DIP |
| ahgConditionPlugin | Condition assessment |
| ahgProvenancePlugin | Chain of custody |
Compliance¶
| Plugin | Purpose |
|---|---|
| ahgPrivacyPlugin | Multi-jurisdiction privacy |
| ahgAuditTrailPlugin | Comprehensive logging |
| ahgHeritageAccountingPlugin | Heritage asset accounting |
| ahgExtendedRightsPlugin | RightsStatements.org, TK Labels |
| ahgRightsPlugin | PREMIS rights |
Research & Access¶
| Plugin | Purpose |
|---|---|
| ahgResearchPlugin | Reading room, researcher portal |
| ahgAccessRequestPlugin | Access request workflow |
| ahgRequestToPublishPlugin | Publication requests |
Commerce & Operations¶
| Plugin | Purpose |
|---|---|
| ahgCartPlugin | Shopping cart, payments |
| ahgVendorPlugin | Vendor management |
| ahgDonorAgreementPlugin | Donor tracking |
| ahgLoanPlugin | Object loan management |
Data & Integration¶
| Plugin | Purpose |
|---|---|
| ahgAPIPlugin | REST API v2 |
| ahgDataMigrationPlugin | Import/export tools |
| ahgMigrationPlugin | Data migration |
| ahgReportBuilderPlugin | Custom reports |
| ahgBackupPlugin | Automated backups |
User Experience¶
| Plugin | Purpose |
|---|---|
| ahgDisplayPlugin | Display profiles, ZoomPan |
| ahgFavoritesPlugin | User bookmarks |
| ahgFeedbackPlugin | User feedback |
| ahgIiifCollectionPlugin | IIIF collections |
| ahgSpectrumPlugin | SPECTRUM 5.0 |
Ingestion & Import¶
| Plugin | Purpose |
|---|---|
| ahgIngestPlugin | OAIS-aligned 6-step ingest wizard |
| ahgDataMigrationPlugin | GLAM/DAM CSV import/export |
Administration¶
| Plugin | Purpose |
|---|---|
| ahgSettingsPlugin | Centralized settings hub |
| ahgJobsManagePlugin | Background job management |
| ahgMenuManagePlugin | Menu/navigation management |
| ahgStaticPagePlugin | Static page management |
| ahgInformationObjectManagePlugin | Information object management |
Browse & Discovery¶
| Plugin | Purpose |
|---|---|
| ahgDisplayPlugin | GLAM display profiles, ZoomPan |
| ahgSearchPlugin | Advanced search |
| ahgUiOverridesPlugin | UI overrides, viewer dispatch |
| ahgAccessionManagePlugin | Accession browse |
| ahgActorManagePlugin | Actor browse, autocomplete |
| ahgDonorManagePlugin | Donor browse |
| ahgRepositoryManagePlugin | Repository browse |
| ahgRightsHolderManagePlugin | Rights holder browse |
| ahgStorageManagePlugin | Physical storage browse |
| ahgTermTaxonomyPlugin | Term & taxonomy browse |
Compliance Support¶
Privacy Regulations¶
| Jurisdiction | Regulation | Status |
|---|---|---|
| South Africa | POPIA, PAIA | Full |
| European Union | GDPR | Full |
| United Kingdom | UK GDPR | Full |
| Canada | PIPEDA | Full |
| Nigeria | NDPA | Full |
| Kenya | DPA | Full |
| California | CCPA | Full |
Heritage Accounting Standards¶
| Standard | Region |
|---|---|
| GRAP 103 | South Africa |
| IPSAS 45 | International |
| FRS 102 | United Kingdom |
| GASB 34 | USA State/Local |
| FASAB | USA Federal |
| AASB 116 | Australia |
| PSAB/PS 3150 | Canada |
Milestones¶
| Milestone | Score | Date |
|---|---|---|
| Initial Framework | 94/100 | 2026-01-01 |
| Speech-to-Text | 95/100 | 2026-01-20 |
| PII Detection | 96/100 | 2026-01-21 |
| SDKs + Semantic Search | 97/100 | 2026-01-22 |
| Format Migration + JSON-LD + IIIF Auth | 100/100 | 2026-03-11 |
Document History¶
| Date | Version | Changes |
|---|---|---|
| 2026-01-20 | 1.0 | Initial analysis |
| 2026-01-20 | 1.5 | Speech-to-Text complete (95/100) |
| 2026-01-21 | 1.6 | PII Detection complete (96/100) |
| 2026-01-22 | 2.0 | SDKs created, Semantic Search plugin, renamed to ROADMAP.md (97/100) |
| 2026-02-13 | 3.0 | Updated to 78 plugins, Heratio migration status, ahgIngestPlugin |
| 2026-03-11 | 4.0 | 100/100 achieved — Format Migration Pathways, JSON-LD Export, IIIF Auth API confirmed complete. 80 plugins. |
The Archive and Heritage Group (Pty) Ltd https://theahg.co.za