OMI-SPEC-008: Plugin Architecture
Status
Draft
Version: 0.1
Purpose
The Plugin Architecture defines how the Open Manuscript Initiative (OMI) can be extended without modifying the Core platform.
Every feature that is not part of the universal scholarly workflow should be implemented as a plugin.
This ensures modularity, interoperability, maintainability, and long-term sustainability.
Design Principles
The Plugin Architecture follows these principles:
- Core first
- Modular by design
- Stable interfaces
- Loose coupling
- Extensible
- Platform independent
- Backward compatible
Architecture Overview
OMI Core
│
┌───────────────┼────────────────┐
│ │ │
▼ ▼ ▼
Discipline Renderer Integration
Plugins Plugins Plugins
│ │ │
▼ ▼ ▼
Annotation HTML OJS
Metadata PDF Crossref
Citation EPUB ORCID
Review JATS Zenodo
The Core defines interfaces.
Plugins implement functionality.
OMI Core
The Core provides only universal functionality.
Examples include:
- Document Model
- Anchor Model
- Annotation Model
- Metadata Model
- Citation Model
- Review Model
- Plugin API
- Event System
Everything else belongs in plugins.
Plugin Categories
Discipline Plugins
Provide discipline-specific scholarly objects.
Examples:
- History
- Theology
- Mathematics
- Physics
- Chemistry
- Biology
- Medicine
- Law
Renderer Plugins
Generate publication formats.
Examples:
- HTML
- EPUB
- DOCX
- JATS XML
- Markdown
Integration Plugins
Connect OMI with external services.
Examples:
- OJS
- OMP
- OPS
- Crossref
- DataCite
- ORCID
- ROR
- Zenodo
- GitHub
Workflow Plugins
Extend editorial workflows.
Examples:
- Double Blind Review
- Open Review
- Editorial Approval
- AI Assistant
- Publishing Pipeline
UI Plugins
Extend the user interface.
Examples:
- Panels
- Editors
- Dashboards
- Toolbars
- Inspectors
Import Plugins
Import external document formats.
Examples:
- DOCX
- Markdown
- LaTeX
- JATS XML
- HTML
Export Plugins
Export semantic manuscripts.
Examples:
- EPUB
- DOCX
- XML
- JSON
Plugin Manifest
Every plugin contains a manifest.
Example:
id: omi-history
name: History Profile
version: 1.0.0
author: Open Manuscript Initiative
apiVersion: 1
license: MIT
Plugin Lifecycle
Plugins follow a defined lifecycle.
Install
↓
Register
↓
Initialize
↓
Activate
↓
Execute
↓
Deactivate
↓
Remove
Plugin Capabilities
Plugins declare their capabilities explicitly.
Examples:
- adds semantic objects
- provides renderer
- imports documents
- exports publications
- validates metadata
- extends UI
- listens to events
Event System
Plugins communicate through events.
Examples:
DocumentOpened
↓
AnnotationCreated
↓
CitationAdded
↓
ReviewSubmitted
↓
ExportStarted
↓
PublicationCompleted
Plugins should avoid direct dependencies whenever possible.
Extension Points
The Core exposes stable extension points.
Examples:
- Document Objects
- Metadata
- Anchors
- Citations
- Review
- Rendering
- Import
- Export
- User Interface
Dependencies
Plugins may depend on other plugins.
Example:
History Plugin
↓
Citation Plugin
↓
Metadata Plugin
Circular dependencies are not permitted.
Version Compatibility
Each plugin declares:
- minimum Core version
- maximum supported Core version
- API version
This allows safe upgrades.
Security
Plugins execute within defined permissions.
Possible permissions include:
- read manuscript
- modify manuscript
- export data
- access network
- write files
- access external APIs
Users should be able to review granted permissions before installation.
Plugin Repository
OMI may provide a public plugin repository.
Possible categories:
- Official
- Community
- Experimental
- Certified
Testing
Plugins should provide automated tests where appropriate.
Recommended testing includes:
- unit tests
- integration tests
- compatibility tests
Documentation
Each plugin should include:
- README
- License
- Changelog
- Installation Guide
- Usage Guide
Future Work
Future specifications will define:
- Plugin API
- Event API
- UI Extension API
- Renderer API
- Repository Protocol
Summary
The OMI Plugin Architecture ensures that the platform remains lightweight, stable, and extensible.
By defining clear interfaces and extension points, OMI enables communities to develop discipline-specific features, publishing formats, integrations, and workflows without modifying the Core platform.