Преминете към основното съдържание

OMI-SPEC-300 — Архитектура на плъгините

Статус​

Чернова

Версия: 0.1.0

Старият идентификатор: OMI-SPEC-008


Цел

Архитектурата на плъгините определя как платформата „Open Manuscript Initiative“ (OMI) може да бъде разширена, без да се променя основната платформа.

Всяка функция, която не е част от универсалния научен работен процес, трябва да бъде реализирана като плъгин.

Това гарантира модулност, оперативна съвместимост, лесност на поддръжката и дългосрочна устойчивост.


Принципи на проектирането

Архитектурата на плъгините се основава на следните принципи:

  • Първо основното
  • Модулна конструкция
  • Стабилни интерфейси
  • Свободна връзка
  • Разширяем
  • Независима от платформата
  • Съвместимост с по-стари версии

Общ преглед на архитектурата

OMI Core
│
┌───────────────┼────────────────┐
│ │ │
▼ ▼ ▼
Discipline Renderer Integration
Plugins Plugins Plugins
│ │ │
▼ ▼ ▼
Annotation HTML OJS
Metadata PDF Crossref
Citation EPUB ORCID
Review JATS Zenodo

Ядрото дефинира интерфейси.

Плъгините осигуряват функционалност.


OMI Ядро

Ядрото предоставя само универсална функционалност.

Примери за това са:

  • Модел на документа
  • Модел „Анкор“
  • Модел за анотиране
  • Модел на метаданните
  • Модел за цитиране
  • Модел за преглед
  • Плъгин „API“
  • Система за събития

Всичко останало трябва да се включи в плъгините.


Категории на плъгините

Плъгини за дисциплина​

Предоставяне на научни обекти, специфични за дадена дисциплина.

Примери:

  • История
  • Теология
  • Математика
  • Физика
  • Химия
  • Биология
  • Медицина
  • Право

Плъгини за рендериране​

Създаване на формати за публикуване.

Примери:

  • HTML
  • PDF
  • EPUB
  • DOCX
  • JATS XML
  • Markdown

Плъгини за интеграция​

Свържете „OMI“ с външни услуги.

Примери:

  • OJS
  • OMP
  • OPS
  • Crossref
  • DataCite
  • ORCID
  • ROR
  • Zenodo
  • GitHub

Добавки за работни потоци​

Разширяване на редакционните работни процеси.

Примери:

  • Двойно-сляпа рецензия
  • Открито рецензиране
  • Одобрение от редакцията
  • AI асистент
  • Процес на публикуване

Плъгини за потребителски интерфейс​

Разширете потребителския интерфейс.

Примери:

  • Панели
  • Редактори
  • Табла за управление
  • Ленти с инструменти
  • Инспектори

Импортиране на плъгини​

Импортиране на външни формати на документи.

Примери:

  • DOCX
  • Markdown
  • LaTeX
  • JATS XML
  • HTML

Плъгини за експортиране​

Експортиране на семантични ръкописи.

Примери:

  • PDF
  • EPUB
  • DOCX
  • XML
  • JSON

Манифест на плъгина

Всеки плъгин съдържа манифест.

Пример:

id: omi-history
name: History Profile
version: 1.0.0
author: Open Manuscript Initiative
apiVersion: 1
license: MIT

Животният цикъл на плъгина

Плъгините следват определен жизнен цикъл.

Install

↓

Register

↓

Initialize

↓

Activate

↓

Execute

↓

Deactivate

↓

Remove

Възможности на плъгина

Добавките декларират своите възможности изрично.

Примери:

  • добавя семантични обекти
  • предоставя рендерер
  • импортира документи
  • издания за износ
  • проверява метаданните
  • разширява потребителския интерфейс
  • проследява събитията

Система за събития

Добавките комуникират чрез събития.

Примери:

DocumentOpened

↓

AnnotationCreated

↓

CitationAdded

↓

ReviewSubmitted

↓

ExportStarted

↓

PublicationCompleted

Допълненията трябва да избягват преките зависимости, когато това е възможно.


Точки за разширение

Ядрото предоставя стабилни точки за разширение.

Примери:

  • Документни обекти
  • Метаданни
  • Опорни точки
  • Източници
  • Преглед
  • Рендериране
  • Импорт
  • Износ
  • Потребителски интерфейс

Зависимости

Добавките могат да зависят от други добавки.

Пример:

History Plugin

↓

Citation Plugin

↓

Metadata Plugin

Цикличните зависимости не са разрешени.


Съвместимост на версиите

Всеки плъгин декларира:

  • минимална версия на Core
  • максималната поддържана версия на Core
  • API версия

Това позволява безопасно извършване на ъпгрейди.


Сигурност

Добавките се изпълняват в рамките на определените разрешения.

Възможните разрешения включват:

  • прочети ръкописа
  • да се редактира ръкописът
  • експортиране на данни
  • достъпна мрежа
  • записване на файлове
  • достъп до външни APIs

Потребителите трябва да имат възможност да прегледат предоставените разрешения преди инсталирането.


Хранилище на плъгини

OMI може да предостави публично хранилище за плъгини.

Възможни категории:

  • Официален
  • Общност
  • Експериментален
  • Сертифициран

Тестване

Добавките трябва да предоставят автоматизирани тестове, когато това е уместно.

Препоръчителните тестове включват:

  • единични тестове
  • интеграционни тестове
  • тестове за съвместимост

Документация

Всеки плъгин трябва да включва:

  • README
  • Лиценз
  • Списък с промените
  • Ръководство за инсталиране
  • Ръководство за употреба

Бъдещи задачи

Бъдещите спецификации ще определят:

  • Плъгин „API“
  • Събитие „API“
  • Разширение за потребителския интерфейс API
  • РендерингAPI
  • Протокол за хранилище

Хронология на промените

  • 0.1.0 — Прехвърлено от временния адрес OMI-SPEC-008 към основния адрес OMI-SPEC-300.

Обобщение

Архитектурата на плъгините на „OMI“ гарантира, че платформата остава лека, стабилна и разширяема.

Чрез дефинирането на ясни интерфейси и точки за разширение, „OMI“ дава възможност на общностите да разработват специфични за дадена дисциплина функции, формати за публикуване, интеграции и работни процеси, без да се налага промяна на основната платформа.