OMI-SPEC-300 — Plugin-arkitektur
Status
Udkast
Version: 0.1.0
Gammel identifikator: OMI-SPEC-008
Formål
Plugin-arkitekturen definerer, hvordan Open Manuscript Initiative (OMI) kan udvides uden at ændre Core-platformen.
Alle funktioner, der ikke indgår i den universelle akademiske arbejdsgang, bør implementeres som et plugin.
Dette sikrer modularitet, interoperabilitet, vedligeholdelsesvenlighed og bæredygtighed på lang sigt.
Designprincipper
Plugin-arkitekturen følger disse principper:
- Først det væsentlige
- Modulært design
- Stabile grænseflader
- Løs kobling
- Udvidelig
- Platformuafhængig
- Bagudkompatibel
Oversigt over arkitekturen
OMI Core
│
┌───────────────┼────────────────┐
│ │ │
▼ ▼ ▼
Discipline Renderer Integration
Plugins Plugins Plugins
│ │ │
▼ ▼ ▼
Annotation HTML OJS
Metadata PDF Crossref
Citation EPUB ORCID
Review JATS Zenodo
Kernen definerer grænseflader.
Plugins implementerer funktionalitet.
OMI Kerne
Kernen tilbyder udelukkende universelle funktioner.
Eksempler herpå er:
- Dokumentmodel
- Anker-model
- Annotationsmodel
- Metadatamodel
- Citeringsmodel
- Gennemgangsmodel
- Plugin-API
- Begivenhedssystem
Alt andet hører hjemme i plugins.
Plugin-kategorier
Plugins til disciplin
Tilvejebringe fagspecifikke videnskabelige objekter.
Eksempler:
- Historie
- Teologi
- Matematik
- Fysik
- Kemi
- Biologi
- Medicin
- Lovgivning
Renderer-plugins
Generer publikationsformater.
Eksempler:
- HTML
- EPUB
- DOCX
- JATS XML
- Markdown
Integrationsplugins
Forbind OMI med eksterne tjenester.
Eksempler:
- OJS
- OMP
- OPS
- Crossref
- DataCite
- ORCID
- ROR
- Zenodo
- GitHub
Workflow-plugins
Udvid redaktionelle arbejdsgange.
Eksempler:
- Dobbeltblind bedømmelse
- Åben gennemgang
- Redaktionel godkendelse
- AI-assistent
- Udgivelsesforløb
UI-plugins
Udvid brugergrænsefladen.
Eksempler:
- Paneler
- Redaktører
- Dashboards
- Værktøjslinjer
- Inspektører
Importer plugins
Importer eksterne dokumentformater.
Eksempler:
- DOCX
- Markdown
- LaTeX
- JATS XML
- HTML
Eksport-plugins
Eksporter semantiske manuskripter.
Eksempler:
- EPUB
- DOCX
- XML
- JSON
Plugin-manifest
Hvert plugin indeholder et manifest.
Eksempel:
id: omi-history
name: History Profile
version: 1.0.0
author: Open Manuscript Initiative
apiVersion: 1
license: MIT
Pluginets livscyklus
Plugins følger en fastlagt livscyklus.
Install
↓
Register
↓
Initialize
↓
Activate
↓
Execute
↓
Deactivate
↓
Remove
Plugin-funktioner
Plugins angiver deres funktioner eksplicit.
Eksempler:
- tilføjer semantiske objekter
- leverer en renderer
- importerer dokumenter
- eksportpublikationer
- validerer metadata
- udvider brugergrænsefladen
- overvåger begivenheder
Begivenhedssystem
Plugins kommunikerer via begivenheder.
Eksempler:
DocumentOpened
↓
AnnotationCreated
↓
CitationAdded
↓
ReviewSubmitted
↓
ExportStarted
↓
PublicationCompleted
Plugins bør så vidt muligt undgå direkte afhængigheder.
Udvidelsespunkter
Kernen stiller stabile udvidelsespunkter til rådighed.
Eksempler:
- Dokumentobjekter
- Metadata
- Ankre
- Kilder
- Anmeldelse
- Rendering
- Import
- Eksport
- Brugergrænseflade
Afhængigheder
Plugins kan være afhængige af andre plugins.
Eksempel:
History Plugin
↓
Citation Plugin
↓
Metadata Plugin
Cirkulære afhængigheder er ikke tilladt.
Versionskompatibilitet
Hvert plugin angiver:
- Minimumskrav til Core-version
- Højeste understøttede Core-version
- API version
Dette muliggør sikre opgraderinger.
Sikkerhed
Plugins kører inden for de fastlagte tilladelser.
Mulige tilladelser omfatter:
- læs manuskriptet
- redigere manuskriptet
- eksport af data
- adgangsnetværk
- skrive filer
- få adgang til eksterne webAPIer
Brugerne bør kunne gennemgå de tildelte tilladelser inden installationen.
Plugin-arkiv
OMI kan stille et offentligt plugin-arkiv til rådighed.
Mulige kategorier:
- Officielt
- Fællesskab
- Eksperimentel
- Certificeret
Testning
Plugins bør om nødvendigt indeholde automatiserede tests.
Anbefalede undersøgelser omfatter:
- enhedstests
- integrationstests
- kompatibilitetstests
Dokumentation
Hvert plugin bør indeholde:
- LÆS MIG
- Licens
- Ændringslog
- Installationsvejledning
- Brugsvejledning
Fremtidige opgaver
Fremtidige specifikationer vil fastlægge:
- Plugin-API
- BegivenhedAPI
- UI-udvidelse API
- Renderer API
- Repository-protokol
Ændringshistorik
- 0.1.0 — Flyttet fra den midlertidige adresse
OMI-SPEC-008til den officielle adresseOMI-SPEC-300.
Resumé
OMI-pluginarkitekturen sikrer, at platformen forbliver let, stabil og udvidelig.
Ved at definere klare grænseflader og udvidelsespunkter giver OMI brugerfællesskaberne mulighed for at udvikle fagspecifikke funktioner, udgivelsesformater, integrationer og arbejdsgange uden at ændre Core-platformen.